v1.5.0 Phase 5: outbreak digest mode (#76) #116
No reviewers
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 milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
rbrooks/WeatherBot!116
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/v1.5.0-phase5-digest"
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?
Per-subscription opt-in batching for high-activity days. Off by default (null
digest_threshold= today's behavior, byte-for-byte).ChannelLocationSub.digest_threshold(nullable int) +SentAlert.digest_pending(bool) — migration 0028.DIGEST_FLUSH_MINUTES(30) +DIGEST_WINDOW_MINUTES(60).(channel, location)sub has sentdigest_thresholdalerts within the rolling window, further advisory/watch alerts get their dedup record withdigest_pending=Truebut no immediate send/outbox enqueue.DIGEST_FLUSH_MINUTES): groups pending rows by(channel, location), builds a synthetic "Weather Alert Digest"NWSAlertsummarizing the batch (counts by event, highest severity), and dispatches it through the existing per-notifier send path — so all 9 notifiers render it with no new code. Clearsdigest_pendingatomically with akind="digest"ledger row (which the alert outbox never re-drives) to prevent double-send;skip_lockedselect; respects quiet hours; fail-soft per group.Testing (dev server)
ruff clean; 7 digest tests (incl.
test_warning_class_never_defers); bulk suite 746 passed; migration 0028 applied on a restored copy of the real dev DB (both columns present).Closes #76
🤖 Generated with Claude Code