Notifications & alerts - dashboard + bid-invite expiration + reminders¶
| Stage | Estimated |
|---|---|
| Status | Deferred |
| Design status | In progress |
| Estimate | 1w (M) |
| Confidence | Medium |
| Linear | PIN-479 ↗ |
| Linear status | Done |
| Design | Design ↗ |
| Linear epic | Platform Foundation |
| Module | Settings & Admin ↗ |
Status check: deferred, but shipped work exists
This surface is marked deferred, yet Linear shows PIN-479 as Done. Confirm whether it actually shipped (move the status off deferred) or only the remaining scope is deferred. Flagged for reconciliation.
Priority: Medium · Route: /dashboard
Scope¶
In-app notification fan-out for workflow events across SOV billing, bid invites, RFIs, change orders, and submittals: each event creates a role-scoped notification row per recipient, with independent per-user read state and click-through to the source record. (Source: PIN-479.)
Acceptance criteria¶
- 17 notification types covered: SOV billing (7 stages), bid invite accepted/declined, RFI submitted/answered/closed, change order submitted/approved/rejected, submittal approved/returned
- One notification row created per target user, scoped by role (not a single shared feed)
- Read state tracked independently per recipient
- Clicking a notification navigates to the underlying record
- Notifications fire alongside existing email alerts, not instead of them
Conor's comments¶
Is this not the notifcation icon in top right?
Notes¶
Dashboard + email exist per QA; formalize expiration alerts + handoff
Open question for Conor¶
-