mirror of
https://github.com/openai/codex.git
synced 2026-11-13 14:46:14 +00:00
Scope environment readiness config to thread attachments (#38067)
## Why Threads that share an executor environment can require different capability roots and login-shell policies. Treating readiness configuration as executor-wide can expose one thread's settings to another. ## What changed - Add `CodexThread::environment_ready` and `EnvironmentConfig` so hosts can install capability roots and login-shell policy for an exact thread, environment, and working-directory attachment. - Validate attachment readiness updates, merge ready attachment roots with persisted thread roots, and refresh MCP capabilities when those roots change. - Preserve installed environment policy across thread settings updates and child-thread inheritance while resetting it when the selected working directory changes. ## Testing - Cover attachment config inheritance and reset behavior. - Verify that threads sharing an executor retain independent model-visible capability roots and login-shell tool schemas across updates. GitOrigin-RevId: 60e7a296b3e41b835b0413aa2837451e8a55c230
This commit is contained in:
1 parent
c8f673fddc
commit
b43de77679
18 files changed
+459
-18
No files matched your search
@@ -10,6 +10,7 @@ use codex_file_system::FileSystemSandboxContext;
|
||||
use codex_model_provider::SharedModelProvider;
|
||||
use codex_protocol::SessionId;
|
||||
use codex_protocol::ThreadId;
|
||||
use codex_protocol::capabilities::SelectedCapabilityRoot;
|
||||
use codex_protocol::models::AdditionalPermissionProfile;
|
||||
use codex_protocol::openai_models::MODEL_SPECIALTY_CYBER;
|
||||
use codex_protocol::openai_models::ModelInfo;
|
||||
@@ -34,6 +35,8 @@ pub(crate) type ShellSnapshotTask = Shared<BoxFuture<'static, Option<Arc<ShellSn
|
||||
pub(crate) struct TurnEnvironmentConfig {
|
||||
pub(crate) allow_login_shell: bool,
|
||||
pub(crate) permission_profile: PermissionProfileSnapshot,
|
||||
/// None preserves legacy executor roots; Some, including empty, is owner-installed.
|
||||
pub(crate) selected_capability_roots: Option<Vec<SelectedCapabilityRoot>>,
|
||||
}
|
||||
|
||||
#[derive(Clone)]
|
||||
|
||||
Reference in new issue
Block a user