Transcript
Editors talk to coding agents through adapters. An editor, an adapter and an agent sit in a row, and request A travels from the editor to the agent. The adapter tells the editor which files each request changed: the agent’s edit of a.txt comes back and lands in A’s report. That works, until work outlives its request.
Request A starts a subagent. A timeline shows requests on the top lane and the subagent below. You cancel A. The subagent keeps running. Then you send request B. The subagent edits a.txt. The adapter credits the edit to the request current now: B. B’s report lists b.txt, B’s own edit, and a.txt. But a.txt was made for A. Its line leads back through the subagent to request A, and a.txt is struck out of B’s report. Arrival is not origin.
Turnstile runs the unmodified adapter under every order of these events the provider model allows. The subagent’s start and edit slide to new places; whenever the edit lands while B is current, it ends up in B’s report. 956 orders in three scenario groups. Each dot is one. In 581 of them, the original adapter puts A’s edit in B’s report.
Fix 1: credit the subagent to the request current when it starts. 174 remain. That fails when the subagent starts after B. Fix 2: credit it to the request that dispatched it. None remain in these 956 orders. If the origin is unclear, it leaves the edit out and says so.
Could a smarter adapter always get this right? Here are two runs that send it exactly the same messages. In run 1, the edit x is A’s work. In run 2, it is B’s. What differs is hidden from the adapter: which message started x’s turn. The adapter must give one answer for both. Listing x in B’s report is wrong in run 1; leaving it out is incomplete in run 2. Either way, one run gets a wrong or incomplete report. Theorem 1: on the typed Codex 0.160.1 wire, no adapter that meets the paper’s conditions is exact. Expose the turn’s origin, and the two runs differ. Codex 0.162.0 exposes turn lineage as rootTurnId.
Bind delegated work to the request that dispatched it. Better: carry the origin on every delegated event. Attributing Subagent Work in Coding-Agent Protocol Adapters, by Rajasekhar Josyula and Lakshmi Sravya Vedantham.
Drawn from the paper; nothing here runs an adapter. Each dot in the Turnstile scene is one of the 956 schedules behind Table I’s first three Codex rows, grouped by outcome in the final Turnstile runs. Keys: space or K plays and pauses, the arrow keys skip five seconds, 1 to 6 jump to a chapter, F toggles full screen.