From aea47290fdec653c3b10d0d92695395a7fb42d88 Mon Sep 17 00:00:00 2001 From: Eric Traut Date: Sat, 16 May 2026 18:12:46 -0700 Subject: [PATCH] Wait before resolving turn start context --- .../src/request_processors/turn_processor.rs | 36 ++++++++++--------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/codex-rs/app-server/src/request_processors/turn_processor.rs b/codex-rs/app-server/src/request_processors/turn_processor.rs index d30370bc52..58556f5640 100644 --- a/codex-rs/app-server/src/request_processors/turn_processor.rs +++ b/codex-rs/app-server/src/request_processors/turn_processor.rs @@ -629,6 +629,24 @@ impl TurnRequestProcessor { self.track_error_response(&request_id, error, /*error_type*/ None); })?; + let turn_context_request = TurnContextOverrideRequest { + cwd: params.cwd, + runtime_workspace_roots: params.runtime_workspace_roots, + approval_policy: params.approval_policy, + approvals_reviewer: params.approvals_reviewer, + sandbox_policy: params.sandbox_policy, + permissions: params.permissions, + model: params.model, + service_tier: params.service_tier, + effort: params.effort.map(Some), + summary: params.summary, + collaboration_mode: params.collaboration_mode, + personality: params.personality, + }; + if turn_context_request.has_any_overrides() { + self.wait_for_pending_turn_contexts(thread_id).await?; + } + let before_snapshot = thread.config_snapshot().await; let before_turn_context = thread_turn_context_from_snapshot(&before_snapshot); let environment_selections = self.parse_environment_selections(params.environments)?; @@ -641,23 +659,7 @@ impl TurnRequestProcessor { .collect(); let turn_has_input = !mapped_items.is_empty(); let resolved_overrides = self - .resolve_turn_context_overrides( - &before_snapshot, - TurnContextOverrideRequest { - cwd: params.cwd, - runtime_workspace_roots: params.runtime_workspace_roots, - approval_policy: params.approval_policy, - approvals_reviewer: params.approvals_reviewer, - sandbox_policy: params.sandbox_policy, - permissions: params.permissions, - model: params.model, - service_tier: params.service_tier, - effort: params.effort.map(Some), - summary: params.summary, - collaboration_mode: params.collaboration_mode, - personality: params.personality, - }, - ) + .resolve_turn_context_overrides(&before_snapshot, turn_context_request) .await?; let has_turn_context_overrides = resolved_overrides.is_some(); if let Some(overrides) = resolved_overrides.as_ref() {