Skip to content
Merged
Show file tree
Hide file tree
Changes from 18 commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
31f5d6f
Update default flash lite tool model
DavidAPierce May 14, 2026
11222b7
Update default flash lite tool model
DavidAPierce May 14, 2026
c1d5a8f
Merge remote-tracking branch 'refs/remotes/origin/update_default_auto…
DavidAPierce May 14, 2026
25f68b1
remove version specific language from flash lite consts
DavidAPierce May 14, 2026
7598c6c
fixed test failures in prompts.test.ts
DavidAPierce May 15, 2026
22e3935
Merge branch 'main' into update_default_auto_routing
DavidAPierce May 15, 2026
3451fb1
Merge branch 'main' into update_default_auto_routing
DavidAPierce May 15, 2026
4da0a02
update policy helper test to reflect 3.1 flash lite being the new def…
DavidAPierce May 15, 2026
bc24286
regenerate settings schema to resolve merge conflict.
DavidAPierce May 15, 2026
934ce35
Merge branch 'main' into update_default_auto_routing
DavidAPierce May 15, 2026
334df22
update PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL to PREVIEW_GEMINI_FLASH_LI…
DavidAPierce May 15, 2026
4d14f79
re-generated settings schema.
DavidAPierce May 15, 2026
2d4cfac
re-up settings schema
DavidAPierce May 15, 2026
07fb3ef
fix failing tests, update default config for 3.1 flash lite
DavidAPierce May 15, 2026
32d64ab
updated flash lite thinking level golden aliases
DavidAPierce May 15, 2026
717a9d9
docs updates needed with previous commits
DavidAPierce May 15, 2026
477eb93
Merge branch 'main' into update_default_auto_routing
DavidAPierce May 18, 2026
a2301f0
Merge branch 'main' into update_default_auto_routing
DavidAPierce May 18, 2026
b2e9977
Merge branch 'main' into update_default_auto_routing
DavidAPierce May 21, 2026
08dd491
remove preview flash lite model now that it is GA
DavidAPierce May 21, 2026
3119979
Merge remote-tracking branch 'refs/remotes/origin/update_default_auto…
DavidAPierce May 21, 2026
6dbaf84
set it so none status models don't show up in the model dialog. Addit…
DavidAPierce May 21, 2026
fbd1e51
Update schema settings after merge from head.
DavidAPierce May 21, 2026
15d24aa
Merge branch 'main' into update_default_auto_routing
DavidAPierce May 21, 2026
f499fdd
Merge branch 'main' into update_default_auto_routing
DavidAPierce May 22, 2026
0bc8725
deprecate useGemini3_1FlashLite and related checks now that 3.1 flash…
DavidAPierce May 22, 2026
f2645ef
fix build failures in modelDialog test
DavidAPierce May 22, 2026
2835491
Merge branch 'main' into update_default_auto_routing
DavidAPierce May 22, 2026
2a1e060
Merge branch 'main' into update_default_auto_routing
DavidAPierce May 26, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 19 additions & 29 deletions docs/reference/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -586,6 +586,12 @@ their corresponding top-level category object in your `settings.json` file.
"model": "gemini-2.5-flash-lite"
}
},
"gemini-3.1-flash-lite": {
"extends": "chat-base-3",
"modelConfig": {
"model": "gemini-3.1-flash-lite"
}
},
"gemma-4-31b-it": {
"extends": "chat-base-3",
"modelConfig": {
Expand Down Expand Up @@ -613,7 +619,7 @@ their corresponding top-level category object in your `settings.json` file.
"classifier": {
"extends": "base",
"modelConfig": {
"model": "gemini-2.5-flash-lite",
"model": "flash-lite",
"generateContentConfig": {
"maxOutputTokens": 1024,
"thinkingConfig": {
Expand All @@ -625,7 +631,7 @@ their corresponding top-level category object in your `settings.json` file.
"prompt-completion": {
"extends": "base",
"modelConfig": {
"model": "gemini-2.5-flash-lite",
"model": "flash-lite",
"generateContentConfig": {
"temperature": 0.3,
"maxOutputTokens": 16000,
Expand All @@ -638,7 +644,7 @@ their corresponding top-level category object in your `settings.json` file.
"fast-ack-helper": {
"extends": "base",
"modelConfig": {
"model": "gemini-2.5-flash-lite",
"model": "flash-lite",
"generateContentConfig": {
"temperature": 0.2,
"maxOutputTokens": 120,
Expand All @@ -651,7 +657,7 @@ their corresponding top-level category object in your `settings.json` file.
"edit-corrector": {
"extends": "base",
"modelConfig": {
"model": "gemini-2.5-flash-lite",
"model": "flash-lite",
"generateContentConfig": {
"thinkingConfig": {
"thinkingBudget": 0
Expand All @@ -662,7 +668,7 @@ their corresponding top-level category object in your `settings.json` file.
"summarizer-default": {
"extends": "base",
"modelConfig": {
"model": "gemini-2.5-flash-lite",
"model": "flash-lite",
"generateContentConfig": {
"maxOutputTokens": 2000
}
Expand All @@ -671,7 +677,7 @@ their corresponding top-level category object in your `settings.json` file.
"summarizer-shell": {
"extends": "base",
"modelConfig": {
"model": "gemini-2.5-flash-lite",
"model": "flash-lite",
"generateContentConfig": {
"maxOutputTokens": 2000
}
Expand Down Expand Up @@ -748,7 +754,7 @@ their corresponding top-level category object in your `settings.json` file.
},
"chat-compression-3.1-flash-lite": {
"modelConfig": {
"model": "gemini-3.1-flash-lite-preview"
"model": "gemini-3.1-flash-lite"
}
},
"chat-compression-2.5-pro": {
Expand Down Expand Up @@ -802,10 +808,10 @@ their corresponding top-level category object in your `settings.json` file.

```json
{
"gemini-3.1-flash-lite-preview": {
"gemini-3.1-flash-lite": {
"tier": "flash-lite",
"family": "gemini-3",
"isPreview": true,
"isPreview": false,
"isVisible": true,
"features": {
"thinking": false,
Expand Down Expand Up @@ -1088,16 +1094,8 @@ their corresponding top-level category object in your `settings.json` file.
}
]
},
"gemini-3.1-flash-lite-preview": {
"default": "gemini-3.1-flash-lite-preview",
"contexts": [
{
"condition": {
"useGemini3_1FlashLite": false
},
"target": "gemini-2.5-flash-lite"
}
]
"gemini-3.1-flash-lite": {
"default": "gemini-3.1-flash-lite"
},
"flash": {
"default": "gemini-3-flash-preview",
Expand All @@ -1111,15 +1109,7 @@ their corresponding top-level category object in your `settings.json` file.
]
},
"flash-lite": {
"default": "gemini-2.5-flash-lite",
"contexts": [
{
"condition": {
"useGemini3_1FlashLite": true
},
"target": "gemini-3.1-flash-lite-preview"
}
]
"default": "gemini-3.1-flash-lite"
},
"auto-gemini-3": {
"default": "gemini-3-pro-preview",
Expand Down Expand Up @@ -1366,7 +1356,7 @@ their corresponding top-level category object in your `settings.json` file.
],
"lite": [
{
"model": "gemini-2.5-flash-lite",
"model": "flash-lite",
"actions": {
"terminal": "silent",
"transient": "silent",
Expand Down
4 changes: 2 additions & 2 deletions packages/cli/src/acp/acpSessionManager.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -235,8 +235,8 @@ describe('AcpSessionManager', () => {
expect(response.models?.availableModels).toEqual(
expect.arrayContaining([
expect.objectContaining({
modelId: 'gemini-3.1-flash-lite-preview',
name: 'gemini-3.1-flash-lite-preview',
modelId: 'gemini-3.1-flash-lite',
name: 'gemini-3.1-flash-lite',
}),
]),
);
Expand Down
6 changes: 3 additions & 3 deletions packages/cli/src/acp/acpUtils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ import {
PREVIEW_GEMINI_MODEL,
PREVIEW_GEMINI_3_1_CUSTOM_TOOLS_MODEL,
PREVIEW_GEMINI_FLASH_MODEL,
PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL,
PREVIEW_GEMINI_FLASH_LITE_MODEL,
getDisplayString,
AuthType,
ToolConfirmationOutcome,
Expand Down Expand Up @@ -339,8 +339,8 @@ export function buildAvailableModels(

if (useGemini31FlashLite) {
previewOptions.push({
value: PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL,
title: getDisplayString(PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL),
value: PREVIEW_GEMINI_FLASH_LITE_MODEL,
title: getDisplayString(PREVIEW_GEMINI_FLASH_LITE_MODEL),
});
}

Expand Down
18 changes: 7 additions & 11 deletions packages/cli/src/ui/components/ModelDialog.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ import {
PREVIEW_GEMINI_3_1_MODEL,
PREVIEW_GEMINI_3_1_CUSTOM_TOOLS_MODEL,
PREVIEW_GEMINI_FLASH_MODEL,
PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL,
PREVIEW_GEMINI_FLASH_LITE_MODEL,
AuthType,
} from '@google/gemini-cli-core';
import type { Config, ModelSlashCommandEvent } from '@google/gemini-cli-core';
Expand All @@ -42,7 +42,7 @@ vi.mock('@google/gemini-cli-core', async (importOriginal) => {
mockModelSlashCommandEvent(model);
}
},
PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL: 'gemini-3.1-flash-lite-preview',
PREVIEW_GEMINI_FLASH_LITE_MODEL: 'gemini-3.1-flash-lite',
};
});

Expand Down Expand Up @@ -152,17 +152,13 @@ describe('<ModelDialog />', () => {
expect(output).not.toContain(DEFAULT_GEMINI_MODEL);
expect(output).not.toContain(PREVIEW_GEMINI_MODEL);

// Verify order: Flash Preview -> Flash Lite Preview -> Flash -> Flash Lite
// Verify order: Flash Preview -> Flash Lite (Preview/Default) -> Flash
const flashPreviewIdx = output.indexOf(PREVIEW_GEMINI_FLASH_MODEL);
const flashLitePreviewIdx = output.indexOf(
PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL,
);
const flashLiteIdx = output.indexOf(PREVIEW_GEMINI_FLASH_LITE_MODEL);
const flashIdx = output.indexOf(DEFAULT_GEMINI_FLASH_MODEL);
const flashLiteIdx = output.indexOf(DEFAULT_GEMINI_FLASH_LITE_MODEL);

expect(flashPreviewIdx).toBeLessThan(flashLitePreviewIdx);
expect(flashLitePreviewIdx).toBeLessThan(flashIdx);
expect(flashIdx).toBeLessThan(flashLiteIdx);
expect(flashPreviewIdx).toBeLessThan(flashLiteIdx);
expect(flashLiteIdx).toBeLessThan(flashIdx);

expect(output).not.toContain('Auto');
unmount();
Expand Down Expand Up @@ -467,7 +463,7 @@ describe('<ModelDialog />', () => {
await waitUntilReady();

const output = lastFrame();
expect(output).toContain(PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL);
expect(output).toContain(PREVIEW_GEMINI_FLASH_LITE_MODEL);
unmount();
});
});
Expand Down
22 changes: 16 additions & 6 deletions packages/cli/src/ui/components/ModelDialog.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import {
PREVIEW_GEMINI_MODEL,
PREVIEW_GEMINI_3_1_MODEL,
PREVIEW_GEMINI_FLASH_MODEL,
PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL,
PREVIEW_GEMINI_FLASH_LITE_MODEL,
DEFAULT_GEMINI_MODEL,
DEFAULT_GEMINI_FLASH_MODEL,
DEFAULT_GEMINI_FLASH_LITE_MODEL,
Expand Down Expand Up @@ -95,7 +95,7 @@ export function ModelDialog({ onClose }: ModelDialogProps): React.JSX.Element {
PREVIEW_GEMINI_MODEL,
PREVIEW_GEMINI_3_1_MODEL,
PREVIEW_GEMINI_3_1_CUSTOM_TOOLS_MODEL,
PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL,
PREVIEW_GEMINI_FLASH_LITE_MODEL,
PREVIEW_GEMINI_FLASH_MODEL,
];
if (manualModels.includes(preferredModel)) {
Expand Down Expand Up @@ -281,9 +281,9 @@ export function ModelDialog({ onClose }: ModelDialogProps): React.JSX.Element {

if (useGemini31FlashLite) {
previewOptions.push({
value: PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL,
title: getDisplayString(PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL),
key: PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL,
value: PREVIEW_GEMINI_FLASH_LITE_MODEL,
title: getDisplayString(PREVIEW_GEMINI_FLASH_LITE_MODEL),
key: PREVIEW_GEMINI_FLASH_LITE_MODEL,
});
}

Expand All @@ -306,7 +306,17 @@ export function ModelDialog({ onClose }: ModelDialogProps): React.JSX.Element {
config,
]);

const options = view === 'main' ? mainOptions : manualOptions;
const options = useMemo(() => {
const rawOptions = view === 'main' ? mainOptions : manualOptions;
const seen = new Set<string>();
return rawOptions.filter((option) => {
if (seen.has(option.value)) {
return false;
}
seen.add(option.value);
return true;
});
}, [view, mainOptions, manualOptions]);

// Calculate the initial index based on the preferred model.
const initialIndex = useMemo(() => {
Expand Down
4 changes: 2 additions & 2 deletions packages/core/src/availability/policyHelpers.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ describe('policyHelpers', () => {
});
const chain = resolvePolicyChain(config, DEFAULT_GEMINI_FLASH_LITE_MODEL);
expect(chain).toHaveLength(3);
expect(chain[0]?.model).toBe('gemini-2.5-flash-lite');
expect(chain[0]?.model).toBe('gemini-3.1-flash-lite');
expect(chain[1]?.model).toBe('gemini-2.5-flash');
expect(chain[2]?.model).toBe('gemini-2.5-pro');
});
Expand All @@ -125,7 +125,7 @@ describe('policyHelpers', () => {
});
const chain = resolvePolicyChain(config);
expect(chain).toHaveLength(3);
expect(chain[0]?.model).toBe('gemini-2.5-flash-lite');
expect(chain[0]?.model).toBe('gemini-3.1-flash-lite');
expect(chain[1]?.model).toBe('gemini-2.5-flash');
expect(chain[2]?.model).toBe('gemini-2.5-pro');
});
Expand Down
Loading
Loading