From 6e936f92a4d76958ed0772c8e39a1de1d33e1404 Mon Sep 17 00:00:00 2001 From: jif-oai Date: Fri, 31 Oct 2025 14:24:09 +0100 Subject: [PATCH] R3 --- codex-rs/api-client/src/prompt.rs | 3 --- codex-rs/api-client/src/responses.rs | 2 +- codex-rs/core/src/client.rs | 1 - codex-rs/core/src/codex.rs | 8 -------- codex-rs/core/src/state/session.rs | 6 ++++-- 5 files changed, 5 insertions(+), 15 deletions(-) diff --git a/codex-rs/api-client/src/prompt.rs b/codex-rs/api-client/src/prompt.rs index 5dce2980e7..83ad55dec3 100644 --- a/codex-rs/api-client/src/prompt.rs +++ b/codex-rs/api-client/src/prompt.rs @@ -14,7 +14,6 @@ pub struct Prompt { pub output_schema: Option, pub reasoning: Option, pub text_controls: Option, - pub store_response: bool, pub prompt_cache_key: Option, pub previous_response_id: Option, pub session_source: Option, @@ -30,7 +29,6 @@ impl Prompt { output_schema: Option, reasoning: Option, text_controls: Option, - store_response: bool, prompt_cache_key: Option, previous_response_id: Option, session_source: Option, @@ -43,7 +41,6 @@ impl Prompt { output_schema, reasoning, text_controls, - store_response, prompt_cache_key, previous_response_id, session_source, diff --git a/codex-rs/api-client/src/responses.rs b/codex-rs/api-client/src/responses.rs index b4f165654f..da55e9f2c5 100644 --- a/codex-rs/api-client/src/responses.rs +++ b/codex-rs/api-client/src/responses.rs @@ -114,7 +114,7 @@ impl ResponsesApiClient { "tools": prompt.tools, "tool_choice": "auto", "parallel_tool_calls": prompt.parallel_tool_calls, - "store": azure_workaround || prompt.store_response, + "store": azure_workaround, "stream": true, "prompt_cache_key": prompt .prompt_cache_key diff --git a/codex-rs/core/src/client.rs b/codex-rs/core/src/client.rs index 5d9e7ac634..9a82a160d0 100644 --- a/codex-rs/core/src/client.rs +++ b/codex-rs/core/src/client.rs @@ -280,7 +280,6 @@ impl ModelClient { crate::client_common::compute_full_instructions(None, &self.config.model_family, false) .into_owned(); prompt.instructions = instructions; - prompt.store_response = false; prompt.previous_response_id = None; self.stream(&prompt).await } diff --git a/codex-rs/core/src/codex.rs b/codex-rs/core/src/codex.rs index 325f7533de..6b5c1f5147 100644 --- a/codex-rs/core/src/codex.rs +++ b/codex-rs/core/src/codex.rs @@ -981,14 +981,9 @@ impl Session { async fn update_responses_api_chain_state( &self, - supports_responses_api_chaining: bool, response_id: Option, ) { let mut state = self.state.lock().await; - if !supports_responses_api_chaining { - state.reset_responses_api_chain(); - return; - } let Some(response_id) = response_id.filter(|id| !id.is_empty()) else { state.reset_responses_api_chain(); @@ -2028,8 +2023,6 @@ async fn try_run_turn( prompt: Prompt, cancellation_token: CancellationToken, ) -> CodexResult { - let supports_responses_api_chaining = prompt.store_response; - let rollout_item = RolloutItem::TurnContext(TurnContextItem { cwd: turn_context.cwd.clone(), approval_policy: turn_context.approval_policy, @@ -2187,7 +2180,6 @@ async fn try_run_turn( tracker.get_unified_diff() }; sess.update_responses_api_chain_state( - supports_responses_api_chaining, Some(response_id.clone()), ) .await; diff --git a/codex-rs/core/src/state/session.rs b/codex-rs/core/src/state/session.rs index 2268d9009e..b9bb90d20f 100644 --- a/codex-rs/core/src/state/session.rs +++ b/codex-rs/core/src/state/session.rs @@ -8,6 +8,7 @@ use crate::codex::SessionConfiguration; use crate::conversation_history::ConversationHistory; use crate::conversation_history::ResponsesApiChainState; use crate::conversation_history::format_prompt_items; +use crate::features::Feature; use crate::model_family::ModelFamily; use crate::protocol::RateLimitSnapshot; use crate::protocol::TokenUsage; @@ -61,7 +62,9 @@ impl SessionState { } pub(crate) fn set_responses_api_chain(&mut self, chain: ResponsesApiChainState) { - self.history.set_responses_api_chain(chain); + if self.session_configuration.features.enabled(Feature::ResponsesApiChaining) { + self.history.set_responses_api_chain(chain); + } } // Token/rate limit helpers @@ -142,7 +145,6 @@ pub(crate) fn build_prompt_from_items( chain_state: Option<&ResponsesApiChainState>, ) -> (Prompt, bool) { let mut prompt = Prompt { - store_response: chain_state.is_some(), ..Prompt::default() };