79 lines
3.1 KiB
Markdown
79 lines
3.1 KiB
Markdown
# Milestone: 알림 파이프라인 고도화
|
|
|
|
## 위치
|
|
|
|
- Roadmap: `agent-roadmap/ROADMAP.md`
|
|
- Phase: `agent-roadmap/phase/messaging-runtime/PHASE.md`
|
|
|
|
## 목표
|
|
|
|
FCM 수신부터 signing-key 검증, 로컬 저장, notification display, ACK, inline reply, dismiss, open routing까지 이어지는 알림 파이프라인을 플러그인 책임으로 안정화한다.
|
|
host app은 라우팅과 로그인 상태 연결만 담당하도록 경계를 유지한다.
|
|
Android 구현은 Mattermost mobile code 팔로잉 대상이 아니라 nexo-owned SDK 구현으로 관리한다.
|
|
|
|
## 상태
|
|
|
|
[계획]
|
|
|
|
## 승격 조건
|
|
|
|
- 없음
|
|
|
|
## 구현 잠금
|
|
|
|
- 상태: 잠금
|
|
- 결정 필요:
|
|
- [ ] iOS/APNS 구현을 Android 안정화 이후로 미룰지, 같은 Phase에서 병행할지 결정한다.
|
|
- [ ] push ACK 실패와 offline queue를 어디까지 plugin 책임으로 볼지 결정한다.
|
|
|
|
## 범위
|
|
|
|
- Android FCM service와 notification helper
|
|
- signing key, auth token, device token storage
|
|
- ACK delivery, inline reply, dismiss action
|
|
- client notification-open callback
|
|
- server/push-proxy payload와 Android/FCM platform 변화 추적
|
|
- 수동 smoke와 자동 테스트의 분리
|
|
|
|
## 기능
|
|
|
|
### Epic: [android-push] Android push
|
|
|
|
Android-first 알림 파이프라인을 안정된 제품 책임으로 만든다.
|
|
|
|
- [ ] [verify-payload] signing key 기반 payload 검증과 drop 조건을 테스트 가능한 형태로 유지한다.
|
|
- [ ] [display-notification] message/thread notification display 기준을 정리하고 회귀 테스트 후보를 만든다.
|
|
- [ ] [ack-delivery] ACK request 성공/실패 처리와 retry 후보를 정리한다.
|
|
- [ ] [reply-dismiss] inline reply와 dismiss action의 storage/network 경계를 정리한다.
|
|
- [ ] [platform-follow] Mattermost mobile implementation merge 대신 server/push contract, FCM, Android notification platform 변경을 추적하는 기준을 정리한다.
|
|
|
|
### Epic: [host-routing] Host routing
|
|
|
|
host app이 받아야 할 최소 이벤트만 노출한다.
|
|
|
|
- [ ] [opened-event] notification-open event가 channel/thread routing으로 이어지는 기준을 유지한다.
|
|
- [ ] [host-contract] host app이 반드시 구현해야 할 callback과 login/logout hook을 문서화한다.
|
|
|
|
## 완료 리뷰
|
|
|
|
- 상태: 없음
|
|
- 요청일: 없음
|
|
- 완료 근거: 없음
|
|
- 리뷰 필요:
|
|
- [ ] 사용자가 완료 결과를 확인했다
|
|
- [ ] archive 이동을 승인했다
|
|
- 리뷰 코멘트: 없음
|
|
|
|
## 범위 제외
|
|
|
|
- full message composer나 chat screen UI 구현은 포함하지 않는다.
|
|
- APNS/iOS 구현은 결정 전까지 스캐폴드 유지로 둔다.
|
|
- 서버 core의 대규모 fork 변경은 포함하지 않는다.
|
|
|
|
## 작업 컨텍스트
|
|
|
|
- 관련 경로: `packages/messaging_flutter/android/`, `packages/messaging_flutter/lib/`, `apps/client/integration_test/`
|
|
- 표준선(선택): Android-first nexo SDK로 자동화 가능한 테스트를 늘리고, FCM delivery는 수동 smoke로 분리한다
|
|
- 선행 작업: 메시징 계약 표준화
|
|
- 후속 작업: 멀티앱 채널 모델, iOS/APNS 후보
|
|
- 확인 필요: iOS 우선순위와 ACK 실패 책임 범위
|