Accept + persist the now-populated host-report storage_targets. Minimal — the authoritative storage manifest is hub-owned (slice 10); this mirrors what the agent observes. - hostReportPayload.StorageTargets: full mirror of the agent's hub.StorageTarget wire contract; persisted verbatim in report_json (no schema change); count + WARN on disconnected targets. - shared host-report golden updated with two populated targets; byte-identical with felhom-agent's copy. - TestHostStorageTarget_GoldenContract: hub half of the bidirectional key-set test. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2.2 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 — Hub: ingest agent storage_targets (v0.7.2) (2026-06-09)
Outcome
Pushed as hub v0.7.2. The felhom-agent slice-5 Phase A work populates the host-report's
storage_targets (previously a defined-but-empty stub). This change is the hub half: accept
and persist them. Deliberately minimal — the authoritative storage manifest (desired
class/role/policy/creds) is hub-owned and arrives at slice 10; this slice only mirrors what the
agent observes.
What landed (hub/internal/api/handler.go, host_test.go, golden)
hostReportPayloadnow parsesstorage_targetsvia ahostStorageTargetmirror struct that matches the agent'shub.StorageTargetwire contract field-for-field (name/type/durable_id/ state/reachable/usage/content/mount/class_hint/role/thin_pool/smart).- Persistence: the targets are stored verbatim in the existing
report_jsoncolumn (no schema change / no migration). The handler counts them and logs a[WARN]listing disconnected targets — the storage analog of host-down visibility. - The shared
testdata/host-report.golden.jsonnow carries two populated targets (an lvmthin withthin_pool, a usb) and is byte-identical with felhom-agent's copy. - Tests:
TestHostStorageTarget_GoldenContractis the hub half of the bidirectional key-set test (round-trips the golden through the mirror, asserts exact key match);TestHostReport_GoldenContractalso asserts the targets persist + parse back.go test ./internal/api/ ./internal/store/is green.
Backward compatibility
An older agent that sends storage_targets: [] (or omits the field) is accepted unchanged.
The legacy controller report path is untouched (frozen until the slice-10 cutover).
Deploy
Standard hub flow (build server 192.168.0.180): ./build.sh v0.7.2 --push then deploy. If the
hub deployment is ArgoCD-managed, update the image tag via the managed path rather than a bare
kubectl set image (drift-correction would revert it).