docs: felhom.eu REPORT (HostLeafChecker) + hub README + self-health arc complete (spike doc)

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 23:32:12 +02:00
parent c37658ebb0
commit f4d88c1ff4
3 changed files with 64 additions and 38 deletions
@@ -111,6 +111,22 @@ logged `transient down (unreachable, 1/2) — suppressed` then `agent channel DO
`allowedEventTypes` allowlist rejected the controller-pushed `agent_channel_*` events (HTTP 400) —
fixed in **hub v0.20.0**. See `felhom-controller/REPORT.md` + CHANGELOG v0.90.0.
## Self-health arc COMPLETE (2026-06-29)
This channel-check is one of three independent angles on the original silent-multi-day-outage incident
class, all now shipped + live-validated:
1. **agent** watches its own privileged capabilities (v0.44.0 + the build-time sudoers gate).
2. **controller** watches its link to the agent — this channel-health check (v0.90.0) + F2 born-down
alerting (v0.91.0).
3. **hub** proactively watches every agent's served local-API **leaf fingerprint** fleet-wide
(agent v0.48.0 reports it; hub v0.22.x `HostLeafChecker` → `host_leaf_changed`), independent of any
controller. Live: a leaf regen raised `host_leaf_changed` (`82078fab…→60b5974d…`) AND the controller
`agent_channel_pin_mismatch` — complementary detection.
Prevention also shipped: agent v0.46.0 loud-WARNs a regenerated leaf + `felhom-host-install.sh`
`--preserve-state-from`/populated-host guard. The original incident is now both prevented and caught
from three angles. (Remaining future enhancement: the served-fp-vs-pinned-fp authoritative cross-check.)
## Teardown — confirmed
Throwaway `channelspike_test.go` removed (build-server working tree clean — `git status` shows it