Files
felhom.eu/documentation/audits/night-2026-09-23/r8_recover.py
T
admin 3e58c184f6
gates / gates (push) Successful in 27s
night shift 2026-09-23: the record, the register, the morning note
DRILL-night-2026-09-23.md: Parts A-E. 09 §3 decisions 21 (operator word),
22 and 23 (CC unattended, operator may reverse); §6.4 parts 4 and 6
(catalog half) shipped; §6.1a residuals R-658/R-659. Register 330 -> 336:
R-651..R-660 opened (R-658 and R-659 P1), R-650/R-640/R-499/R-626 closed.
Capability map, nightly rotation (opengist), STATUS (one question: the
floor), CONTEXT, REPORT. The floor stays 0.266.0.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2026-09-24 00:24:04 +02:00

20 lines
1.2 KiB
Python

#!/usr/bin/env python3
"""Round 8 follow-up: the held navidrome is brought back by the household's OWN route — the restore
the hold sentence names — and seed A is read back. Decides whether round 8 lost data (the stop rule)."""
import json, sys, time
sys.path.insert(0, ".")
import walk as w
from chaos import load, sub_of, SIX
w.login(); s = load()
snaps = w.snapshots("navidrome")
w.say(f"restore points offered: {json.dumps(snaps, ensure_ascii=False)[:400]}")
res = w.restore("navidrome")
st = w.stack("navidrome")
w.say(f"after restore: state={st.get('state')} hold={st.get('hold_reason')!r} phase={st.get('update_phase')}")
A = SIX["navidrome"]["fx"].verify(w, sub_of("navidrome"), s["apps"]["navidrome"]["A"], w.say)
obs = w.observables("navidrome")
w.say(f"seed A after the household's restore: {A}; pinned {obs.get('pinned_images')}")
json.dump({"snapshots": snaps, "restore": {k: res.get(k) for k in ("ok", "snapshot_id", "http", "seconds", "state_after", "hold_after")},
"readback_A": A, "observables": obs}, open("chaos/round-08-recovery.json", "w"), indent=2, ensure_ascii=False)
open("chaos/round-08-recovery.log", "w").write("\n".join(w.LOG) + "\n")