Web notification 상태 테스트와 후속 Web Push 스케치를 추가하고, 남은 test-host 작업을 agent-task plan으로 분리했다.
4 KiB
4 KiB
Milestone: Flutter Web 알림
위치
- Roadmap:
agent-roadmap/ROADMAP.md - Phase:
agent-roadmap/phase/messaging-runtime/PHASE.md
목표
packages/messaging_flutter를 Flutter Web/Chrome 알림의 source of truth로 확장한다.
먼저 웹앱이 열려 있는 상태의 browser notification permission, 표시, click/open routing을 패키지 API로 제공하고, 브라우저가 닫힌 상태의 Full Web Push는 별도 후속 범위로 분리한다.
상태
[진행중]
승격 조건
- 없음
구현 잠금
- 상태: 해제
- 결정 필요: 없음
범위
packages/messaging_flutter의 web platform 등록과 browser notification public API 추가- Chrome/Flutter Web foreground 알림 permission, 표시, click/open event를 기존
onNotification,onNotificationOpened, channel/thread callback 계약에 연결 apps/flutter-test에 Flutter Web 검증 host scaffold와 민감값 없는 smoke 기준 추가- Full Web Push에 필요한
web_rn-v2token, service worker, VAPID, core/push-proxy platform 확장은 후속 작업으로 경계화
기능
Epic: [web-baseline] Web 플랫폼 기준선
Flutter Web을 패키지 지원 플랫폼으로 올릴 때 기존 Android-first 계약을 깨지 않도록 기준선을 만든다.
- [plugin-web]
nexo_messaging에 Flutter Web plugin 등록과 web 전용 구현 파일을 추가한다. - [api-options] 기존
initialize()호출을 깨지 않는 옵션 모델을 추가하고, web notification permission/display 정책과 token prefix 경계를 문서화한다. - [interop] browser
NotificationAPI 연동은package:web기반으로 작성하고, Android/iOS/macOS import와 분리한다.
Epic: [foreground] Chrome foreground 알림
웹앱이 열려 있는 상태에서 Chrome browser notification을 패키지 책임으로 표시하고 routing event를 재사용한다.
- [permission] Web notification 지원 여부와 permission 상태를 조회/요청하는 API를 제공한다.
- [display] foreground payload를 browser notification으로 표시하고 click 이벤트를
NotificationOpenedEvent와 host navigation callback으로 변환한다. - [event-map] Firebase foreground message 또는 host-injected payload를 기존
PushNotificationTypemap으로 정규화한다.
Epic: [smoke] Web Smoke
민감값 없이 반복 가능한 검증 기준을 만들고, Full Web Push는 별도 설계 항목으로 남긴다.
- [test-host]
apps/flutter-test에서 Flutter Web smoke scaffold와 permission/display/click 상태 표시를 제공한다. - [auto-test] web interop을 직접 띄우지 않는 Dart API/mapper 단위 테스트를 추가한다. 검증:
bin/test - [push-follow-up] service worker, VAPID,
web_rn-v2device token, core/push-proxy platform 분기 설계를 후속 Milestone 후보로 정리한다.
완료 리뷰
- 상태: 없음
- 요청일: 없음
- 완료 근거: 없음
- 리뷰 필요:
- 사용자가 완료 결과를 확인했다
- archive 이동을 승인했다
- 리뷰 코멘트: 없음
범위 제외
- 브라우저가 닫힌 상태에서도 수신되는 Full Web Push 구현
services/core의 push platform 상수 추가, session device id 마이그레이션, push-proxy web target 구현- Mattermost webapp UI/Redux 알림 구현 복제
- 제품 앱 UI 또는 앱별 메시징 화면 구현
작업 컨텍스트
- 관련 경로:
packages/messaging_flutter/,apps/flutter-test/,services/core/server/public/model/push_notification.go,services/push-proxy/server/ - 표준선(선택): 1차는 Flutter Web foreground browser notification으로 제한하고, Full Web Push는
web_rn-v2token 및 service worker 기반 후속 Milestone으로 분리한다. - 선행 작업: 알림 파이프라인 고도화
- 후속 작업: Full Web Push platform 계약
- 확인 필요: 실제 Chrome smoke에 사용할 Firebase web config, VAPID key, private host 값은 tracked 문서에 기록하지 않고 host 환경 책임으로 둔다.