@@ -55,7 +55,10 @@ export function resolvePolicyChain(
5555 const useGemini31FlashLite =
5656 config . getGemini31FlashLiteLaunchedSync ?.( ) ?? false ;
5757 const useCustomToolModel = config . getUseCustomToolModelSync ?.( ) ?? false ;
58- const hasAccessToPreview = config . getHasAccessToPreviewModel ?.( ) ?? true ;
58+ const hasAccessToPreview = config . getHasAccessToPreviewModel ?.( ) ?? false ;
59+
60+ // Capture the original family intent before any normalization or early downgrade.
61+ const isOriginallyGemini3 = isGemini3Model ( modelFromConfig , config ) ;
5962
6063 const resolvedModel = normalizeModelId (
6164 resolveModel (
@@ -75,10 +78,7 @@ export function resolvePolicyChain(
7578 // We always wrap around for Gemini 3 chains to ensure maximum availability
7679 // between models in the same family (e.g. fallback to Pro if Flash is exhausted).
7780 const effectiveWrapsAround =
78- wrapsAround ||
79- isAutoPreferred ||
80- isAutoConfigured ||
81- isGemini3Model ( resolvedModel , config ) ;
81+ wrapsAround || isAutoPreferred || isAutoConfigured || isOriginallyGemini3 ;
8282
8383 // --- DYNAMIC PATH ---
8484 if ( config . getExperimentalDynamicModelConfiguration ?.( ) === true ) {
@@ -91,11 +91,7 @@ export function resolvePolicyChain(
9191
9292 if ( resolvedModel === DEFAULT_GEMINI_FLASH_LITE_MODEL ) {
9393 chain = config . modelConfigService . resolveChain ( 'lite' , context ) ;
94- } else if (
95- isGemini3Model ( normalizeModelId ( resolvedModel ) , config ) ||
96- isAutoPreferred ||
97- isAutoConfigured
98- ) {
94+ } else if ( isOriginallyGemini3 || isAutoPreferred || isAutoConfigured ) {
9995 // 1. Try to find a chain specifically for the current configured alias
10096 if (
10197 isAutoConfigured &&
@@ -132,15 +128,11 @@ export function resolvePolicyChain(
132128
133129 if ( resolvedModel === DEFAULT_GEMINI_FLASH_LITE_MODEL ) {
134130 chain = getFlashLitePolicyChain ( ) ;
135- } else if (
136- isGemini3Model ( resolvedModel , config ) ||
137- isAutoPreferred ||
138- isAutoConfigured
139- ) {
131+ } else if ( isOriginallyGemini3 || isAutoPreferred || isAutoConfigured ) {
140132 const isAutoSelection = isAutoPreferred || isAutoConfigured ;
141133 if ( hasAccessToPreview ) {
142134 const previewEnabled =
143- isGemini3Model ( resolvedModel , config ) ||
135+ isOriginallyGemini3 ||
144136 normalizedPreferredModel === PREVIEW_GEMINI_MODEL_AUTO ||
145137 configuredModel === PREVIEW_GEMINI_MODEL_AUTO ;
146138 chain = getModelPolicyChain ( {
0 commit comments