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 {