Release Notes — May 7, 2026
This release ships the complete In-App Notification System (Phase 7): a real-time in-app notification center, building on the team activity digest email (Phase 6) delivered in the same sprint.
Note: Phase 8 (Desktop Push Notifications via Web Push API / VAPID) was shipped in this release but subsequently removed on 2026-05-25 as part of the GDPR Sprint 5 cleanup (G-05 / D-11). The
PushSubscriptionmodel, VAPID infrastructure, and browser service worker were all removed. In-app real-time delivery via Socket.io (Phase 7) remains fully operational.
Phase 7 — In-App Notification System
All plans
A real-time notification center accessible from the bell icon (🔔) in the top navigation bar.
Features
- Unread badge — the bell icon shows a red counter badge for unread notifications
- Notification Center panel — click the bell to open a dropdown listing all notifications
- Unread / Read sections — notifications are grouped by read status; unread items appear first
- Mark All Read — one-click button to mark every notification as read at once
- Deep links — each notification links directly to the relevant task, project, or time entry
- Real-time updates — new notifications appear instantly via the live Socket.io connection; no page refresh needed
Notification types
| Type | Trigger |
|---|---|
| Task assigned | You were assigned to a task |
| Task deadline approaching | Task due date is within 3 days |
| Budget warning | Project budget reached 80% |
| Budget exceeded | Project budget was fully consumed |
| Timer alert | Timer has been running for 8+ hours |
| Team member joined | A new member accepted the workspace invite |
| Role changed | Your workspace role was updated |
Phase 8 — Desktop Push Notifications (removed 2026-05-25)
Removed: This feature was removed as part of GDPR Sprint 5 (2026-05-25). Web Push notifications relied on Google's FCM infrastructure (a US data processor), which did not align with CADENSA's EU-only data processing commitment. Real-time delivery via Socket.io (Phase 7, already shipped) continues to cover all in-app notification use cases without any third-party involvement.
Phase 6 — Team Activity Digest (shipped in same sprint)
All plans
A weekly email digest summarizing team activity per workspace, delivered every Monday morning. The digest includes:
- New members who joined the workspace
- Tasks assigned during the week
- Notable time-tracking milestones
- Budget alerts triggered
The digest respects existing email notification preferences and can be disabled from Settings → Notifications → Email.
Summary of changes
| Layer | Change |
|---|---|
Backend InAppNotification.model.ts | New Mongoose model — persists in-app notifications in unit DB |
Backend Notification.service.ts | create() — persists notification + delivers via Socket.io (emitToUser) |
Backend InAppNotification.model.ts | Persists in-app notifications in unit DB |
Backend database.ts | registerUnitModels() registers new model |
Frontend NotificationCenter.tsx | Bell icon with unread badge, notification list panel, mark all read |
Availability: All plans.
Phase 8 (Web Push) infrastructure (
PushSubscription.model.ts,push-subscriptions.routes.ts,web-pushpackage,public/sw.js,push.service.ts,usePushNotifications.ts, VAPID env vars) was removed on 2026-05-25 — see GDPR Sprint 5 release notes.