ce8531426c
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NKSN3gSg4TKVBBqkwW2djR
45 lines
2.7 KiB
Markdown
45 lines
2.7 KiB
Markdown
# 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.
|