Skip to content

feat(overview): give analysts an Overview that says whether the product is working - #2555

Merged
Makisuo merged 10 commits into
observer/read-only-pagesfrom
observer/home
Nov 13, 2026
Merged

Makisuo merged 10 commits into
observer/read-only-pagesfrom
observer/home

feat(investigations): let an analyst follow an investigation without …

a3f0e44
Select commit
Loading
Failed to load commit list.
Maple Review Bot / Maple / review succeeded Nov 13, 2026 in 2m 51s

Confidence 10/10 · No issues found

🟢 Confidence 10/10 · safe to merge. Verdict derivation is unit-pinned and every read state (clear, attention, empty, loading, failed+retry) has a scene test; only the tail of the new scene test went unread.
no findings · tests covered · risk medium

An analyst now gets a verdict page on Overview: one sentence with the counts behind it, four linked panels and a failure slot per read, gated on the audience the shell already reads. Web-only and contained; safe to merge.

  • verdictOf derives clear, attention, empty, loading and per-read-failed states from three slots
  • initWith/revive require context.audience; a late-arriving role mounts and starts the reads
  • pageTitle gains wrap, and the SLO burning rule moves to alerts/shared/slo-derive.ts
  • Alerts hub and investigation detail drop their write controls for an analyst
What was checked
  • A failed read is never counted healthy: verdictOf names it in unchecked and the support line (derive.ts:135), pinned by the failed-state scene test
  • Try again and Reload really re-read: keyedStep's keepFailure blocks only Load, while Refresh re-requests a failed slot (page/kit/keyed-step.ts:31)
  • The comma-joined fingerprint_hash list is the errors hub's own idiom (page/errors/hub/derive.ts:63), so no new query surface

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