Contract canary banner: amber alert with breaks-feature details + green chip (v1.24.0) #48

Merged
ClaudiuSchuster merged 1 commit from oss-oo/zdo-contract-banner-nkyu20260925 into main 2026-09-25 22:48:10 +00:00
Owner

Closes the observatory half of the Pinky U canary round (dispatcher half: zcode-dispatch v1.0.0, PR #30).

Reads the canary report (~/.config/zcode-dispatch/contract-status.json) in the EXISTING /api/sessions poll — no extra requests, no new endpoint — and renders:

  • amber banner (subtle glow, above Running) when assumptions are broken: count, CLI version + old → new drift at detection time; click expands the per-assumption list — each row names the product feature it breaks plus the probe detail; click again to collapse (expansion state survives the 3 s re-renders);
  • tiny mint chip (🧪 canary ✓ N) in the meta row when green (tooltip: mode, run time, CLI version);
  • nothing at all when the report is absent (older dispatcher / never run — graceful degrade).

Backend: contract_status() trims the report (failed list with breaks annotations, detail capped at 220 chars, non-dict entries skipped) and returns None on missing/corrupt input. Four unit tests cover broken/green/absent/garbage paths. Pinned Super-Linter slim v8.7.0 EXIT 0 (all six lanes), unittest 35/35 green.

Closes the observatory half of the Pinky U canary round (dispatcher half: zcode-dispatch v1.0.0, PR #30). Reads the canary report (`~/.config/zcode-dispatch/contract-status.json`) in the EXISTING `/api/sessions` poll — no extra requests, no new endpoint — and renders: - **amber banner** (subtle glow, above Running) when assumptions are broken: count, CLI version + old → new drift at detection time; click expands the per-assumption list — each row names the product feature it breaks plus the probe detail; click again to collapse (expansion state survives the 3 s re-renders); - **tiny mint chip** (`🧪 canary ✓ N`) in the meta row when green (tooltip: mode, run time, CLI version); - **nothing at all** when the report is absent (older dispatcher / never run — graceful degrade). Backend: `contract_status()` trims the report (failed list with breaks annotations, detail capped at 220 chars, non-dict entries skipped) and returns None on missing/corrupt input. Four unit tests cover broken/green/absent/garbage paths. Pinned Super-Linter slim v8.7.0 EXIT 0 (all six lanes), unittest 35/35 green.
Contract canary banner: amber alert with breaks-feature details + green chip (v1.24.0)
All checks were successful
Checks / Functional checks (pull_request) Successful in 15s
8cddfee224
Reads zcode-dispatch's contract-status.json in the existing /api/sessions
poll (contract_status(): trimmed payload, None when absent — older
dispatchers/never run degrade to no banner). Dashboard: amber full-width
banner while broken (count, CLI version + old→new drift, click to expand
the per-assumption list naming the broken product feature + probe detail;
expansion survives re-renders), tiny mint chip in the meta row when
green, nothing when no report. Unit tests for the payload trim/degrade
paths.
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
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
OSS-Singularity/zcode-dispatch-observatory!48
No description provided.