nexo/agent-roadmap/phase/messaging-runtime/milestones/macos-notification-test.md
toki 9f5e8c2343 feat: add notification preflight milestones for all platforms and update runtime validation docs
- Add iOS notification preflight milestone
- Add macOS notification preflight milestone
- Add Linux notification preflight milestone
- Add Windows notification preflight milestone
- Update notification test milestones for all platforms
- Update phase documentation and current roadmap
- Update runtime image validation docs
- Update compose README
2026-06-01 13:08:25 +09:00

4.5 KiB

Milestone: macOS 알림 테스트

위치

  • Roadmap: agent-roadmap/ROADMAP.md
  • Phase: agent-roadmap/phase/messaging-runtime/PHASE.md

목표

macOS 환경에서 nexo 알림 계약을 어느 수준까지 검증할 수 있는지 확인한다. 현재 macOS plugin은 scaffold/stub 상태이므로 production-ready로 단정하지 않고, notification permission, display, click/open routing, app lifecycle 조건을 구현 gap과 smoke 기준으로 나누어 정리한다.

상태

[계획]

승격 조건

  • 없음

구현 잠금

  • 상태: 잠금
  • 결정 필요:
    • macOS smoke를 수행할 macOS 버전과 테스트 장비 책임을 정한다.
    • Apple Developer Team, signing, notarization 필요 여부와 entitlement 관리 책임을 정한다.
    • macOS notification smoke를 실제 OS UI 수동 검증으로 볼지, Flutter/widget/integration test와 어떤 경계로 나눌지 정한다.
    • macOS에서 ACK, dismiss, inline reply를 같은 Milestone에서 gap 확인만 할지 후속 구현 후보까지 구체화할지 정한다.

범위

  • macOS plugin scaffold/stub과 apps/flutter-test/macos host 설정의 현재 지원 상태 확인
  • macOS notification permission, display, click/open routing, app lifecycle 조건 정리
  • macOS에서 ACK, dismiss, inline reply를 Android와 같은 계약으로 다룰 수 있는지 gap 정리
  • OS notification UI가 필요한 수동 검증과 headless 자동화 가능 항목의 경계 정리

기능

Epic: [baseline] macOS 기준선

macOS 알림이 Android/iOS와 같은 계약으로 검증되기 전에 필요한 platform baseline을 확인한다.

  • [platform-state] 선행 정리 결과를 바탕으로 packages/messaging_flutter/macosapps/flutter-test/macos의 scaffold, 등록 지점, 남은 no-op gap을 확인한다.
  • [macos-host] app delegate, entitlement, permission/display 준비 조건을 확인한다.
  • [device-limits] macOS 버전, signing/notarization, headless 환경에서 가능한 검증과 불가능한 검증을 구분한다.

Epic: [contract] macOS 알림 계약

macOS notification event가 Dart API와 host routing callback으로 연결되기 위한 계약을 구체화한다.

  • [display-open] 선행 정리한 payload/event 계약 대비 macOS notification display와 click/open routing 연결 gap을 확인한다.
  • [lifecycle] foreground, background, minimized, terminated 상태에서 macOS notification 처리 기준과 제한을 실제 OS 조건에 대조한다.
  • [ack-dismiss] macOS에서 ACK, dismiss, inline reply를 처리할 수 있는 platform hook과 후속 구현 gap을 분리한다.

Epic: [smoke] macOS Smoke

구현 gap을 숨기지 않고 macOS에서 반복 가능한 수동/자동 smoke 기준을 만든다.

  • [manual-smoke] macOS permission, display, click/open routing smoke checklist와 evidence 경로를 작성한다.
  • [automation-boundary] OS notification UI 때문에 수동 확인이 필요한 항목과 Flutter integration test로 대체 가능한 항목을 분리한다.
  • [follow-up] smoke 결과에 따라 macOS native bridge 구현, host 설정 보강, 문서 보강 중 후속 Milestone 후보를 정리한다.

완료 리뷰

  • 상태: 없음
  • 요청일: 없음
  • 완료 근거: 없음
  • 리뷰 필요:
    • 사용자가 완료 결과를 확인했다
    • archive 이동을 승인했다
  • 리뷰 코멘트: 없음

범위 제외

  • iOS/APNs 알림 검증은 iOS 알림 테스트 Milestone에서 다룬다.
  • Android FCM 구현 변경은 이 Milestone에서 다루지 않는다.
  • Windows/Linux desktop 알림 검증과 신규 native implementation은 각 OS별 Milestone에서 다룬다.
  • 멀티앱 channel/tenant/server 분기 모델과 push credential 분리 정책은 멀티앱 채널 모델에서 결정한다.

작업 컨텍스트

  • 관련 경로: packages/messaging_flutter/macos/, packages/messaging_flutter/pubspec.yaml, packages/messaging_flutter/README.md, apps/flutter-test/macos/, apps/flutter-test/README.md
  • 표준선(선택): macOS scaffold/stub 상태를 먼저 검증하고, 가능한 smoke 기준과 후속 구현 gap을 분리한다
  • 민감값 기준: Apple credential, team id, profile, private host 값은 tracked 문서에 쓰지 않고 책임 경계와 evidence 위치만 기록한다
  • 선행 작업: 알림 파이프라인 고도화, macOS 알림 선행 정리
  • 후속 작업: Windows 알림 테스트, Linux 알림 테스트, 멀티앱 채널 모델
  • 확인 필요: macOS 버전/장비, signing/notarization 필요 여부, 수동/자동 smoke 경계 결정