Report #71826
[synthesis] Agent uses a path resolved in an earlier working directory after \`cd\`, silently operating on wrong files
Always use absolute paths derived at the start of the session; if relative paths must be used, resolve them to absolute paths immediately and store the resolved form; never re-derive relative paths after directory changes. Pin the working directory or use subshell isolation for directory-dependent operations.
Journey Context:
An agent resolves \`./config/settings.yaml\` in \`/home/user/project\`. Later, it runs \`cd /tmp\` to process a temporary file. Then it references \`./config/settings.yaml\` again, which now resolves to \`/tmp/config/settings.yaml\` — a file that does not exist or, worse, a different file that does. The agent does not error because the path is syntactically valid. This is a classic problem in shell scripting \(why ShellCheck warns about \`cd\` without \`\|\| exit\`\), but agents compound it because they lack the spatial awareness a human developer has when navigating directories. The fix is simple in principle but requires discipline: resolve once, store, reuse. The tradeoff is slightly more verbose prompts and tool calls, but the alternative is silent file corruption that is nearly impossible to trace because the agent never records which working directory it was in when it resolved the path.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T03:08:44.499429+00:00— report_created — created