From e2dff7b76341e9b3d2d001085aebfe6e78b3fbf0 Mon Sep 17 00:00:00 2001 From: David Wiesen Date: Mon, 4 May 2026 09:38:08 -0700 Subject: [PATCH] Fix Windows danger-full-access exec dispatch --- codex-rs/core/src/exec.rs | 6 +++++- codex-rs/core/src/exec_tests.rs | 15 +++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/codex-rs/core/src/exec.rs b/codex-rs/core/src/exec.rs index fd5cd7bcdc..db1a0e06ca 100644 --- a/codex-rs/core/src/exec.rs +++ b/codex-rs/core/src/exec.rs @@ -482,7 +482,11 @@ async fn get_raw_output_result( >, ) -> Result { #[cfg(target_os = "windows")] - if sandbox == SandboxType::WindowsRestrictedToken { + if should_use_windows_restricted_token_sandbox( + sandbox, + sandbox_policy, + &FileSystemSandboxPolicy::from(sandbox_policy), + ) { return exec_windows_sandbox(params, sandbox_policy, windows_sandbox_filesystem_overrides) .await; } diff --git a/codex-rs/core/src/exec_tests.rs b/codex-rs/core/src/exec_tests.rs index 9d335a81c7..74e528e66b 100644 --- a/codex-rs/core/src/exec_tests.rs +++ b/codex-rs/core/src/exec_tests.rs @@ -377,6 +377,21 @@ async fn process_exec_tool_call_preserves_full_buffer_capture_policy() -> Result Ok(()) } +#[test] +fn windows_restricted_token_skips_danger_full_access_policies() { + let policy = SandboxPolicy::DangerFullAccess; + let file_system_policy = FileSystemSandboxPolicy::from(&policy); + + assert_eq!( + should_use_windows_restricted_token_sandbox( + SandboxType::WindowsRestrictedToken, + &policy, + &file_system_policy, + ), + false + ); +} + #[test] fn windows_restricted_token_skips_external_sandbox_policies() { let policy = SandboxPolicy::ExternalSandbox {