rspace-online/server
Jeff Emmett a7063d24f5 feat: PWA support — installable app, Web Push notifications, app badge
Phase 1: Installable PWA
- Add web app manifest with multi-size icons (192, 512, maskable, apple-touch)
- Add PWA meta tags to all entry points (shell.ts, canvas.html, index.html, create-space.html)
- Register service worker on all pages (previously only canvas.html)
- Add manifest.json to precache core list
- Capture beforeinstallprompt for custom install UX

Phase 2: Web Push Notifications
- Add web-push dependency + push_subscriptions DB table
- VAPID key endpoint, subscribe/unsubscribe routes in notification-routes.ts
- Web Push delivery in notify() with auto-cleanup of expired subscriptions
- SW push + notificationclick event handlers
- Client push subscription flow in notification bell component

Phase 3: Install UX Polish
- App badge (setAppBadge/clearAppBadge) on unread count changes
- "Enable push" button in notification panel header

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 17:35:30 -07:00
..
local-first feat: wire offline-first Automerge sync to all 13 rSpace modules 2026-03-04 19:07:59 -08:00
oauth feat: add unified notification system with real-time WS delivery 2026-03-03 18:59:09 -08:00
community-store.ts feat(rnotes): type-specific notes, voice recording, web clipper, module settings 2026-03-09 22:39:10 -07:00
encryptid-sdk.d.ts fix: resolve TypeScript build errors for Docker deployment 2026-02-13 14:59:04 -07:00
index.ts feat: user dashboard shown when all tabs are closed 2026-03-09 20:55:39 -07:00
landing-proxy.ts feat: hide "Try Demo" header button when logged in 2026-03-01 14:16:59 -08:00
landing.ts fix: use [rS] favicon.png across all server-rendered pages 2026-03-09 22:25:25 -07:00
notification-routes.ts feat: PWA support — installable app, Web Push notifications, app badge 2026-03-10 17:35:30 -07:00
notification-service.ts feat: PWA support — installable app, Web Push notifications, app badge 2026-03-10 17:35:30 -07:00
output-list.ts fix: space settings panel hidden behind canvas due to backdrop-filter containment 2026-03-04 10:30:20 -08:00
seed-campaign.ts fix: zoom-aware drag, minimum-penetration collision, replace unicode escapes 2026-02-27 16:48:50 -08:00
seed-demo.ts refactor: complete rfunds → rflows rename across configs and references 2026-03-03 19:13:14 -08:00
seed-template.ts refactor: complete rfunds → rflows rename across configs and references 2026-03-03 19:13:14 -08:00
shell.ts feat: PWA support — installable app, Web Push notifications, app badge 2026-03-10 17:35:30 -07:00
spaces.ts feat(rnotes): type-specific notes, voice recording, web clipper, module settings 2026-03-09 22:39:10 -07:00
sync-instance.ts feat: layered local-first data architecture — encrypted backup, relay persistence, at-rest encryption 2026-03-02 17:09:07 -08:00