mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-07-10 01:50:20 -07:00
fix(core): ensure stable fallback for restricted preview models (#26999)
This commit is contained in:
@@ -3251,8 +3251,8 @@ describe('Config Quota & Preview Model Access', () => {
|
||||
vi.mocked(getCodeAssistServer).mockReturnValue(undefined);
|
||||
const result = await config.refreshUserQuota();
|
||||
expect(result).toBeUndefined();
|
||||
// Never set => stays null (unknown); getter returns true so UI shows preview
|
||||
expect(config.getHasAccessToPreviewModel()).toBe(true);
|
||||
// Never set => stays null (unknown); getter returns false by default
|
||||
expect(config.getHasAccessToPreviewModel()).toBe(false);
|
||||
});
|
||||
|
||||
it('should return undefined if retrieveUserQuota fails', async () => {
|
||||
@@ -3261,8 +3261,8 @@ describe('Config Quota & Preview Model Access', () => {
|
||||
);
|
||||
const result = await config.refreshUserQuota();
|
||||
expect(result).toBeUndefined();
|
||||
// Never set => stays null (unknown); getter returns true so UI shows preview
|
||||
expect(config.getHasAccessToPreviewModel()).toBe(true);
|
||||
// Never set => stays null (unknown); getter returns false by default
|
||||
expect(config.getHasAccessToPreviewModel()).toBe(false);
|
||||
});
|
||||
it('should derive quota from remainingFraction when remainingAmount is missing', async () => {
|
||||
mockCodeAssistServer.retrieveUserQuota.mockResolvedValue({
|
||||
|
||||
@@ -1622,10 +1622,7 @@ export class Config implements McpContext, AgentLoopContext {
|
||||
this.baseLlmClient = new BaseLlmClient(this.contentGenerator, this);
|
||||
|
||||
const authType = this.contentGeneratorConfig.authType;
|
||||
if (
|
||||
authType === AuthType.USE_GEMINI ||
|
||||
authType === AuthType.USE_VERTEX_AI
|
||||
) {
|
||||
if (authType === AuthType.USE_GEMINI) {
|
||||
this.setHasAccessToPreviewModel(true);
|
||||
}
|
||||
|
||||
@@ -2227,7 +2224,7 @@ export class Config implements McpContext, AgentLoopContext {
|
||||
}
|
||||
|
||||
getHasAccessToPreviewModel(): boolean {
|
||||
return this.hasAccessToPreviewModel !== false;
|
||||
return this.hasAccessToPreviewModel ?? false;
|
||||
}
|
||||
|
||||
setHasAccessToPreviewModel(hasAccess: boolean | null): void {
|
||||
@@ -2289,7 +2286,6 @@ export class Config implements McpContext, AgentLoopContext {
|
||||
});
|
||||
}
|
||||
}
|
||||
this.emitQuotaChangedEvent();
|
||||
}
|
||||
|
||||
const hasAccess =
|
||||
@@ -2297,6 +2293,11 @@ export class Config implements McpContext, AgentLoopContext {
|
||||
(b) => b.modelId && isPreviewModel(b.modelId, this),
|
||||
) ?? false;
|
||||
this.setHasAccessToPreviewModel(hasAccess);
|
||||
|
||||
if (quota.buckets) {
|
||||
this.emitQuotaChangedEvent();
|
||||
}
|
||||
|
||||
return quota;
|
||||
} catch (e) {
|
||||
debugLogger.debug('Failed to retrieve user quota', e);
|
||||
|
||||
Reference in New Issue
Block a user