4.3 KiB
4.3 KiB
Milestone: Mattermost Nexo Messaging Alignment
위치
- Roadmap:
agent-roadmap/ROADMAP.md - Phase:
agent-roadmap/phase/external-integration/PHASE.md
목표
현재 workflow/core 작업을 계속 확장하기 전에 Mattermost 메시지/알림 경계를 ../nexo/packages/messaging_flutter 기준으로 먼저 고정한다. NomadCode core는 Mattermost REST 메시지 발송과 task notification 발행을 담당하고, nexo messaging package는 client-side FCM 수신, signature 검증, ACK, notification display, opened-routing, inline reply, dismiss를 담당한다는 선을 구현과 검증 문서에 맞춘다.
상태
[완료]
구현 잠금
- 상태: 해제
- 결정 필요: 없음
범위
- NomadCode host의
MattermostPushClient경계를 현재nexo_messagingpublic API와 맞춘다. - ignored Mattermost credential asset에서 optional server identifier를 전달할 수 있게 한다.
- server-generated signed push smoke 절차와 External Integration 검증 기준 nexo 구조에 맞춰 유지한다.
- Android native push 처리 로직이
apps/client/android로 되돌아오지 않도록 책임 경계를 문서화한다.
기능
Epic: [nexo-boundary] Mattermost host and nexo package alignment
현재 작업보다 먼저 Mattermost messaging/notification 경계를 nexo-owned package 기준으로 정렬한다.
- [host-identifier] NomadCode host가 optional Mattermost server identifier를
MattermostPushClient와nexo_messaging의setAuthToken(..., identifier:)경계로 전달한다. 검증:cd apps/client && flutter test. - [docs-boundary]
agent-test/local/mattermost-server-generated-push-smoke.md,apps/client/push-notification-todo.md, contracts note, External Integration context가 nexo package의 Android-first/stub-platform 상태와 server-generated signed push smoke 기준을 일관되게 설명한다. 검증: 문서에서 raw token/password/signing key/FCM token 값을 기록하지 않는다. - [signed-smoke-refresh] 실제 Android runner에서 server-generated signed push smoke를 재실행해 FCM receipt, valid signature, ACK, notification display, opened event, inline reply, dismiss evidence를 redaction 상태로 남긴다. 검증:
agent-test/local/mattermost-server-generated-push-smoke.md의 Evidence Checklist가 PASS/PARTIAL/BLOCKED로 기록된다.
완료 리뷰
- 상태: 승인됨
- 요청일: 2026-05-30
- 완료 근거: Android remote runner에서 Mattermost REST server-generated DM -> FCM ->
nexo_messaging수신, signature 처리, ACK, notification display, opened/channel navigation, inline reply, dismiss/clear, device token prefix evidence를 redaction 상태로 확인했다.agent-test/local/mattermost-server-generated-push-smoke.mdEvidence Checklist 11개 항목은 PASS 또는 N/A로 기록됐고, signed smoke task는agent-task/archive/2026/05/m-mattermost-nexo-messaging-alignment/02+01_signed_smoke/complete.log로 PASS 완료됐다. - 리뷰 필요:
- 사용자가 완료 결과를 확인했다
- archive 이동을 승인했다
- 리뷰 코멘트: 사용자가 메시지/푸시 정상 수신 확인 후 "마일스톤 업데이트하고 다음단계로 넘겨 현지점도 업데이트"를 요청했다.
범위 제외
- Plane/Jira adapter 확장
- Agent Integrator 또는 A2A 도입 결정
- core Mattermost REST 메시지 발송 adapter의 전체 구현
- iOS/macOS native push runtime 구현
- Mattermost 제품 UX 또는 채널 화면 구현
작업 컨텍스트
- 관련 경로:
apps/client/lib/src/integrations/mattermost/,apps/client/push-notification-todo.md,agent-test/local/mattermost-server-generated-push-smoke.md,packages/contracts/notes/flutter-core-api-candidates.md,../nexo/packages/messaging_flutter - 표준선(선택):
../nexo/packages/messaging_flutter는 Android-first client-side messaging/notification SDK이고, NomadCode host는 Firebase 설정, credential handoff, signing key, optional server identifier, navigation callback만 전달한다. - 선행 작업: Mattermost Messaging Android Smoke
- 후속 작업: Workflow Core 재개, External Integration의
[mattermost-adapter]구현 - 확인 필요: signed push smoke 재실행 시 private input은
agent-test/local/rules.md와agent-test/local/mattermost-server-generated-push-smoke.md가 라우팅하는 ignored secret 파일에서만 읽는다.