reminderIntervalMinutes was stored but never read, escalationLevel was
always 0 and nothing raised ESCALATED or REMINDER.
- Reminders: an open, unacknowledged, unsnoozed, unmuted alert sends a
REMINDER through the normal router every reminderIntervalMinutes of
its type (CRITICAL defaults to 60, explicit 0 turns it off).
- Escalation policies (design table 14): alerts_escalation_policy and
alerts_escalation_step (step list on the policy record), linked from
alert types and groups (type wins). A hidden scheduled job notifies
each step's USER, TEAM or CHANNEL target as ESCALATED when the alert
reaches the step's age, records an ESCALATED event and the level,
then repeats the last step every repeatAfterMinutes up to maxRepeats.
Acknowledge, snooze, resolve and mute stop both; a reopen resets.
Idempotent within a minute.
- EXPIRED stays reserved and is no longer offered as a resolution.
Changesets 23-26 (21-22 are taken by the team-sources PR).
Refs #27
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>