mirror of
https://github.com/openai/codex.git
synced 2026-11-14 14:49:31 +00:00
Use captured step settings when building model context (#44200)
## Why Model changes during an active turn could leave context using the turn's initial model and settings, even after requests switched to the new model. ## What changed - Build model, personality, approval, collaboration, app, plugin, and multi-agent instructions from captured step settings. - Resolve multi-agent policy from the step's effective reasoning effort. - Use the captured step's context window for full-context metadata and retain that step when rebuilding initial context for compaction. ## Testing Add regression coverage for model switches updating context without duplicating updates, delegation policy following selected or model-default reasoning effort, and compaction preserving retained context after a model change. GitOrigin-RevId: 3615c7a3f13f15fdcce9ad13d23311340e0aea88
This commit is contained in:
1 parent
ccf470c060
commit
b4507997e0
11 files changed
+373
-69
No files matched your search
@@ -369,16 +369,6 @@ impl TurnContext {
|
||||
self.initial_settings.personality()
|
||||
}
|
||||
|
||||
/// Legacy: returns the frozen initial-turn collaboration-mode developer instructions.
|
||||
/// Step-scoped consumers should use their captured `StepContext::settings`.
|
||||
pub(crate) fn collaboration_mode_developer_instructions(&self) -> &Option<String> {
|
||||
&self
|
||||
.initial_settings
|
||||
.selected_collaboration_mode()
|
||||
.settings
|
||||
.developer_instructions
|
||||
}
|
||||
|
||||
pub(crate) fn skills_snapshot(&self) -> Arc<HostSkillsSnapshot> {
|
||||
let Some(snapshot) = self.extension_data.get::<HostSkillsSnapshot>() else {
|
||||
unreachable!("every turn has a host skills snapshot");
|
||||
@@ -389,14 +379,7 @@ impl TurnContext {
|
||||
/// Legacy: returns the frozen initial-turn collaboration mode with the resolved model slug.
|
||||
/// Step-scoped consumers should use their captured `StepContext::settings`.
|
||||
pub(crate) fn collaboration_mode(&self) -> CollaborationMode {
|
||||
CollaborationMode {
|
||||
mode: self.mode(),
|
||||
settings: Settings {
|
||||
model: self.model_info().slug.clone(),
|
||||
reasoning_effort: self.reasoning_effort().cloned(),
|
||||
developer_instructions: self.collaboration_mode_developer_instructions().clone(),
|
||||
},
|
||||
}
|
||||
self.initial_settings.effective_collaboration_mode()
|
||||
}
|
||||
|
||||
pub(crate) fn plugin_attribution_for_command(
|
||||
|
||||
Reference in new issue
Block a user