nomadcode/agent-ops/roadmap/phase/project-workspace-management-ux/milestones/client-integration-standardization.md

5 KiB

Milestone: Client Integration Standardization

위치

  • Roadmap: agent-ops/roadmap/ROADMAP.md
  • Phase: agent-ops/roadmap/phase/project-workspace-management-ux/PHASE.md

목표

NomadCode Flutter client를 ../iop../alt에 복제 가능한 기준 구현으로 정리한다. apps/client 모듈명, Web + Android 우선 Dart bootstrap, proto-socket, Mattermost push host integration, cloning handoff 문서를 먼저 표준화하고 iOS는 같은 Dart API 위에 확장 가능한 후속 대상으로 남긴다.

상태

[진행중]

구현 잠금

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

범위

  • apps/mobileapps/client 기준 구조로 정리하거나 동등한 client 모듈 표준을 명확히 문서화
  • web/mobile 공통 Dart bootstrap 계층 정리
  • proto-socket Dart client 설정, connection bootstrap, 환경 주입 기준 정리
  • Mattermost push host integration 표준화
  • Firebase host 설정과 plugin 초기화 책임 경계 정리
  • Web과 Android를 1차 target으로 검증하고 iOS 확장 지점을 명확히 문서화
  • ../iop, ../alt로 복제할 client skeleton, integration boundary, handoff 체크리스트 작성

필수 기능

Epic: [client-standard] Client module standard

NomadCode client를 다른 프로젝트가 따라올 수 있는 구조 기준으로 정리한다.

  • [module-name] Flutter host 모듈명을 client 기준으로 정리하고 package/app 표시 이름의 프로젝트별 유지 기준을 문서화한다.
  • [bootstrap] web/mobile 공통 Dart bootstrap과 platform-specific 초기화 guard를 정의한다.
  • [folder-layout] src/app, src/integrations, src/features 기준의 client skeleton을 정리한다.

Epic: [integration-standard] Integration boundaries

proto-socket과 Mattermost push를 같은 client integration 방식으로 소비하도록 표준화한다.

  • [proto-socket] proto-socket Dart dependency, endpoint configuration, connection lifecycle 기준을 client integration으로 정리한다.
  • [mattermost-push] Mattermost push는 plugin이 runtime을 소유하고 host는 Firebase config, auth/token/signing key, routing callback만 소유하도록 정리한다.
  • [platform-targets] Web과 Android를 1차 target으로 검증하고 iOS는 동일 Dart API 위의 후속 native 확장 지점으로 남긴다.

Epic: [clone-handoff] Clone handoff

../iop../alt가 같은 수준으로 따라올 수 있도록 복제 단위와 차이를 문서화한다.

  • [clone-notes] ../iop../alt에 전달할 cloning checklist와 프로젝트별 치환 항목을 작성한다.
  • [iop-naming] ../iop에서는 Portal 명칭을 강조하지 않고 client 모듈과 IOP product surface 기준으로 정리한다.
  • [alt-alignment] ../alt의 기존 apps/client 구조와 Riverpod/go_router 경계를 유지하면서 공통 integration skeleton만 맞추는 기준을 작성한다.

완료 기준

  • NomadCode Flutter host가 client 표준 구조와 명명 기준을 따른다.
  • Web build와 Android integration이 같은 Dart bootstrap 기준에서 설명되고 검증된다.
  • proto-socket과 Mattermost push integration의 책임 경계가 host/plugin/server 사이에서 충돌 없이 설명된다.
  • iOS가 Android-only 예외가 아니라 동일 Dart API 위의 후속 확장 대상으로 문서화된다.
  • ../iop../alt에 클로닝할 파일/구조/설정/문서 체크리스트가 남아 있다.
  • apps/client 또는 현행 client host에서 flutter test와 필요한 analyze/build 검증이 통과하거나 환경 제약이 명확히 기록된다.

완료 리뷰

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

범위 제외

  • ../iop, ../alt 코드 변경 직접 반영
  • Mattermost push plugin 자체의 native runtime 대규모 재작성
  • iOS native push full implementation
  • 각 프로젝트의 제품별 feature 화면을 동일하게 복제
  • IOP 내부 모델 라우팅, ALT quant feature, NomadCode project UX 상세 화면 확정

작업 컨텍스트

  • 관련 경로: apps/mobile/, packages/contracts/, docs/, README.md, ../mattermost-push-plugin/
  • 클로닝 대상: ../iop/apps/client, ../alt/apps/client
  • 표준선(선택): repo별 Flutter host 경로는 apps/client로 맞추고, Dart package/app 표시 이름은 프로젝트 정체성을 유지한다.
  • 표준선(선택): mattermost_push_plugin은 별도 plugin 이름을 유지하고, host app은 plugin consumer 책임만 갖는다.
  • 표준선(선택): Web과 Android를 1차 target으로 두며, iOS는 같은 Dart API와 integration boundary 위에서 후속 native implementation으로 확장한다.
  • 표준선(선택): ../iop는 Portal 명칭을 강조하지 않고 IOP client/product surface로 정리한다.
  • 선행 작업: Mattermost Push Plugin Extraction
  • 후속 작업: Project Workspace Management UX, External Integration
  • 확인 필요: 없음