Skip to content

feat(dashboard): Phase 3 — AI Summary integration - #13

Merged
devlikebear merged 9 commits into
mainfrom
feat/dashboard-v2-phase3
Apr 18, 2026
Merged

feat(dashboard): Phase 3 — AI Summary integration#13
devlikebear merged 9 commits into
mainfrom
feat/dashboard-v2-phase3

Conversation

@devlikebear

Copy link
Copy Markdown
Owner

Summary

DashboardApp v2 Phase 3: AI(claude/codex CLI) 기반 일일 리포트 + 패턴 인사이트 자동 생성 및 인사이트 탭 UI 완성.

Design spec: docs/superpowers/specs/2026-04-17-dashboard-v2-design.md
Implementation plan: docs/superpowers/plans/2026-04-17-dashboard-v2-phase3.md

Backend (Go)

New package: internal/insights

  • Report / Pattern types + atomic Save() / Load() (하위 호환: missing file → nil)
  • BuildPrompt(history) — 히스토리 JSON을 한국어 분석 프롬프트로 변환
  • ParseResponse(raw) — AI 응답 JSON 파싱 (마크다운 코드 펜스 자동 제거)
  • Generate(ctx, client, history, now) — 프롬프트 생성 → AI 호출 → 파싱 오케스트레이션

CLI

  • break-reminder insights — 저장된 리포트 표시
  • break-reminder insights --refresh — AI 호출로 강제 재생성 (ai_enabled + CLI 설치 체크)

Auto-trigger

  • ActionSaveDailyHistory 핸들러에서 cfg.AIEnabled면 백그라운드 goroutine으로 인사이트 생성
  • 메인 tick 블로킹 없이 fire-and-forget, 에러는 로깅만

Frontend (Swift / SwiftUI)

HelperCore

  • InsightsReport / InsightPattern types + parseInsights(from:) + loadInsightsFromDisk()
  • 4개 신규 테스트 (유효 JSON, 빈 패턴, 손상된 JSON, 등)

DashboardViewModel

  • @Published var insights: InsightsReport?
  • @Published var isRefreshingInsights: Bool
  • refreshInsights()Process()로 CLI 실행 후 결과 재로딩

InsightsTabView (실제 UI)

  • 비어있는 상태: sparkles 아이콘 + "AI 분석 생성" 버튼
  • 데이터 있음: 오늘의 리포트 카드 (녹색 accent bar) + 패턴 인사이트 카드 리스트 (type별 색상 dot) + 새로고침/복사 액션 버튼
  • .scrollIndicators(.visible)로 스크롤 가능 표시
  • .primary / .secondary 시맨틱 컬러로 다크/라이트 대응

Test plan

  • go test ./... — 새 insights 패키지 11 tests + 전체 통과
  • cd helpers && swift test — 3 신규 InsightsLoader tests + 전체 62 tests
  • make build — Swift 3 바이너리 + Go CLI 빌드 성공
  • break-reminder insights --help--refresh 플래그 표시
  • Mock insights JSON 시드 후 대시보드 → 인사이트 탭 렌더링 확인
    • 오늘의 리포트 카드 표시
    • 3개 패턴 카드 (warning/positive/info) 색상 dot 구분
    • 새로고침 / 리포트 복사 버튼 동작
  • 빈 상태 테스트 — insights 파일 삭제 시 empty state 표시
  • 리포트 복사 → 클립보드에 daily_report 텍스트 삽입 확인

Known limitations

  • refreshInsights()의 프로세스 에러 처리가 silent (Phase 4의 테마 시스템과 함께 사용자 피드백 개선 예정)
  • 테마 시스템은 Phase 4에서 도입 — 현재 일부 하드코딩된 배경 색상 존재

@devlikebear
devlikebear merged commit ef1f87e into main Apr 18, 2026
1 check passed
@devlikebear
devlikebear deleted the feat/dashboard-v2-phase3 branch April 18, 2026 02:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant