diff --git a/codex-rs/core/src/session/session.rs b/codex-rs/core/src/session/session.rs index 08abb46377..5be83200cf 100644 --- a/codex-rs/core/src/session/session.rs +++ b/codex-rs/core/src/session/session.rs @@ -953,11 +953,15 @@ impl Session { None }; let blocked_request_observer = if managed_network_requirements_configured { - config - .permissions - .network - .as_ref() - .map(|_| build_blocked_request_observer(Arc::clone(&network_approval))) + config.permissions.network.as_ref().map(|_| { + build_blocked_request_observer( + Arc::clone(&network_approval), + crate::security_events::SandboxViolationAuditContext::from_network_proxy( + state_db_ctx.clone(), + network_proxy_audit_metadata.clone(), + ), + ) + }) } else { None }; diff --git a/codex-rs/core/src/tools/runtimes/mod_tests.rs b/codex-rs/core/src/tools/runtimes/mod_tests.rs index f6ec38f6c2..15f24caa0c 100644 --- a/codex-rs/core/src/tools/runtimes/mod_tests.rs +++ b/codex-rs/core/src/tools/runtimes/mod_tests.rs @@ -101,6 +101,7 @@ async fn explicit_escalation_prepares_exec_without_managed_network() -> anyhow:: let options = ExecOptions { expiration: ExecExpiration::DefaultTimeout, capture_policy: ExecCapturePolicy::ShellTool, + sandbox_violation_context: None, }; let permissions = PermissionProfile::Disabled; let manager = SandboxManager::new();