Use model catalog default for reasoning summary fallback (#12873)

## Summary
- make `Config.model_reasoning_summary` optional so unset means use
model default
- resolve the optional config value to a concrete summary when building
`TurnContext`
- add protocol support for `default_reasoning_summary` in model metadata

## Validation
- `cargo test -p codex-core --lib client::tests -- --nocapture`

---------

Co-authored-by: Codex <noreply@openai.com>
This commit is contained in:
pakrym-oai
2026-02-26 09:31:13 -08:00
committed by GitHub
parent f0a85ded18
commit ba41e84a50
24 changed files with 175 additions and 40 deletions

View File

@@ -175,7 +175,9 @@ async fn remote_models_long_model_slug_is_sent_with_high_reasoning() -> Result<(
sandbox_policy: config.permissions.sandbox_policy.get().clone(),
model: requested_model.to_string(),
effort: None,
summary: config.model_reasoning_summary,
summary: config
.model_reasoning_summary
.unwrap_or(ReasoningSummary::Auto),
collaboration_mode: None,
personality: None,
})
@@ -227,7 +229,9 @@ async fn namespaced_model_slug_uses_catalog_metadata_without_fallback_warning()
sandbox_policy: config.permissions.sandbox_policy.get().clone(),
model: requested_model.to_string(),
effort: None,
summary: config.model_reasoning_summary,
summary: config
.model_reasoning_summary
.unwrap_or(ReasoningSummary::Auto),
collaboration_mode: None,
personality: None,
})
@@ -284,6 +288,7 @@ async fn remote_models_remote_model_uses_unified_exec() -> Result<()> {
base_instructions: "base instructions".to_string(),
model_messages: None,
supports_reasoning_summaries: false,
default_reasoning_summary: ReasoningSummary::Auto,
support_verbosity: false,
default_verbosity: None,
apply_patch_tool_type: None,
@@ -520,6 +525,7 @@ async fn remote_models_apply_remote_base_instructions() -> Result<()> {
base_instructions: remote_base.to_string(),
model_messages: None,
supports_reasoning_summaries: false,
default_reasoning_summary: ReasoningSummary::Auto,
support_verbosity: false,
default_verbosity: None,
apply_patch_tool_type: None,
@@ -980,6 +986,7 @@ fn test_remote_model_with_policy(
base_instructions: "base instructions".to_string(),
model_messages: None,
supports_reasoning_summaries: false,
default_reasoning_summary: ReasoningSummary::Auto,
support_verbosity: false,
default_verbosity: None,
apply_patch_tool_type: None,