# task-1077.1: 대시보드 기록 탭 — 제목 추출 개선 + 팀 표기 수정 + 재시작

## SCQA

**S**: 대시보드 기록 탭(`/api/records`)이 918건의 보고서 제목을 표시하고 있으나, task-1063.1에서 수정한 제목 추출 로직이 프로세스 미재시작으로 런타임에 반영되지 않았다.

**C**: (1) "완료 보고서", "통합 보고서" 등 제네릭 제목이 여전히 표시됨, (2) 팀 표기([1팀], [마케팅] 등)가 모든 항목에서 누락됨, (3) 제목 추출 로직 자체에도 em-dash 분리 우선 버그가 존재.

**Q**: 제목 추출 로직을 개선하고 팀 표기를 완성하여, 대시보드에서 의미 있는 제목 + 팀 표기가 정상 표시되도록 할 수 있는가?

**A**: server.py의 `get_records_list()` 제목 추출 로직을 리팩터링(step 1a/1b/1c → 5단계 순차 파이프라인)하고, `_team_display_map`에 `consulting`/`publishing` 추가 후 대시보드 재시작 완료. API 응답에서 7건 검증 모두 통과, pyright 0 errors.

---

## 작업 내용

### 수정 1: 제목 추출 로직 개선 (server.py:2080~2100)

**변경 전** (3단계 조건부 분기):
- 1a: "완료 보고서: 제목" 패턴만 감지 → 대부분 미적중
- 1b: em-dash 뒤를 추출 → "task-1070.1: GEO 분석 도구 3개 개발 — 완료 보고서"에서 "완료 보고서"를 추출하는 버그
- 1c: task ID + 선행 보일러플레이트 제거 → 후행 보일러플레이트 미처리

**변경 후** (5단계 순차 파이프라인):
1. task-ID 접두사 제거 (case-insensitive)
2. 후행 보일러플레이트 제거 ("— 완료 보고서", "완료 보고서")
3. 선행 보일러플레이트 제거 ("완료 보고서: ")
4. 잔여 구두점 정리
5. 남은 텍스트 ≥3자 → 제목으로 사용

### 수정 2: H2 폴백 조건 수정 (server.py:2114~2115)

**변경 전**: H2 폴백이 `if title and title.strip() in _generic_titles:` 블록 내부에만 존재
- title=None(제목 미추출)일 때 H2 폴백 미실행
- "task-1057.1 통합 보고서" → 보일러플레이트 전부 제거 → remaining="" → title=None → H2 폴백 건너뜀 → SCQA 추출에서 "task-1052." 오추출

**변경 후**: 제네릭 감지와 H2 폴백을 분리
```python
if title and title.strip() in _generic_titles:
    title = None
if not title:  # 제네릭이었든 미추출이었든 H2 폴백 실행
    # H2 폴백 코드
```

### 수정 3: 팀 표기 맵 완성 (server.py:2270~2271)
- `"consulting": "[컨설팅]"` 추가
- `"publishing": "[출판]"` 추가

### 수정 4: 대시보드 재시작
- 기존 PID 2090246 (구 코드) → kill → 자동 재시작 PID 2421941 (신 코드)

## 수정 전/후 제목 비교

- **task-1070.1**: "완료 보고서" → **[1팀] GEO 분석 도구 3개 개발**
- **task-1057.1**: "task-1052." → **티오피사업단 리쿠르팅 캠페인 재테스트 (디자인 스킬 업데이트 검증)**
- **task-1068.1**: "Task-1068.1: Eval Runner OAuth 전환..." → **[8팀] Eval Runner OAuth 전환 (API Key → Claude CLI)**
- **task-1058.1**: "Task-1058.1: Before Starting 명칭 통일 완료 보고서" → **[8팀] Before Starting 명칭 통일**
- **task-1069.1**: "리쿠르팅 마케팅 v2.0..." (팀 표기 없음) → **[마케팅] 리쿠르팅 마케팅 v2.0 캠페인 GEO 통합 + 스킬 업그레이드**
- **task-1073.1**: 팀 표기 없음 → **[4팀] InsuWiki Firestore 보안 규칙 배포 (임시저장 실패 수정)**
- **task-1063.1**: 팀 표기 없음 → **[7팀] 대시보드 기록 탭 보고서 제목 개선**

## 생성/수정 파일 목록

- `/home/jay/workspace/dashboard/server.py` (수정 — 제목 추출 로직 + 팀 맵 + H2 폴백)

## 테스트 결과

- pyright: 0 errors, 0 warnings, 0 informations
- API 응답 검증: 7건 대상 전체 PASS
- 대시보드 재시작: PID 2421941 정상 구동, 포트 8000 리스닝 확인

## 발견 이슈 및 해결

### 자체 해결 (3건)
1. **H2 폴백 미실행 버그** — title=None일 때 H2 폴백이 실행되지 않는 조건 분기 오류. 제네릭 감지와 H2 폴백을 분리하여 수정 (server.py:2114~2115)
2. **"완료 보고서" 접미사 공백 패턴 미처리** — "Before Starting 명칭 통일 완료 보고서"처럼 em-dash 없이 공백으로 연결된 보일러플레이트 미제거. `\s+(?:완료|통합|감사|최종)\s*보고서\s*$` 패턴 추가 (server.py:2090)
3. **task-1057.1 "task-1052." 오추출** — H2 폴백 미실행으로 SCQA 추출기가 "task-1052.1 피드백 2건..." 텍스트에서 첫 마침표까지 잘못 추출. H2 폴백 수정으로 해결
