You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
What's Changed
Features
edit_replace: stale-context circuit breaker for consecutive invalid_params failures (#1132, closes #1118): After 5 consecutive not_found or ambiguous failures on the same (session_id, canonical_path) pair, edit_replace returns an EDIT_STALE_CONTEXT directive error instructing the model to re-read the file before retrying. The failure counter resets on any successful edit_replace or edit_overwrite on that path.
Bug Fixes
edit_replace: normalize CRLF to LF before matching (#1137): edit_replace_block now strips \r from both the file content and the old_text needle before attempting a match, so files with Windows line endings no longer produce spurious not_found failures.
validation: replace ancestor-walk with parent-dir validation in require_exists=false branch (#1136, closes #1134): The old ancestor-walk left canonical_base pointing at working_dir when no real ancestor was found, causing write_file_atomic to receive a malformed path and return an opaque internal_error. The new approach validates the immediate parent directory, rejects paths whose parent does not exist with a clear INVALID_PARAMS message, and aligns all "path is outside the allowed root" error messages to "path is outside the working directory".
Documentation
exec_command: reframe cd prohibition as mechanical fact in tool description (#1133): Replaces the prohibition-style "Do not prepend cd to the command" with "Commands run inside working_dir; omit cd." -- grounding model behavior in stated runtime reality rather than a rule.