nomadcode/agent-ops/roadmap/phase/external-integration/milestones/mattermost-messaging-android-smoke.md

67 lines
4.3 KiB
Markdown

# Milestone: Mattermost Messaging Android Smoke
## 위치
- Roadmap: `agent-ops/roadmap/ROADMAP.md`
- Phase: `agent-ops/roadmap/phase/external-integration/PHASE.md`
## 목표
`mattermost_push_plugin`이 서버와 같은 `../nexo` repo의 `packages/messaging_flutter` package로 합쳐지고, 알림 전용에서 메시징 지원까지 포함하는 방향으로 전환된 현재 상태를 Android 기준으로 검증한다. 사용자 테스트까지 진행하지 않고, 원격 Android SDK 환경에서 build가 통과하고 Mattermost 메시지/FCM 알림이 실제 Android runtime에 도착하는지 확인하는 데서 완료 범위를 닫는다.
## 상태
[계획]
## 구현 잠금
- 상태: 해제
- 결정 필요: 없음
## 범위
- `apps/client` host와 `../nexo/packages/messaging_flutter` package 경계가 현재 messaging 방향성과 충돌하지 않는지 확인
- 원격 Android SDK runner에서 `apps/client`의 Android debug build 검증
- Android device 또는 emulator에서 앱 boot, Firebase 초기화, Mattermost auth/token handoff, 알림 callback이 깨지지 않는지 smoke 확인
- Mattermost 메시지 또는 push trigger를 통해 Android 시스템 알림이 도착하는지 확인
- 검증 중 드러나는 build/configuration regression은 smoke를 통과시키는 최소 수정 범위에서 처리
## 기능
### Epic: [android-smoke] Remote Android notification verification
Mattermost messaging package 전환 이후 Android build와 알림 수신 경로가 실제 환경에서 깨지지 않았는지 확인한다.
- [x] [scope-check] `apps/client`, `apps/client/push-notification-todo.md`, `../nexo/packages/messaging_flutter` 경계를 확인해 현재 repo 업데이트가 메시징 지원 방향성과 맞는지 정리한다.
- [ ] [remote-build] `docs/test-environments.md#android-sdk-remote-runner` 기준 원격 Android SDK 환경에서 `apps/client``flutter pub get``flutter build apk --debug`를 통과시킨다. 검증: 원격 host, branch/commit, 주요 command 결과를 secret 없이 evidence로 남긴다.
- [ ] [runtime-smoke] Android device 또는 emulator에서 앱을 실행해 앱 boot, Firebase 초기화, Mattermost auth/token handoff가 crash 없이 진행되는지 확인한다. 검증: `flutter run -d <device-id>` 또는 동등한 runtime 실행 결과를 남긴다.
- [ ] [notification-arrival] Mattermost 메시지 또는 push trigger로 Android 시스템 알림이 도착하는지 확인한다. 검증: 알림 도착 여부, 앱 callback 관찰 여부, 실패 시 원인 후보를 secret 없이 기록한다.
- [ ] [evidence-note] build와 알림 smoke 결과, 사용자 테스트 미포함 한계, 후속 보완이 필요한 경우를 완료 리뷰 근거로 남긴다.
## 완료 리뷰
- 상태: 없음
- 요청일: 없음
- 완료 근거: 없음
- 리뷰 필요:
- [ ] 사용자가 완료 결과를 확인했다
- [ ] archive 이동을 승인했다
- 리뷰 코멘트: 없음
## 범위 제외
- 사용자 테스트, UAT, 제품 사용성 검증
- iOS/macOS native push full implementation 또는 runtime smoke
- Mattermost 메시징 제품 UX 구현
- Mattermost server-side plugin 대규모 기능 확장
- External Integration Milestone의 Plane/Jira/Agent Integrator/IOP adapter 구현
## 작업 컨텍스트
- 관련 경로: `apps/client/`, `apps/client/push-notification-todo.md`, `docs/test-environments.md`, `../nexo/packages/messaging_flutter`
- 연관 core 경계: `services/core/internal/adapters/mattermost/`, `services/core/internal/notification/`
- 선행 작업: Mattermost Push Plugin Extraction, Client Integration Standardization
- 후속 작업: External Integration의 Mattermost 메시지 발송 adapter 구현
- 표준선: Android SDK 의존 검증은 `docs/test-environments.md#android-sdk-remote-runner`를 따른다.
- 보안 주의: Mattermost token, Firebase credential, signing key, device token은 roadmap이나 문서에 기록하지 않는다.
- 2026-05-26 scope-check: `apps/client` host dependency/import 문서를 `../nexo/packages/messaging_flutter`의 현재 Dart package명 `nexo_messaging``NexoMessagingPlugin` API에 맞췄고, ignored `assets/mattermost_credentials.json`을 smoke 때 bundle할 수 있도록 assets 디렉터리를 선언했다. 원격 Android build와 실제 알림 도착 smoke는 환경 의존 작업으로 plan에서 수행한다.