- PHASE.md에서 flutter-web-notification-smoke 마일스톤 상태를 완료로 변경하고 archive로 이동 - browser_notification_interop_web.dart에서 라우팅 데이터 캡처 방식을 인스턴스 변수에서 인자 전달로 변경하여 각 알림별 데이터 격리 - nexo_messaging_plugin.dart에서 permissionGranted를 고정 값에서 실제 권한 상태 기반으로 변경 - 코드 스타일 개선: if문 블록 포맷팅, 단일 줄 최적화 - 테스트 추가: show 실패 시 최신 권한 상태를 반환하는 검증
4.7 KiB
4.7 KiB
Milestone: Flutter Web 알림 Smoke 보완
위치
- Roadmap:
agent-roadmap/ROADMAP.md - Phase:
agent-roadmap/phase/messaging-runtime/PHASE.md
목표
Flutter Web foreground browser notification이 실제 브라우저 환경에서 반복 검증될 수 있게 한다. 기존 API와 fake interop 단위 테스트 근거만으로 완료 처리된 gap을 보완하고, 원격 runner에서 열린 Flutter Web server를 사용자가 forwarded localhost URL로 접근해 permission, display, click/open routing을 확인할 수 있는 smoke 기준을 만든다.
상태
[완료]
승격 조건
- 없음
구현 잠금
- 상태: 해제
- 결정 필요: 없음
범위
apps/flutter-test를 Flutter Web build/run 대상 host scaffold로 구성한다.packages/messaging_flutter의 VM 단위 테스트와 Chrome/web 테스트를 분리해 각 platform expectation이 충돌하지 않게 정리한다.- 원격 runner의 Flutter Web server와 사용자가 여는 forwarded localhost URL을 전제로 browser notification permission, display, click/open routing smoke 절차를 만든다.
bin/test,bin/lint,bin/build또는 별도 opt-in 명령에서 web smoke/build 검증이 누락되지 않도록 workspace helper와 테스트 기준을 보강한다.
기능
Epic: [web-host] Web 테스트 Host
Flutter Web 알림 smoke가 실제 브라우저에서 열릴 수 있도록 test host와 실행 경계를 만든다.
- [web-scaffold]
apps/flutter-test에 Flutter Web scaffold를 추가하고 web build가 통과하도록 구성한다. 검증: 원격 runner에서apps/flutter-testweb build가 성공해야 한다. - [web-runtime] 원격 Flutter Web server와 forwarded localhost URL 기반 수동 smoke 절차를 정리한다. 검증: 사용자가 forwarded URL에서 permission 요청, notification display, click/open routing 상태를 확인할 수 있어야 한다.
Epic: [web-tests] Web 검증 분리
VM 단위 테스트와 Chrome/web 테스트가 서로 다른 platform expectation을 올바르게 검증하도록 나눈다.
- [chrome-tests]
packages/messaging_flutter의 Chrome/web 테스트가 web runtime에서는 browser notification support를 기대하고, VM 테스트는 non-web unsupported를 기대하도록 분리한다. 검증: 원격 runner에서 package Chrome 테스트가 통과해야 한다. - [helper-route] workspace helper 또는 테스트 규칙에 web build/smoke opt-in 경로를 추가해
bin/test만으로 web smoke가 완료된 것처럼 보이지 않게 한다. 검증: web 검증을 생략한 경우 skip 또는 미실행 사유가 명확히 보고되어야 한다.
Epic: [evidence] 완료 Evidence
완료 판정이 fake interop 단위 테스트에만 기대지 않도록 browser evidence 기준을 남긴다.
- [manual-evidence] browser notification permission/display/click 수동 smoke evidence 기준을 민감값 없이 정리한다. 검증: 완료 리뷰에 원격 실행 명령, 사용자 확인 결과, 생략된 Full Web Push 범위가 함께 남아야 한다.
완료 리뷰
- 상태: 승인됨
- 요청일: 2026-06-08
- 승인일: 2026-06-09
- 완료 근거:
agent-task/archive/2026/06/m-flutter-web-notification-smoke/01_web_scaffold/complete.logagent-task/archive/2026/06/m-flutter-web-notification-smoke/02+01_web_runtime/complete.logagent-task/archive/2026/06/m-flutter-web-notification-smoke/03_chrome_tests/complete.logagent-task/archive/2026/06/m-flutter-web-notification-smoke/04+03_manual_evidence_closeout/complete.log
- 리뷰 필요:
- 사용자가 완료 결과를 확인했다
- archive 이동을 승인했다
- 리뷰 코멘트: 2026-06-09 코드 관점 재검토에서 foreground web notification permission result와 notification별 click routing data 보강 후
flutter analyze --no-fatal-infos,flutter test, Chrome web test, 기본/opt-inbin/test가 통과했다.
범위 제외
- 브라우저가 닫힌 상태에서도 수신되는 Full Web Push 구현
- service worker, VAPID,
web_rn-v2server device-token 등록, core/push-proxy web target 구현 - Mattermost webapp UI/Redux 알림 구현 복제
- 제품 앱 UI 또는 앱별 메시징 화면 구현
작업 컨텍스트
- 관련 경로:
packages/messaging_flutter/,apps/flutter-test/,bin/,agent-test/local/ - 표준선(선택): 실제 host, port, credential, 포워딩 명령 원문은 tracked roadmap/docs에 쓰지 않고 ignored local test environment 문서 또는 사용자 제공 환경 기준에서 확인한다.
- 선행 작업: Flutter Web 알림
- 후속 작업: Full Web Push platform 계약
- 확인 필요:
web-scaffold,web-runtime,helper-routeevidence는 완료됐다. 남은 확인은 Chrome/web test 분리와 수동 evidence 기준 closeout이다.