hub v0.74.0: allow local_api_endpoint_drift; R-77 docs + R-78/79/80

The allowlist entry is REQUIRED, not cosmetic: handleEvent 400s an unknown
event_type, so controller v0.173.0's new drift alert would be silently inert
without it. Shipped with the controller that emits it.

Docs:
- RUNBOOK-local-api-endpoint-drift.md — how to repair a drift, including the
  step everyone will want to skip (establish which value is CORRECT from what
  the agent is actually bound to, rather than assuming bootstrap.json wins) and
  what success looks like (SILENCE, not a "recovered" line, because a fresh
  controller's healthy first observation is not logged). Records both
  2026-07-26 repairs.
- ROADMAP: R-77 shipped; R-78 the local_api authority ruling, with the
  clobber-a-working-channel risk spelled out in BOTH directions so it is not
  resolved opportunistically; R-79 the whole-surface English-strings sweep;
  R-80 expected_backup_missed, flagged as likely outranking R-77 because 7.3
  days of stale backup materially exceeds the ~1.5-day channel outage, so the
  causal link the DIAG hedged on cannot be the whole story.
- Capability map: note against the drive-wizard row (every agent-backed
  capability rides this channel) that a silent drift class is now detected.
  NO row status flips — detection is not prevention.
This commit is contained in:
2026-07-26 09:14:40 +02:00
parent 9e94479449
commit 9cfa619ec3
6 changed files with 140 additions and 9 deletions
+15
View File
@@ -1,5 +1,20 @@
# Felhom Hub — Changelog
## v0.74.0 — allow `local_api_endpoint_drift` (controller v0.173.0 / R-77) (2026-07-26)
One line in `allowedEventTypes`. It is **not optional**: `handleEvent` 400s an unknown `event_type`
("Invalid event_type"), so the controller's new drift alert would have been **silently inert** without
it — the exact seam-wiring failure class this project has hit four times. Shipped with the controller
that emits it, not after.
Operator-only, `error` severity (drift never self-heals), and deliberately **not** an `agent_channel_*`
type: during the 2026-07-25 island-migration outage the generic "agent unreachable" event was the only
signal for 17.5 h and it hid a specific, fixable config fault. Naming the cause separately from the
symptom is the whole point. No customer notification toggle, matching the other `agent_channel_*` and
`host_*` operator events.
Source: `documentation/audits/DIAG-agent-channel-2026-07-26.md`.
## v0.73.2 — sync `hostInstallVersion` → 1.19.0 (R-50 island host-install) (2026-07-25)
`hostInstallVersion` (the script version the operator customer page's install-command generator