nomadcode/agent-roadmap/archive/phase/client-platform-consolidation/milestones/flutter-first-client-consolidation.md
toki e2e595db74 정리: 로드맵 디렉터리를 분리한다
agent-ops 공통 파일과 프로젝트 로드맵 상태를 분리해 sync 대상과 로드맵 문서 관리를 독립적으로 유지한다.
2026-05-27 11:18:34 +09:00

3.9 KiB

Flutter-first Client Consolidation

목표

NomadCode의 제품 UI source of truth를 Flutter 앱으로 정하고, React/Vite 웹 콘솔을 장기 제품 경로에서 걷어낸다. 모바일, 데스크톱, 필요 시 Flutter Web까지 같은 앱 구조로 확장할 수 있게 클라이언트 경계와 repo entrypoint를 정리한다.

단계

Client Platform Consolidation

상태

완료

구현 잠금

  • 상태: 해제
  • 결정 필요: 없음

범위

  • Flutter 앱을 NomadCode 제품 UI의 기준 구현으로 정리
  • React/Vite 웹 콘솔 scaffold를 제거하여 제품 경로 밖으로 격리/폐기 완료
  • root dev/test/lint/build entrypoint에서 React web 의존을 제거하거나 명확히 비활성화
  • README, docs, roadmap, domain rule에서 web/app 책임 경계를 Flutter-first 기준으로 갱신
  • code-server는 React wrapper를 거치지 않고 Flutter 앱에서 직접 열거나 embed하는 표면으로 정리
  • 공통 계약은 UI 코드 공유가 아니라 services/core API와 packages/contracts를 기준으로 유지

필수 기능

  • [ui-source] Flutter 앱을 제품 UI source of truth로 선언하고 React web을 기준 구현에서 제외한다.
  • [react-retire] apps/web React/Vite scaffold의 제거, 격리, 또는 폐기 경로를 정리한다.
  • [entrypoints] root bin/* 개발/검증 entrypoint가 Flutter-first 클라이언트 구조를 반영하도록 한다.
  • [docs-rules] README, docs, roadmap, domain rule의 web/app 설명을 Flutter-first 기준으로 맞춘다.
  • [codeserver-direct] code-server, workspace, diff/terminal/editor 표면은 React wrapper 없이 Flutter 앱에서 직접 연결하는 기준을 정한다.
  • [contract-boundary] Flutter 앱과 core가 공유할 API/schema 경계를 packages/contracts 후보로 정리한다.

완료 기준

  • 로드맵과 프로젝트 문서에서 React/Vite 웹 콘솔이 장기 제품 UI 기준 구현으로 설명되지 않는다.
  • Flutter 앱이 모바일/데스크톱/선택적 web target의 기준 클라이언트로 설명된다.
  • apps/web의 처리 방침이 삭제, 격리, 보류 중 하나로 코드와 문서에서 일관된다.
  • root bin/test, bin/lint, bin/build, bin/dev가 React web 제거 이후의 검증 흐름과 충돌하지 않는다.
  • code-server를 React로 감싸고 다시 Flutter로 감싸는 구조를 만들지 않는다는 기준이 문서화되어 있다.
  • 후속 Project Workspace Management UX가 Flutter-first 클라이언트 구조 위에서 진행될 수 있다.

범위 제외

  • core workflow 상태 전이, retry, timeout, notification event 구현
  • IOP 내부 모델 라우팅, RAG, MCP, output validation 구현
  • code-server, Monaco, terminal 자체를 Flutter native widget으로 재구현
  • App Store, Play Store 배포와 심사 대응
  • push notification 기능 재설계

작업 컨텍스트

  • 관련 경로: apps/mobile/, apps/web/, bin/, README.md, docs/, agent-ops/rules/project/, agent-roadmap/, packages/contracts/
  • 표준선(선택): 앱은 필수 제품 표면이며 Flutter가 클라이언트 source of truth다. React/Vite web은 장기 기준 구현이 아니고, 필요한 웹 타깃은 Flutter Web 또는 Flutter 앱에서 직접 연결하는 웹 surface로 다룬다.
  • 완료 근거: apps/web React/Vite scaffold가 제거되었고, root bin/test, bin/lint, bin/build, bin/dev는 core와 apps/mobile Flutter 흐름만 참조한다. apps/mobile/lib/services/workspace_launcher.dart와 workspace 화면은 code-server URL을 Flutter 앱에서 직접 외부 실행 표면으로 연다. packages/contracts/notes/flutter-core-api-candidates.md는 Flutter 앱과 core 사이의 공유 API/schema 후보를 기록한다.
  • 선행 작업: 없음
  • 후속 작업: Project Workspace Management UX, Workflow Core 이후의 사용자-facing task state UX
  • 확인 필요: 없음