Skip to content

feat(alerts): acknowledge incidents from the incident page and the inbox - #2288

Merged
Makisuo merged 16 commits into
feat/alert-ack-corefrom
feat/alert-ack-ui
Nov 6, 2026
Merged

Makisuo merged 16 commits into
feat/alert-ack-corefrom
feat/alert-ack-ui

Merge branch 'feat/alert-ack-core' into feat/alert-ack-ui

a8ee351
Select commit
Loading
Failed to load commit list.
Maple Review Bot / Maple / review succeeded Nov 6, 2026 in 1m 40s

Confidence 10/10 · No issues found

🟢 Confidence 10/10 · safe to merge. The delta since 9044aca is one exported counting helper, a badge swap, an Option rewrite and two new scene assertions; the wider ack flow was reviewed and preview-tested.
no findings · tests covered · risk medium · 2/2 new units observable

Adds acknowledge/unacknowledge to the incident page header and the inbox rows, plus an ack-derived timeline, subline and heading counts. The change is safe to merge; the part added since the last review only narrows the Inbox tab badge to unacknowledged incidents.

  • inboxTab renders an Acknowledge/Unacknowledge button per row, lifted over rowLink
  • unacknowledgedCount now drives the Inbox tab badge instead of the open-incident total
  • buildIncidentTimeline merges incident activity events and pins the live state last
  • acknowledgeAction adds a header button on the incident page, absent once resolved
What was checked
  • Option.flatMapNullishOr in logRow returns the same chatConnector value as the previous optional chain (view-routing.ts:459)
  • Acknowledge calls pass the branded AlertIncidentId to params.id, the same pattern the existing deleteDestination uses and the v2 params encode (shared/commands.ts:80)
  • CURRENT_STATE_KEYS matches the actual held and breaching entry keys, so the live state really does end the timeline (incident-timeline.ts:277,293,324)
Observability coverage: 2 of 2 changes observable
Change Kind Observable Evidence
Acknowledge/unacknowledge from the inbox and the incident page client yes Server span HttpV2AlertIncidents.acknowledge/.unacknowledge in apps/api/src/routes/v2/alert-incidents.http.ts:124,131
Incident activity history read client yes listEvents handler in the same file, span HttpV2AlertIncidents.*

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