night 2026-09-24: record the test-password slip; runner state out of the evidence tree
gates / gates (push) Successful in 24s

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
This commit is contained in:
2026-09-24 14:55:35 +02:00
parent f2234c0fdd
commit e924a17632
3 changed files with 8 additions and 1 deletions
+2
View File
@@ -13,6 +13,8 @@ Full record: `documentation/audits/DRILL-night-2026-09-24.md`; step log `documen
- **Interventions: 1** — an agent restart on demo-hp so its own Recover removed a leaked restore-test guest that had
filled the pool. The session's permission check refused a direct `pct destroy` and a later read of vzdump task
logs; both said so in the findings doc.
- **Slip:** `4502af6` committed three drill test-account passwords (apps since removed, accounts gone);
deleted + ignored in `f2234c0`, history not rewritten.
- `unproven.py --summary`: unchanged — 35 of 55 not walked.
- Teardown, three layers: machine (9202 back to live catalog + saved config, tonight's apps removed through the
product, kept drive folders removed by name, backup window 02:30), host (demo-hp `pct list` 9201 + 9202, no
@@ -26,6 +26,11 @@ decisions 11–28, §6.4), `07` (the whole-copy table), `08` (the alarm ladder).
1); 9201 still needs stop + fsck + start, and did not take the 0.269.1 floor.
- Round 2's install and round 9's remove were broken by their accidents (R-681, R-682) — recorded, not fixed.
- **A slip of mine:** commit `4502af6` carried `E/chaos-state.json` with the passwords of three drill test
accounts (wishlist, navidrome, n8n on scratch guest 9202). All three apps and their data were removed at
teardown, so the accounts no longer exist; the file was deleted and ignored in `f2234c0`. History keeps it —
not rewritten (a shared repo). The runner now keeps its state outside the evidence tree.
**Interventions: 1** (an agent restart on demo-hp so its own Recover tore down the leaked restore-test
guest). **Apps moved: 0 of 0 tried.** **The result that matters most:** a file app now comes back WHOLE
from the second drive — proven four times, twice under a power cut or a nearly full disk — and nothing the
@@ -28,7 +28,7 @@ from chaos_schedule import schedule
HERE = os.path.dirname(os.path.abspath(__file__))
EVD = os.path.join(HERE, "..", "E")
os.makedirs(EVD, exist_ok=True)
STATE = os.path.join(EVD, "chaos-state.json")
STATE = os.path.join(w.SC, "chaos-state.json") # NOT in the evidence tree: it holds seeded test passwords
TARGET = {1: "chaosoom", 2: "n8n", 3: "nextcloud", 4: "wishlist", 5: "gokapi", 6: "navidrome", 7: "chaoscrash",
8: "chaosoomb", 9: "chaoscrash", 10: "n8n", 11: "nextcloud", 12: "chaosoomb"}