perf(core): parallelize user quota and experiments fetching in refreshAuth (#21648)

This commit is contained in:
Sehoon Shon
2026-03-11 14:00:16 -04:00
committed by GitHub
parent 016d5d8eb6
commit 58557ba786
+11 -7
View File
@@ -779,7 +779,7 @@ export class Config implements McpContext, AgentLoopContext {
| undefined; | undefined;
private disabledHooks: string[]; private disabledHooks: string[];
private experiments: Experiments | undefined; private experiments: Experiments | undefined;
private experimentsPromise: Promise<void> | undefined; private experimentsPromise: Promise<Experiments | undefined> | undefined;
private hookSystem?: HookSystem; private hookSystem?: HookSystem;
private readonly onModelChange: ((model: string) => void) | undefined; private readonly onModelChange: ((model: string) => void) | undefined;
private readonly onReload: private readonly onReload:
@@ -1269,18 +1269,22 @@ export class Config implements McpContext, AgentLoopContext {
this.baseLlmClient = new BaseLlmClient(this.contentGenerator, this); this.baseLlmClient = new BaseLlmClient(this.contentGenerator, this);
const codeAssistServer = getCodeAssistServer(this); const codeAssistServer = getCodeAssistServer(this);
if (codeAssistServer?.projectId) { const quotaPromise = codeAssistServer?.projectId
await this.refreshUserQuota(); ? this.refreshUserQuota()
} : Promise.resolve();
this.experimentsPromise = getExperiments(codeAssistServer) this.experimentsPromise = getExperiments(codeAssistServer)
.then((experiments) => { .then((experiments) => {
this.setExperiments(experiments); this.setExperiments(experiments);
return experiments;
}) })
.catch((e) => { .catch((e) => {
debugLogger.error('Failed to fetch experiments', e); debugLogger.error('Failed to fetch experiments', e);
return undefined;
}); });
await quotaPromise;
const authType = this.contentGeneratorConfig.authType; const authType = this.contentGeneratorConfig.authType;
if ( if (
authType === AuthType.USE_GEMINI || authType === AuthType.USE_GEMINI ||
@@ -1296,10 +1300,10 @@ export class Config implements McpContext, AgentLoopContext {
} }
// Fetch admin controls // Fetch admin controls
await this.ensureExperimentsLoaded(); const experiments = await this.experimentsPromise;
const adminControlsEnabled = const adminControlsEnabled =
this.experiments?.flags[ExperimentFlags.ENABLE_ADMIN_CONTROLS] experiments?.flags[ExperimentFlags.ENABLE_ADMIN_CONTROLS]?.boolValue ??
?.boolValue ?? false; false;
const adminControls = await fetchAdminControls( const adminControls = await fetchAdminControls(
codeAssistServer, codeAssistServer,
this.getRemoteAdminSettings(), this.getRemoteAdminSettings(),