mirror of
https://github.com/openai/codex.git
synced 2026-11-14 06:48:26 +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
@@ -442,11 +442,13 @@ impl Session {
|
||||
.selected_capability_roots
|
||||
.iter()
|
||||
.cloned()
|
||||
.chain(
|
||||
environments
|
||||
.turn_environments()
|
||||
.flat_map(|environment| environment.environment.selected_capability_roots()),
|
||||
)
|
||||
.chain(environments.turn_environments().flat_map(|environment| {
|
||||
environment
|
||||
.config
|
||||
.selected_capability_roots
|
||||
.clone()
|
||||
.unwrap_or_else(|| environment.environment.selected_capability_roots())
|
||||
}))
|
||||
.enumerate()
|
||||
{
|
||||
if let Some(kept_location) = root_locations_by_id.get(&root.id) {
|
||||
|
||||
Reference in new issue
Block a user