nexo/agent-roadmap/phase/product-foundation/milestones/client-validation.md

3.1 KiB

Milestone: 클라이언트 검증 기준선

위치

  • Roadmap: agent-roadmap/ROADMAP.md
  • Phase: agent-roadmap/phase/product-foundation/PHASE.md

목표

apps/client를 테스트용 앱이자 nexo-owned Flutter SDK를 소비하는 얇은 클라이언트로 유지한다. 플러그인 등록, method channel, event channel, notification-open routing, Android native unit test를 반복 검증할 수 있게 한다.

상태

[계획]

승격 조건

  • 없음

구현 잠금

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

범위

  • apps/client의 Flutter 테스트와 통합 테스트
  • packages/messaging_flutter의 Dart 테스트와 Android native unit test
  • Flutter SDK Android 구현이 Mattermost mobile upstream-following 코드가 아니라 nexo-owned embedded SDK임을 확인하는 문서/테스트 경계
  • Android SDK 또는 원격 Android 테스트 환경 사용 절차
  • FCM/ACK 수동 smoke와 자동화 가능한 테스트의 경계

기능

Epic: [test-host] 소비 앱 테스트 호스트

client 앱을 플러그인 통합 검증에 필요한 만큼만 유지한다.

  • [thin-client] apps/client가 제품 UI가 아니라 plugin integration host 역할을 유지하도록 README와 테스트가 같은 기준을 따른다.
  • [integration-path] plugin method channel, event channel, opened-routing 통합 테스트 경로를 유지한다. 검증: cd apps/client && flutter test integration_test가 지원 환경에서 성공한다.
  • [native-test] Android native unit test 실행 절차를 유지한다. 검증: cd apps/client/android && ./gradlew testDebugUnitTest가 Android SDK 환경에서 성공한다.
  • [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 검증 절차를 문서화한다.
  • [remote-guide] 로컬 Android SDK가 없을 때 원격 테스트 환경 문서가 client README와 연결되도록 유지한다.

완료 리뷰

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

범위 제외

  • client 앱을 별도 제품 UI나 sandbox 앱으로 확장하지 않는다.
  • 플러그인 내부 동작을 client 앱에 복제하지 않는다.
  • iOS/macOS push 구현은 이 Milestone의 범위가 아니다.

작업 컨텍스트

  • 관련 경로: apps/client/, packages/messaging_flutter/, packages/messaging_flutter/docs/android-test-environment.md
  • 표준선(선택): client는 실제 소비 앱 모양의 검증 호스트이며 별도 /example이나 /sandbox를 두지 않는다. Flutter SDK는 nexo-owned embedded SDK로 유지한다
  • 선행 작업: client migration과 1차 테스트
  • 후속 작업: 메시징 계약 표준화, 알림 파이프라인 고도화
  • 확인 필요: 없음