# Milestone: Flutter Operator Console MVP ## 위치 - Roadmap: `agent-roadmap/ROADMAP.md` - Phase: `agent-roadmap/phase/operator-ui/PHASE.md` ## 목표 승인된 `Flutter Operator Console UX Plan`, command/headless workflow, 거래 확장 결과를 기준으로 Flutter client에 operator dashboard MVP를 구현한다. 화면은 충분히 표면화된 운영 흐름과 준비된 wireframe을 따라가며, terminal UI나 고급 charting이 아니라 반복 운영에 필요한 조회/실행 표면을 우선한다. ## 상태 [보류] ## 구현 잠금 - 상태: 잠금 - 결정 필요: 아래 체크리스트 - [x] `Operator Headless Workflow Validation`이 완료되어 화면 없이 대표 운영 흐름을 검증했다. - [x] `Operator Client API/Core Integration Validation`이 완료되어 Flutter 실화면 없이 client core에서 기본 API 호출을 검증했다. - [x] `KIS Live Data Collection Pipeline`이 완료되어 실제 KIS provider 수집과 worker import/storage/`StorageBarSource` 입력 조회 경계가 검증되었다. - [ ] command-first workflow에서 반복 운영할 기능, 상태 key, 우선순위가 충분히 표면화되어 화면 후보로 정리되었다. - [ ] 화면 wireframe 또는 동등한 화면 정의 산출물이 준비되었고 사용자가 승인했다. ## 범위 - Flutter feature-first 화면 구조 - socket connection state 표시 - backtest run list/detail/result 조회 - start backtest request form과 unavailable/error 응답 표시 - market data import/status 조회 - responsive web/mobile/desktop navigation ## 기능 ### Epic: [operator-mvp] Flutter operator console MVP headless 검증과 wireframe 승인을 거친 운영 흐름만 실제 Flutter 화면과 provider 경계로 옮긴다. - [ ] [connect-state] client가 API socket 연결 상태를 표시한다. 검증: Flutter test가 연결/끊김 상태 표시를 검증한다. - [ ] [backtest-list] backtest run 목록을 조회하고 표시한다. 검증: generated/mapped contracts 기반 repository/provider test가 목록 응답을 화면 model로 전달한다. - [ ] [backtest-detail] backtest run detail과 result를 표시한다. 검증: detail/result 상태별 widget test가 통과한다. - [ ] [start-run] operator가 backtest 실행을 요청하고 unavailable/error 응답을 이해 가능한 상태로 본다. 검증: request form과 typed error response test가 통과한다. - [ ] [market-status] market data import/status를 조회할 수 있다. 검증: market status provider/widget test가 통과한다. - [ ] [responsive-nav] web/mobile/desktop target에서 기본 navigation이 작동한다. 검증: 주요 viewport별 navigation smoke 또는 widget test가 통과한다. - [ ] [repo-checks] `bin/test`, `bin/lint`, `bin/build`가 통과한다. ## 완료 리뷰 - 상태: 없음 - 요청일: 없음 - 완료 근거: 아직 기능 Task와 검증이 충족되지 않았다. - 리뷰 필요: - [ ] 사용자가 완료 결과를 확인했다 - [ ] archive 이동을 승인했다 - 리뷰 코멘트: 없음 ## 범위 제외 - UI 기획 없이 임의로 화면 깊이를 확정하는 작업 - headless 검증 없이 dashboard layout, chart, form 흐름을 먼저 구현하는 작업 - wireframe 승인 없이 실화면을 구현하는 작업 - 별도 TypeScript web app - 고급 charting 전체 - push notification - mobile app store 배포 설정 ## 작업 컨텍스트 - 관련 경로: `apps/client/`, `packages/contracts/`, `services/api/` - 표준선(선택): `go_router`는 화면 이동/URL 구조, Riverpod은 API client/socket state/feature state 주입을 담당한다. UI는 `AltSocketClient` provider와 generated/mapped contracts boundary를 통해 API만 바라본다. - 표준선(선택): 화면 작업은 command-first workflow에서 운영 항목, 상태 key, 우선순위가 충분히 표면화되어 정리 가능한 뒤 다시 연다. - 표준선(선택): paper trading 화면은 `Paper Trading Command Workflow`에서 반복 운영 항목과 evidence key가 정리된 뒤에만 MVP 범위 후보로 올린다. - 선행 작업: Flutter Operator Console UX Plan, Operator Headless Workflow Validation, Operator Client API/Core Integration Validation, KIS Live Data Collection Pipeline, Command-First Operator Workflow, Paper Trading Readiness, Paper Trading Command Workflow, US Market Expansion, Live Trading Boundary, wireframe 승인 - 후속 작업: Flutter Push Notification Boundary - 확인 필요: headless 검증, client API/core 연결 검증, KIS live data collection pipeline은 완료되었고, command-first workflow에서 화면 후보가 충분히 정리되고 wireframe이 승인되기 전에는 구현 잠금을 유지한다.