mirror of
https://github.com/openai/codex.git
synced 2026-10-19 17:28:46 +00:00
Support model-owned token budget defaults (#35608)
## What changed - Add token-budget settings to model catalog messages and apply them when the feature is enabled without explicit token-budget configuration. - Keep explicit user settings authoritative, reject invalid catalog defaults, and preserve resolved defaults in exported config locks. - Manage context-window guidance through world state so it updates once when the active model changes while retaining prior conversation history. ## Testing - Cover catalog defaults, explicit overrides, disabled features, invalid values, config-lock replay, and model switching. GitOrigin-RevId: 54544fefaa14b09f5ef5bad9967a13c52b87b0fe
This commit is contained in:
@@ -115,6 +115,7 @@ fn clear_instruction_messages(model: &mut ModelInfo) {
|
||||
if model_messages.approvals.is_none()
|
||||
&& model_messages.auto_review.is_none()
|
||||
&& model_messages.permissions.is_none()
|
||||
&& model_messages.token_budget.is_none()
|
||||
{
|
||||
model.model_messages = None;
|
||||
}
|
||||
@@ -181,6 +182,7 @@ fn local_personality_messages_for_slug(slug: &str) -> Option<ModelMessages> {
|
||||
approvals: None,
|
||||
auto_review: None,
|
||||
permissions: None,
|
||||
token_budget: None,
|
||||
}),
|
||||
_ => None,
|
||||
}
|
||||
|
||||
@@ -33,6 +33,7 @@ fn base_instruction_override_preserves_catalog_approval_messages() {
|
||||
approvals: Some(approvals.clone()),
|
||||
auto_review: None,
|
||||
permissions: None,
|
||||
token_budget: None,
|
||||
});
|
||||
let config = ModelsManagerConfig {
|
||||
base_instructions: Some("override".to_string()),
|
||||
@@ -49,6 +50,7 @@ fn base_instruction_override_preserves_catalog_approval_messages() {
|
||||
approvals: Some(approvals),
|
||||
auto_review: None,
|
||||
permissions: None,
|
||||
token_budget: None,
|
||||
})
|
||||
);
|
||||
}
|
||||
@@ -68,6 +70,7 @@ fn disabled_personality_preserves_catalog_approval_messages() {
|
||||
approvals: Some(approvals.clone()),
|
||||
auto_review: None,
|
||||
permissions: None,
|
||||
token_budget: None,
|
||||
});
|
||||
let config = ModelsManagerConfig {
|
||||
personality_enabled: false,
|
||||
@@ -84,6 +87,7 @@ fn disabled_personality_preserves_catalog_approval_messages() {
|
||||
approvals: Some(approvals),
|
||||
auto_review: None,
|
||||
permissions: None,
|
||||
token_budget: None,
|
||||
})
|
||||
);
|
||||
}
|
||||
@@ -101,6 +105,7 @@ fn base_instruction_override_preserves_catalog_auto_review_messages() {
|
||||
approvals: None,
|
||||
auto_review: Some(auto_review.clone()),
|
||||
permissions: None,
|
||||
token_budget: None,
|
||||
});
|
||||
let config = ModelsManagerConfig {
|
||||
base_instructions: Some("override".to_string()),
|
||||
@@ -117,6 +122,7 @@ fn base_instruction_override_preserves_catalog_auto_review_messages() {
|
||||
approvals: None,
|
||||
auto_review: Some(auto_review),
|
||||
permissions: None,
|
||||
token_budget: None,
|
||||
})
|
||||
);
|
||||
}
|
||||
@@ -135,6 +141,7 @@ fn base_instruction_override_preserves_catalog_permission_messages() {
|
||||
approvals: None,
|
||||
auto_review: None,
|
||||
permissions: Some(permissions.clone()),
|
||||
token_budget: None,
|
||||
});
|
||||
let config = ModelsManagerConfig {
|
||||
base_instructions: Some("override".to_string()),
|
||||
@@ -151,6 +158,7 @@ fn base_instruction_override_preserves_catalog_permission_messages() {
|
||||
approvals: None,
|
||||
auto_review: None,
|
||||
permissions: Some(permissions),
|
||||
token_budget: None,
|
||||
})
|
||||
);
|
||||
}
|
||||
@@ -187,6 +195,7 @@ fn personality_none_strips_catalog_instruction_sources_through_the_next_h1() {
|
||||
approvals: None,
|
||||
auto_review: None,
|
||||
permissions: None,
|
||||
token_budget: None,
|
||||
});
|
||||
|
||||
let updated = with_config_overrides(model, &config);
|
||||
|
||||
Reference in New Issue
Block a user