rspace-online/shared/components
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
..
rstack-app-switcher.ts feat: workflow template, choice components, space settings, EncryptID vault, UI polish 2026-03-03 13:15:13 -08:00
rstack-identity.ts feat: add unified notification system with real-time WS delivery 2026-03-03 18:59:09 -08:00
rstack-mi.ts feat: add voice dictation to MI bar, markdown, chat & prompt inputs 2026-03-03 17:10:52 -08:00
rstack-notification-bell.ts feat: add unified notification system with real-time WS delivery 2026-03-03 18:59:09 -08:00
rstack-space-settings.ts feat: workflow template, choice components, space settings, EncryptID vault, UI polish 2026-03-03 13:15:13 -08:00
rstack-space-switcher.ts refactor: normalize space visibility enums + inline space create form 2026-03-03 13:27:31 -08:00
rstack-tab-bar.ts refactor: normalize space visibility enums + inline space create form 2026-03-03 13:27:31 -08:00