mirror of
https://github.com/openai/codex.git
synced 2026-11-13 14:46:14 +00:00
Propagate temporary directories into sandbox policy contexts (#40660)
## Why Filesystem policies containing `:tmpdir` need executor-local directory bindings, including when execution occurs in a remote environment. ## What changed - Cache temporary directories reported by remote executors and discover the equivalent directories for local environments. - Preserve the cached directories across inherited environment selection and include them in `FileSystemSandboxContext`. - Add `FileSystemSandboxPolicyContext` and a context accessor so filesystem policy entries can be resolved with the executor-owned current directory, workspace roots, and temporary directories. ## Testing Extend environment-selection tests to cover local, remote, and inherited temporary-directory policy context. GitOrigin-RevId: 36335af3465c529f024bf69293af288803dd582d
This commit is contained in:
1 parent
2f4b105514
commit
ba9567daf3
10 files changed
+126
-12
No files matched your search
@@ -43,6 +43,8 @@ pub(crate) struct TurnEnvironment {
|
||||
pub(crate) selection: TurnEnvironmentSelection,
|
||||
pub(crate) config_origin: EnvironmentConfigOrigin,
|
||||
pub(crate) environment: Arc<Environment>,
|
||||
/// Cached from the selected executor; `None` means it did not report them.
|
||||
pub(crate) temporary_directories: Option<Vec<PathUri>>,
|
||||
pub(crate) shell: Option<shell::Shell>,
|
||||
pub(crate) shell_snapshot: ShellSnapshotTask,
|
||||
pub(crate) shell_snapshot_v2_supported: bool,
|
||||
@@ -60,6 +62,7 @@ impl TurnEnvironment {
|
||||
selection,
|
||||
config_origin,
|
||||
environment,
|
||||
temporary_directories: None,
|
||||
shell,
|
||||
shell_snapshot: futures::future::ready(None).boxed().shared(),
|
||||
shell_snapshot_v2_supported: false,
|
||||
@@ -123,6 +126,7 @@ impl TurnEnvironment {
|
||||
permissions: permissions.into(),
|
||||
cwd: Some(self.cwd().clone()),
|
||||
workspace_roots: self.workspace_roots().to_vec(),
|
||||
temporary_directories: self.temporary_directories.clone(),
|
||||
windows_sandbox_level: executor_windows_sandbox_level(
|
||||
config.windows_sandbox_level,
|
||||
self.cwd(),
|
||||
@@ -161,6 +165,7 @@ impl std::fmt::Debug for TurnEnvironment {
|
||||
.field("environment", &self.environment)
|
||||
.field("cwd", &self.selection.cwd)
|
||||
.field("workspace_roots", &self.selection.workspace_roots)
|
||||
.field("temporary_directories", &self.temporary_directories)
|
||||
.field("shell", &self.shell)
|
||||
.field("config", self.config())
|
||||
.field("config_origin", &self.config_origin)
|
||||
|
||||
Reference in new issue
Block a user