From d67b1f7d32a1c7d794beb624615b566f1dd26c90 Mon Sep 17 00:00:00 2001 From: kevin zhao Date: Fri, 21 Nov 2025 15:44:48 -0500 Subject: [PATCH] cleanup exec_policy getters --- codex-rs/core/src/codex.rs | 10 +++++++--- codex-rs/core/src/tools/handlers/shell.rs | 1 - codex-rs/core/src/unified_exec/session_manager.rs | 1 - 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/codex-rs/core/src/codex.rs b/codex-rs/core/src/codex.rs index c3653d12fb..b364cf844f 100644 --- a/codex-rs/core/src/codex.rs +++ b/codex-rs/core/src/codex.rs @@ -50,6 +50,7 @@ use mcp_types::RequestId; use serde_json; use serde_json::Value; use tokio::sync::Mutex; +use tokio::sync::OwnedRwLockReadGuard; use tokio::sync::RwLock; use tokio::sync::oneshot; use tokio_util::sync::CancellationToken; @@ -894,9 +895,12 @@ impl Session { Ok(()) } - pub(crate) async fn current_exec_policy(&self) -> Arc> { - let state = self.state.lock().await; - state.session_configuration.exec_policy.clone() + pub(crate) async fn current_exec_policy(&self) -> OwnedRwLockReadGuard { + let exec_policy = { + let state = self.state.lock().await; + state.session_configuration.exec_policy.clone() + }; + exec_policy.read_owned().await } /// Emit an exec approval request event and await the user's decision. diff --git a/codex-rs/core/src/tools/handlers/shell.rs b/codex-rs/core/src/tools/handlers/shell.rs index 47a5495063..a09f198b3c 100644 --- a/codex-rs/core/src/tools/handlers/shell.rs +++ b/codex-rs/core/src/tools/handlers/shell.rs @@ -233,7 +233,6 @@ impl ShellHandler { let features = session.features().await; let exec_policy = session.current_exec_policy().await; - let exec_policy = exec_policy.read().await; let req = ShellRequest { command: exec_params.command.clone(), cwd: exec_params.cwd.clone(), diff --git a/codex-rs/core/src/unified_exec/session_manager.rs b/codex-rs/core/src/unified_exec/session_manager.rs index e1b3672fce..c2b1c2be06 100644 --- a/codex-rs/core/src/unified_exec/session_manager.rs +++ b/codex-rs/core/src/unified_exec/session_manager.rs @@ -557,7 +557,6 @@ impl UnifiedExecSessionManager { let mut orchestrator = ToolOrchestrator::new(); let mut runtime = UnifiedExecRuntime::new(self); let exec_policy = context.session.current_exec_policy().await; - let exec_policy = exec_policy.read().await; let req = UnifiedExecToolRequest::new( command.to_vec(), cwd,