# task-1612.1 완료 보고서

**S**: 대시보드 기록 탭이 보고서/미팅 2개 섹션으로 운영되고 있으며, `/home/jay/workspace/memory/research/`에 78개의 리서치 파일이 존재하나 대시보드에서 조회할 수 없다.

**C**: 리서치 결과물을 확인하려면 직접 파일 시스템을 탐색해야 하며, 보고서/미팅과 달리 대시보드에서 통합 관리가 불가능하다.

**Q**: 기존 보고서/미팅 구조를 확장하여 리서치 섹션을 추가할 수 있는가?

**A**: 기존 records 아키텍처(ALLOWED_RECORD_DIRS + get_records_list + safe_read_record)를 재사용하여 3개 파일 수정으로 리서치 섹션을 추가했다. 통합 테스트 7건 전체 통과, 기존 보고서 1,327건/미팅 125건 정상 동작 확인.

## 수정 파일 목록

- `/home/jay/workspace/dashboard/helpers.py` — ALLOWED_RECORD_DIRS에 research 추가, get_records_list에 research 타입 포함, 팀 접두사 제외 조건 수정
- `/home/jay/workspace/dashboard/server.py` — `/api/research`, `/api/research/{filename}` 엔드포인트 추가
- `/home/jay/workspace/dashboard/components/ArchiveView.js` — 리서치 필터 탭 추가, emerald 색상 뱃지 적용 (상세뷰 + 목록뷰)

## 테스트 결과

- ALLOWED_RECORD_DIRS에 research 키 존재: PASS
- get_records_list("research") → 78개 파일 반환: PASS
- safe_read_record("research", "fireauto-analysis.md") → 2,189자 정상 읽기: PASS
- get_records_list("all") → report/meeting/research 3타입 포함: PASS
- 기존 report 1,327건 / meeting 125건 정상: PASS
- path traversal 방어 (../../../etc/passwd): PASS (PermissionError)
- research 레코드 팀 접두사 미포함: PASS

## 발견 이슈 및 해결

### 자체 해결 (3건)
1. **research 타입 팀 접두사 노출** — helpers.py line 330에서 meeting과 동일하게 research도 제외 조건에 추가
2. **"전체" 필터에 research 누락** — get_records_list의 "all" 분기에 "research" 추가
3. **프론트엔드 뱃지 3항 분기 필요** — report/research/meeting 각각 blue/emerald/purple 색상 삼항 연산자로 처리

## 모델 사용 기록

- 쿠쿨칸 / 백엔드 API 추가 / sonnet
- 이쉬첼 / 프론트엔드 리서치 탭 추가 / sonnet
