feat: 미구현 API 4개 대시보드 프론트 연결 (#198) #199
Reference in New Issue
Block a user
Delete Branch "feature/issue-198-dashboard-api-frontend"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
GET /api/playbook/{date}→ 📋 프리마켓 플레이북 아코디언 패널GET /api/scorecard/{date}→ 📊 일간 스코어카드 KPI 카드 그리드GET /api/scenarios/active→ 🎯 활성 시나리오 매칭 테이블GET /api/context/{layer}→ 🧠 컨텍스트 트리 테이블 (L1-L7 레이어 선택)결정 로그 패널 아래에 섹션 추가 방식으로 배치 (탭 전환 없음).
refreshAll()확장으로 30초 자동 갱신 지원.보안
esc()헬퍼 함수로 innerHTML 삽입 값 XSS 방지 (&,<,>,"이스케이프)fetchJSON()공통 헬퍼로 HTTP 오류 처리 통합Test plan
pytest tests/test_dashboard.py -v— 23/23 통과pytest -v --cov=src— 740 통과, 기존 커버리지 유지Closes #198
🤖 Generated with Claude Code
- Playbook(/api/playbook/{date}): 프리마켓 플레이북 아코디언 패널 추가 - Scorecard(/api/scorecard/{date}): 일간 스코어카드 KPI 카드 그리드 추가 - Scenarios(/api/scenarios/active): 활성 시나리오 매칭 테이블 추가 - Context(/api/context/{layer}): L1-L7 컨텍스트 트리 테이블 추가 모든 패널 decisions-panel 아래에 섹션 추가 방식으로 배치. refreshAll()에 4개 함수 포함하여 30초 자동 갱신 지원. 보안: - esc() 헬퍼로 innerHTML 삽입 값 XSS 방지 - ctx limit 값 parseInt + 범위 클램핑(1-200) 적용 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>