fix(app-server): pass sandbox policy to managed proxy startup

This commit is contained in:
viyatb-oai
2026-02-11 16:13:26 -08:00
parent 04fdb6145f
commit fb636e57ae
3 changed files with 19 additions and 20 deletions
@@ -1657,8 +1657,24 @@ impl CodexMessageProcessor {
let timeout_ms = params
.timeout_ms
.and_then(|timeout_ms| u64::try_from(timeout_ms).ok());
let requested_policy = params.sandbox_policy.map(|policy| policy.to_core());
let effective_policy = match requested_policy {
Some(policy) => match self.config.sandbox_policy.can_set(&policy) {
Ok(()) => policy,
Err(err) => {
let error = JSONRPCErrorError {
code: INVALID_REQUEST_ERROR_CODE,
message: format!("invalid sandbox policy: {err}"),
data: None,
};
self.outgoing.send_error(request, error).await;
return;
}
},
None => self.config.sandbox_policy.get().clone(),
};
let started_network_proxy = match self.config.network.as_ref() {
Some(spec) => match spec.start_proxy().await {
Some(spec) => match spec.start_proxy(&effective_policy).await {
Ok(started) => Some(started),
Err(err) => {
let error = JSONRPCErrorError {
@@ -1687,23 +1703,6 @@ impl CodexMessageProcessor {
arg0: None,
};
let requested_policy = params.sandbox_policy.map(|policy| policy.to_core());
let effective_policy = match requested_policy {
Some(policy) => match self.config.sandbox_policy.can_set(&policy) {
Ok(()) => policy,
Err(err) => {
let error = JSONRPCErrorError {
code: INVALID_REQUEST_ERROR_CODE,
message: format!("invalid sandbox policy: {err}"),
data: None,
};
self.outgoing.send_error(request, error).await;
return;
}
},
None => self.config.sandbox_policy.get().clone(),
};
let codex_linux_sandbox_exe = self.config.codex_linux_sandbox_exe.clone();
let outgoing = self.outgoing.clone();
let request_for_task = request;
+1 -1
View File
@@ -216,7 +216,7 @@ async fn run_command_under_sandbox(
// This proxy should only live for the lifetime of the child process.
let network_proxy = match config.network.as_ref() {
Some(spec) => Some(
spec.start_proxy()
spec.start_proxy(config.sandbox_policy.get())
.await
.map_err(|err| anyhow::anyhow!("failed to start managed network proxy: {err}"))?,
),
+1 -1
View File
@@ -220,9 +220,9 @@ fn map_decider_decision(decision: NetworkDecision) -> NetworkDecision {
#[cfg(test)]
mod tests {
use super::*;
use crate::reasons::REASON_NOT_ALLOWED;
use crate::config::NetworkProxySettings;
use crate::reasons::REASON_DENIED;
use crate::reasons::REASON_NOT_ALLOWED;
use crate::reasons::REASON_NOT_ALLOWED_LOCAL;
use crate::state::network_proxy_state_for_policy;
use pretty_assertions::assert_eq;