From ec7652dfd7d2cefdb3688ad0ec628feb06cdd36a Mon Sep 17 00:00:00 2001 From: Michael Neale Date: Mon, 16 Mar 2026 11:17:40 +1100 Subject: [PATCH] fix: add tool_choice and parallel_tool_calls to chatgpt_codex provider (#7867) --- crates/goose/src/providers/chatgpt_codex.rs | 3 +++ ui/desktop/src/components/ProviderGuard.tsx | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/crates/goose/src/providers/chatgpt_codex.rs b/crates/goose/src/providers/chatgpt_codex.rs index 493ee6199f..2508193dcb 100644 --- a/crates/goose/src/providers/chatgpt_codex.rs +++ b/crates/goose/src/providers/chatgpt_codex.rs @@ -47,6 +47,7 @@ const HTML_AUTO_CLOSE_TIMEOUT_MS: u64 = 2000; const CHATGPT_CODEX_PROVIDER_NAME: &str = "chatgpt_codex"; pub const CHATGPT_CODEX_DEFAULT_MODEL: &str = "gpt-5.1-codex"; pub const CHATGPT_CODEX_KNOWN_MODELS: &[&str] = &[ + "gpt-5.3-codex", "gpt-5.2-codex", "gpt-5.1-codex", "gpt-5.1-codex-mini", @@ -205,6 +206,8 @@ fn create_codex_request( .collect(); payload_obj.insert("tools".to_string(), json!(tools_spec)); + payload_obj.insert("tool_choice".to_string(), json!("auto")); + payload_obj.insert("parallel_tool_calls".to_string(), json!(true)); } if let Some(temp) = model_config.temperature { diff --git a/ui/desktop/src/components/ProviderGuard.tsx b/ui/desktop/src/components/ProviderGuard.tsx index d211366640..f6751e25fa 100644 --- a/ui/desktop/src/components/ProviderGuard.tsx +++ b/ui/desktop/src/components/ProviderGuard.tsx @@ -28,7 +28,7 @@ interface ProviderGuardProps { } export default function ProviderGuard({ didSelectProvider, children }: ProviderGuardProps) { - const { read, upsert } = useConfig(); + const { read, upsert, getProviders } = useConfig(); const navigate = useNavigate(); const [isChecking, setIsChecking] = useState(true); const [hasProvider, setHasProvider] = useState(false); @@ -111,6 +111,7 @@ export default function ProviderGuard({ didSelectProvider, children }: ProviderG try { const result = await startChatGptCodexSetup(); if (result.success) { + await getProviders(true); setSwitchModelProvider('chatgpt_codex'); setShowSwitchModelModal(true); } else {