feat(api): implement the client notifications endpoint #1786

Closed
RainerZufall187 wants to merge 4 commits from RainerZufall187/continuwuity:main into main

4 commits

Author SHA1 Message Date
ae5a768e48 fix(api): align notifications and pushers with the Matrix spec
Some checks failed
Checks / Changelog / Check changelog is added (pull_request_target) Successful in 9s
Documentation / Build and Deploy Documentation (pull_request) Has been cancelled
Checks / Prek / Pre-commit & Formatting (pull_request) Has been cancelled
Checks / Prek / Check changed files (pull_request) Has been cancelled
Checks / Prek / Clippy and Cargo Tests (pull_request) Has been cancelled
Track notification read state from event receipts instead of resetting counts
blindly, including support for m.fully_read and threaded receipt handling.

Also return per-thread unread notification counts in sync responses and treat
pushers by app_id plus pushkey with stricter HTTP pusher validation.
2026-05-19 19:24:15 +02:00
ec2abcd401 fix(notifications): track notification read state by PDU
Some checks failed
Checks / Changelog / Check changelog is added (pull_request_target) Successful in 30s
Documentation / Build and Deploy Documentation (pull_request) Has been cancelled
Checks / Prek / Pre-commit & Formatting (pull_request) Has been cancelled
Checks / Prek / Check changed files (pull_request) Has been cancelled
Checks / Prek / Clippy and Cargo Tests (pull_request) Has been cancelled
Store notification records with the PDU id and rebuild notification events
when reading them back. This makes the notifications endpoint respect event
visibility, ignored events, and bundled aggregations again.

Also update the last notification read marker for fully-read, public read,
and private read receipts, and remove the old public receipt count lookup.
2026-05-19 16:10:07 +00:00
d1f5edea7d Create 1786.bugfix 2026-05-19 16:10:07 +00:00
100c4b9c2b fix(api): implement the client notifications endpoint
Add support for `GET /_matrix/client/v3/notifications` so clients like Cinny
can load notification history instead of receiving M_UNRECOGNIZED.

Persist notification entries per user, expose paginated results, support
highlight-only filtering, and derive read state from public/private receipts.
2026-05-19 16:10:07 +00:00