Files
felhom-agent/REPORT.md
T

2.3 KiB

REPORT — agent v0.82.0: local-API version channel (X-Felhom-Agent-Version) — DEPLOYED

Date: 2026-07-11 · Class: implementation (agent slice of the NAS/coupling backlog-clear task, Part B). Baseline v0.81.0 (1e60e88) → v0.82.0 (fa9c7fe), live on felhom-pve. Pairs with controller v0.115.0 (version-aware Supports) + hub v0.45.0.

What shipped

  • X-Felhom-Agent-Version on EVERY local-API response (localapi/server.go: the mux is wrapped so the header is set on all routes + all statuses, INCLUDING auth failures and 404s — the controller learns the agent version passively from ordinary traffic). Value = main.version via the new localapi.Options.AgentVersion. No new routes, no envelope changes, no sudoers changes.
  • The controller (v0.115.0) reads it and capability-gates by version comparison; header-less (≤0.81.0) agents keep working — the controller falls back to the v0.114.0 route probe unchanged.

Tests + red-proof

TestVersionHeader_OnEveryResponse (authed / unauthed / 404 all carry the header) + TestVersionHeader_OmittedWhenUnset. Red-proof: dropping the Handler() wrap (return the bare mux) → every row fails with an empty header (observed: X-Felhom-Agent-Version = "", want "9.9.9-test"), reverted → green. Full go build && go vet && go test ./... PASS (the known TestGenerateRecoveryCode wordlist flake did not recur this run).

Deployed + verified

felhom-pve: .bak-0.81.0 kept → install -m0755 → restart; felhom-agent --version → 0.82.0; clean start journal (enrolled drive re-bound, local-api listening). Wire proof: an authed GET /storage to the live agent returns x-felhom-agent-version: 0.82.0. NOT published — demo-deploy only; Peti stays 0.81.0 (the live probe-fallback path). Hub now shows demo agent 0.82.0, Peti 0.81.0.

Observations (documented, NOT acted on)

  • Q1c FAIL surfaced during this task's Part E (supervised, agent 0.82.0 live): a NAS automount trigger does NOT survive a guest reboot — the guest sees an empty dir; the agent has no network-mount reassert on guest reboot (unlike drive ReassertGuestBinds). Follow-up spec'd: felhom.eu/documentation/backlog/FOLLOWUP-nas-automount-guest-reboot-reassert.md. NOT this release — a distinct agent task.