Skip to content

feat(web): silence alerts from the hub, a rule or an incident - #2292

Merged
Makisuo merged 60 commits into
mainfrom
feat/alert-silences-ui
Nov 6, 2026
Merged

Makisuo merged 60 commits into
mainfrom
feat/alert-silences-ui

fix(web): badges see scheduled silences and the rule page clock ticks

dc49d67
Select commit
Loading
Failed to load commit list.
Maple Review Bot / Maple / review succeeded Nov 6, 2026 in 3m 14s

Confidence 9/10 · No issues found

🟢 Confidence 9/10 · safe to merge. Only the four earlier info-level defects remain open; the group label at incident/update.ts:104 is the one that misstates a silence's scope.
4 notes · tests covered · risk medium · 0/1 new units observable −1

Adds a Silences tab to the alerts hub plus a Silence action, badge and shared dialog on the rule and incident pages. The client mirrors the server's matching rules; four earlier info-level defects are still present and no new defects were found.

  • listSilences/activeSilenceFor in shared/silences.ts read active, scheduled and ended silences and re-derive status from the window
  • SilenceDialog submodel computes 1h/4h/next-09:00/custom ends and saves through createSilence
  • Hub Silences tab lists and ends silences, gated on alerts:manage
  • Rule and incident headers show a silence badge and a Silence action scoped to the incident's group

Still open from earlier reviews

Fixed since the last review

  • ✅ F7 · A morning silence saved after 09:00 lands a day later than the label says
What was checked
  • matchersForRule mirrors the server's scopedServices/scopedEnvironments in alert-silences.ts:161, so a group silence never hides another service
  • morning rolls a month end and a DST change correctly: Date.UTC(year, month-1, 32) overflows in zonedPartsToEpochMs
  • endAlertSilence collapses a scheduled window (AlertSilencesService.ts:311), so the "Silence cancelled" toast matches the returned silence
Observability coverage: 0 of 1 changes observable
Change Kind Observable Evidence
alert silence list/create/end calls from the web app outbound HTTP no goes through the existing MapleApiV2Client that every alerts page read already uses; the diff adds no span code

dc49d67 · Reply "won't fix" to dismiss a finding, or mention @maple-review-bot to ask about one.