# task-1143.1: 기록 탭 보고서 제목 개선

**S**: 대시보드 기록 탭에서 보고서 목록의 제목이 보고서 .md H1에서 추출되어 표시되고 있다. task-timers.json의 description 필드에 정확한 작업 설명이 있지만 활용되지 않았다.

**C**: "[3팀] 수행 내용", "[4팀] 동작 설명" 등 의미 없는 H1이 제목으로 표시되어 어떤 작업인지 전혀 식별 불가. 반면 description 필드를 사용하는 보고서는 "[5팀] 팀원 에이전트 작업 상태 신호등 미반영 수정"처럼 작업 내용이 바로 보임.

**Q**: 보고서 제목 추출 우선순위를 변경하고 `[팀명] task-ID: 작업 설명` 형식으로 통일할 수 있는가?

**A**: server.py의 `get_records_list()` 제목 추출 우선순위를 description → dispatch 지시서 → H1으로 변경하고, 표시 형식에 task_id를 포함. API 응답에 `description`, `task_id`, `team_display` 필드 추가. 프론트엔드에서 description tooltip 추가. pytest 14건 전체 통과, 실제 데이터로 8건 제목 형식 검증 완료.

## 생성/수정 파일 목록

- `/home/jay/workspace/dashboard/server.py` — `get_records_list()` 제목 우선순위 재구성 + API 응답 필드 추가
- `/home/jay/workspace/dashboard/components/ArchiveView.js` — 제목 tooltip(description), 하위 텍스트에 task_id 표시
- `/home/jay/workspace/dashboard/components/utils.js` — RecentReportsWidget 제목에 description tooltip 추가

## 주요 변경사항

### server.py (핵심 변경)
- **제목 추출 우선순위 변경**:
  - Priority 1: `task-timers.json` description (기존 Priority 3 → 1로 승격)
  - Priority 2: dispatch 지시서 `memory/tasks/{task_id}.md` 첫 줄 (신규)
  - Priority 3: 보고서 .md H1 (기존 로직 전체 보존, 폴백)
- **표시 형식 변경**: `[팀명] 작업설명` → `[팀명] task-ID: 작업설명`
- **API 응답 필드 추가**: `description`, `task_id`, `team_display` (하위 호환, 기존 필드 유지)
- **`[Lv.X]` 접두사 제거**: description/dispatch 제목에서 메타데이터 접두사 자동 제거
- **팀 접두사 중복 방지**: `startswith("[")` → 실제 팀명 패턴 매칭으로 변경

### 프론트엔드 (ArchiveView.js, utils.js)
- 제목에 description tooltip 추가
- 기록 목록 하위 텍스트에 task_id 우선 표시 (filename 폴백)
- 이전 API 버전 호환을 위한 `||` 폴백 적용

## 발견 이슈 및 해결 (3건)

1. **`[Lv.X]` 접두사 오탐지**: description이 `[Lv.3] 제목`으로 시작하면 기존 `startsWith("[")` 체크에 걸려 팀 접두사+task_id가 추가되지 않음 → `[Lv.\d+]` 접두사를 description/dispatch 제목에서 사전 제거 + 팀 접두사 체크를 실제 팀명 패턴 매칭으로 변경
2. **description에 마크다운 헤딩 포함**: task-timers.json description이 `# 제목` 형식 → 기존 `lstrip("#")` 처리로 해결 (이미 구현됨, 동작 확인)
3. **dispatch 파일 부재 시 폴백**: dispatch 지시서가 없는 보고서(구 작업) → `dispatch_path.exists()` 체크 + H1 폴백으로 정상 처리

## 테스트 결과

- `tests/test_records_api.py`: **14/14 통과** (0.08s)
- 실제 데이터 검증: 최근 8건 보고서 제목 형식 확인 완료
  - 변경 전: `[5팀] [Lv.3] 팀원 에이전트 작업 상태 신호등 미반영 문제` (팀+레벨 혼재)
  - 변경 후: `[5팀] task-1139.1: 팀원 에이전트 작업 상태 신호등 미반영 문제` (통일된 형식)

## 셀프 QC 체크리스트

- [x] 1. 영향 파일: server.py, ArchiveView.js, utils.js — 모두 수정 완료
- [x] 2. 엣지 케이스: 빈 description, dispatch 미존재, [Lv.X] 접두사, 80자 초과 — 모두 처리
- [x] 3. 작업 지시 일치: 우선순위 변경, 포맷 변경, API 필드 추가 — 일치
- [x] 4. 에러 처리: try/except 방어, 빈값 폴백 — 확인
- [x] 5. 테스트: 14/14 통과
- [x] 6. 이슈 직접 해결: 3건 모두 해결
- [x] 7. 코드 아키텍처: 기존 패턴 유지, SOLID/DRY 위반 없음
- [x] 8. 인터페이스 변경: API 응답 3개 필드 추가 (하위 호환)
