mirror of
https://github.com/openai/codex.git
synced 2026-11-13 14:46:14 +00:00
Derive sandbox contexts from turn environments (#40551)
## What changed - Add Windows sandbox mode, private-desktop behavior, and legacy Landlock selection to each `EnvironmentConfig`. - Centralize sandbox context construction on `TurnEnvironment`, preserving environment-owned permissions, paths, and backend settings while applying additional permission grants. - Use the environment-derived context for project instructions, capability discovery, file uploads, and filesystem-oriented tools. ## Testing - Verify capability discovery uses the selected environment's permission profile and sandbox backends when they differ from the thread defaults. GitOrigin-RevId: 7ae2fed90c8ada950f2e8431e571e9b2c793c291
This commit is contained in:
1 parent
348f49b292
commit
8444cf63b5
47 files changed
+341
-151
No files matched your search
@@ -97,7 +97,11 @@ pub(crate) struct SessionConfiguration {
|
||||
pub(super) permission_profile_state: PermissionProfileState,
|
||||
pub(super) allow_login_shell: bool,
|
||||
pub(super) shell_environment_policy: ShellEnvironmentPolicy,
|
||||
// TODO(anp): Reconcile these legacy thread defaults with TurnEnvironment::sandbox_context;
|
||||
// internal sandbox decisions should use the selected environment's configuration.
|
||||
pub(super) windows_sandbox_level: WindowsSandboxLevel,
|
||||
pub(super) windows_sandbox_private_desktop: bool,
|
||||
pub(super) use_legacy_landlock: bool,
|
||||
|
||||
/// Legacy thread cwd used when a turn does not select an environment.
|
||||
pub(super) legacy_fallback_cwd: AbsolutePathBuf,
|
||||
@@ -144,6 +148,9 @@ impl SessionConfiguration {
|
||||
allow_login_shell: self.allow_login_shell,
|
||||
permission_profile: self.permission_profile_state.snapshot(),
|
||||
shell_environment_policy: self.shell_environment_policy.clone(),
|
||||
windows_sandbox_level: self.windows_sandbox_level,
|
||||
windows_sandbox_private_desktop: self.windows_sandbox_private_desktop,
|
||||
use_legacy_landlock: self.use_legacy_landlock,
|
||||
exec_policy: None,
|
||||
mcp_policy: None,
|
||||
network_policy: None,
|
||||
@@ -293,6 +300,9 @@ impl SessionConfiguration {
|
||||
service_tier: Some(self.service_tier.clone()),
|
||||
collaboration_mode: Some(self.collaboration_mode.clone()),
|
||||
personality: self.personality,
|
||||
// TODO(anp): Include the runtime Windows sandbox override in restored settings.
|
||||
// This omission predates TurnEnvironment::sandbox_context; rebuilding FromThread
|
||||
// environments falls back to Config instead of retaining that override.
|
||||
..Default::default()
|
||||
}
|
||||
}
|
||||
@@ -1219,11 +1229,7 @@ impl Session {
|
||||
otel.name = "session_init.thread_name_lookup",
|
||||
));
|
||||
let (agents_md_result, plugin_skill_errors, thread_name) = tokio::join!(
|
||||
agents_md_manager.refresh(
|
||||
config.as_ref(),
|
||||
&resolved_environments,
|
||||
session_configuration.windows_sandbox_level,
|
||||
),
|
||||
agents_md_manager.refresh(config.as_ref(), &resolved_environments),
|
||||
plugin_skill_warmup,
|
||||
thread_name_lookup,
|
||||
);
|
||||
|
||||
Reference in new issue
Block a user