Always request encrypted cot (#3539)

Otherwise future requests will fail with 500
This commit is contained in:
pakrym-oai
2025-09-12 16:51:30 -07:00
committed by GitHub
parent 90a0fd342f
commit 414b8be8b6
2 changed files with 12 additions and 16 deletions

View File

@@ -84,8 +84,10 @@ pub enum ResponseEvent {
#[derive(Debug, Serialize)] #[derive(Debug, Serialize)]
pub(crate) struct Reasoning { pub(crate) struct Reasoning {
pub(crate) effort: ReasoningEffortConfig, #[serde(skip_serializing_if = "Option::is_none")]
pub(crate) summary: ReasoningSummaryConfig, pub(crate) effort: Option<ReasoningEffortConfig>,
#[serde(skip_serializing_if = "Option::is_none")]
pub(crate) summary: Option<ReasoningSummaryConfig>,
} }
/// Controls under the `text` field in the Responses API for GPT-5. /// Controls under the `text` field in the Responses API for GPT-5.
@@ -146,7 +148,10 @@ pub(crate) fn create_reasoning_param_for_request(
return None; return None;
} }
effort.map(|effort| Reasoning { effort, summary }) Some(Reasoning {
effort,
summary: Some(summary),
})
} }
pub(crate) fn create_text_param_for_request( pub(crate) fn create_text_param_for_request(

View File

@@ -450,7 +450,6 @@ async fn chatgpt_auth_sends_correct_request() {
// Init session // Init session
let codex_home = TempDir::new().unwrap(); let codex_home = TempDir::new().unwrap();
let mut config = load_default_config_for_test(&codex_home); let mut config = load_default_config_for_test(&codex_home);
let include_reasoning = config.model_reasoning_effort.is_some();
config.model_provider = model_provider; config.model_provider = model_provider;
let conversation_manager = ConversationManager::with_auth(create_dummy_codex_auth()); let conversation_manager = ConversationManager::with_auth(create_dummy_codex_auth());
let NewConversation { let NewConversation {
@@ -492,18 +491,10 @@ async fn chatgpt_auth_sends_correct_request() {
); );
assert_eq!(request_chatgpt_account_id.to_str().unwrap(), "account_id"); assert_eq!(request_chatgpt_account_id.to_str().unwrap(), "account_id");
assert!(request_body["stream"].as_bool().unwrap()); assert!(request_body["stream"].as_bool().unwrap());
if include_reasoning { assert_eq!(
assert_eq!( request_body["include"][0].as_str().unwrap(),
request_body["include"][0].as_str().unwrap(), "reasoning.encrypted_content"
"reasoning.encrypted_content" );
);
} else {
assert!(
request_body["include"]
.as_array()
.is_none_or(|items| items.is_empty())
);
}
} }
#[tokio::test(flavor = "multi_thread", worker_threads = 2)] #[tokio::test(flavor = "multi_thread", worker_threads = 2)]