Context
The Figentra OS notifications package is a stub. The owner wants a full enterprise package from day one, not a thin channel wrapper. The Pro list first put the SMS, WhatsApp and push drivers and the template editor in Pro. The owner then moved every channel to free and kept only operator tooling in Pro (0077). The detailed design is a spec-kit spec,specs/001-notifications/spec.md, drafted separately (PR #14). This page records the scope only.
Decision
@stackra/notificationsis written fresh as a full engine: templates, digests, quiet hours, delivery tracking with retries, and per-recipient preferences.- Every channel is free: email (Resend and SMTP drivers, 0035), SMS, WhatsApp, push and in-app.
- Pro adds operator tooling only: a visual template editor, a delivery analytics dashboard and multi-provider failover.
- Delivery runs on the messaging layer (0078): sends are queue jobs, and in-app delivery uses realtime.
- The design is the notifications spec,
specs/001-notifications/spec.md. This ADR does not restate it. Where the two disagree, the spec is corrected or this ADR is superseded.
Consequences
- Products get a complete notification system without a Pro licence. Pro value is in operations, not in reach.
- A large package to build and maintain, with a driver for each channel provider and a conformance suite (0076). Channels that need a hosted provider (SMS, WhatsApp, push) need an on-prem path or a clear “unavailable when air-gapped” contract, settled in the spec.
Enforcement
Planned: a channel-driver conformance suite in the package’s__tests__, and the Impact questionnaire of the notifications spec. Nothing checks this today.
Supersedes and sources
Supersedes: none. Sources: owner decisions in chat, 2026-10-19 (Round 6 item 18; Round 8 C1 and the final C1 decision). Design:specs/001-notifications/spec.md on branch spec/notifications (PR #14, draft).