# Changelog

## 2026-05-20

### Added
- Custom tenant notification pipeline for alert fanout.
- Queue jobs:
  - `ProcessAlertNotificationsJob`
  - `DispatchNotificationJob`
  - `MirrorNotificationEventJob`
- Services for rule resolution, dedup dispatch, unread counters, and queue orchestration.
- Tenant notification APIs for bell, listing, read, mark-all-read, and archive.
- Superadmin cross-tenant notification reporting API.
- Tenant notification table provisioning command:
  - `db:create-notification-tables {project_id}`
- Manual dispatch command:
  - `notifications:dispatch {project_id}`
- Central analytics migration:
  - `central_notification_events`
- Unit tests for dedup and repository-level duplicate prevention.
- Module documentation at `docs/modules/notifications.md`.

### Changed
- `GenerateAlertsJob` now queues notification processing after alert generation.
- `AppServiceProvider` now binds notification repository and notification policy.

### Notes
- Notification system is queue-first and non-blocking.
- Deduplication guaranteed through resolver dedup + unique hash index.
