docs(08-03): complete push notifications, offline queue, install prompt plan

This commit is contained in:
2026-03-25 21:32:09 -06:00
parent 81a2ce1498
commit e4b6e8e09f
4 changed files with 206 additions and 8 deletions

View File

@@ -3,14 +3,14 @@ gsd_state_version: 1.0
milestone: v1.0
milestone_name: milestone
status: completed
stopped_at: Completed 08-mobile-pwa 08-01-PLAN.md
last_updated: "2026-03-26T03:20:31.678Z"
stopped_at: Completed 08-mobile-pwa 08-03-PLAN.md
last_updated: "2026-03-26T03:31:59.921Z"
last_activity: 2026-03-23 — Completed 03-02 onboarding wizard, Slack OAuth, BYO API keys
progress:
total_phases: 8
completed_phases: 7
total_plans: 33
completed_plans: 31
completed_plans: 32
percent: 100
---
@@ -83,6 +83,7 @@ Progress: [██████████] 100%
| Phase 07-multilanguage P04 | verification | 1 tasks | 0 files |
| Phase 08-mobile-pwa P02 | 6m 15s | 1 tasks | 12 files |
| Phase 08-mobile-pwa P01 | 7min | 2 tasks | 19 files |
| Phase 08-mobile-pwa P03 | 8min | 2 tasks | 15 files |
## Accumulated Context
@@ -190,6 +191,10 @@ Recent decisions affecting current work:
- [Phase 08-mobile-pwa]: Mobile More sheet uses plain div + backdrop (not @base-ui/react Drawer) — simpler implementation, zero additional complexity
- [Phase 08-mobile-pwa]: Viewport exported separately from metadata in app/layout.tsx — Next.js 16 requirement
- [Phase 08-mobile-pwa]: Serwist class API (new Serwist + addEventListeners) used over deprecated installSerwist — linter enforced this in serwist 9.x
- [Phase 08-mobile-pwa]: Migration numbered 012 (not 010 as planned) — migrations 010 and 011 used by template data migrations added after plan was written
- [Phase 08-mobile-pwa]: Push router in shared/api/push.py (not gateway/routers/push.py) — consistent with all other API routers in shared package
- [Phase 08-mobile-pwa]: urlBase64ToArrayBuffer returns ArrayBuffer not Uint8Array<ArrayBufferLike> — TypeScript strict mode requires ArrayBuffer for PushManager.subscribe applicationServerKey
- [Phase 08-mobile-pwa]: Connected user tracking via module-level _connected_users dict in web.py — avoids Redis overhead for in-process WebSocket state
### Roadmap Evolution
@@ -205,6 +210,6 @@ None — all phases complete.
## Session Continuity
Last session: 2026-03-26T03:20:31.675Z
Stopped at: Completed 08-mobile-pwa 08-01-PLAN.md
Last session: 2026-03-26T03:31:59.918Z
Stopped at: Completed 08-mobile-pwa 08-03-PLAN.md
Resume file: None