41590f8ee6
gates / gates (push) Successful in 19s
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
46 lines
2.9 KiB
Markdown
46 lines
2.9 KiB
Markdown
# REPORT — the second night: scratch guest built, controller v0.242.0, rotation restarted (2026-09-13/14)
|
||
|
||
*Overwritten each session. Evidence: `documentation/audits/nightly-2026-09-13b-bentopdf/` (the guest
|
||
build and the bentopdf walk) and `documentation/audits/v0242-2026-09-14/` (red-proofs, floor, three
|
||
live passes). Controller detail: `felhom-controller/REPORT.md`.*
|
||
|
||
**Rules:** `.claude/rules/unprompted-work.md`. **Architecture named:** `01-topology-and-trust.md` §2
|
||
(the scratch guest is a second guest of the same customer), `07-backup-architecture.md` §6.3 and the
|
||
R-237 store-keyed list rule, `09-update-architecture.md` (holds). **Baselines:** felhom.eu `72ee053`,
|
||
controller `3e81330` (v0.241.0), catalog `6d6eec3`.
|
||
|
||
## Step 0 — R-481, operator ruling option 1 → LXC 9202 on demo-hp, persists
|
||
|
||
Restored from the vouched golden 0.236.0 onto a `dir` storage re-added at `/mnt/hdd_1`
|
||
(`nvme-scratch`), sized like 9201, unprivileged; the demo-hp customer seeded with hub OFF, tunnel OFF,
|
||
agent OFF, off-site OFF, self-update OFF; image set by hand (the one place allowed). Disposition in
|
||
the guest, on the host and on the hub side (`operations/nodes.md`, the register). Two CC decisions,
|
||
tagged in `CONTEXT.md` and `01-topology-and-trust.md`: no real-data-drive bind, no cloudflared.
|
||
|
||
## Step 1–3 — controller v0.242.0 (`d698ce3`, docs `406755f`), one release, floor-delivered
|
||
|
||
R-487 (removed app listed with its restore; the lists are keyed on the drives), R-491 (removal
|
||
clears the update hold), R-490 (`/api/system/info` reachable + fallback), R-489 (`volumes_removed`
|
||
difference — **half: a restore-recreated volume has no compose label and is missed; row kept open,
|
||
measured**), R-476 (Tier-2 copy dated by its data), R-456 (rule pinned). Red-proofs ×11, full gate
|
||
green, floor 0.242.0 with MinAgent 0.129.0: demo-hp +16 s, demo-felhom +17 s. Live on 9202 with an
|
||
opengist throwaway through the endpoints the UI invokes (no browser on DooPlex); the first pass was
|
||
refused 409 (a running app must be stopped before removal) and repeated.
|
||
|
||
## Step 2 — rotation reset to bentopdf on 9202: clean
|
||
|
||
Front door, use (browser-side tool, no data route — recorded, not faked), backup + second copy,
|
||
remove-with-data keep-backups, Tier-2 unit restore, guarded update (same pin; backed up first because
|
||
the restore rewrote `deployed_at`, R-478), remove-everything. No new rows from the walk.
|
||
|
||
## Register
|
||
|
||
210 open / 194 closed → **205 / 200**. Closed: R-481, R-487, R-491, R-490, R-476, R-456. Re-scoped:
|
||
R-489. Opened: R-492 (delete `cfg.Paths.HDDPath`). Security note: demo-hp's retrieval passphrase
|
||
appeared once in a tool output on DooPlex during the guest build (redaction list missed the key).
|
||
|
||
## Teardown, three layers
|
||
|
||
Machine: throwaways (opengist, bentopdf) removed with data and backups; 9202 persists on purpose.
|
||
Host: the `nvme-scratch` storage and 9202 stay (disposition recorded). Hub: floor raised; nothing else.
|