From b8ca657478cd59823b009e740cc27fe9faba4cfa Mon Sep 17 00:00:00 2001 From: toki Date: Mon, 1 Jun 2026 08:49:31 +0900 Subject: [PATCH] feat(messaging-runtime): add Linux/macOS/Windows notification test milestones and update roadmap --- agent-roadmap/current.md | 10 ++- .../phase/messaging-runtime/PHASE.md | 12 ++- .../milestones/desktop-notification-test.md | 84 ------------------ .../milestones/ios-notification-test.md | 14 ++- .../milestones/linux-notification-test.md | 68 +++++++++++++++ .../milestones/macos-notification-test.md | 87 +++++++++++++++++++ .../milestones/multi-app-channel.md | 5 +- .../milestones/windows-notification-test.md | 68 +++++++++++++++ 8 files changed, 253 insertions(+), 95 deletions(-) delete mode 100644 agent-roadmap/phase/messaging-runtime/milestones/desktop-notification-test.md create mode 100644 agent-roadmap/phase/messaging-runtime/milestones/linux-notification-test.md create mode 100644 agent-roadmap/phase/messaging-runtime/milestones/macos-notification-test.md create mode 100644 agent-roadmap/phase/messaging-runtime/milestones/windows-notification-test.md diff --git a/agent-roadmap/current.md b/agent-roadmap/current.md index 45b75ae0..0a4ffba5 100644 --- a/agent-roadmap/current.md +++ b/agent-roadmap/current.md @@ -10,9 +10,15 @@ - [계획] iOS 알림 테스트 - Phase: `agent-roadmap/phase/messaging-runtime/PHASE.md` - 경로: `agent-roadmap/phase/messaging-runtime/milestones/ios-notification-test.md` -- [계획] Desktop 알림 테스트 +- [계획] macOS 알림 테스트 - Phase: `agent-roadmap/phase/messaging-runtime/PHASE.md` - - 경로: `agent-roadmap/phase/messaging-runtime/milestones/desktop-notification-test.md` + - 경로: `agent-roadmap/phase/messaging-runtime/milestones/macos-notification-test.md` +- [계획] Windows 알림 테스트 + - Phase: `agent-roadmap/phase/messaging-runtime/PHASE.md` + - 경로: `agent-roadmap/phase/messaging-runtime/milestones/windows-notification-test.md` +- [계획] Linux 알림 테스트 + - Phase: `agent-roadmap/phase/messaging-runtime/PHASE.md` + - 경로: `agent-roadmap/phase/messaging-runtime/milestones/linux-notification-test.md` ## 선택 규칙 diff --git a/agent-roadmap/phase/messaging-runtime/PHASE.md b/agent-roadmap/phase/messaging-runtime/PHASE.md index bb265b0a..a5f62d11 100644 --- a/agent-roadmap/phase/messaging-runtime/PHASE.md +++ b/agent-roadmap/phase/messaging-runtime/PHASE.md @@ -25,9 +25,15 @@ Mattermost server/webapp/push-proxy는 upstream-followable runtime으로 두고, - [계획] iOS 알림 테스트 - 경로: `agent-roadmap/phase/messaging-runtime/milestones/ios-notification-test.md` - 요약: iOS/APNs 권한, token, open routing, ACK/dismiss 계약을 scaffold/stub gap과 smoke 기준으로 분리한다. -- [계획] Desktop 알림 테스트 - - 경로: `agent-roadmap/phase/messaging-runtime/milestones/desktop-notification-test.md` - - 요약: macOS scaffold/stub 상태의 알림 기준과 Windows/Linux platform gap을 별도로 확인한다. +- [계획] macOS 알림 테스트 + - 경로: `agent-roadmap/phase/messaging-runtime/milestones/macos-notification-test.md` + - 요약: macOS scaffold/stub 상태의 알림 기준과 구현 gap, smoke 경계를 확인한다. +- [계획] 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 조건을 정리한다. - [스케치] 멀티앱 채널 모델 - 경로: `agent-roadmap/phase/messaging-runtime/milestones/multi-app-channel.md` - 요약: 추가 앱이 생길 때 사용 채널만 늘려 분기할 수 있는 서비스 모델을 검토한다. diff --git a/agent-roadmap/phase/messaging-runtime/milestones/desktop-notification-test.md b/agent-roadmap/phase/messaging-runtime/milestones/desktop-notification-test.md deleted file mode 100644 index f1bf11ce..00000000 --- a/agent-roadmap/phase/messaging-runtime/milestones/desktop-notification-test.md +++ /dev/null @@ -1,84 +0,0 @@ -# Milestone: Desktop 알림 테스트 - -## 위치 - -- Roadmap: `agent-roadmap/ROADMAP.md` -- Phase: `agent-roadmap/phase/messaging-runtime/PHASE.md` - -## 목표 - -Desktop 환경에서 nexo 알림 계약을 어떤 플랫폼부터 검증할 수 있는지 분리해서 확인한다. -현재 macOS plugin은 scaffold/stub 상태이므로 notification permission, display, open routing의 smoke 기준과 구현 gap을 분리해 다룬다. -Windows/Linux는 현재 platform 등록 여부와 구현 gap을 확인해 별도 후속 작업으로 나눌 수 있게 정리한다. - -## 상태 - -[계획] - -## 승격 조건 - -- 없음 - -## 구현 잠금 - -- 상태: 해제 -- 결정 필요: 없음 - -## 범위 - -- macOS plugin scaffold/stub과 `apps/flutter-test/macos` host 설정의 현재 지원 상태 확인 -- macOS notification permission, display, click/open routing, app lifecycle 조건 정리 -- Windows/Linux desktop plugin platform 미등록/미구현 상태와 필요한 native notification 구현 후보 확인 -- desktop에서 ACK, dismiss, inline reply를 Android와 같은 계약으로 다룰 수 있는지 gap 정리 -- OS notification UI가 필요한 수동 검증과 headless 자동화 가능 항목의 경계 정리 - -## 기능 - -### Epic: [baseline] Desktop 기준선 - -Desktop 플랫폼별 지원 상태를 분리해 현재 Milestone의 검증 범위를 고정한다. - -- [ ] [platform-matrix] macOS, Windows, Linux의 plugin platform 등록, host scaffold, notification 구현 상태를 표로 정리한다. -- [ ] [macos-host] `packages/messaging_flutter/macos`와 `apps/flutter-test/macos`의 app delegate, entitlement, permission/display 준비 조건을 확인한다. -- [ ] [win-linux-gap] Windows/Linux Flutter plugin platform 추가 여부와 필요한 native notification API 후보를 정리한다. - -### Epic: [contract] Desktop 알림 계약 - -Desktop 알림 event가 Dart API와 host routing callback으로 연결되기 위한 계약을 구체화한다. - -- [ ] [display-open] macOS notification display와 click/open routing을 `NotificationOpenedEvent`와 channel/thread callback에 연결하기 위한 event shape를 정리한다. -- [ ] [lifecycle] foreground, background, minimized, terminated 상태에서 desktop notification 처리 기준과 제한을 정리한다. -- [ ] [ack-dismiss] Desktop에서 ACK, dismiss, inline reply를 처리할 수 있는 platform hook과 후속 구현 gap을 분리한다. - -### Epic: [smoke] Desktop Smoke - -macOS 중심의 검증 기준과 Windows/Linux 후속 판단 기준을 나누어 만든다. - -- [ ] [macos-smoke] macOS permission, display, click/open routing smoke checklist와 evidence 경로를 작성한다. -- [ ] [automation-boundary] OS notification UI 때문에 수동 확인이 필요한 항목과 Flutter integration test로 대체 가능한 항목을 분리한다. -- [ ] [follow-up] macOS 구현 보강과 Windows/Linux 신규 platform support 중 후속 Milestone 후보를 정리한다. - -## 완료 리뷰 - -- 상태: 없음 -- 요청일: 없음 -- 완료 근거: 없음 -- 리뷰 필요: - - [ ] 사용자가 완료 결과를 확인했다 - - [ ] archive 이동을 승인했다 -- 리뷰 코멘트: 없음 - -## 범위 제외 - -- iOS/APNs 알림 검증은 iOS 알림 테스트 Milestone에서 다룬다. -- Android FCM 구현 변경은 이 Milestone에서 다루지 않는다. -- Windows/Linux 신규 native implementation은 지원 gap 확인 후 별도 구현 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 상태를 먼저 검증하고, Windows/Linux는 지원 후보와 gap만 확인한다 -- 선행 작업: 알림 파이프라인 고도화 -- 후속 작업: 멀티앱 채널 모델 -- 확인 필요: 없음 diff --git a/agent-roadmap/phase/messaging-runtime/milestones/ios-notification-test.md b/agent-roadmap/phase/messaging-runtime/milestones/ios-notification-test.md index ba9332e8..3427e140 100644 --- a/agent-roadmap/phase/messaging-runtime/milestones/ios-notification-test.md +++ b/agent-roadmap/phase/messaging-runtime/milestones/ios-notification-test.md @@ -20,8 +20,13 @@ Android 중심으로 정리된 nexo 알림 계약을 iOS/APNs 환경에서 어 ## 구현 잠금 -- 상태: 해제 -- 결정 필요: 없음 +- 상태: 잠금 +- 결정 필요: + - [ ] iOS smoke 기준으로 사용할 Apple Developer Team, bundle identifier, provisioning profile 생성/관리 책임을 정한다. + - [ ] APNs 인증 방식은 key 기반인지 certificate 기반인지, 그리고 인증 자산 보관 위치와 접근 책임을 정한다. + - [ ] Firebase iOS app을 새로 만들지 기존 app을 사용할지, `GoogleService-Info.plist` 제공/보관 방식을 정한다. + - [ ] 실제 기기 smoke를 수행할 기기, Apple 계정, 테스트 앱 설치 방식, evidence 제출 방식을 정한다. + - [ ] CI/headless에서 수행할 검증 범위와 수동 검증으로 남길 APNs delivery 범위를 정한다. ## 범위 @@ -70,7 +75,7 @@ iOS native event가 Dart API와 host routing callback으로 연결되기 위한 ## 범위 제외 - Android FCM 구현 변경은 이 Milestone에서 다루지 않는다. -- macOS, Windows, Linux desktop 알림 검증은 Desktop 알림 테스트 Milestone에서 다룬다. +- macOS, Windows, Linux desktop 알림 검증은 각 OS별 알림 테스트 Milestone에서 다룬다. - 멀티앱 channel/tenant/server 분기 모델과 push credential 분리 정책은 멀티앱 채널 모델에서 결정한다. - iOS native bridge 전체 구현은 gap 확인 후 별도 구현 Milestone으로 분리할 수 있다. @@ -78,6 +83,7 @@ iOS native event가 Dart API와 host routing callback으로 연결되기 위한 - 관련 경로: `packages/messaging_flutter/ios/`, `packages/messaging_flutter/lib/`, `packages/messaging_flutter/README.md`, `apps/flutter-test/ios/`, `apps/flutter-test/README.md` - 표준선(선택): iOS scaffold/stub 상태를 먼저 명확히 하고, 가능한 smoke 기준과 후속 구현 gap을 분리한다 +- 민감값 기준: Apple/Firebase/APNs credential, team id, profile, token, private host 값은 tracked 문서에 쓰지 않고 책임 경계와 evidence 위치만 기록한다 - 선행 작업: 알림 파이프라인 고도화 - 후속 작업: 멀티앱 채널 모델 -- 확인 필요: 없음 +- 확인 필요: 프로비저닝, APNs 인증, Firebase iOS 설정, 실제 기기/CI smoke 환경 결정 diff --git a/agent-roadmap/phase/messaging-runtime/milestones/linux-notification-test.md b/agent-roadmap/phase/messaging-runtime/milestones/linux-notification-test.md new file mode 100644 index 00000000..db64fdff --- /dev/null +++ b/agent-roadmap/phase/messaging-runtime/milestones/linux-notification-test.md @@ -0,0 +1,68 @@ +# Milestone: Linux 알림 테스트 + +## 위치 + +- Roadmap: `agent-roadmap/ROADMAP.md` +- Phase: `agent-roadmap/phase/messaging-runtime/PHASE.md` + +## 목표 + +Linux 환경에서 nexo 알림 계약을 공통 플러그인의 지원 대상으로 포함하기 위해 필요한 배포판, desktop environment, notification daemon, packaging/test 조건을 정리한다. +지원 여부 자체가 아니라 Linux에서 같은 Dart 계약을 제공하기 위한 구현 방식, 테스트 환경, 후속 구현 단위를 확정한다. + +## 상태 + +[계획] + +## 승격 조건 + +- 없음 + +## 구현 잠금 + +- 상태: 잠금 +- 결정 필요: + - [ ] Linux smoke 대상 배포판, desktop environment, notification daemon, 테스트 장비 책임을 정한다. + - [ ] Linux native notification 연동 방식과 package/runtime dependency 기준을 정한다. + - [ ] Linux 구현을 macOS/Windows 이후 순차 진행할지, iOS/macOS와 병렬로 baseline 조사할지 우선순위를 정한다. + +## 범위 + +- Linux Flutter plugin platform 등록 여부와 필요한 native notification 구현 후보 확인 +- Linux notification display, click/open routing, lifecycle 처리를 위한 구현 gap 정리 +- Linux에서 ACK, dismiss, inline reply를 Android와 같은 계약으로 다룰 수 있는지 gap 정리 +- 실제 OS UI 수동 검증과 자동화 가능 항목의 경계 초안 작성 + +## 기능 + +### Epic: [baseline] Linux 기준선 + +Linux 알림 지원에 필요한 platform baseline을 확인한다. + +- [ ] [platform-state] Linux plugin platform 등록 여부와 host scaffold 필요 범위를 정리한다. +- [ ] [native-api] Linux notification daemon/native 연동 후보와 package/runtime 제약을 정리한다. +- [ ] [test-env] 배포판, desktop environment, 테스트 장비, 수동/자동 smoke 가능 범위를 정리한다. + +## 완료 리뷰 + +- 상태: 없음 +- 요청일: 없음 +- 완료 근거: 없음 +- 리뷰 필요: + - [ ] 사용자가 완료 결과를 확인했다 + - [ ] archive 이동을 승인했다 +- 리뷰 코멘트: 없음 + +## 범위 제외 + +- macOS scaffold/stub smoke는 macOS 알림 테스트 Milestone에서 다룬다. +- Windows 알림 지원은 Windows 알림 테스트 Milestone에서 다룬다. +- Linux native implementation 전체 완성은 baseline 확인 후 별도 구현 계획으로 분리할 수 있다. + +## 작업 컨텍스트 + +- 관련 경로: `packages/messaging_flutter/pubspec.yaml`, `packages/messaging_flutter/README.md`, `apps/flutter-test/README.md` +- 표준선(선택): Linux는 공통 플러그인의 지원 대상이며, 먼저 배포판/desktop environment, notification daemon, packaging/test 조건을 정리한 뒤 구현 단위를 확정한다 +- 선행 작업: 알림 파이프라인 고도화 +- 후속 작업: Linux native notification 구현 후보 +- 확인 필요: Linux 배포판/desktop environment, native 연동 방식, package/runtime dependency, 진행 우선순위 diff --git a/agent-roadmap/phase/messaging-runtime/milestones/macos-notification-test.md b/agent-roadmap/phase/messaging-runtime/milestones/macos-notification-test.md new file mode 100644 index 00000000..8924186e --- /dev/null +++ b/agent-roadmap/phase/messaging-runtime/milestones/macos-notification-test.md @@ -0,0 +1,87 @@ +# 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/macos`와 `apps/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] macOS notification display와 click/open routing을 `NotificationOpenedEvent`와 channel/thread callback에 연결하기 위한 event shape를 정리한다. +- [ ] [lifecycle] foreground, background, minimized, terminated 상태에서 macOS notification 처리 기준과 제한을 정리한다. +- [ ] [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 위치만 기록한다 +- 선행 작업: 알림 파이프라인 고도화 +- 후속 작업: Windows 알림 테스트, Linux 알림 테스트, 멀티앱 채널 모델 +- 확인 필요: macOS 버전/장비, signing/notarization 필요 여부, 수동/자동 smoke 경계 결정 diff --git a/agent-roadmap/phase/messaging-runtime/milestones/multi-app-channel.md b/agent-roadmap/phase/messaging-runtime/milestones/multi-app-channel.md index d7c01720..7bae1c29 100644 --- a/agent-roadmap/phase/messaging-runtime/milestones/multi-app-channel.md +++ b/agent-roadmap/phase/messaging-runtime/milestones/multi-app-channel.md @@ -19,7 +19,8 @@ server/webapp/push-proxy는 upstream-followable runtime으로 두고, 앱별 내 - [ ] 첫 번째 외부 소비 앱 또는 내부 테스트 앱 후보를 정한다. - [ ] iOS 알림 테스트 Milestone에서 iOS/APNs 알림 smoke 기준과 구현 gap을 확인한다. -- [ ] Desktop 알림 테스트 Milestone에서 macOS/Windows/Linux desktop 알림 smoke 기준과 구현 gap을 확인한다. +- [ ] macOS 알림 테스트 Milestone에서 macOS desktop 알림 smoke 기준과 구현 gap을 확인한다. +- [ ] Windows/Linux 알림 테스트 Milestone에서 각 OS의 native API, packaging/test 조건과 구현 단위를 확인한다. - [ ] 앱별 channel namespace, team/server 분리, tenant 분리 중 어떤 모델을 쓸지 결정한다. - [ ] 앱별 push credential과 routing callback 분리 기준을 정한다. - [ ] 구현 가능한 후속 Milestone을 API, server config, client integration 중 하나 이상으로 나눈다. @@ -76,6 +77,6 @@ server/webapp/push-proxy는 upstream-followable runtime으로 두고, 앱별 내 - 관련 경로: `services/core/`, `packages/messaging_flutter/`, `apps/flutter-test/` - 표준선(선택): 먼저 channel 기반 최소 모델을 검토하고, 운영 비용이 커질 때 tenant/server 분리를 검토한다 -- 선행 작업: 메시징 계약 표준화, 알림 파이프라인 고도화, iOS 알림 테스트, Desktop 알림 테스트 +- 선행 작업: 메시징 계약 표준화, 알림 파이프라인 고도화, iOS 알림 테스트, macOS 알림 테스트, Windows 알림 테스트, Linux 알림 테스트 - 후속 작업: 업스트림 런타임 운영화 Phase의 CI/CD와 운영 업데이트 루프 - 확인 필요: 앱별 분기 단위와 credential 분리 기준 diff --git a/agent-roadmap/phase/messaging-runtime/milestones/windows-notification-test.md b/agent-roadmap/phase/messaging-runtime/milestones/windows-notification-test.md new file mode 100644 index 00000000..0c2a27d9 --- /dev/null +++ b/agent-roadmap/phase/messaging-runtime/milestones/windows-notification-test.md @@ -0,0 +1,68 @@ +# Milestone: Windows 알림 테스트 + +## 위치 + +- Roadmap: `agent-roadmap/ROADMAP.md` +- Phase: `agent-roadmap/phase/messaging-runtime/PHASE.md` + +## 목표 + +Windows 환경에서 nexo 알림 계약을 공통 플러그인의 지원 대상으로 포함하기 위해 필요한 platform 등록, native notification API, packaging/test 조건을 정리한다. +지원 여부 자체가 아니라 Windows에서 같은 Dart 계약을 제공하기 위한 구현 방식, 테스트 환경, 후속 구현 단위를 확정한다. + +## 상태 + +[계획] + +## 승격 조건 + +- 없음 + +## 구현 잠금 + +- 상태: 잠금 +- 결정 필요: + - [ ] Windows smoke 대상 OS 버전, 테스트 장비, 계정/권한 책임을 정한다. + - [ ] Windows native notification API와 app packaging 기준을 정한다. + - [ ] Windows 구현을 macOS 이후 순차 진행할지, iOS/macOS와 병렬로 baseline 조사할지 우선순위를 정한다. + +## 범위 + +- Windows Flutter plugin platform 등록 여부와 필요한 native notification 구현 후보 확인 +- Windows notification display, click/open routing, lifecycle 처리를 위한 구현 gap 정리 +- Windows에서 ACK, dismiss, inline reply를 Android와 같은 계약으로 다룰 수 있는지 gap 정리 +- 실제 OS UI 수동 검증과 자동화 가능 항목의 경계 초안 작성 + +## 기능 + +### Epic: [baseline] Windows 기준선 + +Windows 알림 지원에 필요한 platform baseline을 확인한다. + +- [ ] [platform-state] Windows plugin platform 등록 여부와 host scaffold 필요 범위를 정리한다. +- [ ] [native-api] Windows native notification API 후보와 packaging 제약을 정리한다. +- [ ] [test-env] Windows 버전, 테스트 장비, 수동/자동 smoke 가능 범위를 정리한다. + +## 완료 리뷰 + +- 상태: 없음 +- 요청일: 없음 +- 완료 근거: 없음 +- 리뷰 필요: + - [ ] 사용자가 완료 결과를 확인했다 + - [ ] archive 이동을 승인했다 +- 리뷰 코멘트: 없음 + +## 범위 제외 + +- macOS scaffold/stub smoke는 macOS 알림 테스트 Milestone에서 다룬다. +- Linux 알림 지원은 Linux 알림 테스트 Milestone에서 다룬다. +- Windows native implementation 전체 완성은 baseline 확인 후 별도 구현 계획으로 분리할 수 있다. + +## 작업 컨텍스트 + +- 관련 경로: `packages/messaging_flutter/pubspec.yaml`, `packages/messaging_flutter/README.md`, `apps/flutter-test/README.md` +- 표준선(선택): Windows는 공통 플러그인의 지원 대상이며, 먼저 platform 등록, native API, packaging/test 조건을 정리한 뒤 구현 단위를 확정한다 +- 선행 작업: 알림 파이프라인 고도화 +- 후속 작업: Windows native notification 구현 후보 +- 확인 필요: Windows OS 버전/장비, native API, packaging/test 기준, 진행 우선순위