Update the cross-repo host-report golden byte-identical with felhom-agent (host.cpu_temp_c). Document GET /host/metrics in doc 03 section 6 and define slice 9 in the section 9 roadmap. No hub code change / no version bump. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2.3 KiB
felhom.eu — task reports
Overwrite this file with a summary of the most recent task only (uniform with the other repos; not cumulative). The cumulative hub history lives in hub/CHANGELOG.md.
REPORT — Slice 9 (hub + docs): host metrics to the controller — cpu_temp_c wire field + docs (2026-06-10)
Type
Cross-repo wire-contract + documentation update for slice 9 (implementation: felhom-agent
v0.14.0 + felhom-controller v0.39.0). No hub code change, no hub version bump.
What changed (hub)
- Cross-repo host-report golden (
hub/internal/api/testdata/host-report.golden.json) gainedhost.cpu_temp_c: 47, kept byte-identical withfelhom-agent/internal/hub/testdata/host-report.golden.json(the duplicated-contract discipline; manual diff confirmed identical). No code change: the fullreport_jsonalready persists the field verbatim, and the hub's host parse-struct ignores the extra key — the golden-contract test (host_test.go) still passes. CPU temp on the operator dashboard is an optional later freebie. hub/CHANGELOG.mdrecords the contract update (no version bump).
What changed (doc 03 — host-agent)
- §6 — added
GET /host/metricsto the local-API surface: host-wide health (cpu%/mem/load/uptime/cpu_temp_c) + per-storage capacity for the customer's monitoring view. Reuses the slice-4 collector (no duplicate collection); host-wide, token-authed, fresh (not the 15-min hub snapshot); noted the one-customer-per-host assumption. - §9 slice table — defined + marked slice 9 (the roadmap previously jumped 8→10; this fills it), incl. the assumption + out-of-scope items (multi-tenant filtering, time-series history). Added a slice-9 entry to the doc changelog.
Why (the slice 9 thesis)
The de-privileged controller (slice 8C) sees only its own cgroup — it can't read the host. Slice 9 re-serves the agent's existing host + storage observation to the customer, plus the one new collector (CPU/chassis temp, graceful-null). On-ethos for a data-sovereignty product: the customer sees their own box's health.
Deferred / not built
Multi-tenant host-metric filtering (one-customer-per-host assumed); historical/time-series metric storage (this is a live snapshot view). No secrets committed.