# task-1010.1: 대시보드 바차트 최신화 + 기간필터 + 위스퍼 팀상태 실시간화

## 개요
대시보드의 "작업별 토큰 사용량" 바차트가 최신 데이터를 반영하지 못하고 있고, 기간별 조회 기능이 없다. 또한 위스퍼 비서 섹션의 팀 상태가 상단 신호등과 불일치한다. 3건 수정.

## 수정 항목

### 항목 1: 바차트 최신화 안됨
**현상**: 바차트에 task-938까지만 표시되고 task-1000번대가 안 보임
**원인 조사 필요**:
- token-ledger.json의 최신 항목 확인 (task-938.2가 마지막)
- token-tracker.py가 새 작업(task-1000번대)의 토큰 사용량을 수집하지 못하는 원인 파악
- token-tracker.py 경로: `/home/jay/workspace/scripts/token-tracker.py`
- token-ledger.json 경로: `/home/jay/workspace/memory/token-ledger.json`
- JSONL 세션 로그에서 task ID를 추출하는 로직 점검
- 최근 task들의 JSONL 로그가 존재하는지 확인
- 수집 누락 원인을 찾아 수정하고, 누락된 task들의 토큰 데이터를 수집/보정

### 항목 2: 바차트 기간별 조회 기능 추가
**현재**: 무조건 최신 20건만 표시
**요구**: 당일 / 3일 / 1주일 / 전체 단위로 조회 가능하게

**백엔드 (server.py)**:
- `/api/token-usage` 엔드포인트에 `period` 파라미터 추가
- period 값: `1d` (당일), `3d` (3일), `7d` (1주일), `all` (전체)
- 기본값: `1d` (당일)
- timestamp 기준으로 필터링
- 관련 코드: `get_token_usage()` 메서드 (라인 889-1004)
- 최신순 정렬 후 상위 30건 선택하는 로직 (라인 983-988)을 기간 필터로 교체

**프론트엔드 (TokenView.js)**:
- 바차트 상단에 기간 선택 버튼 4개 추가: 당일 | 3일 | 1주일 | 전체
- 기본 선택: "당일"
- 버튼 클릭 시 해당 period로 API 재호출
- 현재 20건 하드코딩 (라인 99-101)도 기간에 맞게 조정
- 기존 디자인/색상 톤과 일관되게 UI 구성

### 항목 3: 위스퍼 비서 팀 상태 실시간화
**현상**: 상단 신호등은 정확한데 위스퍼 섹션의 팀 상태가 stale
**원인**:
- 상단 신호등: `/api/teams` → task-timers.json 실시간 로드 (정확)
- 위스퍼 섹션: `/api/whisper-status` → status.json 정적 파일 읽기 (stale)
- status.json은 whisper-compile.py 실행 시점의 스냅샷

**수정 방안**:
- `/api/whisper-status` 엔드포인트 (server.py 라인 2051-2060)에서 팀 상태 부분만 실시간 데이터로 교체
- 방법: whisper-status 응답 생성 시, 팀 상태는 `/api/teams`와 동일한 로직(task-timers.json 실시간 로드)으로 계산
- status.json의 나머지 정보(미처리 .done, 미응답 질문 등)는 그대로 유지
- 팀 상태만 실시간 오버라이드

## 관련 파일
- `/home/jay/workspace/dashboard/server.py` — 백엔드 API
- `/home/jay/workspace/dashboard/components/TokenView.js` — 바차트 프론트엔드
- `/home/jay/workspace/dashboard/components/SystemView.js` — 위스퍼 비서 UI
- `/home/jay/workspace/scripts/token-tracker.py` — 토큰 수집 스크립트
- `/home/jay/workspace/memory/token-ledger.json` — 토큰 데이터
- `/home/jay/workspace/scripts/whisper-compile.py` — 위스퍼 컴파일 스크립트

## 주의사항
- 대시보드 서버 재시작 필요 시 안전하게 처리
- 기존 기능(신호등, 다른 탭 등) 깨뜨리지 않도록 주의
- 바차트 기간 필터 UI는 기존 대시보드 디자인 톤과 일관되게
