Record reasoning effort changes in conversation history behind a flag (#43110)

## What changed

Add the disabled-by-default `reasoning_effort_override` feature for OpenAI models with `use_responses_lite` enabled. Append a trusted `configuration_update` after accepted input when no effort is established in surviving history or the resolved effort changes. Preserve the existing history prefix and continue sending the request-level reasoning effort.

Share effort normalization through `ModelInfo::resolve_reasoning_effort` so requests and history updates resolve `ultra` consistently and translate `persistent` to `disabled`. Exclude other custom effort values from history updates, and compare only against harness-authored configuration items.

## Testing

Add integration coverage for effort transitions, deduplication, history prefix and cache-key preservation, alias normalization, and feature/provider/model gating. Add unit coverage for model-specific `ultra` resolution, fallbacks, and `persistent` translation.

GitOrigin-RevId: c3fe7050058076454d8ea20054a618bca9d48c7c
This commit is contained in:
felixxia-oai authored and copyberry committed 2026-09-05 21:56:43 +00:00
1 parent e67a8ae6c9
commit 56a8470aa0
11 files changed
+523 -39

No files matched your search

+6
View File
@@ -879,6 +879,9 @@
"realtime_conversation": {
"type": "boolean"
},
"reasoning_effort_override": {
"type": "boolean"
},
"recommended_plugins": {
"type": "boolean"
},
@@ -6271,6 +6274,9 @@
"realtime_conversation": {
"type": "boolean"
},
"reasoning_effort_override": {
"type": "boolean"
},
"recommended_plugins": {
"type": "boolean"
},