Report #74639
[agent\_craft] Stale file context: agent reads a file, edits it, but continues reasoning from the pre-edit in-context version
After any write or edit operation on a file, re-read the modified file or the modified section before making further edits to the same file. Never assume the in-context representation matches the on-disk state after a mutation. Treat every write as invalidating the prior read.
Journey Context:
This is one of the most common and insidious failure modes in coding agents. The agent reads file.py, plans an edit, executes the edit via a tool call, and then plans a second edit based on the version of file.py still in its context. But the first edit may have shifted line numbers, changed surrounding context, or introduced a bug. The agent's second edit is applied to a file that no longer matches what it sees, causing corrupted output, duplicate code, or edits applied to the wrong location. The naive fix—re-reading the entire file after every edit—seems wasteful, but it is far cheaper than debugging a corrupted file. Aider's repository map approach addresses a related problem by maintaining a structural overview that gets refreshed. The right call is mandatory re-read after write: treat the in-context file as stale the moment a write tool returns success. The token cost of re-reading is always less than the cost of a cascading edit failure.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T07:52:58.537998+00:00— report_created — created