# Milestone: Flutter Control Surface Baseline

## 위치

- Roadmap: `agent-roadmap/ROADMAP.md`
- Phase: `agent-roadmap/phase/control-surface-operations-ux/PHASE.md`

## 목표

Flutter 앱을 Gito operation과 event를 보는 control surface로 구성한다. 앱은 Git command를 직접 실행하지 않고 proto-socket을 통해 control plane의 repo, workspace, operation, event 상태를 소비한다.

## 상태

[계획]

## 승격 조건

- 없음

## 구현 잠금

- 상태: 잠금
- 결정 필요:
  - [ ] 초기 Flutter target을 desktop 우선으로 둘지 mobile/desktop 동시 기준으로 둘지 확정한다.
  - [ ] 첫 화면에서 repo 중심, operation 중심, runner 중심 중 어떤 navigation을 우선할지 확정한다.

## 범위

- Flutter app scaffold 정리
- proto-socket endpoint 설정
- repo/operation/event 목록 read model
- 기본 workbench shell
- no-op safe bootstrap

## 기능

### Epic: [app-shell] App shell

운영자가 repository와 operation 상태를 빠르게 확인하는 기본 shell을 만든다.

- [ ] [bootstrap] Flutter bootstrap과 env 기반 proto-socket 설정을 만든다.
- [ ] [layout] repo list, operation list, event panel이 들어갈 workbench layout을 만든다.
- [ ] [no-op] proto-socket endpoint가 없을 때도 앱이 안전하게 시작되도록 한다.

### Epic: [read-model] Read model

Control plane 상태를 읽어 UI에 표시한다.

- [ ] [repo-read] repo list/read DTO를 앱 모델로 표현한다.
- [ ] [op-read] operation state/read DTO를 앱 모델로 표현한다.
- [ ] [event-read] event stream snapshot을 앱 모델로 표현한다.

## 완료 리뷰

- 상태: 없음
- 요청일: 없음
- 완료 근거: 없음
- 리뷰 필요:
  - [ ] 사용자가 완료 결과를 확인했다
  - [ ] archive 이동을 승인했다
- 리뷰 코멘트: 없음

## 범위 제외

- Git command 직접 실행
- provider-specific 화면
- runner 설치/배포 UI
- mobile push notification

## 작업 컨텍스트

- 관련 경로: `apps/client/`, `packages/contracts/notes/gito-control-plane.md`
- 표준선(선택): Flutter는 control plane consumer이며 command runtime이 아니다.
- 선행 작업: Webhook Revision Reconcile
- 후속 작업: Operations Observability
- 확인 필요: Flutter target과 초기 navigation 우선순위

