Background
Users have no persistent view of notifications; important updates are only transient and easily missed.
Scope
A persistent notifications center with unread state, real-time updates, and actions. Out of scope: email/push delivery.
Proposed Approach
- Build the notifications center UI
- Fetch/mark-read logic in
useNotifications.ts
- Wire real-time updates via WebSocket/polling
- Make it accessible (aria-live)
Files to Modify
frontend/src/components/Notifications/ — notifications center UI
frontend/src/hooks/useNotifications.ts — fetch/mark-read/realtime logic
frontend/src/lib/ — API client wiring
Edge Cases
- Unread counts update in real time
- Mark-read/clear actions are optimistic + reconciled
- Empty and loading states are handled
Dependencies
frontend/src/components/Notifications/
frontend/src/hooks/useNotifications.ts
Effort
M — ~2–3 days
Definition of Done
Background
Users have no persistent view of notifications; important updates are only transient and easily missed.
Scope
A persistent notifications center with unread state, real-time updates, and actions. Out of scope: email/push delivery.
Proposed Approach
useNotifications.tsFiles to Modify
frontend/src/components/Notifications/— notifications center UIfrontend/src/hooks/useNotifications.ts— fetch/mark-read/realtime logicfrontend/src/lib/— API client wiringEdge Cases
Dependencies
frontend/src/components/Notifications/frontend/src/hooks/useNotifications.tsEffort
M — ~2–3 days
Definition of Done