diff --git a/codex-rs/core/src/exec_policy.rs b/codex-rs/core/src/exec_policy.rs index 3747be6f07..92cf6a12bb 100644 --- a/codex-rs/core/src/exec_policy.rs +++ b/codex-rs/core/src/exec_policy.rs @@ -61,12 +61,17 @@ pub(crate) fn exec_policy_for( } }; - let mut policy_paths: Vec = Vec::new(); + let entries = entries + .map(|entry| { + entry.map_err(|source| ExecPolicyError::ReadDir { + dir: policy_dir.clone(), + source, + }) + }) + .collect::, _>>()?; + + let mut policy_paths: Vec = Vec::with_capacity(entries.len()); for entry in entries { - let entry = entry.map_err(|source| ExecPolicyError::ReadDir { - dir: policy_dir.clone(), - source, - })?; let path = entry.path(); if path .extension() diff --git a/codex-rs/core/src/tools/sandboxing.rs b/codex-rs/core/src/tools/sandboxing.rs index 08c766ab7f..739c743765 100644 --- a/codex-rs/core/src/tools/sandboxing.rs +++ b/codex-rs/core/src/tools/sandboxing.rs @@ -93,7 +93,6 @@ pub(crate) enum ApprovalRequirement { Forbidden { reason: String }, } -/// Reflects the orchestrator's behavior (pre-refactor): /// - Never, OnFailure: do not ask /// - OnRequest: ask unless sandbox policy is DangerFullAccess /// - UnlessTrusted: always ask