rspace-online/website
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
..
public feat: workflow template, choice components, space settings, EncryptID vault, UI polish 2026-03-03 13:15:13 -08:00
admin.html fix: normalize visibility enums + tab tracking across remaining files 2026-03-03 13:29:01 -08:00
canvas.html feat: fix rApp canvas bugs + add widget data card mode 2026-03-03 16:26:33 -08:00
create-space.html fix: normalize visibility enums + tab tracking across remaining files 2026-03-03 13:29:01 -08:00
index.html feat: restyle rSpace.online about page to rApp theme + (you)rSpace CTA in space switcher 2026-02-27 17:50:30 -08:00
shell.ts feat: add unified notification system with real-time WS delivery 2026-03-03 18:59:09 -08:00
sw.ts fix: folk-wrapper crash, service worker API exclusion, fal.ai endpoint 2026-03-02 23:36:15 -08:00
test-stack.html test: add stack view + wiring test page 2026-03-02 13:03:29 -08:00