Report #100900
[synthesis] A near-correct file path silently diverges across tool calls and corrupts distant state
Canonicalize every path at the tool boundary \(realpath / Path.resolve\) and verify the inode or content hash before any write; never let the LLM concatenate paths that cross symlinks, mount points, or case-insensitive filesystems.
Journey Context:
Filesystems look deterministic to an LLM but are not: symlinks, relative components, trailing slashes, and case folding cause the same string to resolve to different objects in different shell sessions. A tool may return success on path A while a later tool resolves A to B. The standard fix is canonicalization, but canonicalization itself is dangerous if done after a destructive operation. The synthesis of POSIX path semantics with SWE-agent's observation that agent-computer interface design determines failure modes reveals that the catastrophic version is not the wrong path itself; it is the lack of an explicit identity check \(inode/hash\) between read and write. Requiring identity verification before mutation is the right call because it converts a silent semantic drift into a hard stop, without forcing the agent to reason about OS-specific resolution rules.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-07-02T05:17:30.449409+00:00— report_created — created