update roadmap: current phase and product foundation milestones

This commit is contained in:
toki 2026-05-29 21:11:00 +09:00
parent 13360fd826
commit 7b281e7288
3 changed files with 21 additions and 18 deletions

View file

@ -7,7 +7,7 @@
## 활성 Milestone
- [진행중] 클라이언트 검증 기준선
- [검토중] 클라이언트 검증 기준선
- Phase: `agent-roadmap/phase/product-foundation/PHASE.md`
- 경로: `agent-roadmap/phase/product-foundation/milestones/client-validation.md`

View file

@ -24,9 +24,9 @@ nexo를 Mattermost 기반 서버/front/push-proxy 런타임과 nexo-owned Flutte
- [완료] 이미지 기반 런타임 검증
- 경로: `agent-roadmap/archive/phase/product-foundation/milestones/runtime-image-validation.md`
- 요약: nexo-owned Mattermost/push-proxy image build, 배포/수신 방식, 원격 Mac runtime 전환, 현 repo와 소비 프로젝트 smoke/e2e 검증 기준선을 만들고 잔여 Detox app-readiness 실패를 후속으로 분리했다.
- [진행중] 클라이언트 검증 기준선
- [검토중] 클라이언트 검증 기준선
- 경로: `agent-roadmap/phase/product-foundation/milestones/client-validation.md`
- 요약: `apps/flutter-test`가 플러그인 소비 앱이자 테스트 호스트로 반복 검증을 제공하도록 고정한다.
- 요약: `apps/flutter-test` 기반 통합/Native/FCM ACK/inline reply smoke 검증 기준선을 닫고 사용자 완료 확인을 기다린다.
## Phase 경계

View file

