diff --git a/src/extension.ts b/src/extension.ts index 1cd59fb2..42382c4c 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -10,7 +10,7 @@ import { window, } from 'vscode'; import { PythonEnvironment, PythonEnvironmentApi, PythonProjectCreator } from './api'; -import { ENVS_EXTENSION_ID } from './common/constants'; +import { ENVS_EXTENSION_ID, SYSTEM_MANAGER_ID, VENV_MANAGER_ID } from './common/constants'; import { ensureCorrectVersion } from './common/extVersion'; import { registerLogger, traceError, traceInfo, traceWarn } from './common/logging'; import { clearPersistentState, setPersistentState } from './common/persistentState'; @@ -547,6 +547,20 @@ export async function activate(context: ExtensionContext): Promise { + traceWarn('[pre-warm] System manager cache warm-up failed:', err); + }), + (envManagers.getEnvironmentManager(VENV_MANAGER_ID)?.getEnvironments('all') ?? Promise.resolve()).catch( + (err) => { + traceWarn('[pre-warm] Venv manager cache warm-up failed:', err); + }, + ), + ]); + await applyInitialEnvironmentSelection(envManagers, projectManager, nativeFinder, api); // Register manager-agnostic terminal watcher for package-modifying commands diff --git a/src/managers/common/nativePythonFinder.ts b/src/managers/common/nativePythonFinder.ts index 33f690e7..eefdedea 100644 --- a/src/managers/common/nativePythonFinder.ts +++ b/src/managers/common/nativePythonFinder.ts @@ -238,6 +238,11 @@ class NativePythonFinderImpl implements NativePythonFinder { 1, 'NativeRefresh-task', ); + + // Start discovery immediately so the cache is warm before managers call initialize(). + void this.refresh(false).catch((err) => { + traceWarn('[pet] Background pre-warm refresh failed:', err); + }); } public async resolve(executable: string): Promise {