Skip to content

feat(web): maintenance windows in the alerts hub - #2345

Merged
Makisuo merged 10 commits into
mainfrom
feat/alerts-maintenance-windows-ui
Nov 7, 2026
Merged

Makisuo merged 10 commits into
mainfrom
feat/alerts-maintenance-windows-ui

fix(alerts): truncate the window name in a silence's Managed by badge

ea1b118
Select commit
Loading
Failed to load commit list.
Maple Review Bot / Maple / review succeeded Nov 7, 2026 in 3m 43s

Confidence 10/10 · No issues found

🟢 Confidence 10/10 · safe to merge. Paging, public-id encoding and the changed-fields diff all check out, and each main flow is pinned by the new web, API and backend tests.
no findings · tests covered · risk medium

Adds a Maintenance tab, create/edit dialog and occurrence links for maintenance windows, plus a maintenance_window_id filter on GET /v2/alerts/silences. Self-contained, well tested, and the earlier badge-overflow defect is fixed here; safe to merge.

  • Maintenance tab lists windows with schedule, coverage and next occurrence
  • maintenance-dialog creates windows and PATCHes only the fields an edit changed
  • GET /v2/alerts/silences filters by maintenance_window_id in SQL, scoped to the org
  • New rowIcon in packages/views; on-call and chains rows reuse it

Fixed since the last review

  • ✅ F6 · Managed by ${windowName} badge never truncates, so a long window name overflows the row
What was checked
  • PublicId decodes a raw UUID (packages/domain/src/http/v2/public-id.ts:211), so listWindowSilences sending the branded id is accepted
  • readAllPages stops on has_more false or MAX_LIST_PAGES, so no unbounded read (shared/maintenance-windows.ts:29)
  • Extracted matcherFields keeps the silence dialog's ids, labels and hint (silence-dialog/view.ts:52), and the dialog still gates input while saving

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