@ -12,7 +12,7 @@
## 상태
[진행중]
[검토중]
## 승격 조건
@ -20,9 +20,9 @@
## 구현 잠금
- 상태: 잠금
- 상태: 해제
- 결정 필요:
- valid signed payload를 제공해 `04+03_fcm_ack_smoke`를 끝까지 진행할지, 이번 loop는 FCM receipt + ACK까지로 축소하고 notification UI 계열은 후속으로 분리할지 결정한다.
- 없음
## 범위
@ -39,26 +39,29 @@
`apps/flutter-test` 앱을 플러그인 통합 검증에 필요한 만큼만 유지한다.
- [x] [thin-client] `apps/flutter-test`가 제품 UI가 아니라 plugin integration host 역할을 유지하도록 README와 테스트가 같은 기준을 따른다.
- [ ] [integration-path] plugin method channel, event channel, opened-routing 통합 테스트 경로를 유지한다. 검증: `cd apps/flutter-test && flutter test integration_test`가 지원 환경에서 성공한다.
- [ ] [native-test] Android native unit test 실행 절차를 유지한다. 검증: `cd apps/flutter-test/android && ./gradlew testDebugUnitTest`가 Android SDK 환경에서 성공한다.
- [x] [integration-path] plugin method channel, event channel, opened-routing 통합 테스트 경로를 유지한다. 검증: `cd apps/flutter-test && flutter test integration_test`가 지원 환경에서 성공한다. 근거: `agent-task/archive/2026/05/m-client-validation/01_integration_path/complete.log`
- [x] [native-test] Android native unit test 실행 절차를 유지한다. 검증: `cd apps/flutter-test/android && ./gradlew testDebugUnitTest`가 Android SDK 환경에서 성공한다. 근거: `agent-task/archive/2026/05/m-client-validation/02_native_test/complete.log`
- [x] [sdk-boundary] Flutter SDK Android 구현은 Mattermost mobile code를 팔로잉하지 않고 server/push contract와 Android/FCM platform 변화만 추적한다는 기준을 문서화한다.
### Epic: [manual-smoke] 외부 인프라 smoke
자동화하기 어려운 FCM과 서버 ACK 검증을 수동 체크로 분리한다.
- [ ] [fcm-manual] 실제 Firebase FCM delivery와 서버 ACK 검증 절차를 문서화한다. 진행: `04+03_fcm_ack_smoke`에서 remote FCM receipt와 ACK POST evidence까지 확인했다. 남은 검증: valid signed payload, notification display, opened-routing, inline reply, dismiss.
- [ ] [remote-guide] 로컬 Android SDK가 없을 때 원격 테스트 환경 문서가 client README와 연결되도록 유지한다.
- [x] [fcm-manual] 실제 Firebase FCM delivery와 서버 ACK 검증 절차를 문서화한다. 검증: `04+03_fcm_ack_smoke`에서 remote FCM receipt, ACK POST, valid signed payload, notification display, opened-routing, inline reply native POST, dismiss evidence를 확인했다. 근거: `agent-task/archive/2026/05/m-client-validation/04+03_fcm_ack_smoke/complete.log`
- [x] [remote-guide] 로컬 Android SDK가 없을 때 원격 테스트 환경 문서가 client README와 연결되도록 유지한다. 근거: `agent-task/archive/2026/05/m-client-validation/01_docs_boundary/complete.log`, `agent-task/archive/2026/05/m-client-validation/03_smoke_preflight/complete.log`
## 완료 리뷰
- 상태: 없음
- 요청일: 없음
- 완료 근거: 없음
- 상태: 요청됨
- 요청일: 2026-05-29
- 완료 근거:
- `01_integration_path`에서 Android emulator 기반 plugin registration, method channel, EventChannel, opened-routing integration test가 PASS됐다.
- `02_native_test`에서 Android SDK 환경의 `testDebugUnitTest`가 PASS됐고, 로컬 SDK 부재는 환경 fallback으로 정리됐다.
- `04+03_fcm_ack_smoke`에서 FCM receipt, ACK, signed notification, opened/dismiss, inline reply `/api/v4/posts?set_online=false` POST와 `Reply SUCCESS` evidence가 PASS됐다.
- 리뷰 필요:
- [ ] 사용자가 완료 결과를 확인했다
- [ ] archive 이동을 승인했다
- 리뷰 코멘트: 없음
- 리뷰 코멘트: 모든 기능 Task와 Task 안의 검증이 evidence와 함께 완료된 것으로 보이며, 사용자 최종 확인 후 Milestone을 `[완료]`로 전환하고 archive할 수 있다.
## 범위 제외
@ -70,8 +73,8 @@
- 관련 경로: `apps/flutter-test/`, `packages/messaging_flutter/`, `packages/messaging_flutter/docs/android-test-environment.md`
- 표준선(선택): client는 실제 소비 앱 모양의 검증 호스트이며 별도 `/example`이나 `/sandbox`를 두지 않는다. Flutter SDK는 nexo-owned embedded SDK로 유지한다
- 진행 메모: `thin-client``apps/flutter-test/README.md``apps/flutter-test/test/widget_test.dart` 기준을 맞췄다. `sdk-boundary``packages/messaging_flutter/README.md`의 SDK ownership/test strategy 기준을 보강했다. `04+03_fcm_ack_smoke`는 archived `03_smoke_preflight` 완료를 승계해 `apps/flutter-test`의 Firebase/plugin 초기화 누락을 보정했고, local/remote `flutter analyze``flutter test` PASS, remote FCM token 저장, push-proxy send OK, device FCM receipt와 ACK POST까지 확인했다. valid signed payload가 없어 notification display/opened-routing/inline reply/dismiss evidence는 아직 BLOCKED다.
- 활성 계획: `agent-task/m-client-validation/01_integration_path/`, `agent-task/m-client-validation/02_native_test/`, `agent-task/m-client-validation/04+03_fcm_ack_smoke/`
- 진행 메모: `thin-client``sdk-boundary` 문서/테스트 기준을 맞췄고, `integration-path``native-test`는 원격 Android 지원 환경에서 PASS됐다. `04+03_fcm_ack_smoke`는 archived `03_smoke_preflight` 완료를 승계해 Firebase/plugin 초기화, FCM token 저장, signed push, ACK POST, notification display/opened/dismiss, inline reply native POST success까지 확인했다.
- 활성 계획: 없음
- 선행 작업: client migration과 1차 테스트
- 후속 작업: valid server-generated signed push trigger 확보 후 notification display, opened-routing, inline reply, dismiss evidence 수집. 이후 메시징 계약 표준화, 알림 파이프라인 고도화
- 확인 필요: valid signed payload를 제공해 현재 smoke를 끝까지 진행할지, 이번 loop는 FCM receipt + ACK까지로 축소하고 notification UI 계열은 후속으로 분리할지 결정 필요
- 후속 작업: 사용자 완료 승인 후 archive. 이후 메시징 계약 표준화, 알림 파이프라인 고도화
- 확인 필요: 사용자 완료 결과 확인 및 archive 승인