From 1b12d3c2a7c938e99920c436d67664d34ee0cec7 Mon Sep 17 00:00:00 2001 From: davidapierce Date: Fri, 15 May 2026 16:24:25 +0000 Subject: [PATCH 1/2] fix(core): use hasAccessToPreview for auto model resolution and fix disappearing models --- packages/core/src/config/config.ts | 10 +++++++++- packages/core/src/config/models.ts | 2 +- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/packages/core/src/config/config.ts b/packages/core/src/config/config.ts index 5f3413b37d7..2a6bfa4c415 100644 --- a/packages/core/src/config/config.ts +++ b/packages/core/src/config/config.ts @@ -1833,7 +1833,15 @@ export class Config implements McpContext, AgentLoopContext { this.modelQuotas.clear(); this.lastRetrievedQuota = undefined; this.lastQuotaFetchTime = 0; - this.hasAccessToPreviewModel = null; + const authType = this.contentGeneratorConfig?.authType; + if ( + authType === AuthType.USE_GEMINI || + authType === AuthType.USE_VERTEX_AI + ) { + this.hasAccessToPreviewModel = true; + } else { + this.hasAccessToPreviewModel = null; + } // Force an event emission to clear the UI display coreEvents.emitQuotaChanged(undefined, undefined, undefined); diff --git a/packages/core/src/config/models.ts b/packages/core/src/config/models.ts index 3d91d45e24d..7360878ccd0 100644 --- a/packages/core/src/config/models.ts +++ b/packages/core/src/config/models.ts @@ -164,7 +164,7 @@ export function resolveModel( switch (normalizedModel) { case GEMINI_MODEL_ALIAS_AUTO: case GEMINI_MODEL_ALIAS_PRO: { - if (currentReleaseChannel === 'stable') { + if (!hasAccessToPreview) { resolved = DEFAULT_GEMINI_MODEL; break; } From bdf60e50eb81e47445889c1beac212e46ceec449 Mon Sep 17 00:00:00 2001 From: davidapierce Date: Fri, 15 May 2026 16:52:04 +0000 Subject: [PATCH 2/2] fix(core): remove hasAccessToPreviewModel reset from setSessionId --- packages/core/src/config/config.test.ts | 1 - packages/core/src/config/config.ts | 9 --------- 2 files changed, 10 deletions(-) diff --git a/packages/core/src/config/config.test.ts b/packages/core/src/config/config.test.ts index ad5f8395150..15eeee82b0c 100644 --- a/packages/core/src/config/config.test.ts +++ b/packages/core/src/config/config.test.ts @@ -2019,7 +2019,6 @@ describe('Server Config (config.ts)', () => { expect(configInternal.lastEmittedQuotaRemaining).toBeUndefined(); expect(configInternal.lastEmittedQuotaLimit).toBeUndefined(); expect(configInternal.lastQuotaFetchTime).toBe(0); - expect(configInternal.hasAccessToPreviewModel).toBeNull(); // Event emission expect(emitQuotaSpy).toHaveBeenCalledWith(undefined, undefined, undefined); diff --git a/packages/core/src/config/config.ts b/packages/core/src/config/config.ts index 2a6bfa4c415..1568207936d 100644 --- a/packages/core/src/config/config.ts +++ b/packages/core/src/config/config.ts @@ -1833,15 +1833,6 @@ export class Config implements McpContext, AgentLoopContext { this.modelQuotas.clear(); this.lastRetrievedQuota = undefined; this.lastQuotaFetchTime = 0; - const authType = this.contentGeneratorConfig?.authType; - if ( - authType === AuthType.USE_GEMINI || - authType === AuthType.USE_VERTEX_AI - ) { - this.hasAccessToPreviewModel = true; - } else { - this.hasAccessToPreviewModel = null; - } // Force an event emission to clear the UI display coreEvents.emitQuotaChanged(undefined, undefined, undefined);