Quiet hours, digest hour and pause were editable in My Alert Settings
but never applied, and DIGEST_HOURLY / DIGEST_DAILY subscriptions sent
immediately.
- The router suppresses push deliveries (email, lists, webhooks) to a
user during their quiet hours (time zone, windows across midnight,
quiet days; severities at or above quietBypassSeverity, default
CRITICAL, break through) as QUIET_HOURS, and while paused as
USER_PAUSED. The in-app bell is never suppressed by either. A channel
below its minimum severity is now logged as MIN_SEVERITY.
- Digest subscriptions queue DIGEST deliveries per user/channel and
window. The hidden hourly alertsSendDigests job sends one grouped
message per window (hourly, or daily at the user's digest hour in
their time zone) through the existing email path or one in-app
notification, rechecks visibility, skips empty digests and never
sends a window twice. Failed or oversized windows stay visible.
- Changeset 27 adds the durable digest dispatch columns.
Refs #27
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>