Create release observability and incident-response dashboard #41

Open
opened 2026-08-19 01:59:02 +00:00 by timmy · 1 comment
Owner

Parent epic: #7

Outcome

Give operators actionable health without surveilling users.

Acceptance criteria

  • Dashboard covers app/API/queue/model and privacy-safe failure classes.
  • Alerts have owners, thresholds, and runbook links.
  • A simulated worker outage produces one actionable alert and graceful manual fallback.

Dependencies

  • #19 — Instrument privacy-safe model health, latency, abstention, and failure metrics

Required evidence

  • Test or executable receipt attached to the issue/PR
  • Privacy/safety boundary checked where applicable
  • Clean checkout and relevant full suite pass

Delivery

Open a focused branch and PR with Closes #ISSUE. Do not include real medical images in issue comments or Git history.

Parent epic: #7 ## Outcome Give operators actionable health without surveilling users. ## Acceptance criteria - [ ] Dashboard covers app/API/queue/model and privacy-safe failure classes. - [ ] Alerts have owners, thresholds, and runbook links. - [ ] A simulated worker outage produces one actionable alert and graceful manual fallback. ## Dependencies - #19 — Instrument privacy-safe model health, latency, abstention, and failure metrics ## Required evidence - Test or executable receipt attached to the issue/PR - Privacy/safety boundary checked where applicable - Clean checkout and relevant full suite pass ## Delivery Open a focused branch and PR with `Closes #ISSUE`. Do not include real medical images in issue comments or Git history.
timmy added this to the M4 — Production Readiness & Release milestone 2026-08-19 01:59:02 +00:00
timmy added the
type/ops
priority/P1
area/release
labels 2026-08-19 01:59:02 +00:00
Member

Implemented in PR #60#60 (branch timmy/41-release-observability-dashboard, commit ad8c8a9).

Receipts:

  • Local operator dashboard over sanitized evidence v1 (app/api/queue/model boundaries, failure classes, bounded counters) — node scripts/release_dashboard.mjs --evidence <file>.
  • Alert inventory with owner/threshold/severity/runbook anchor per rule (worker.outage, queue.backlog, vision.degraded, app.unhealthy) in docs/RELEASE-OBSERVABILITY.md.
  • Simulated worker-outage drill executed end-to-end on a loopback fixture only: pre-drill 0 alerts → exactly one PAGE worker.outage alert naming owner release-operator, threshold 1, runbook link; manual fallback AVAILABLE (local journal); DRILL PASS exit 0.
  • Privacy boundary enforced mechanically by sanitizeEvidence(): session IDs, cookies/tokens, environment dumps, photo payloads/base64, image hashes, note text, emails are dropped or rejected without echo; hostile-payload tests included. No photos, stool records, session identifiers, or secrets in code, tests, docs, or history.
  • Gates: npm test 80/80 · staging-deploy tests 20/20 · sleek browser acceptance on this tree PASS · npm run check:syntax PASS · npm audit --audit-level=high 0 vulnerabilities · check:diff clean · secret/privacy scan across changed files PASS.
  • CI: Quality gates / quality (pull_request) success on commit ad8c8a9 (1m44s).

No live host was contacted or modified; nothing merged or deployed.

Implemented in PR #60 — https://forge.alexanderwhitestone.com/git/stackchain/timmy-talking-turd/pulls/60 (branch `timmy/41-release-observability-dashboard`, commit ad8c8a9). Receipts: - Local operator dashboard over sanitized evidence v1 (app/api/queue/model boundaries, failure classes, bounded counters) — `node scripts/release_dashboard.mjs --evidence <file>`. - Alert inventory with owner/threshold/severity/runbook anchor per rule (`worker.outage`, `queue.backlog`, `vision.degraded`, `app.unhealthy`) in docs/RELEASE-OBSERVABILITY.md. - Simulated worker-outage drill executed end-to-end on a loopback fixture only: pre-drill 0 alerts → exactly one PAGE worker.outage alert naming owner release-operator, threshold 1, runbook link; manual fallback AVAILABLE (local journal); DRILL PASS exit 0. - Privacy boundary enforced mechanically by sanitizeEvidence(): session IDs, cookies/tokens, environment dumps, photo payloads/base64, image hashes, note text, emails are dropped or rejected without echo; hostile-payload tests included. No photos, stool records, session identifiers, or secrets in code, tests, docs, or history. - Gates: npm test 80/80 · staging-deploy tests 20/20 · sleek browser acceptance on this tree PASS · npm run check:syntax PASS · npm audit --audit-level=high 0 vulnerabilities · check:diff clean · secret/privacy scan across changed files PASS. - CI: Quality gates / quality (pull_request) success on commit ad8c8a9 (1m44s). No live host was contacted or modified; nothing merged or deployed.
Sign in to join this conversation.
No project
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: stackchain/timmy-talking-turd#41
No description provided.