teqo-backup/src
Cursor Agent 7a876ec334 refactor(notifications): bell loaders read through owner access, no bypass
countUnreadNotifications/loadNotificationList took a caller-supplied
recipientID with module-level admin bypass — one misuse away from reading
someone else's inbox. They now take the actor (CampaignUser) and read
with overrideAccess: false under canReadOwnNotifications, keeping the
explicit recipient filter as a second fence. Pin: owner isolation at the
loader level in campaignNotifications.int.spec.ts.

Co-authored-by: Francisco Solla <fsolla@users.noreply.github.com>
2026-07-31 20:57:18 -03:00
..
app refactor(notifications): bell loaders read through owner access, no bypass 2026-07-31 20:57:18 -03:00
collections D2 — Push + sino in-app para /campanha 2026-07-31 01:51:41 +00:00
components test(miss-52): sheet cells without the shared host fail loud 2026-07-31 13:17:19 -03:00
globals security: lock public globals update to payloadAdminOnly (Pass 4 P0) 2026-07-31 20:57:18 -03:00
hooks Tooling: prettier como autoridade de formatacao (organize-imports deterministico, scripts format/format:check, normalizacao mecanica de 312 arquivos; artefatos gerados e migrations excluidos via .prettierignore) 2026-07-25 17:22:20 -03:00
lib refactor(lib): close the lib→utilities type-import hole + Local API omission guard 2026-07-31 13:17:10 -03:00
migrations D2 — Push + sino in-app para /campanha 2026-07-31 01:51:41 +00:00
utilities refactor(notifications): bell loaders read through owner access, no bypass 2026-07-31 20:57:18 -03:00
css-modules.d.ts Adopt TypeScript 6 for tooling and TypeScript 7 for typecheck. 2026-07-21 20:32:15 -03:00
payload-types.ts D2 — Push + sino in-app para /campanha 2026-07-31 01:51:41 +00:00
payload.config.ts D2 — Push + sino in-app para /campanha 2026-07-31 01:51:41 +00:00