diff --git a/tools/re-capture/README.md b/tools/re-capture/README.md index a177fd0..2dfcc98 100644 --- a/tools/re-capture/README.md +++ b/tools/re-capture/README.md @@ -60,3 +60,21 @@ kill -9 # look it up first, then kill by pid The `snapshot-bash` filter is the reliable tell: the wrapper's command line always contains the shell-snapshot path. + +## 🔴 The emulator does not survive the end of an agent turn + +`/work/.claude/settings.json` defines a **`Stop` hook** that `kill -9`s every +`xenia_canary` when a turn ends, printing *"Stop hook killed N stale xenia +process(es)"*. + +So: + +* **never** launch a run intending to read it in a later turn — it will be dead; +* an experiment has to produce its evidence **within the turn that starts it**; +* prefer measurements that land in the first minutes of flight. `REMAINING OB` + steps `4 → 8 → 12` inside the first few minutes, which is why a two-pass + differential works in one turn while a 25-minute freeze watch does not. + +This cost three iterations of investigating a "mysterious external SIGKILL", +complete with cgroup and host memory forensics, before the hook was found. When +a process dies at a session boundary, **check the harness first**.