--- id: NL-PLAN-5E808493 type: plan title: Deliver notification surfaces and lifecycle spec: NL-SPEC-C49F734E status: approved --- # Deliver notification surfaces and lifecycle 1. **Notification identity** Introduce ID-keyed replacement preserving read state and row order. Cover it through the service self-test. 2. **Toast lifecycle** Track active toast snapshots separately from history. Define eligibility, expiry, transient handling, critical behavior, reference cleanup, and dismissal. Expose active toasts additively through state and IPC. 3. **Shared card** Provide full and compact modes with icon resolution, images, dismissal, actions, and advertised reply. 4. **Popup surface** Render grouped, scrollable full cards with lowercase notification controls. Remove debug labels, drag handling, and masked action rails. 5. **Toast surface** Render compact cards in a non-focus-stealing primary-screen overlay. Preserve independent lifetimes across model rebuilds and sticky critical behavior. 6. **Compositor route** Bind the reserved shortcut to toast dismissal and verify the IPC target end to end. 7. **Service cleanup** Remove drag IPC and telemetry only after proving no live consumers remain. 8. **Verification** Run isolated and real-notification checks covering replacement, transient handling, expiry, DND, critical persistence, actions, images, scrolling, and shortcuts. Verify both card modes and inspect logs after cache-clean restarts.