rspace-online/server
Jeff Emmett cdfe8c5b78 feat: add unified notification system with real-time WS delivery
Persistent, PostgreSQL-backed notification system replacing the in-memory
access request polling. Notifications are created via notify(), persisted
to DB, and delivered in real-time over WebSocket with a 30s polling fallback.

Infrastructure:
- notifications + notification_preferences tables in EncryptID schema
- 10 CRUD functions in db.ts (create, list, count, read, dismiss, etc.)
- notification-service.ts: core notify(), WS registry, notifySpaceAdmins()
- notification-routes.ts: REST API at /api/notifications
- rstack-notification-bell.ts: bell icon component with dropdown panel

Module integration (11 hooks):
- spaces.ts: access_request, access_approved, access_denied, member_joined,
  member_left, role_changed
- index.ts WS handler: ping_user (24h expiry)
- encryptid/server.ts: guardian_accepted, recovery_initiated (owner + guardians),
  recovery_approved

Legacy cleanup:
- Removed access request polling, badge, and approve/deny UI from
  rstack-identity.ts (now handled by notification bell)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 18:59:09 -08:00
..
local-first feat: workflow template, choice components, space settings, EncryptID vault, UI polish 2026-03-03 13:15:13 -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: add SpaceConnection primitive + default visibility to private 2026-03-03 15:05:23 -08:00
encryptid-sdk.d.ts fix: resolve TypeScript build errors for Docker deployment 2026-02-13 14:59:04 -07:00
index.ts feat: add unified notification system with real-time WS delivery 2026-03-03 18:59:09 -08:00
landing-proxy.ts feat: hide "Try Demo" header button when logged in 2026-03-01 14:16:59 -08:00
landing.ts style: gradient background + (you)rSpace wordmark on landing page 2026-03-03 14:58:15 -08:00
notification-routes.ts feat: add unified notification system with real-time WS delivery 2026-03-03 18:59:09 -08:00
notification-service.ts feat: add unified notification system with real-time WS delivery 2026-03-03 18:59:09 -08:00
output-list.ts feat: add outputPaths to module interface and browsable list pages 2026-03-01 13:55:29 -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 fix: zoom-aware drag, minimum-penetration collision, replace unicode escapes 2026-02-27 16:48:50 -08:00
seed-template.ts feat: template seeding system for new spaces 2026-03-02 20:03:45 -08:00
shell.ts feat: add unified notification system with real-time WS delivery 2026-03-03 18:59:09 -08:00
spaces.ts feat: add unified notification system with real-time WS delivery 2026-03-03 18:59:09 -08: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