3.3 KiB
3.3 KiB
Milestone: 메시징 계약 표준화
위치
- Roadmap:
agent-ops/roadmap/ROADMAP.md - Phase:
agent-ops/roadmap/phase/messaging-runtime/PHASE.md
목표
upstream-followable server/push runtime과 nexo-owned Flutter SDK가 주고받는 메시지, 알림, device token, ACK, navigation event 계약을 정리한다. 서버/webapp/push-proxy compatibility는 유지하되, 앱이 의존할 nexo SDK API와 compatibility layer를 구분한다.
상태
[계획]
승격 조건
- 없음
구현 잠금
- 상태: 잠금
- 결정 필요:
- 메시징 전체 기능 중 Flutter 앱에 우선 노출할 범위를 결정한다.
- 결정 완료:
- 2026-05-27: Flutter public API는 nexo-owned SDK wrapper로 유지하고, server/push runtime compatibility와 분리한다.
범위
- Flutter plugin public Dart API
- Android native plugin event와 storage contract
- server core push payload, ACK, channel/thread routing contract
- Mattermost webapp/reference front와 Flutter SDK가 공유하거나 분리해야 할 계약 경계
- 계약 문서 위치와 테스트 anchor
기능
Epic: [api] Public API
앱이 의존할 수 있는 최소 메시징/알림 API 표면을 정리한다.
- [dart-api] Dart public API에서 유지할 이름, deprecated 후보, nexo wrapper 후보를 분리한다.
- [event-shape] notification event, opened event, token event의 payload shape와 backward compatibility 기준을 문서화한다.
- [token-flow] device token 저장, auth token 저장, signing key 저장 책임과 호출 순서를 정리한다.
- [sdk-runtime-boundary] Flutter SDK가 server/push contract를 추적하되 Mattermost mobile implementation을 팔로잉하지 않는 경계를 문서화한다.
Epic: [server-contract] Server contract
서버 core와 플러그인이 공유하는 메시징/알림 계약을 확인 가능한 형태로 만든다.
- [push-payload] push payload 필드와 검증 기준을 서버/플러그인 양쪽 문서에서 연결한다.
- [ack-contract] ACK 요청 형식과 실패 처리 기준을 정리한다.
- [routing-contract] channel/thread navigation event가 client router로 전달되는 기준을 정리한다.
- [front-compat] Mattermost webapp/reference front에서 동작하는 기본 메시징 기능과 Flutter SDK embedded 흐름이 충돌하지 않는 기준을 정리한다.
완료 리뷰
- 상태: 없음
- 요청일: 없음
- 완료 근거: 없음
- 리뷰 필요:
- 사용자가 완료 결과를 확인했다
- archive 이동을 승인했다
- 리뷰 코멘트: 없음
범위 제외
- API rename 구현은 이 Milestone의 문서/계약 정리 이후 별도 작업으로 진행한다.
- 별도 contract package 생성은 중복 비용이 확인되기 전까지 하지 않는다.
- full chat UI 구현은 이 Milestone의 범위가 아니다.
작업 컨텍스트
- 관련 경로:
packages/messaging_flutter/lib/,packages/messaging_flutter/android/,services/core/server/,apps/client/ - 표준선(선택): SDK public API는 nexo-owned wrapper로 유지하고, server/webapp/push-proxy compatibility는 얇은 layer로 흡수한다
- 선행 작업: 정체성 기준선, 클라이언트 검증 기준선
- 후속 작업: 알림 파이프라인 고도화, 멀티앱 채널 모델
- 확인 필요: Flutter 앱 우선 노출 범위