Files
felhom-controller/REPORT.md
T

2.7 KiB

REPORT — R-70 controller leg: the hub-managed offsite empty state tells the truth (v0.161.0, 2026-07-23)

Spec: R-70 + R-71(c) prompt §4d (controller banner, XS; the detector/event/self-heal live in felhom-hub v0.72.0 — see felhom.eu/REPORT.md). Origin: felhom.eu/documentation/audits/DIAG-f10-demo-hp-offsite-2026-07-23.md.

What shipped

One data key + one template gate. backupsOffboxData now exposes OffsiteHubEnabled (= s.cfg.Offsite.Enabled, the hub descriptor already loaded from controller.yaml — internal/web/handlers.go, no new wiring; Server.cfg was always there). On Távoli mentés, when hub-managed offsite is enabled but no offbox target exists (the pre-apply window, or a burned credential — the F10 shape), both empty surfaces switch to the truth:

„Felhom offsite tárhely kiépítve — a beállítás automatikus, folyamatban. Ha egy napon belül nem áll be, jelezd az üzemeltetőnek."

  • the v0.124.0 status card no longer offers „igényelhető szolgáltatás" for a service that is already ordered (it contradicted the new banner — coherence extension of the spec's letter, gate {{if and (not .OffboxConfigured) .OffsiteHubEnabled}});
  • the {{if .Offbox}} else-branch replaces the bare „Még nincs beállítva távoli mentési cél.";
  • NOT hub-enabled → today's copy byte-identical; configured target → status block as before; the own-NAS setup form untouched.

Tests & gates

Render tests per branch of the gate (internal/web/backups_remote_hubenabled_test.go, the v0.70.1 template-gate lesson): banner branch (+ old copy asserted GONE + own-NAS button asserted present), legacy branch (old copy intact, banner absent), configured branch (no banner). Green gate: go build && go vet && go test ./... — 25 packages ok. Design-v2 gates: emoji, mojibake, template_id, native_confirm, offbox_rename, app_row_dedup all OK; docker_run_volume_path_gate remains red on the pre-existing R-29 allowlist item (appexport/estimate.go:179, named volume, benign, filed 2026-07-18) — untouched by this change, not fixed inline per R-29's own row.

No red-proof leg: no defect was fixed here (new truthful copy behind a new gate); the per-branch render tests are the non-hollow coverage.

Live state

Deployed to both boxes (demo-felhom 9201 + demo-hp 9201). Both live boxes have offbox CONFIGURED, so the new banner is unit-proven, live-pending — it renders only in the enabled+no-offbox window, which no healthy box occupies (and we do not break one to see it — F9 rule). The natural live leg is the next fresh onboarding's pre-apply window. Live verification on both boxes: configured view unchanged (no banner), version 0.161.0 healthy.