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 (d) of the #1254 design (note: doc/2026-11-01T03-54-00Z_design_pwa_push_notifications.md, PR #3314; epic #1184). Rides with slice (c) engine.
A /notifications page in the aggregator: per-class subscription toggles, quiet-hours window editing, this device's subscription state, and a send-test button per class. Plus the deep-link acceptance from design §3 wired as tests: a test notification for each class lands on that item's triage-capable view (the same URL its dashboard card links to), where the item's actions complete a triage round-trip; the only list-shaped landing is the digest case (attention view filtered to the digest refs). Never the origin root.
Acceptance:
Toggling a class / editing quiet hours on the page changes the stored subscription and the next engine decision reflects it
Send-test for each class lands per the deep-link contract above (verified on mobile viewport)
Page is reachable from the dashboard nav and renders on the tailnet origin
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
Rides with slice (c), as filed. The page's toggles/quiet-hours edits must change the stored subscription the feat(aggregator): notification engine — class triggers, dedupe, quiet hours, escalation (#1254 slice c) #3317 engine reads, and the send-test/deep-link acceptance can only be verified once the engine can send per class. Implementing the page before the engine's subscription model settles risks building the storage shape twice.
No Drew decision is blocked here: the acceptance criteria on this issue are complete as filed (stored-subscription effect on next engine decision, mobile-viewport send-test landing, dashboard nav reachability on the tailnet origin).
This triage completes as triaged; the implementation follows the #3317 engine task in the queue.
Activity
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
dezren39 commentedon Nov 3, 2026
agent-note:v1
state: triaged
task: task 8236 (triage, repo-health-code-pilot, lane code-l)
worker: repo-worker-code
issue: #3318
Triage findings — #3318 (slice d of #1254) at current main
Verdict: still live, not implemented. No hard-stop labels. Design PR #3314 merged; parent #1254 closed; epic #1184 open.
Evidence (fresh
ghchecks this run):/notificationspage/route in the aggregator at current main — the preferences page does not exist yet.pm-stack/aggregator/src/alerts.ts, PR feat(aggregator): alert throat — sentinel intake, Supabase ledger, Web Push delivery + ack (#3676) #3680/fix(aggregator): alerts push UX — permission flow, quiet-hours off, test button, primary nav #3707) rather than a new delivery path. Much of slice (b)'s delivery surface already landed through that throat; any subscription-store remainder stays with feat(aggregator): Web Push plumbing — VAPID, subscription store + API, service worker (#1254 slice b) #3316.Ordering / blockers for slice (d):
This triage completes as
triaged; the implementation follows the #3317 engine task in the queue.