From 4e7a572497ae05ce2fca84f9760397a0ea1f8544 Mon Sep 17 00:00:00 2001 From: Michael Neale Date: Thu, 19 Mar 2026 10:25:25 +1100 Subject: [PATCH] fix(openai): use Responses API for gpt-5.4 (#7982) Signed-off-by: Michael Neale --- crates/goose/src/providers/openai.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/crates/goose/src/providers/openai.rs b/crates/goose/src/providers/openai.rs index ec0be3bbd1..3e032c40a3 100644 --- a/crates/goose/src/providers/openai.rs +++ b/crates/goose/src/providers/openai.rs @@ -233,6 +233,7 @@ impl OpenAiProvider { let normalized_model = model_name.to_ascii_lowercase(); (normalized_model.starts_with("gpt-5") && normalized_model.contains("codex")) || normalized_model.starts_with("gpt-5.2-pro") + || normalized_model.starts_with("gpt-5.4") } fn should_use_responses_api(model_name: &str, base_path: &str) -> bool { @@ -728,6 +729,22 @@ mod tests { )); } + #[test] + fn gpt_5_4_uses_responses_when_base_path_is_default() { + assert!(OpenAiProvider::should_use_responses_api( + "gpt-5.4", + "v1/chat/completions" + )); + } + + #[test] + fn gpt_5_4_with_date_uses_responses() { + assert!(OpenAiProvider::should_use_responses_api( + "gpt-5.4-2026-03-01", + "v1/chat/completions" + )); + } + #[test] fn gpt_4o_does_not_use_responses() { assert!(!OpenAiProvider::should_use_responses_api(