Files
felhom-controller/REPORT.md
T
admin 2e9a948cbd
gates / gates (push) Successful in 29s
REPORT: v0.277.0 + v0.278.0, live off-site proof
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2026-09-28 15:56:46 +02:00

44 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# REPORT — 2026-09-28: v0.277.0 (kept data from the off-site copy, R-691 (2)) and v0.278.0 (leftover holds, R-704)
Architecture read first: `felhom.eu/documentation/architecture/07-backup-architecture.md` §6.5 (kept data), §6.6 (which
version a restore brings back); `06-offsite-connectivity.md` (what the off-site copy holds per app).
## What changed
- `backup.KeptBestCopy`: the newest usable LOCAL copy (own unit, second drive) or the OFF-SITE copy when it is newer or
the only one (a tie goes local). One `snapshots --json`, bounded 20 s; the kept list asks once per page.
- The install choice and the kept list name the copy and its date (`kept.choice.use.desc_from`, `kept.backup.offsite`).
- `backup.LoadKeptOffsite`: download the unit ALONE (the proof's `restoreUnitReadOnly`, proof scratch) → judge (this
drive, holds data, data version RECORDED — `07` §6.6, else refused; mixed/mismatched refused by `unitVersionCheck`) →
`prepare` (a dated folder's files move back) → the one unit restore → scratch removed BEFORE the outcome is reported.
## Tests and red-proofs (`felhom.eu/documentation/audits/kept-offsite-2026-09-28/redproofs/`)
| test | red-proof | failed with |
|---|---|---|
| `TestR691_OffsiteCopyIsOfferedWhenItIsTheOnlyOrNewest` + `TestR691_InstallChoiceNamesTheOffsiteCopy` | RP1: `KeptBestCopy` = `KeptDBCopy` (0.276.0) | `ok=false`; `use_offered=false use_off="There is no backup…"` |
| `TestR691_OffsiteLoadRefusalsLeaveTheKeptFilesAlone` | RP2: the `data`-block refusal removed | "the load reported success" |
| `TestR691_OffsiteLoadDownloadsJudgesThenRestores` | RP3 (seen in the first draft): scratch removed in a `defer` | "the downloaded copy was left behind" |
`go build/vet/test ./...` green; `controller_gates.py` all OK (go-parity needed the 4 new keys listed).
## Live
- 9202 (endpoint level, the calls the pages make): Tier 1 route unchanged — the choice named „saját mentés,
2026-09-28 10:06"; "use" loaded 3/3 volumes + 1/1 database; the seeded nextcloud user and file read back.
Tier 2 not runnable live (9202 has one drive). 9202 has no off-site target, so the off-site path is not asked there.
- Floor 0.276.0 → **0.277.0** (MinAgent 0.131.0) at 08:11Z; both demo boxes on 0.277.0, healthy, within a minute.
- **Off-site route PROVEN LIVE on demo-hp 9201 (0.278.0).** The choice named "távoli mentés, 2026-09-28 15:40"; "use my
kept data" downloaded the unit alone and loaded 3/3 volumes + 1/1 database in 55 s; the seed and files read back
(`felhom.eu/documentation/audits/kept-offsite-2026-09-28/E/`).
## v0.278.0 — R-704 (a second release this session; the rule is one)
- Found live: a 2026-09-13 update hold on demo-hp outlived its nextcloud; the fresh nextcloud was then skipped by the
backup leg (no volumes, no unit) and its off-site snapshot held no data. On 9202 a calcom crash-loop stop outlived
two removals and refused the new install's update.
- Fix: removal clears the crash-loop stop too (`settings.ClearUpdateHold`); a new install (plain or "use my kept data")
drops a leftover update/crash-loop hold of an app that is not installed (`Router.dropLeftoverHold`). Restore holds
(R-379) untouched. Tests `TestR704_*`; red-proofs RP4–RP6 each seen failing. Floor 0.278.0, both boxes healthy.
- Not proven live: the install-time drop itself (the demo-hp hold was cleared by the removal, R-491's path).