From f4a603f2e58be8589a3b83fc6aa9618158633ab4 Mon Sep 17 00:00:00 2001 From: kisfenyo Date: Mon, 29 Jun 2026 22:02:39 +0200 Subject: [PATCH] context: v0.91.0 F2 born-down alerting + the prevention slice (agent v0.46.0, hub v0.21.0) Co-Authored-By: Claude Opus 4.8 (1M context) Claude-Session: https://claude.ai/code/session_01Pg8ANF97SEeKYSN5Jxw3qJ --- CONTEXT.md | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/CONTEXT.md b/CONTEXT.md index 9d00266..2c904c1 100644 --- a/CONTEXT.md +++ b/CONTEXT.md @@ -7,7 +7,22 @@ > > Ask Claude Code: "Please update CONTEXT.md with what we did today" -Last updated: 2026-06-29 (v0.90.0 — controller→agent channel health-check) +Last updated: 2026-06-29 (v0.91.0 — F2: alert on born/persistent-down channel) + +> **2026-06-29 — v0.91.0: F2 (channel-health born-down alerting).** The v0.90.0 channel-health check +> alerted only on a live up→down transition; a channel broken at **startup/reseed** (e.g. the +> controller boots right after a leaf regen → first observation is `pin_mismatch`) was dashboard-only, +> no operator email — forever. Fixed with an `alerted` flag in `channelhealth/checker.go`: a confirmed +> down coming from up/unseeded OR a reason-change re-arms then alerts once; steady-down no dup; recovery +> re-arms; debounce intact (transient born-down still N≥2; healthy first-obs silent). Live-validated: +> controller restarted into a regenerated-leaf channel → `[channel] DOWN (unseeded->down:pin_mismatch)` +> + `Event pushed: agent_channel_pin_mismatch` (~60s) — the capstone's missing half. Companions: hub +> v0.21.0 (same fix for HostCapabilityChecker/HostStalenessChecker — seed only healthy, born-degraded/ +> stale emits on first Check, cooldown dedups), agent v0.46.0 (EnsureLeaf loud-WARNs a REGENERATED leaf +> + host-install `--preserve-state-from`/populated-host guard = the prevention for the original incident +> class). Self-health story now complete: agent watches its capabilities, controller watches its link, +> detection works at startup, and a reinstall can preserve the leaf. Backlog: F1 swap-rollback +> RestartCount hardening; full live reinstall (supervised); hub-side leaf-fp fleet comparison. > **2026-06-29 — v0.90.0: controller→agent channel health-check (self-health slice).** A ~60s > scheduler job (`internal/channelhealth`) probes the local-API channel via the PRODUCTION memoized