From 4371a71f59cedd274e7205a51bdc52719c8b6639 Mon Sep 17 00:00:00 2001 From: Tong Chen Date: Fri, 6 Mar 2026 17:04:33 +0800 Subject: [PATCH] fix wrapper version for npm (#1458) --- electron/main/utils/process.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/electron/main/utils/process.ts b/electron/main/utils/process.ts index 93f52c34..b5e2489a 100644 --- a/electron/main/utils/process.ts +++ b/electron/main/utils/process.ts @@ -961,7 +961,8 @@ export function ensureNpmWrappersForBrowserToolkit( const eigentBinDir = path.join(os.homedir(), '.eigent', 'bin'); fs.mkdirSync(eigentBinDir, { recursive: true }); - const wrapperVersion = '1'; + // Store wrapper target so wrappers are recreated when venv path changes (e.g. app upgrade) + const wrapperVersion = `wrapper:${pythonPath}`; const versionFile = path.join(eigentBinDir, '.npm_wrapper_version'); const storedVersion = fs.existsSync(versionFile) ? fs.readFileSync(versionFile, 'utf-8').trim() @@ -976,10 +977,14 @@ export function ensureNpmWrappersForBrowserToolkit( process.platform === 'win32' ? 'npx.cmd' : 'npx' ); + // Recreate wrappers when: version changed, wrappers missing, or existing shebang points to wrong Python const needsUpdate = storedVersion !== wrapperVersion || !fs.existsSync(npmWrapper) || - !fs.existsSync(npxWrapper); + !fs.existsSync(npxWrapper) || + (process.platform !== 'win32' && + fs.existsSync(npmWrapper) && + !fs.readFileSync(npmWrapper, 'utf-8').startsWith(`#!${pythonPath}`)); if (needsUpdate) { try {