diff --git a/crates/engine/src/file_access.rs b/crates/engine/src/file_access.rs index dc6b1813d..4916d9914 100644 --- a/crates/engine/src/file_access.rs +++ b/crates/engine/src/file_access.rs @@ -408,7 +408,6 @@ mod tests { /// In a case-sensitive folder, `IN` beside the root `in` is another folder, there or not yet. #[cfg(windows)] - /// In a case-sensitive Windows folder, a sibling named in another case stays outside the root. #[test] fn a_case_sensitive_folder_keeps_a_differently_cased_name_out() { let base = std::env::temp_dir().join(format!("dc-file-access-case-sensitive-{}", std::process::id())); diff --git a/docs/mcp.md b/docs/mcp.md index 9785365fe..b69e17932 100644 --- a/docs/mcp.md +++ b/docs/mcp.md @@ -56,7 +56,7 @@ folders: its nearest existing folder's links are followed and the rest must be plain names, so `..` below a folder that doesn't exist is refused, as is a link that leads nowhere (writing through it would create its target). The result is compared with the root by whole folder names: `/work2/x` is not - inside `/work`. On Windows names are compared exactly after what exists is resolved to its real case (so `OUT\\x` reaches the root `out` on an ordinary volume, but not in a case-sensitive folder), UNC paths (`\\server\share\...`) are resolved like + inside `/work`. On Windows names are compared exactly after what exists is resolved to its real case (so `OUT\x` reaches the root `out` on an ordinary volume, but not in a case-sensitive folder), UNC paths (`\\server\share\...`) are resolved like drive-letter ones, and device names (`CON`, `NUL`, `COM1`, `COM¹`..., also followed by an extension or a colon) are refused. - A refused path is an ordinary tool error the agent can read and correct, for example `automation path rejected: outside the write root /work/project/out: /etc/x.pptx` or