From dd2bb5fc01a0a9f9fd1c7ac2df901abf124159fb Mon Sep 17 00:00:00 2001 From: kisfenyo Date: Mon, 29 Jun 2026 22:50:17 +0200 Subject: [PATCH] =?UTF-8?q?audit(testrun):=20F1=20RESOLVED=20=E2=80=94=20s?= =?UTF-8?q?wap=20verify=20RestartCount+dwell=20(agent=20v0.47.0),=20live?= =?UTF-8?q?=20rollback=20confirmed?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.8 (1M context) Claude-Session: https://claude.ai/code/session_01Pg8ANF97SEeKYSN5Jxw3qJ --- documentation/audits/TESTRUN-fullstack-2026-06-29.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/documentation/audits/TESTRUN-fullstack-2026-06-29.md b/documentation/audits/TESTRUN-fullstack-2026-06-29.md index 3127925..2f4d85c 100644 --- a/documentation/audits/TESTRUN-fullstack-2026-06-29.md +++ b/documentation/audits/TESTRUN-fullstack-2026-06-29.md @@ -127,6 +127,13 @@ than a detect-then-R1-recover. Detection is the safety net; preservation is the |---|---|---|---| | F1 | Swap verify passes a **no-healthcheck image that crash-loops** (transient "running" + no-healthcheck rule → false "done", no rollback) | low (real controller has a healthcheck) | tag alpine as `felhom-controller:X.Y.Z`, swap to it → marked healthy ~4 s, then `Restarting (0)` | +**F1 RESOLVED 2026-06-29 (agent v0.47.0):** the swap verify now reads `{{.RestartCount}}` +(`running && rc>0` → not healthy) and requires a 3-poll **stability dwell** for a no-healthcheck image +(a real healthcheck is trusted immediately). Live re-test: the same alpine `:9.9.9` swap now reaches +`state: failed` ("did not become healthy within timeout") and **rolls back** to 0.91.0 — no false +"done". The `docker inspect -f *` grant is unchanged (`*` spans the extended template, exit-0 confirmed). +See `felhom-agent/REPORT.md` + CHANGELOG v0.47.0. + **EXPECTED (not defects):** the capstone leaf regeneration → pin mismatch (the prevention fix was never shipped — regeneration is expected; **detection** is the pass criterion, and it passed). The §4 host-side "doubling" persisting until a clean host reboot (expected; `make-private` is granted, applies