d751055452
The file tools (Read/Write/Edit) open paths inside the SDK process after the can_use_tool callback validates them, leaving a check-vs-open window. Fully closing it atomically needs openat2(RESOLVE_BENEATH) file tools replacing the SDK's in-process ones (tracked as follow-up; the Edit tool's file-state-cache contract makes that a non-trivial reimplementation). This test pins the fact that makes the window unreachable under the current model: an exploit needs a concurrent mutator, the only agent-controlled source of concurrency is a backgrounded process, and bwrap's PID namespace (--unshare-all) makes the bash command PID 1 — so the kernel reaps any backgrounded job when the single bash call exits. The test backgrounds a writer that would keep appending for ~2s and asserts its output stops the moment the call returns. With sequential tool execution and per-session bind isolation, no surviving concurrent mutator exists to win the race. This is an honest mitigation with evidence, not a claim that the in-process open is atomic.