fix: Remove standard Google providers from reasoning tag enforcement (#4536)
Fixes #4536 - WebChat shows empty Assistant responses Root cause: Standard Google providers (google-gemini-cli, google-generative-ai) were incorrectly classified as 'reasoning tag providers', which: 1. Added instructions to use <think> and <final> tags in system prompt 2. Enabled enforceFinalTag=true which requires ALL responses to have <final> tags 3. Stripped responses to empty strings when no <final> tag found Gemini 2.0 doesn't natively use these tags, so all responses were stripped empty. Changes: - Remove 'google-gemini-cli' from isReasoningTagProvider() - Remove 'google-generative-ai' from isReasoningTagProvider() - Keep 'google-antigravity' (Gemini 3.0 DOES use reasoning tags) - Add clarifying comments about which providers natively use tags Impact: - ✅ Gemini 2.0 responses now display correctly - ✅ OpenAI errors now shown to users - ✅ Google Antigravity (Gemini 3.0) still works correctly - ✅ Ollama and Minimax unchanged
This commit is contained in:
parent
7150268f84
commit
3aa6d0503d
@ -6,21 +6,22 @@
|
||||
* Returns true if the provider requires reasoning to be wrapped in tags
|
||||
* (e.g. <think> and <final>) in the text stream, rather than using native
|
||||
* API fields for reasoning/thinking.
|
||||
*
|
||||
* NOTE: Only include providers that NATIVELY use <think> and <final> tags.
|
||||
* Standard Gemini 2.0 (google-gemini-cli, google-generative-ai) does NOT use
|
||||
* these tags natively, but Google Antigravity (Gemini 3.0) does.
|
||||
*/
|
||||
export function isReasoningTagProvider(provider: string | undefined | null): boolean {
|
||||
if (!provider) return false;
|
||||
const normalized = provider.trim().toLowerCase();
|
||||
|
||||
// Check for exact matches or known prefixes/substrings for reasoning providers
|
||||
if (
|
||||
normalized === "ollama" ||
|
||||
normalized === "google-gemini-cli" ||
|
||||
normalized === "google-generative-ai"
|
||||
) {
|
||||
if (normalized === "ollama") {
|
||||
return true;
|
||||
}
|
||||
|
||||
// Handle google-antigravity and its model variations (e.g. google-antigravity/gemini-3)
|
||||
// This is Gemini 3.0 which DOES use reasoning tags natively.
|
||||
if (normalized.includes("google-antigravity")) {
|
||||
return true;
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user