docs: REPORT + CONTEXT + README for v0.90.0 channel health-check (live-validated, hub v0.20.0 allowlist)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Pg8ANF97SEeKYSN5Jxw3qJ
This commit is contained in:
2026-06-29 20:43:13 +02:00
parent a277b18981
commit 0f7ba7b665
3 changed files with 104 additions and 57 deletions
+13
View File
@@ -737,6 +737,19 @@ not just those with HDD data. Non-HDD apps can configure destination, method, an
> This replaced a per-call `agentapi.New(...)` that leaked one idle ESTABLISHED socket per call and
> exhausted the ephemeral source-port range to the agent's `:8443` after ~5 days (EADDRNOTAVAIL).
> Safe because `cfg.LocalAPI` is static per process (a config-apply triggers a graceful self-restart).
> - **(v0.90.0) Channel health-check — `internal/channelhealth`.** A ~60s scheduler job
> (`agent-channel-health`) probes the channel via `Server.ProbeAgentChannel` (the SAME memoized
> client + `GET /storage` — not a fresh client) and classifies failures into
> `up | down:<reason>` (pin_mismatch / unauthorized / unreachable / timeout / misconfigured /
> construction_error). Transient reasons (refused/timeout) are **debounced** (N≥2 consecutive)
> so a clean agent restart's ~1s blip doesn't page; pin/401/DNS/construction alert on the first
> down. On a transition it fires an English **operator-only** event
> (`Notifier.NotifyAgentChannelDown/Recovered`, hub 1h cooldown) and sets a Hungarian dashboard
> banner (`AlertManager.SetAgentChannelAlert`). The first observation seeds state silently. This is
> the controller half of the self-health story (the agent watches its own privileged capabilities;
> the controller watches its link to the agent). A construction error (`agentClient()` can't build
> — a latching config fault) is surfaced distinctly. Detection/surfacing only — it never touches the
> pin, transport, or gate.
> - The **`StoragePath` registry** (`settings.go`: `AddStoragePath`/default/schedulable/label) is unchanged.
> - **(v0.64.0) `AutoDiscoverStoragePaths` is now ADDITIVE** — it no longer bails when the registry is
> non-empty; instead it registers only deployed-app paths missing from the registry. It never removes