# REPORT — R-165: the `mp1` merge, built and proven at the bake (2026-08-03) **Overwritten** per the standing rule. The prior contents (hub v0.89.0 / R-167, 2026-08-02) have their durable record in `hub/CHANGELOG.md` and `CONTEXT.md` S-11/S-12. **Companion:** `felhom-agent/REPORT.md` holds the full session detail — probes, variant evidence, the bake transcript, red-proofs and teardown. **This file covers what changed in THIS repo, and the CI verification for all three.** > **Scope, stated first.** The merge is **built and green through Phase 5**. **Phases 6–7 — reinstalling > the two demo boxes from the merged golden and proving one end to end — were NOT done, and nothing > was wiped.** The golden is therefore deliberately **unvouched**. Remaining work: **R-178**. --- ## 1. What changed in `felhom.eu` **No hub change; no hub version bump.** This repo changed in two places, one of them forced. **`scripts/felhom-host-install.sh` — forced by a census, not planned.** `step_grows` computed **two** volume sizes and the install call passed both, so it had to change with the agent or every install would have provisioned a half-sized box. It now computes ONE total, summing the old 80/20 split (`226` = the previous `184 + 42`), so **a standard appliance keeps exactly the 250 G it had** — it is simply no longer split by a wall. **The size still comes from the physical disk**: `step_grows` already read the thin pool's real free space, and the merge only collapsed its two outputs into one. That is the answer to the task's §8.2 — no row needed filing. `--sysdata-grow` is deprecated but still honoured, because the agent **folds** a hand-passed value in rather than dropping it. **Documentation**, per the coupling rule — see §3. ## 2. The bake, as this repo's audit trail records it `documentation/audits/SPIKE-r165-phase0-2026-08-03.md` (new) holds P1, P2 and P3 with method, measurement and ruling, including the teardown of every probe artefact at all three layers. The headline measurements: - **P1 PASS** — a real pre-merge archive restore-tests clean, `mount_parity: ok`, 84 s, `mountParity` untouched. - **P2** — all three variants boot and reboot 3/3; they are separated by **scoping**, not mechanics. The container's view of `/mnt` is 8.0K under V-a and V-c, and **17.9M — Docker's entire data-root — under V-b**. The operator chose **V-c**. - **P3** — the four retargeted golden assertions, run against a deliberately wrong shape: **8/8**. ## 3. Documentation coupling | File | Change | |---|---| | `documentation/architecture/07-backup-architecture.md` | **S-1: the contract changed in the same session.** New **§7.5.1** — the ceiling §7.5 describes no longer exists for a box built from golden ≥ 0.192.0, the bulkhead's replacement (B2) is recorded, and **R-175 is FIXED here**: the bound is restated as a function of `mp1` and scoped to split-layout boxes, naming all three real shapes | | `documentation/architecture/00-capability-map.md` | new row — **IMPLEMENTED, not PROVEN-LIVE**, with the missing leg named (no box reinstalled, R-178) and the bake cited as the evidence it is | | `documentation/backlog/OPEN-ITEMS.md` | **R-165** → shipped-not-yet-proven-live; **R-163 CLOSED** (its ceiling no longer exists); **R-175 CLOSED**; **R-176** (a) answered by P1, (b) **withdrawn** — every node is reinstalled, not migrated; **R-178 NEW** | | `CONTEXT.md` | **S-13** (the variant, chosen on measurement; B2's floor; pruning rejected with its reason; no migration exists) and **S-14** (prove first, then vouch) | | `STATUS.md` | rewritten section in plain language; the *Waiting on you* item cleared — both questions are answered; **two older entries trimmed** so the page did not grow | | `scripts/CHANGELOG.md` | the host-install change, with why it was forced | ## 4. CI — run ids and conclusions Checked by **PULL**, matching `head_sha` to each commit — CI mails only on failure, so an unchecked green is an assumption. **Every commit in this session, across all three repos, is green.** | Repo | Commit | Task id | Run # | Conclusion | |---|---|---|---|---| | `felhom-controller` | `4be6467` (v0.192.0, the B2 floor) | 39 | 15 | **success** | | `felhom-agent` | `cd6e267` (v0.120.0 + golden 3.0.0) | 41 | 3 | **success** | | `felhom-agent` | `4bb84fc` (REPORT) | 43 | 4 | **success** | | `felhom.eu` | `7406ac7` (phase-0 audit) | 40 | 21 | **success** | | `felhom.eu` | `e3525e6` (host-install one grow) | 42 | 22 | **success** | | `felhom.eu` | `14d8c00` (docs + registers) | 44 | 23 | **success** | ## 5. `--no-verify` **Not used anywhere.** Every push in this session ran its repo's `.githooks/pre-push` and passed. ## 6. What remains — R-178 1. Reinstall **demo-hp** from golden 0.192.0 through the real installer path; prove claim → deploy an app → back up → restore; show `df` proving one filesystem and a recovery unit landing on it. 2. Only then reinstall **demo-felhom** (it carries the PBS-DR/offsite tier, so it is the box whose backup chain a reinstall actually disturbs). 3. **Then** vouch golden 0.192.0 in the hub, and flip the capability-map row to PROVEN-LIVE. 4. Re-run P1's restore-test against agent v0.120.0 — one command, turns a sound inference into an observation.