# 인슈위키 정제 프로세스 "마지막 갱신" 타임스탬프 표시

## 배경
정제 프로세스가 LLM 호출 대기 중일 때 로그가 멈춰서 프로세스가 살아있는지 죽었는지 판단 불가.
제이회장님 요청: 프로세스 생존 여부를 UI에서 실시간 확인하고 싶음.

## 작업 내용

### 1. 백엔드: _write_progress()에 lastUpdated 필드 추가
파일: `/home/jay/projects/insuwiki/scripts/kakao_knowledge/knowledge_extractor_v2.py`

`_write_progress()` 함수에서 매 호출 시:
```python
from datetime import datetime
data["lastUpdated"] = datetime.now().isoformat()
```
이러면 refine-status.json에 항상 최신 갱신 시각이 기록됨.

### 2. 프론트엔드: "마지막 갱신: N초 전" 표시 + stuck 경고
파일: `/home/jay/workspace/dashboard/components/InsuWikiView.js`

progress bar 영역(currentStep 옆 또는 ETA 옆)에:
- `refineStatus.lastUpdated` 값을 현재 시각과 비교
- 정상(60초 이내): "마지막 갱신: 3초 전" (회색 텍스트)
- 경고(1~5분): "⚠️ 마지막 갱신: 2분 전" (노란색)
- 위험(5분 초과): "❌ 마지막 갱신: 8분 전 — 프로세스 응답 없음" (빨간색)
- 갱신 시각 계산은 프론트에서 setInterval(1초)로 실시간 업데이트

### 3. routes_get.py 확인
- refine-status.json의 lastUpdated가 API 응답에 포함되는지 확인
- 이미 status_data를 그대로 반환하므로 수정 불필요할 수 있음

## 영향 파일
- `/home/jay/projects/insuwiki/scripts/kakao_knowledge/knowledge_extractor_v2.py` — 수정 (1줄 추가)
- `/home/jay/workspace/dashboard/components/InsuWikiView.js` — 수정 (타임스탬프 표시 UI)

## 검증 시나리오
1. 정제 실행 중 API 응답에 `lastUpdated` ISO 형식 타임스탬프 존재
2. 대시보드에서 "마지막 갱신: N초 전" 표시되고 매초 업데이트
3. 5분 이상 갱신 없으면 빨간색 경고 표시
4. 정제 미실행(idle) 시 타임스탬프 미표시

## 주의
- insuwiki 프로젝트 파일 수정 시 worktree 사용
- InsuWikiView.js 대용량 — offset/limit
- 수정 후 즉시 커밋
