mirror of
https://github.com/openai/codex.git
synced 2026-10-30 16:12:09 +00:00
Preserve parent sandbox enforcement for memory consolidation (#32441)
## What changed - Pass the parent turn's effective permission profile to the memory consolidation agent, including thread-level permission and legacy sandbox overrides. - Preserve disabled and externally enforced permission profiles instead of replacing them with a managed sandbox. - Continue restricting consolidation to the memory root without network access when the parent uses Codex-managed permissions. ## Testing - Add coverage for disabled, external, and managed parent permission profiles. GitOrigin-RevId: 9ca3be0e41dc14d858053f6f70e33f4ae7c578e1
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
use super::*;
|
||||
use codex_protocol::models::ContentItem;
|
||||
use codex_protocol::models::FunctionCallOutputContentItem;
|
||||
use codex_protocol::models::PermissionProfile;
|
||||
use codex_protocol::protocol::AdditionalContextEntry as CoreAdditionalContextEntry;
|
||||
use codex_protocol::protocol::AdditionalContextKind as CoreAdditionalContextKind;
|
||||
use codex_protocol::protocol::MultiAgentVersion;
|
||||
@@ -517,6 +518,13 @@ impl TurnRequestProcessor {
|
||||
},
|
||||
)
|
||||
.await?;
|
||||
let parent_permission_profile_override =
|
||||
thread_settings.permission_profile.clone().or_else(|| {
|
||||
thread_settings
|
||||
.sandbox_policy
|
||||
.as_ref()
|
||||
.map(PermissionProfile::from_legacy_sandbox_policy)
|
||||
});
|
||||
|
||||
// Start the turn by submitting the user input. Return its submission id as turn_id.
|
||||
let turn_op = Op::UserInput {
|
||||
@@ -541,12 +549,15 @@ impl TurnRequestProcessor {
|
||||
|
||||
if turn_has_input {
|
||||
let config_snapshot = thread.config_snapshot().await;
|
||||
let parent_permission_profile =
|
||||
parent_permission_profile_override.unwrap_or(config_snapshot.permission_profile);
|
||||
codex_memories_write::start_memories_startup_task(
|
||||
Arc::clone(&self.thread_manager),
|
||||
Arc::clone(&self.auth_manager),
|
||||
thread_id,
|
||||
Arc::clone(&thread),
|
||||
thread.config().await,
|
||||
parent_permission_profile,
|
||||
&config_snapshot.session_source,
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user