You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Implementation slice (e) of the #1254 design (note: doc/2026-11-01T03-54-00Z_design_pwa_push_notifications.md, PR #3314; epic #1184). Follows slice (c) (needs real sends in notifications.jsonl).
Weekly roll-up on /notifications from the engine send log + acted-on detection (item leaves the needs-drew tier, or Drew comments/acts via the dashboard stores): per class — sent, acted-on within 24h, ratio, rolling 4 weeks. A class under 10% acted-on over the rolling window is shown as a default-off proposal on the page. Proposals only: default changes are Drew's call (design Q1) and never automatic.
Acceptance:
Roll-up matches a hand-checked week of notifications.jsonl
Acted-on attribution is documented on the page (what counts, what cannot be attributed)
A sub-10% class renders as a proposal; no setting changes without Drew acting
Design #3702 Phase 3 (audit task 5613, 2026-11-03) has stated the alert throat's truth contract in the code — pm-stack/aggregator/src/alerts.ts module header (PR #4977) — and closed the audit on #3702. What this means for the sent-vs-acted-on roll-up:
Measurement of the throat's truthfulness (delivered-but-not-sent) should now be zero by construction — if a roll-up ever sees a delivered/escalated event with no corresponding sent row, that is a contract break worth flagging on the ledger.
agent-note:v1
state: triaged (coverage pass)
Coverage pass 2026-11-03: reviewed in the fleet-wide per-issue pass (drift / overlap / already-handled / stale / blockers / ordering). Verdict: still live; queued in repo-health-code-pilot as triage at priority 40 (priority/normal). If this is already handled at current main, the triage closes it with evidence; if it needs splitting, the triage files the split.
Found via: coverage pass 2026-11-03
Expectation: met — full aggregator suite 1444 pass / 0 fail (incl. new test/notifications.test.ts); Codex review completed with no findings; tsc shows only the two pre-existing main errors.
Activity
dezren39 commentedon Nov 3, 2026
🤖 Agent note · consumer contract now stated
Design #3702 Phase 3 (audit task 5613, 2026-11-03) has stated the alert throat's truth contract in the code —
pm-stack/aggregator/src/alerts.tsmodule header (PR #4977) — and closed the audit on #3702. What this means for the sent-vs-acted-on roll-up:runAlertTickonly marks delivered/escalated whensummary.sent > 0, aggregator(alerts): runAlertTick marks incidents delivered when every push send failed — critical incidents are silently lost, never retried #3685/PR fix(aggregator): retry failed incident pushes (#3685) #3690).goneoutcomes are not sends;suppressed-quietandsuppressed-dedupeare ledger outcomes, not deliveries. A roll-up should countnotification_sendsoutcome = 'sent'rows (or thedelivered/escalatedevents), neverdelivered_atalone as a proxy for attempts.inQuietHoursonmergeQuiet-validated prefs (aggregator(alerts): mergeQuiet accepts out-of-range times (99:99, 24:60) — a malformed quiet window is silently reinterpreted instead of falling back to the default #3686) is the only clock; a suppressed row is a decision, not a failure, and belongs in a separate bucket fromerror.delivered/escalatedevent with no correspondingsentrow, that is a contract break worth flagging on the ledger.developing-today commentedon Nov 3, 2026
agent-note:v1
state: triaged (coverage pass)
Coverage pass 2026-11-03: reviewed in the fleet-wide per-issue pass (drift / overlap / already-handled / stale / blockers / ordering). Verdict: still live; queued in repo-health-code-pilot as triage at priority 40 (priority/normal). If this is already handled at current main, the triage closes it with evidence; if it needs splitting, the triage files the split.
Found via: coverage pass 2026-11-03
6 remaining items
dezren39 commentedon Nov 3, 2026
🤖 Agent note · picked up
direct; implementing the read-only /notifications page from the alerts.notification_sends ledger in a laptop worktree on branch queue/8865-3319-notifications-rollup.feat(aggregator): /notifications weekly sent-vs-acted roll-up (#3319) (…
dezren39 commentedon Nov 3, 2026
🤖 Agent note · done