mirror of
https://github.com/openai/codex.git
synced 2026-09-13 11:47:17 +00:00
fix(windows-sandbox): disable private desktop in headless sessions
This commit is contained in:
@@ -10,6 +10,7 @@ use codex_login::default_client::originator;
|
||||
use codex_otel::sanitize_metric_tag_value;
|
||||
use codex_protocol::config_types::WindowsSandboxLevel;
|
||||
use codex_protocol::protocol::SandboxPolicy;
|
||||
use codex_utils_path::env::is_headless_environment;
|
||||
use std::collections::BTreeMap;
|
||||
use std::collections::HashMap;
|
||||
use std::path::Path;
|
||||
@@ -85,7 +86,21 @@ pub fn resolve_windows_sandbox_private_desktop(cfg: &ConfigToml, profile: &Confi
|
||||
.as_ref()
|
||||
.and_then(|windows| windows.sandbox_private_desktop)
|
||||
})
|
||||
.unwrap_or(true)
|
||||
.unwrap_or_else(default_windows_sandbox_private_desktop)
|
||||
}
|
||||
|
||||
fn default_windows_sandbox_private_desktop() -> bool {
|
||||
default_windows_sandbox_private_desktop_for_environment(
|
||||
cfg!(target_os = "windows"),
|
||||
is_headless_environment(),
|
||||
)
|
||||
}
|
||||
|
||||
fn default_windows_sandbox_private_desktop_for_environment(
|
||||
is_windows: bool,
|
||||
is_headless: bool,
|
||||
) -> bool {
|
||||
!is_windows || !is_headless
|
||||
}
|
||||
|
||||
fn legacy_windows_sandbox_keys_present(features: Option<&FeaturesToml>) -> bool {
|
||||
|
||||
@@ -166,9 +166,9 @@ fn resolve_windows_sandbox_private_desktop_prefers_profile_windows() {
|
||||
|
||||
#[test]
|
||||
fn resolve_windows_sandbox_private_desktop_defaults_to_true() {
|
||||
assert!(resolve_windows_sandbox_private_desktop(
|
||||
&ConfigToml::default(),
|
||||
&ConfigProfile::default()
|
||||
assert!(default_windows_sandbox_private_desktop_for_environment(
|
||||
/*is_windows*/ true,
|
||||
/*is_headless*/ false
|
||||
));
|
||||
}
|
||||
|
||||
@@ -187,3 +187,19 @@ fn resolve_windows_sandbox_private_desktop_respects_explicit_cfg_value() {
|
||||
&ConfigProfile::default()
|
||||
));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn resolve_windows_sandbox_private_desktop_defaults_to_false_for_headless_windows() {
|
||||
assert!(!default_windows_sandbox_private_desktop_for_environment(
|
||||
/*is_windows*/ true,
|
||||
/*is_headless*/ true
|
||||
));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn resolve_windows_sandbox_private_desktop_non_windows_default_stays_true() {
|
||||
assert!(default_windows_sandbox_private_desktop_for_environment(
|
||||
/*is_windows*/ false,
|
||||
/*is_headless*/ true
|
||||
));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user