# Milestone: Flutter Operator Console ## 위치 - Roadmap: `agent-ops/roadmap/ROADMAP.md` - Phase: `agent-ops/roadmap/phase/operator-surface/PHASE.md` ## 목표 Flutter client를 ALT의 공식 UI client로 삼아 market data 상태, backtest run, result를 조회하고 실행 요청할 수 있는 operator console을 만든다. 별도 TypeScript web app은 기본 경로로 두지 않는다. ## 상태 [계획] ## 구현 잠금 - 상태: 잠금 - 결정 필요: 아래 체크리스트 - [ ] Client Integration Clone Adoption 완료 전 operator console 화면 구현을 어디까지 진행할지 결정한다. - [ ] Riverpod/go_router app shell에 공통 client skeleton과 integration boundary를 결합하는 기준을 확정한다. - [ ] push notification은 이 milestone 범위 제외로 유지하고 clone milestone에서 host integration으로 다룰지 확인한다. ## 범위 - Flutter feature-first 화면 구조 - socket connection state - backtest run list/detail - start backtest request form - market data import/status view - responsive web/mobile/desktop navigation ## 필수 기능 ### Epic: [operator-console] Flutter operator console market data와 backtest 상태를 조회하고 실행 요청할 수 있는 Flutter 운영 표면을 묶는다. - [ ] [connect-state] client가 API socket 연결 상태를 표시한다. - [ ] [backtest-list] backtest run 목록을 조회하고 표시한다. - [ ] [backtest-detail] backtest run detail과 result를 표시한다. - [ ] [start-run] operator가 backtest 실행을 요청할 수 있다. - [ ] [market-status] market data import/status를 조회할 수 있다. - [ ] [responsive-nav] web/mobile/desktop target에서 기본 navigation이 작동한다. ## 완료 기준 - [ ] Flutter test가 주요 화면 shell과 상태 표시를 검증한다. - [ ] client는 generated/mapped contracts를 통해 API와 통신한다. - [ ] presentation widget에 production endpoint 가정이 hard-code되지 않는다. - [ ] `bin/test`, `bin/lint`, `bin/build`가 통과한다. ## 완료 리뷰 - 상태: 없음 - 요청일: 없음 - 완료 근거: 아직 필수 기능과 완료 기준이 충족되지 않았다. - 리뷰 필요: - [ ] 사용자가 완료 결과를 확인했다 - [ ] archive 이동을 승인했다 - 리뷰 코멘트: 없음 ## 범위 제외 - 별도 TypeScript web app - 고급 charting 전체 - push notification - mobile app store 배포 설정 ## 작업 컨텍스트 - 관련 경로: `apps/client/`, `packages/contracts/`, `services/api/` - 표준선(선택): Flutter는 feature-first Clean Architecture와 Riverpod을 기본 설계 프레임으로 삼는다. - 선행 작업: Client Integration Clone Adoption, Socket Session Loop, Backtest Analysis Surface - 후속 작업: Paper Trading Readiness - 확인 필요: 구현 잠금의 결정 필요 항목 참고.