# 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이 승인되기 전에는 구현 잠금을 유지한다.
