diff --git a/REPORT.md b/REPORT.md index 905ee9b..880e6d0 100644 --- a/REPORT.md +++ b/REPORT.md @@ -21,7 +21,7 @@ is deliberately untouched. | `c6d8bc8` | 2 (cause 1 + §8) | `executeExport` additive (needs_hdd apps run `exportHDDData` AND `exportVolumeData`); `exportHDDData` returns error + fails LOUDLY on a basename collision; `EstimateExport` additive to match (fits-on-dest counts both). | | `a829cdc` | 3 (cause 3) | `assertBundleDataComplete`: a `needs_hdd` manifest with neither HDD data nor volume data fails the job — "a mentés nem tartalmaz alkalmazásadatot (0 adatkönyvtár, 0 kötet…)". | | `b49076d` | 4 (C6B-F2) | `handleNetStorageRemove` refuses (409, Hungarian, names the apps) while a DEPLOYED stack's HDD_PATH is the share root or a subpath; new `deployedAppsOnPath` helper; remove resolves the agent via the `netAgent` seam. | -| (this commit) | docs/ship | CHANGELOG v0.130.0, README export section, REUSE.md (2 new helpers), CONTEXT.md, this REPORT. | +| `3679a75` | docs/ship | CHANGELOG v0.130.0, README export section, REUSE.md (2 new helpers), CONTEXT.md, this REPORT. | ## ⚠ Design deviation from the task (deliberate, load-bearing) @@ -69,12 +69,27 @@ placement) pass; scenario B (HDD-direct app unchanged) pinned at the adapter lev **23/23 packages ok** (build+vet+test). Test fixtures use `t.TempDir()` + the `dockerExec`/ `netAgentFn` seams — no real docker anywhere. -## Deploy + live self-verify +## Deploy + live self-verify (DONE, 2026-07-14 ~13:40 CEST) -- Built `v0.130.0` on 180, deployed to demo 9201 + drill guest (see verification below). -- Live self-verify on demo (the C6B-F1 repro flipped): deploy a `${USERDATA_PATH}` needs_hdd app with - marker data → export → the `.fab` is NOT config-only (manifest `has_hdd_data:true` + - `has_volume_data:true`, size ≫ 2308 B). Evidence inline below. +- Built `v0.130.0` on 180 (`build.sh 0.130.0 --push`, image 145M); deployed via the bootstrap + mechanism to **demo 9201** AND the **drill guest** — both `docker ps` show + `felhom-controller:0.130.0 … (healthy)`. +- **Live self-verify on demo — the exact C6B-F1 repro flipped** (temporary break-glass credential, + reverted after; plaintext never persisted): + - Deployed sonarr (the C6B repro app) via `POST /api/stacks/sonarr/deploy` onto + `felhom-usb/sonarr-c6bfix`; injected 30 MB of sha256-recorded markers into + `userdata/{media/tv,downloads}`; sonarr's `sonarr_config` volume held 7.2 MB. + - `GET /api/export/download/estimate` → **`data_size 37.1 MB`** (pre-fix: `0 B`) — userdata + + volume both counted. + - Export → **`sonarr_20260714-133802.fab` = 31,797,668 bytes** (pre-fix: 2308). Manifest: + `controller_version:"0.130.0"`, **`has_hdd_data:true`**, **`has_volume_data:true`**, + `hdd_subdirs:["userdata"]`, `volume_names:["sonarr_sonarr_config"]`. + - Extracted `data/hdd/userdata.tar` from the bundle → **both marker sha256s byte-identical** to + the pre-export recordings (`97259f74…`, `e406658c…`) + the text marker intact. + - Cleanup: sonarr stopped+removed (data wiped), staged bundle + scratch removed, credential + reverted to the original customer-claimed hash; controller healthy on 0.130.0. +- C6B-F2 guard live check: not exercised against a live share (none enrolled post-6B-cleanup); + covered by the red-proofed handler tests — 6C's clean-order teardown re-test exercises it live. ## For CAMPAIGN-6C