docs: v0.124.0 backups IA restructure — CHANGELOG + REPORT + CONTEXT (decisions 1-3) + README page map + REUSE; records the HIGH containerized-.fab volume-strand finding and the agent SystemDisks legacy-boot finding

Claude-Session: https://claude.ai/code/session_01GzammAMzsJTgpQHqxwM2bC
This commit is contained in:
2026-07-13 10:17:58 +02:00
parent 753cd83456
commit 811a0ef7a7
5 changed files with 151 additions and 57 deletions
+40
View File
@@ -1,5 +1,45 @@
## Changelog
### v0.124.0 — backups IA restructure: four sub-pages, Felhom-offsite status card, .fab browser download (2026-07-13) — MinAgent: 0.81.0
The nine-section backups page split into four sub-pages (operator review: customers got lost);
plus the offsite status card and the .fab portability exit. Controller-only; floor untouched.
Operator decisions recorded in CONTEXT: single active offsite destination stands; the status
card never changes state; .fab is portability, NOT a backup tier.
- **IA split** (`backups{,_remote,_apps,_restore}.html` + `backups_shared.html` partials):
**Áttekintés** `/backups` (storage overview, Rendszermentés, stat cards, single-copy warning),
**Távoli mentés** `/backups/remote` (status card + toggles + manual-target form,
`#offbox-section` anchor), **Alkalmazások** `/backups/apps` (schedule, Adatbázisok, per-app
1./2./3. rows), **Visszaállítás** `/backups/restore` (restore panel, the RELOCATED offbox
restore-to-verify, the .fab loop). Sections MOVED verbatim — `scripts/backups_split_move_check.py`
compares all 15 blocks against the v0.123.0 baseline (red-proven). Shared data builder
extracted (`backupsCommonData` + `backupsOffboxData`) — no duplicated computation. Old links
survive: `/backups` = Áttekintés; tier-3 row actions → `/backups/remote#offbox-section`;
offbox/restore/tier2 flash redirects + the tier2-config back-link retargeted per page.
- **Felhom-offsite status card** (top of Távoli mentés; local data only, DISPLAY-ONLY — no form,
no button, unit-enforced): (1) no target → "Felhom offsite tárhely — igényelhető szolgáltatás.
…Érdeklődj az üzemeltetőnél."; (2) applied + zero toggled → "Aktív — nincs kijelölt
alkalmazás" (+ the v0.123.0 hint below); (3) applied + toggled → no card (the status block is
the state). States 2 and 3 live-proven on the drill box.
- **.fab browser download** (`handler_export_download.go`): the EXISTING async export pipeline
with dest = a staging dir under the data dir (`fab-downloads/`; same producer → byte-identical
bundle), estimate shown BEFORE start, then a guarded streaming exit
(`GET /api/export/download?file=` — basename-shape + dir-containment guard, red-proven against
prefix-only matching; `io.Copy`, `Content-Disposition: attachment`, post-stream removal, 1h TTL
sweep on startup + each start). Batch UI downloads apps ONE AT A TIME (no mega-zip). Import
stays drive-scan; portability copy on the section ("Hordozható pillanatfelvétel…").
Unit round-trip: real export → import → content equality; a corrupted bundle is REFUSED
(gzip CRC — there is no per-file checksum; documented).
- **FINDINGS from the live §13 run** (both pre-existing, recorded for follow-up tasks):
**(HIGH)** containerized-controller .fab export of Docker-VOLUME apps strands the volume tar on
the GUEST host (`docker run -v <container-tmp>:/out` resolves against the host FS) → the bundle
ships an EMPTY `data/volumes`, export reports success, import brings the app up EMPTY. HDD-data
apps unaffected. Live-hit on demo (ActualBudget; data restored from the stranded tar by hand).
**(MEDIUM)** agent-side: on a legacy-boot PVE with LVM root, `SystemDisks` resolves NO raw
system disk → `sysKnown=false` → every disk classified system → the drive wizard can never
offer a candidate (drill box; hot-added disk invisible).
### v0.123.0 — polish batch: F-15 instant reset codes, F-11 inline confirms, Tier-3 "Távoli mentés" rename, zero-toggle honesty (2026-07-13) — MinAgent: 0.81.0
Four independent fixes from the take-two drill + operator review. Live-validated on the drill box