From 46c32685421238824a59465e12a5fd631cf8be9c Mon Sep 17 00:00:00 2001 From: Eric Traut Date: Tue, 11 Aug 2026 19:26:56 +0000 Subject: [PATCH] Disable storage for Azure Responses requests (#38060) ## What changed - Set `store` to `false` for every Responses request, including requests sent through Azure providers. - Remove the provider-specific storage check and simplify request construction. - Update the Azure request test to verify that storage is disabled while prefixed item IDs remain unchanged. GitOrigin-RevId: 1c71cb80880058cb26789112f03269b73f0645b9 --- codex-rs/codex-api/src/provider.rs | 4 ---- codex-rs/core/src/client.rs | 7 +------ codex-rs/core/tests/suite/client.rs | 4 ++-- 3 files changed, 3 insertions(+), 12 deletions(-) diff --git a/codex-rs/codex-api/src/provider.rs b/codex-rs/codex-api/src/provider.rs index 45f2512dc3..849513af55 100644 --- a/codex-rs/codex-api/src/provider.rs +++ b/codex-rs/codex-api/src/provider.rs @@ -85,10 +85,6 @@ impl Provider { } } - pub fn is_azure_responses_endpoint(&self) -> bool { - is_azure_responses_provider(&self.name, Some(&self.base_url)) - } - pub fn websocket_url_for_path(&self, path: &str) -> Result { let mut url = Url::parse(&self.url_for_path(path))?; diff --git a/codex-rs/core/src/client.rs b/codex-rs/core/src/client.rs index 3add9a2682..da3b6dad38 100644 --- a/codex-rs/core/src/client.rs +++ b/codex-rs/core/src/client.rs @@ -577,7 +577,6 @@ impl ModelClient { self.state.auth_env_telemetry.clone(), ); let request = self.build_responses_request( - &client_setup.api_provider, prompt, model_info, settings.effort, @@ -842,10 +841,8 @@ impl ModelClient { } } - #[allow(clippy::too_many_arguments)] fn build_responses_request( &self, - provider: &codex_api::Provider, prompt: &Prompt, model_info: &ModelInfo, effort: Option, @@ -931,7 +928,7 @@ impl ModelClient { tool_choice: "auto".to_string(), parallel_tool_calls: prompt.parallel_tool_calls && !model_info.use_responses_lite, reasoning: Some(reasoning), - store: provider.is_azure_responses_endpoint(), + store: false, stream: true, stream_options, include, @@ -1482,7 +1479,6 @@ impl ModelClientSession { .await; let mut request = self.client.build_responses_request( - &client_setup.api_provider, prompt, model_info, effort.clone(), @@ -1603,7 +1599,6 @@ impl ModelClientSession { pending_retry, ); let mut request = self.client.build_responses_request( - &client_setup.api_provider, prompt, model_info, effort.clone(), diff --git a/codex-rs/core/tests/suite/client.rs b/codex-rs/core/tests/suite/client.rs index 9cc56b8473..30751b3bd7 100644 --- a/codex-rs/core/tests/suite/client.rs +++ b/codex-rs/core/tests/suite/client.rs @@ -3028,7 +3028,7 @@ async fn includes_developer_instructions_message_in_request() { } #[tokio::test(flavor = "multi_thread", worker_threads = 2)] -async fn azure_responses_request_includes_store_and_prefixed_item_ids() { +async fn azure_responses_request_does_not_store_and_preserves_prefixed_item_ids() { skip_if_no_network!(); let server = MockServer::start().await; @@ -3222,7 +3222,7 @@ async fn azure_responses_request_includes_store_and_prefixed_item_ids() { assert_eq!(request.path(), "/openai/responses"); let body = request.body_json(); - assert_eq!(body["store"], serde_json::Value::Bool(true)); + assert_eq!(body["store"], serde_json::Value::Bool(false)); assert_eq!(body["stream"], serde_json::Value::Bool(true)); assert_eq!(body["input"].as_array().map(Vec::len), Some(10)); assert_eq!(body["input"][0]["id"].as_str(), Some("rs_reasoning-id"));