hub: accept controller agent_channel_* events (channel-health relay) v0.20.0

The controller v0.90.0 channel-health checker pushes agent_channel_* events to /api/v1/event;
the allowedEventTypes allowlist rejected them (HTTP 400). Added the 8 types (operator-only).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EPZ4GJ8L5Jqf8UiPwbn1kt
This commit is contained in:
2026-06-29 20:37:24 +02:00
parent 0d470b1e05
commit 121405772f
2 changed files with 18 additions and 0 deletions
+9
View File
@@ -1,5 +1,14 @@
# Felhom Hub — Changelog
## v0.20.0 — Accept controller `agent_channel_*` events (channel-health relay) (2026-06-29)
Companion to felhom-controller v0.90.0's controller→agent channel health-check. The controller pushes
classified `agent_channel_*` events to `/api/v1/event`, but the handler's `allowedEventTypes`
allowlist rejected them (HTTP 400). Added the 8 types (`pin_mismatch`, `unauthorized`, `unreachable`,
`timeout`, `misconfigured`, `construction_error`, `unknown`, `recovered`) so the operator relay works.
These are **operator-only** (not customer notification toggles, same as the host_* events); the
existing dispatcher routes them generically (no template change). Version `0.19.0 → 0.20.0`.
## v0.19.0 — Agent capability-degraded operator alert (HostCapabilityChecker) (2026-06-29)
Companion to felhom-agent v0.44.0's privileged-capability self-probe: the agent now rides a
+9
View File
@@ -1078,6 +1078,15 @@ var allowedEventTypes = map[string]bool{
"app_removed": true,
"disaster_recovery_started": true,
"disaster_recovery_completed": true,
// Controller→agent channel health (controller v0.90.0) — operator-only (not customer toggles)
"agent_channel_pin_mismatch": true,
"agent_channel_unauthorized": true,
"agent_channel_unreachable": true,
"agent_channel_timeout": true,
"agent_channel_misconfigured": true,
"agent_channel_construction_error": true,
"agent_channel_unknown": true,
"agent_channel_recovered": true,
// Hub-generated events
"node_stale": true,
"node_down": true,