From 8d33a90888fa6e307ac6c28cc5bef21b819a6c91 Mon Sep 17 00:00:00 2001 From: kisfenyo Date: Mon, 20 Jul 2026 19:07:06 +0200 Subject: [PATCH] =?UTF-8?q?docs:=20STOP-2=20done,=209100=20destroyed=20?= =?UTF-8?q?=E2=80=94=20and=20a=20correction?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit STOP-2 applied by the operator in the right order: Day-0 Golden -> 0.153.0 (sha256 matches the bake), Agent/MinAgent 0.90.0 unchanged, global floor -> v0.153.0 saved last. Build guest 9100 destroyed. Agent 0.90.1's absence from the hub dropdown is CORRECT, not a defect: it was never published (Gitea 404; 0.90.0 returns 206) and felhom-pve runs 0.90.0. The v0.90.1 source is committed at 9596d5a, so R-39 is a build+publish away. CORRECTION: my earlier claim that the stored controller password was stale was WRONG. Values in ~/.config/credentials are single-quoted and my cut extraction kept the quotes, sending a 15-char string instead of the 13-char password. Re-tested stripped: 302 + session. The credential was always correct. Also records honestly that the reconstitute restored over an already-good state, so C6 still needs the destructive empty-the-trash drill. --- REPORT.md | 43 ++++++++++++++++++++++++++++++++++++++----- 1 file changed, 38 insertions(+), 5 deletions(-) diff --git a/REPORT.md b/REPORT.md index c153a07..cfac7e1 100644 --- a/REPORT.md +++ b/REPORT.md @@ -197,6 +197,26 @@ was deleted. Log retained beside its predecessor: `180:/mnt/5_hdd/felhom.eu/dril the hub*. I did **not** render the hub's golden **dropdown** — that is the password-gated operator UI, and it remains part of STOP-2. +## 4d. STOP-2 — hub saves: **DONE** (operator, 2026-07-20) + +Both password-gated saves applied in the correct order and confirmed by screenshot: + +| Setting | Value | +|---|---| +| Day-0 artifact — Golden | **0.153.0**, sha256 `15fdd191f3c660a60dc8651111053dd84281aeebc6c4c0f9ecdd3a87cb45a9d0` (matches the bake exactly) | +| Day-0 artifact — Agent | 0.90.0 (unchanged) | +| Min agent | 0.90.0 (unchanged — v0.153.0 declares no coupling) | +| Managed-updates global floor | **v0.153.0**, source `DB (hub_settings)`, saved **last** ✓ | + +**Agent 0.90.1 is absent from the dropdown — correct, not a defect.** It was built on the old +Windows workstation but **never published**: `felhom-agent/0.90.1` in Gitea returns **404** (0.90.0 +returns 206), and felhom-pve reports `felhom-agent 0.90.0`. The hub lists only published versions. +The v0.90.1 source IS committed (`9596d5a`, the R-39 `pvesm set --server` hotfix), so shipping it is +a build+publish away — tracked under R-39, out of scope here. + +Build guest **9100 destroyed** (`pct destroy 9100 --purge`, all three LVs removed); only 9201 +remains on the host. + ## 5. NOT yet live-validated — remaining human/supervised work - ~~**STOP-1**~~ — **DONE 2026-07-20, PASSED.** See §4b for the log ordering, timestamps and the @@ -205,11 +225,15 @@ UI, and it remains part of STOP-2. - ~~**Phase C**~~ — **DONE 2026-07-20.** Golden 0.153.0 baked, published, all gates green (§4c). `GOLDEN_SHA256=15fdd191f3c660a60dc8651111053dd84281aeebc6c4c0f9ecdd3a87cb45a9d0`. Housekeeping left for whoever is next at the host: `pct destroy 9100 --purge`. -- **STOP-2 (Viktor, password-gated):** Day-0 manifest Golden → 0.153.0 (Agent 0.90.1 / MinAgent - 0.90.0 unchanged — the CHANGELOG's no-coupling declaration is the authority), then floor → - v0.153.0 saved **LAST**. Watching the demo box wake during the manifest save banks the **R-23(a)** - operator-UI save→apply evidence — log the timestamps if observed. -- **Viktor's C6 customer-restore UI run** (note the empty-the-trash method). +- ~~**STOP-2**~~ — **DONE** (§4d). Golden 0.153.0 + floor v0.153.0 saved in the right order. +- **Viktor's C6 customer-restore UI run — STILL OUTSTANDING, and it is the one that matters.** + The 2026-07-20 reconstitute restored over an ALREADY-GOOD state (11 assets before, 11 after): it + proves the H4 window is closed and the operation is clean and non-destructive, but **nothing was + ever lost in it**. C6 needs the destructive shape — delete photos, **empty the trash** (deleting in + an app's own UI usually means trash, and a drill written that way merges 0 files, flashes success + and proves nothing), then restore and verify the app's *content*, not the file count. +- **The R-23(a) operator-UI save→apply evidence** was not captured: nobody was watching the demo box + wake during the manifest save. Cheap to bank on the next manifest save. ## 6. Observations (out of scope, recorded not acted on) @@ -228,3 +252,12 @@ UI, and it remains part of STOP-2. is asserted on the persist half only. That is the half the split could break; the tail is byte-identical code that was moved, not rewritten. - **R-29a (`estimate.go` gate finding)** remains open and was not touched. +- **CORRECTION to an earlier claim in this session.** Mid-run I reported that the controller password + in `180:~/.config/credentials` was **stale** and had been superseded by the customer-claim flow. + **That was wrong.** The values in that file are single-quoted (`PASSWORD='…'`) and my + `cut -d= -f2-` extraction kept the quotes, so a 15-character string with literal `'` on both ends + was sent instead of the 13-character password. Re-tested with the quotes stripped: `302` + session + cookie. The credential was correct the entire time; no rotation, no drift, nothing to reconcile. + The lesson recorded in memory is the general one: **an auth failure is evidence about the bytes you + sent, not proof about the stored secret** — a 2-character length discrepancy is this bug's + signature, and it was stated confidently three times before being caught.