Keep active-turn model settings stable across updates (#38785)

## Why

Thread settings can change while a turn is still active, including between sampling requests. Those updates should apply to the next turn instead of changing the model configuration partway through the current turn.

## What changed

- Snapshot the model, reasoning settings, service tier, approval settings, and model-attributed telemetry in `StepContext`.
- Build prompts, model requests, world state, tracing, and startup prewarms from that step-scoped snapshot.
- Share immutable model metadata between turn and step contexts.

## Testing

Added an integration test that pauses an active turn, updates its thread settings, and verifies that all requests in the active turn retain the original settings while the next turn uses the updates.

GitOrigin-RevId: c51352218e463dcc9b7338566d16742292c49fbf
This commit is contained in:
joeflorencio-openai authored and copyberry committed 2026-08-15 16:58:08 +00:00
1 parent c4941302c7
commit 00f6a8a60e
13 files changed
+307 -104

No files matched your search

+1 -1
View File
@@ -138,7 +138,7 @@ pub(super) async fn spawn_review_thread(
code_mode_available: parent_turn_context.code_mode_available,
config: per_turn_config,
auth_manager: auth_manager_for_context,
model_info: model_info.clone(),
model_info: Arc::new(model_info.clone()),
session_telemetry: session_telemetry_for_context,
provider: provider_for_context,
reasoning_effort,