# task-1512.1 완료 보고서

## SCQA

**S**: 대시보드 기록 탭(ArchiveView)에서 보고서를 볼 때, `linkifyFilePaths` 함수와 `initInlineImagePreviews` 함수가 이미 존재하여 이미지 경로 자동 감지 및 인라인 프리뷰 인프라가 구축되어 있다.

**C**: 그러나 3가지 버그로 인해 이미지 경로가 텍스트로만 표시되고 클릭해도 이미지가 표시되지 않는다: (1) 정규식 `[\w.\-]`가 한글 문자를 매칭하지 못해 `thumbnail-인카금융.png` 같은 파일명이 링크화되지 않음, (2) `ReportModal` 컴포넌트가 `linkifyFilePaths`를 적용하지 않아 보고서 모달에서 파일 경로가 텍스트로만 표시, (3) server.py의 절대경로 이미지 응답 필드가 `content`로 되어 있어 프론트엔드(`data.data`)와 불일치.

**Q**: 기존 인프라를 활용하여 보고서 내 이미지 경로를 클릭 가능하게 만들고, 인라인 이미지 뷰어가 정상 작동하도록 수정할 수 있는가?

**A**: 3가지 버그를 모두 수정하여 해결. 정규식에 한글 유니코드 범위(`\u3131-\uD79D`) 추가, ReportModal에 `linkifyFilePaths` 적용 + 클릭 핸들러 추가, server.py 절대경로 이미지 응답 필드를 `data`로 통일. pytest 16건 전체 통과.

## 수정 파일

- `dashboard/server.py` — 절대경로 이미지 응답 필드 `"content"` → `"data"` 변경, `filename`/`extension` 필드 추가 (line 471-479)
- `dashboard/components/utils.js` — `linkifyFilePaths` 정규식 3개에 한글 유니코드 범위 추가 (line 579-583)
- `dashboard/components/utils.js` — `ReportModal`에 `linkifyFilePaths` 적용 + 파일 링크 클릭 핸들러 추가 (line 968-978)

## 발견 이슈 및 해결

### 자체 해결 (3건)
1. **정규식 한글 미지원** — `\u3131-\uD79D` 범위를 pathPattern, imageFilenamePattern, codeFilenamePattern 3개 정규식에 추가
2. **ReportModal linkifyFilePaths 미적용** — DOMPurify 결과를 linkifyFilePaths로 감싸고, onClick 핸들러 추가
3. **절대경로 이미지 응답 필드 불일치** — `"content"` → `"data"`로 변경, `"filename"`/`"extension"` 필드 추가하여 상대경로 핸들러와 일관성 확보

## 테스트 결과

- `dashboard/tests/test_file_api.py`: 16/16 PASSED (0.77s)
- 기존 ArchiveView, TaskDetailModal의 linkifyFilePaths 적용 코드는 변경 없이 호환

## 모델 사용 기록

- 팀원: 토르 / 작업: server.py 이미지 응답 필드 수정 / 사용 모델: sonnet
- 팀원: 프레이야 / 작업: utils.js 정규식 + ReportModal 수정 / 사용 모델: sonnet
