nexo/agent-roadmap/phase/messaging-runtime/PHASE.md
toki 079c2984bd feat(messaging): Flutter Web 알림 마일스톤을 완료 상태로 승격하고 알림 라우팅을 개선한다
- PHASE.md에서 flutter-web-notification-smoke 마일스톤 상태를 완료로 변경하고 archive로 이동
- browser_notification_interop_web.dart에서 라우팅 데이터 캡처 방식을 인스턴스 변수에서 인자 전달로 변경하여 각 알림별 데이터 격리
- nexo_messaging_plugin.dart에서 permissionGranted를 고정 값에서 실제 권한 상태 기반으로 변경
- 코드 스타일 개선: if문 블록 포맷팅, 단일 줄 최적화
- 테스트 추가: show 실패 시 최신 권한 상태를 반환하는 검증
2026-06-10 20:40:17 +09:00

5.8 KiB

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 소비 앱 책임과 섞지 않는다.