From d9f273e44095b742e9ab74241e240c587ae27e64 Mon Sep 17 00:00:00 2001 From: Abhijit Balaji Date: Thu, 30 Apr 2026 21:14:57 -0700 Subject: [PATCH] feat(config): enable Gemma 4 models by default via Gemini API (#26307) --- .gemini/settings.json | 1 - docs/cli/settings.md | 2 +- docs/reference/configuration.md | 4 ++-- packages/cli/src/config/settingsSchema.ts | 4 ++-- packages/core/src/config/config.test.ts | 4 ++-- packages/core/src/config/config.ts | 2 +- packages/core/src/config/models.test.ts | 6 +++--- packages/core/src/config/models.ts | 2 +- schemas/settings.schema.json | 6 +++--- 9 files changed, 15 insertions(+), 16 deletions(-) diff --git a/.gemini/settings.json b/.gemini/settings.json index e7ff785b7c..850f9e26ce 100644 --- a/.gemini/settings.json +++ b/.gemini/settings.json @@ -3,7 +3,6 @@ "extensionReloading": true, "modelSteering": true, "autoMemory": true, - "gemma": true, "memoryManager": true, "topicUpdateNarration": true, "voiceMode": true diff --git a/docs/cli/settings.md b/docs/cli/settings.md index 834750fdf9..a5c7ecae87 100644 --- a/docs/cli/settings.md +++ b/docs/cli/settings.md @@ -163,7 +163,7 @@ they appear in the UI. | UI Label | Setting | Description | Default | | ---------------------------------------------------- | ----------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------- | -| Gemma Models | `experimental.gemma` | Enable access to Gemma 4 models (experimental). | `false` | +| Gemma Models | `experimental.gemma` | Enable access to Gemma 4 models via Gemini API. | `true` | | Voice Mode | `experimental.voiceMode` | Enable experimental voice dictation and commands (/voice, /voice model). | `false` | | Voice Activation Mode | `experimental.voice.activationMode` | How to trigger voice recording with the Space key. | `"push-to-talk"` | | Voice Transcription Backend | `experimental.voice.backend` | The backend to use for voice transcription. | `"gemini-live"` | diff --git a/docs/reference/configuration.md b/docs/reference/configuration.md index 7bdd43997e..47ea0c7a53 100644 --- a/docs/reference/configuration.md +++ b/docs/reference/configuration.md @@ -1759,8 +1759,8 @@ their corresponding top-level category object in your `settings.json` file. #### `experimental` - **`experimental.gemma`** (boolean): - - **Description:** Enable access to Gemma 4 models (experimental). - - **Default:** `false` + - **Description:** Enable access to Gemma 4 models via Gemini API. + - **Default:** `true` - **Requires restart:** Yes - **`experimental.voiceMode`** (boolean): diff --git a/packages/cli/src/config/settingsSchema.ts b/packages/cli/src/config/settingsSchema.ts index 5df30a20a5..225d3d8ac0 100644 --- a/packages/cli/src/config/settingsSchema.ts +++ b/packages/cli/src/config/settingsSchema.ts @@ -2057,8 +2057,8 @@ const SETTINGS_SCHEMA = { label: 'Gemma Models', category: 'Experimental', requiresRestart: true, - default: false, - description: 'Enable access to Gemma 4 models (experimental).', + default: true, + description: 'Enable access to Gemma 4 models via Gemini API.', showInDialog: true, }, voiceMode: { diff --git a/packages/core/src/config/config.test.ts b/packages/core/src/config/config.test.ts index 55a3baf8ee..bcad645426 100644 --- a/packages/core/src/config/config.test.ts +++ b/packages/core/src/config/config.test.ts @@ -3673,7 +3673,7 @@ describe('Config JIT Initialization', () => { expect(config.getExperimentalGemma()).toBe(false); }); - it('should return false when experimentalGemma is not provided', () => { + it('should return true when experimentalGemma is not provided', () => { const params: ConfigParameters = { sessionId: 'test-session', targetDir: '/tmp/test', @@ -3683,7 +3683,7 @@ describe('Config JIT Initialization', () => { }; config = new Config(params); - expect(config.getExperimentalGemma()).toBe(false); + expect(config.getExperimentalGemma()).toBe(true); }); it('should be independent of experimentalMemoryV2', () => { diff --git a/packages/core/src/config/config.ts b/packages/core/src/config/config.ts index 11f7a24841..640b117cc8 100644 --- a/packages/core/src/config/config.ts +++ b/packages/core/src/config/config.ts @@ -1179,7 +1179,7 @@ export class Config implements McpContext, AgentLoopContext { this.experimentalJitContext = params.experimentalJitContext ?? true; this.experimentalMemoryV2 = params.experimentalMemoryV2 ?? true; this.experimentalAutoMemory = params.experimentalAutoMemory ?? false; - this.experimentalGemma = params.experimentalGemma ?? false; + this.experimentalGemma = params.experimentalGemma ?? true; this.experimentalContextManagementConfig = params.experimentalContextManagementConfig; this.memoryBoundaryMarkers = params.memoryBoundaryMarkers ?? ['.git']; diff --git a/packages/core/src/config/models.test.ts b/packages/core/src/config/models.test.ts index 51846262dc..d49f3305c2 100644 --- a/packages/core/src/config/models.test.ts +++ b/packages/core/src/config/models.test.ts @@ -595,9 +595,9 @@ describe('isActiveModel', () => { expect(isActiveModel(DEFAULT_GEMINI_FLASH_MODEL)).toBe(true); }); - it('should return true for Gemma 4 models only when experimentalGemma is true', () => { - expect(isActiveModel(GEMMA_4_31B_IT_MODEL)).toBe(false); - expect(isActiveModel(GEMMA_4_26B_A4B_IT_MODEL)).toBe(false); + it('should return true for Gemma 4 models when experimentalGemma is not provided (defaults to true)', () => { + expect(isActiveModel(GEMMA_4_31B_IT_MODEL)).toBe(true); + expect(isActiveModel(GEMMA_4_26B_A4B_IT_MODEL)).toBe(true); expect(isActiveModel(GEMMA_4_31B_IT_MODEL, false, false, false, true)).toBe( true, ); diff --git a/packages/core/src/config/models.ts b/packages/core/src/config/models.ts index 6e936182cd..69541d1aca 100644 --- a/packages/core/src/config/models.ts +++ b/packages/core/src/config/models.ts @@ -455,7 +455,7 @@ export function isActiveModel( useGemini3_1: boolean = false, useGemini3_1FlashLite: boolean = false, useCustomToolModel: boolean = false, - experimentalGemma: boolean = false, + experimentalGemma: boolean = true, ): boolean { if (!VALID_GEMINI_MODELS.has(model)) { return false; diff --git a/schemas/settings.schema.json b/schemas/settings.schema.json index 03ea0b2fda..7764ac1d9c 100644 --- a/schemas/settings.schema.json +++ b/schemas/settings.schema.json @@ -3049,9 +3049,9 @@ "properties": { "gemma": { "title": "Gemma Models", - "description": "Enable access to Gemma 4 models (experimental).", - "markdownDescription": "Enable access to Gemma 4 models (experimental).\n\n- Category: `Experimental`\n- Requires restart: `yes`\n- Default: `false`", - "default": false, + "description": "Enable access to Gemma 4 models via Gemini API.", + "markdownDescription": "Enable access to Gemma 4 models via Gemini API.\n\n- Category: `Experimental`\n- Requires restart: `yes`\n- Default: `true`", + "default": true, "type": "boolean" }, "voiceMode": {