Skip to content

feat(alerts): full-page escalation chain editor - #2436

Merged
Makisuo merged 55 commits into
mainfrom
ux/escalation-editor
Nov 10, 2026
Merged

Makisuo merged 55 commits into
mainfrom
ux/escalation-editor

fix(alerts): chain delete confirm speaks of one rule in the singular;…

0c18b56
Select commit
Loading
Failed to load commit list.
Maple Review Bot / Maple / review succeeded Nov 10, 2026 in 8m 25s

Confidence 8/10 · No issues found

🟢 Confidence 8/10 · likely safe to merge. Held at 8 because 2 reviewed files were not read.
no findings · tests covered · risk medium · 2 files not read · 1 fix not yet re-checked against the whole diff

Moves escalation chains from a dialog to a full page (/alerts/escalation-chains/new and /:chainId) with inline target chips, per-step menus, a delete confirm shared with the hub and an unsaved-changes guard. Both open findings are fixed and nothing new blocks the merge. The open McpQueryError issues come from the MCP query registry in apps/ai (registry.js, withTableListOnUnknownTable), not the page registry this diff touches, so they are neither fixed nor worsened here; the deleted dialog's view went only partly read.

  • AlertsEscalationChain/...New routes replace the chain dialog; hub links and the rule editor's "Create a chain" now navigate to the page
  • chainDeleteConfirm lists the rules that start a chain and holds Delete while any remains
  • pickChips and chainConnector add inline chips and the step-to-step "+" to the page kit
  • isBlockingNavigation/blockedNavigation guard unsaved edits; viewers without alerts:manage get read-only

Fixed since the last review

  • ✅ F4 · Delete confirm says "These rules" for a chain one rule starts
  • ✅ F5 · Notes field has no test: ChangedDescription is never driven

Production impact

Open errors in the changed files (2)
Issue Service Occurrences File
@maple/mcp/errors/McpQueryError (2 issues) maple-chat 6 apps/web/src/page/registry.ts
@maple/mcp/errors/McpQueryError (7 issues) maple-ai 21 apps/web/src/page/registry.ts

After this merges, Maple checks whether they stop.

What was checked
  • A chain deleted elsewhere reads resourceNotFound with a way back, not a retry loop (view.ts:34)
  • Delete refused with CHAIN_IN_USE_CODE re-reads the chain and keeps the typed form (update.ts:377)
  • Rule names are unique per org, so h.Key(ruleName) in the confirm cannot collide (db/src/tables/alerts.ts:132)
Files not reviewed (2)

The review ended before it read these diffs, so nothing above vouches for them.

  • apps/web/src/page/alerts/escalation-dialog/dialog.scene.test.ts
  • apps/web/src/page/alerts/escalation-dialog/dialog.test.ts

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