nexo/agent-roadmap/phase/messaging-runtime/PHASE.md

71 lines
5.8 KiB
Markdown

# Phase: 메시징 런타임 표준화
## 상태
[진행중]
## 목표
알림만 떼어낸 기능이 아니라, 여러 앱이 사용할 수 있는 메시징/알림 런타임 계약을 정리한다.
Mattermost server/webapp/push-proxy는 upstream-followable runtime으로 두고, Flutter 플러그인은 nexo-owned embedded SDK로 역할을 명확히 나눈다.
앱별 채널 분기와 호환 API를 제품 기능으로 다룰 수 있게 만든다.
## Milestone 흐름
완료된 Milestone은 archive 경로를 가리키고, 검토중, 진행중, 계획, 스케치 또는 보류 Milestone은 이 Phase 하위 `milestones/` 경로를 가리킨다.
완료, 검토중, 진행중, 계획, 스케치 순서로 두어 아래로 갈수록 미래 작업에 가까워지게 정렬한다.
스케치 Milestone은 아직 구현 가능한 계획이 아니므로 계획 Milestone보다 아래에 둔다.
- [완료] 메시징 계약 표준화
- 경로: `agent-roadmap/archive/phase/messaging-runtime/milestones/messaging-contract.md`
- 요약: 서버와 Flutter 플러그인이 공유할 메시징/알림 API, 이벤트, 저장 계약을 정리했다.
- [완료] 알림 파이프라인 고도화
- 경로: `agent-roadmap/archive/phase/messaging-runtime/milestones/notification-pipeline.md`
- 요약: FCM, ACK, inline reply, dismiss, open routing을 안정된 플러그인 책임으로 만든다.
- [완료] iOS 알림 선행 정리
- 경로: `agent-roadmap/archive/phase/messaging-runtime/milestones/ios-notification-preflight.md`
- 요약: Apple/Firebase/APNs 실자산 없이 iOS token 계약, native bridge 최소 범위, fixture, evidence 기준을 정리했다.
- [완료] macOS 알림 선행 정리
- 경로: `agent-roadmap/archive/phase/messaging-runtime/milestones/macos-notification-preflight.md`
- 요약: Apple signing/장비 없이 macOS native bridge 최소 범위, host placeholder, fixture, evidence 기준을 먼저 정리한다.
- [완료] Windows 알림 선행 정리
- 경로: `agent-roadmap/archive/phase/messaging-runtime/milestones/windows-notification-preflight.md`
- 요약: Windows 장비/packaging 결정 없이 plugin 등록, native API 후보, bridge 계약, fixture, evidence 기준을 먼저 정리했다.
- [완료] Linux 알림 선행 정리
- 경로: `agent-roadmap/archive/phase/messaging-runtime/milestones/linux-notification-preflight.md`
- 요약: Linux 배포판/desktop environment 결정 없이 plugin 등록, notification daemon 후보, bridge 계약, fixture, evidence 기준을 먼저 정리했다.
- [완료] 워크스페이스 포트/환경 표준화
- 경로: `agent-roadmap/archive/phase/messaging-runtime/milestones/workspace-port-env-standardization.md`
- 요약: Mattermost core, push-proxy, Flutter test/web surface, upstream dev services 포트를 workspace 공통 대역과 remote runtime 문서 기준으로 정리했다.
- [완료] Flutter Web 알림
- 경로: `agent-roadmap/archive/phase/messaging-runtime/milestones/flutter-web-notification.md`
- 요약: `packages/messaging_flutter`를 Flutter Web/Chrome foreground browser notification까지 확장하고, Full Web Push는 별도 후속 계약으로 분리한다.
- [완료] Flutter Web 알림 Smoke 보완
- 경로: `agent-roadmap/archive/phase/messaging-runtime/milestones/flutter-web-notification-smoke.md`
- 요약: Flutter Web foreground browser notification smoke가 원격 web runner와 forwarded localhost URL에서 실제로 재현되도록 host scaffold, Chrome 테스트, 수동 evidence 기준을 보완한다.
- [진행중] iOS 알림 테스트
- 경로: `agent-roadmap/phase/messaging-runtime/milestones/ios-notification-test.md`
- 요약: 선행 정리 후 iOS/APNs 권한, token, open routing, ACK/dismiss 계약을 실제 설정과 smoke 기준으로 검증한다.
- [계획] macOS 알림 테스트
- 경로: `agent-roadmap/phase/messaging-runtime/milestones/macos-notification-test.md`
- 요약: 선행 정리 후 macOS scaffold/stub 상태의 알림 기준과 구현 gap, smoke 경계를 실제 OS 조건으로 확인한다.
- [계획] Windows 알림 테스트
- 경로: `agent-roadmap/phase/messaging-runtime/milestones/windows-notification-test.md`
- 요약: 선행 정리 후 Windows를 공통 플러그인의 지원 대상으로 두고 native API, packaging/test 조건을 검증한다.
- [계획] Linux 알림 테스트
- 경로: `agent-roadmap/phase/messaging-runtime/milestones/linux-notification-test.md`
- 요약: 선행 정리 후 Linux를 공통 플러그인의 지원 대상으로 두고 배포판, desktop environment, notification daemon, packaging/test 조건을 검증한다.
- [스케치] Full Web Push platform 계약
- 경로: `agent-roadmap/phase/messaging-runtime/milestones/full-web-push-platform-contract.md`
- 요약: 브라우저가 닫힌 상태에서도 수신되는 Web Push를 위해 service worker, VAPID, `web_rn-v2` token, core/push-proxy platform 분기 계약을 정리한다.
- [스케치] 멀티앱 채널 모델
- 경로: `agent-roadmap/phase/messaging-runtime/milestones/multi-app-channel.md`
- 요약: 추가 앱이 생길 때 사용 채널만 늘려 분기할 수 있는 서비스 모델을 검토한다.
## Phase 경계
- 계약이 중복되기 전까지 별도 `contract` 패키지를 만들지 않고, server API와 plugin public API 문서로 관리한다.
- `packages/messaging_flutter`는 앱별 알림 구현을 대체하는 nexo-owned embedded SDK 책임을 가진다.
- `packages/messaging_flutter/android`는 Mattermost mobile code를 계속 merge하는 대상이 아니라, server/push 계약과 Android/FCM platform 변화를 추적한다.
- `services/core`는 upstream-followable server/webapp/push-proxy runtime 책임을 가진다.
- `services/core/webapp`은 기본 메시지 앱/reference front로 유지할 수 있지만, Flutter SDK 소비 앱 책임과 섞지 않는다.