feat(ui): notification bell — received + sent transfers, mark-all-read (#147) #148

Merged
Cordy merged 1 commit from feat/notify-bell-147 into main 2026-08-09 02:09:34 +00:00
Owner

Closes #147. Bell left of the user circle; dropdown lists received (Inbox tree via the unscoped store — works for unscoped admins) and sent (transfers store) items, newest first, capped at 20; dot when unread. "Mark all read" advances a per-user watermark in the new internal/notify atomic-JSON store — no per-item flags, no event framework: the bell is a view over state that already exists. GET /api/v1/notifications + POST /api/v1/notifications/read-all; polls on the existing 60s cadence, hides itself when the endpoint is absent. i18n en/de/fr/it. Watermark store round-trip tested.

Closes #147. Bell left of the user circle; dropdown lists received (Inbox tree via the unscoped store — works for unscoped admins) and sent (transfers store) items, newest first, capped at 20; dot when unread. "Mark all read" advances a per-user watermark in the new `internal/notify` atomic-JSON store — no per-item flags, no event framework: the bell is a view over state that already exists. `GET /api/v1/notifications` + `POST /api/v1/notifications/read-all`; polls on the existing 60s cadence, hides itself when the endpoint is absent. i18n en/de/fr/it. Watermark store round-trip tested.
feat(ui): notification bell — received + sent peering transfers, mark-all-read (#147)
All checks were successful
ci / test-and-build (pull_request) Successful in 32s
be46f3b0d0
Cordy merged commit be5b168df5 into main 2026-08-09 02:09:34 +00:00
Cordy deleted branch feat/notify-bell-147 2026-08-09 02:09:37 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: Cordy/Cairn#148
No description provided.