feat(dashboard): Phase 3 — AI Summary integration - #13
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
DashboardApp v2 Phase 3: AI(claude/codex CLI) 기반 일일 리포트 + 패턴 인사이트 자동 생성 및 인사이트 탭 UI 완성.
Design spec:
docs/superpowers/specs/2026-04-17-dashboard-v2-design.mdImplementation plan:
docs/superpowers/plans/2026-04-17-dashboard-v2-phase3.mdBackend (Go)
New package:
internal/insightsReport/Patterntypes + atomicSave()/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으로 인사이트 생성Frontend (Swift / SwiftUI)
HelperCore
InsightsReport/InsightPatterntypes +parseInsights(from:)+loadInsightsFromDisk()DashboardViewModel
@Published var insights: InsightsReport?@Published var isRefreshingInsights: BoolrefreshInsights()—Process()로 CLI 실행 후 결과 재로딩InsightsTabView (실제 UI)
sparkles아이콘 + "AI 분석 생성" 버튼.scrollIndicators(.visible)로 스크롤 가능 표시.primary/.secondary시맨틱 컬러로 다크/라이트 대응Test plan
go test ./...— 새insights패키지 11 tests + 전체 통과cd helpers && swift test— 3 신규 InsightsLoader tests + 전체 62 testsmake build— Swift 3 바이너리 + Go CLI 빌드 성공break-reminder insights --help—--refresh플래그 표시Known limitations
refreshInsights()의 프로세스 에러 처리가 silent (Phase 4의 테마 시스템과 함께 사용자 피드백 개선 예정)