Move workspace roots onto thread/session state and stop using active permission profile modifications as an overlay for writable roots. Existing app-server threads no longer accept arbitrary PermissionProfile or SandboxPolicy replacements; permissions requests select a server-known profile id and apply the resolved server-owned profile together with active profile metadata. Workspace roots can be updated independently, and SandboxPolicy::WorkspaceWrite no longer stores its own writable_roots.

This commit is contained in:
Michael Bolin
2026-05-11 23:00:07 -07:00
parent 9ab7f4e6ac
commit f6eacf7452
152 changed files with 4228 additions and 2683 deletions
@@ -190,6 +190,7 @@ async fn run_cmd_result_with_permission_profile_for_cwd(
params,
&permission_profile,
&sandbox_cwd,
std::slice::from_ref(&sandbox_cwd),
&codex_linux_sandbox_exe,
use_legacy_landlock,
/*stdout_stream*/ None,
@@ -448,6 +449,7 @@ async fn assert_network_blocked(cmd: &[&str]) {
params,
&permission_profile,
&sandbox_cwd,
std::slice::from_ref(&sandbox_cwd),
&codex_linux_sandbox_exe,
/*use_legacy_landlock*/ false,
/*stdout_stream*/ None,