Skip to content

feat(alerts): alerting sections as real pages in the sidebar - #2426

Merged
Makisuo merged 36 commits into
mainfrom
ux/alerting-pages
Nov 10, 2026
Merged

Makisuo merged 36 commits into
mainfrom
ux/alerting-pages

Merge remote-tracking branch 'origin/main' into ux/alerting-pages

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

Confidence 10/10 · No issues found

🟢 Confidence 10/10 · safe to merge. Routing, redirects and the silence panel check out; the hub and rule scene tests plus editor/rule/lab files went unread here.
no findings · tests covered · risk medium

Each alerting section now lives at its own /alerts/<section> path with sidebar sub-items, and the new-silence form became a URL-held side panel. The redirect and permission paths I could check hold up; nothing to fix before merge.

  • urlToAppRoute parses AlertsSection and keeps /alerts/rules/<id> reachable; AlertRuleLegacy redirects old rule links
  • routeRedirect turns a legacy ?tab= into its section path, keeping the other params
  • followSilenceSheet syncs the dialog to ?sheet=silence, dropping the param for viewers without alerts:manage
  • matchSubItem/activeSubHrefOf pick the most specific sub-item, including alsoActive pages
What was checked
  • AlertsSection sits first in Route.oneOf, but detail paths still parse: pinned for /alerts/rules/<uuid>, /alerts/uptime/new, /alerts/slos/slo_1 (route.test.ts:113-129)
  • redirect.ts:130 strips tab and keeps filters; recursion ends because a tab-less /alerts returns Option.none()
  • activeSubHrefOf returns the owning sub's href, so alsoActive pages do not mark two links current (view-nav.ts:78)

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