Acknowledgement + re-notify (escalation) for warnings #81
Labels
No labels
area:ai
area:ci-cd
area:notifications
area:observability
area:public-pages
backlog
bug
duplicate
enhancement
help wanted
invalid
question
type:decision
type:feature
type:infra
type:maintenance
type:security
v1.0.1
v1.1.0
v1.2.0
v1.3.0
v2.0.0
wontfix
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
rbrooks/WeatherBot#81
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Generalize what Pushover priority-2 already does — for life-threatening warnings (Tornado, Flash Flood Emergency), keep re-sending on an interval until someone acknowledges via a link/reaction. Missed because the MVP was deliberately fire-and-forget. Effort M, value Medium-High. Dependency: only makes sense after the delivery-outbox work (F-11) gives dispatch a retry/state spine — otherwise there's nowhere to track "acked."
Filed from the 2026-07-17 codebase audit (
docs/.internal/report-2026-07-17.md), finding I-11.Done in #102 (merged), building on the #50 outbox. Ack + escalation fields on the dashboard
SentAlertrow (migration 0023);POST /api/alerts/{id}/ack(any viewer, CSRF) + a dashboard "Acknowledge" button. A scheduler job re-notifies active, unacknowledged, warning-class alerts everyESCALATION_INTERVAL_MINUTESup toESCALATION_MAX_COUNT, reusing the delivery outbox withkind="escalation"(excluded from the alert-retry worker so a reminder and a retry can't both fire); bounds only advance on a successful send, and acknowledging/clearing/expiry/snooze stops it. Opt-in viaESCALATION_ENABLED(default off, since re-notifying can be noisy). One flagged UX follow-up: acking a grouped multi-location dashboard card acks the representative location's lifecycle, not every location sharing thenws_alert_id.