From a24009f9c05fb40d800c1f87646954620e1ff5f5 Mon Sep 17 00:00:00 2001 From: gemini-cli-robot Date: Mon, 23 Feb 2026 20:57:13 -0500 Subject: [PATCH] fix(patch): cherry-pick d96bd05 to release/v0.30.0-preview.5-pr-19867 to patch version v0.30.0-preview.5 and create version 0.30.0-preview.6 (#20112) Co-authored-by: Bryan Morgan --- packages/core/src/config/config.test.ts | 15 +++++++++++++++ packages/core/src/config/config.ts | 3 ++- packages/core/src/config/models.test.ts | 1 + packages/core/src/config/models.ts | 1 + 4 files changed, 19 insertions(+), 1 deletion(-) diff --git a/packages/core/src/config/config.test.ts b/packages/core/src/config/config.test.ts index c297a20ef6..a668e9e479 100644 --- a/packages/core/src/config/config.test.ts +++ b/packages/core/src/config/config.test.ts @@ -2063,6 +2063,21 @@ describe('Config Quota & Preview Model Access', () => { expect(config.getHasAccessToPreviewModel()).toBe(true); }); + it('should update hasAccessToPreviewModel to true if quota includes Gemini 3.1 preview model', async () => { + mockCodeAssistServer.retrieveUserQuota.mockResolvedValue({ + buckets: [ + { + modelId: 'gemini-3.1-pro-preview', + remainingAmount: '100', + remainingFraction: 1.0, + }, + ], + }); + + await config.refreshUserQuota(); + expect(config.getHasAccessToPreviewModel()).toBe(true); + }); + it('should update hasAccessToPreviewModel to false if quota does not include preview model', async () => { mockCodeAssistServer.retrieveUserQuota.mockResolvedValue({ buckets: [ diff --git a/packages/core/src/config/config.ts b/packages/core/src/config/config.ts index 6b8861b04c..0f5dae6f18 100644 --- a/packages/core/src/config/config.ts +++ b/packages/core/src/config/config.ts @@ -1467,7 +1467,8 @@ export class Config { } const hasAccess = - quota.buckets?.some((b) => b.modelId === PREVIEW_GEMINI_MODEL) ?? false; + quota.buckets?.some((b) => b.modelId && isPreviewModel(b.modelId)) ?? + false; this.setHasAccessToPreviewModel(hasAccess); return quota; } catch (e) { diff --git a/packages/core/src/config/models.test.ts b/packages/core/src/config/models.test.ts index c16cf49781..3337151151 100644 --- a/packages/core/src/config/models.test.ts +++ b/packages/core/src/config/models.test.ts @@ -36,6 +36,7 @@ describe('isPreviewModel', () => { it('should return true for preview models', () => { expect(isPreviewModel(PREVIEW_GEMINI_MODEL)).toBe(true); expect(isPreviewModel(PREVIEW_GEMINI_3_1_MODEL)).toBe(true); + expect(isPreviewModel(PREVIEW_GEMINI_3_1_CUSTOM_TOOLS_MODEL)).toBe(true); expect(isPreviewModel(PREVIEW_GEMINI_FLASH_MODEL)).toBe(true); expect(isPreviewModel(PREVIEW_GEMINI_MODEL_AUTO)).toBe(true); }); diff --git a/packages/core/src/config/models.ts b/packages/core/src/config/models.ts index d0ec49f005..54ea063569 100644 --- a/packages/core/src/config/models.ts +++ b/packages/core/src/config/models.ts @@ -134,6 +134,7 @@ export function isPreviewModel(model: string): boolean { return ( model === PREVIEW_GEMINI_MODEL || model === PREVIEW_GEMINI_3_1_MODEL || + model === PREVIEW_GEMINI_3_1_CUSTOM_TOOLS_MODEL || model === PREVIEW_GEMINI_FLASH_MODEL || model === PREVIEW_GEMINI_MODEL_AUTO );