Skip to content

Notifications App — Change Log

This log tracks software changes for this area.


Current status

Item Status Notes
Active development Open Notifications system recently modularized (services, tasks, providers)
Next release target TBA Stabilization + rollout across apps
Known risk Low Core flows stable, edge cases still being refined

Recent changes (newest first)

Date Type Summary Impact Reference
2026-04-14 Refactor Moved notification read logic into notifications.services.read Medium
2026-04-14 Refactor Moved notification mutation logic into notifications.services.actions Medium
2026-04-14 Refactor Extracted delivery logic into notifications.services.delivery Medium
2026-04-14 Refactor Extracted Expo receipt handling into notifications.services.receipts Medium
2026-04-14 Refactor Simplified Celery tasks to thin wrappers around services Medium
2026-04-14 Feature Added grouped (collapsed) notification feed with real pagination Medium
2026-04-14 Feature Introduced registry metadata endpoint for frontend consumption Low
2026-04-14 Feature Added push device lifecycle management (upsert, deactivate, ping) Medium
2026-04-14 Feature Implemented Expo push provider with batching and receipt reconciliation Medium
2026-04-14 Feature Added scheduled notifications via ScheduledNotification + task runner Medium
2026-04-14 Performance Introduced batched delivery processing with SELECT ... FOR UPDATE SKIP LOCKED High
2026-04-14 Performance Implemented chunked Expo push sending to respect provider limits Medium

Open items and status

ID Title Status Priority Owner Target Reference
NOTIFICATIONS-001 Add email provider support Open P2 Unassigned TBA
NOTIFICATIONS-002 Add FCM/APNS provider abstraction Open P2 Unassigned TBA
NOTIFICATIONS-003 Improve preference granularity (split large buckets) Open P2 Unassigned TBA
NOTIFICATIONS-004 Add per-user notification mute/snooze Open P3 Unassigned TBA
NOTIFICATIONS-005 Add delivery metrics and monitoring (success rate, retries) Open P1 Unassigned TBA
NOTIFICATIONS-006 Improve grouping UX (server-side grouping strategies) Open P2 Unassigned TBA
NOTIFICATIONS-007 Add bulk clear by group endpoint optimization Open P3 Unassigned TBA

Known bugs

ID Symptom Severity Status Workaround Reference
BUG-NOTIFICATIONS-001 Some Expo receipts may remain in "missing" state before eventual resolution Low Open Handled via retry + max attempts
BUG-NOTIFICATIONS-002 Push tokens may be reassigned across users due to global uniqueness constraint Medium Open Consider adding ownership validation
BUG-NOTIFICATIONS-003 Large grouped feeds may be slower under heavy load Medium Open Use flat mode or pagination tuning

Breaking changes and migrations

Date Change Action required Reference
2026-04-14 Services layer introduced; views and tasks refactored to use services Update imports and integration points if calling internal logic directly
2026-04-14 Registry-driven navigation replaces reliance on deep_link Ensure frontend uses route + params where available

Notes

  • The notifications system has been restructured into clear layers:
  • models (persistence)
  • services (business logic)
  • tasks (async orchestration)
  • providers (external integrations)
  • views (API surface)

  • The registry is now the central contract for:

  • notification types
  • templates
  • routing metadata
  • preferences

  • Future work will focus on:

  • additional delivery channels (email, SMS)
  • better observability (metrics, dashboards)
  • improved UX (grouping, preferences)
  • scalability improvements for large orgs