A cancelled shell command could leave sandbox bookkeeping behind
Codex commit 9152ebd2 fixes a race where an interrupted shell command could lose its runtime future before SIGTERM cleanup ran. In one Linux sandbox path, that could leave synthetic protected-path registrations behind after the interface appeared to stop.
The fix keeps dispatch alive through cancellation, routes cancellation through execution expiry, sends SIGTERM, waits briefly for cleanup, then hard-kills remaining descendants. A visible stop action must produce a verifiable runtime result.
What changed since the first Atlas draft
Review UI makes changed files, comments, media, and stability visible together.
earendil-works/pi Mario Zechner Makes Pi Sessions Render Their Own EvidenceSession entries can now carry custom evidence rendering.
openai/codex, anomalyco/opencode, earendil-works/pi Agent Clients Are Learning Where Work BelongsClient placement decisions show why agent UX is workflow architecture.
What actually happens
-
Runtime state
active sessions and work
-
Evidence surface
status, trace, diff, prompt
-
Human judgment
compare progress with intent
-
Control action
steer, stop, switch, rewind
Observation starts with naming the active work
Hermes commit 0a83247e adds a process-local TUI session orchestrator that can list, activate, close, and launch sessions. It records live status, previews committed or in-flight output, exposes session count, and hydrates output when the user switches.
Those fields answer questions a transcript cannot: which session is current, which is working or waiting, what output is in flight, and where an approval prompt belongs. Without that state, intervention is guesswork.
Interruption needs an explicit boundary
Codex commit c0ea566b changes early cancellation into an editing action. If the turn produced no substantive visible output, interruption restores the prompt, images, and collaboration mode to the composer and requests a one-turn rollback.
Restoration is suppressed after assistant output, tool work, hooks, or patches become visible. That boundary matters because cancellation cannot safely pretend nothing happened after externally meaningful work begins.
Correction must preserve evidence
Hermes commit 0622a70e extends undo across multiple turns. It soft-deletes rewound rows, keeps them for audit, hides them from re-prompts and search, evicts cached state, and rebuilds the next turn from the active transcript.
This separates correction from erasure: active context changes, but the system retains a record of what was removed. It still does not undo files, commands, messages, or other external effects.
Resume must return to the right work
Recovery fails if the interface resumes the wrong thread. Parent thread and fork source are different facts; hidden workers and copied histories can coexist.
The control loop closes only when the resumed surface identifies lineage, active permissions, retained evidence, pending work, and the effect of the previous intervention. A session name or latest timestamp is insufficient.
Where the contract breaks
Visual cancellation
The interface reports stopped while child processes or cleanup tasks remain active.
Wrong-session intervention
The interface hides thread identity or pending state and acts on the wrong worker.
Correction without consequence accounting
Undo removes visible history but leaves cached context or effects unexplained.
What the product must prove
- Interrupt a command with cleanup and descendants; verify cleanup ran and every descendant exited.
- Switch among working, waiting, and idle sessions; verify output, prompt ownership, and status remain attached.
- Undo multiple turns; verify audit rows remain, cached context rebuilds, and external effects are disclosed.