mirror of
https://github.com/openai/codex.git
synced 2026-11-10 21:00:47 +00:00
Keep settings operations bound to their committed snapshot (#40645)
## Why Post-commit work can overlap with another settings write. Reading the session again afterward could make a settings operation report or use the later state instead of the state that it committed. ## What changed - Return the committed configuration and `ThreadSettingsSnapshot` from session settings updates. - Use that commit result when creating a turn and emitting `ThreadSettingsApplied`, while retaining current-state snapshots for synthesized fork history. - Route turn-start updates through the shared settings update path. ## Testing Add coverage for standalone and turn-start updates that pause after committing, restore different settings concurrently, and verify that each operation keeps its original configuration and notification snapshot. GitOrigin-RevId: cee5be9536d2840170893e6eb0c64cd039fb0a96
This commit is contained in:
committed by
copyberry
parent
a95391160a
commit
4e883ce36e
@@ -108,11 +108,11 @@ impl PreparedTurnInputSettings {
|
||||
updates.service_tier_for_turn = service_tier;
|
||||
|
||||
// new_turn_with_sub_id already emits an error event when settings are invalid.
|
||||
let turn_context = session
|
||||
let (turn_context, settings_snapshot) = session
|
||||
.new_turn_with_sub_id(submission_id.clone(), updates)
|
||||
.await?;
|
||||
if emit_thread_settings_applied {
|
||||
thread_settings::emit_applied(session, submission_id).await;
|
||||
thread_settings::emit_applied(session, submission_id, settings_snapshot).await;
|
||||
}
|
||||
if let Some(parent_turn_id) = parent_turn_id {
|
||||
turn_context
|
||||
|
||||
Reference in New Issue
Block a user