From 04f0996327f0837f29e7e17893cff57da469454d Mon Sep 17 00:00:00 2001 From: tanzhenxin Date: Tue, 4 Nov 2025 15:53:03 +0800 Subject: [PATCH] fix: /ide install failed to run on Windows (#957) --- packages/cli/src/ui/AppContainer.tsx | 12 ++---------- packages/core/src/ide/ide-installer.test.ts | 9 +++++++-- packages/core/src/ide/ide-installer.ts | 5 +++-- 3 files changed, 12 insertions(+), 14 deletions(-) diff --git a/packages/cli/src/ui/AppContainer.tsx b/packages/cli/src/ui/AppContainer.tsx index 5e76bc19..059d1dc4 100644 --- a/packages/cli/src/ui/AppContainer.tsx +++ b/packages/cli/src/ui/AppContainer.tsx @@ -916,17 +916,9 @@ export const AppContainer = (props: AppContainerProps) => { (result: IdeIntegrationNudgeResult) => { if (result.userSelection === 'yes') { handleSlashCommand('/ide install'); - settings.setValue( - SettingScope.User, - 'hasSeenIdeIntegrationNudge', - true, - ); + settings.setValue(SettingScope.User, 'ide.hasSeenNudge', true); } else if (result.userSelection === 'dismiss') { - settings.setValue( - SettingScope.User, - 'hasSeenIdeIntegrationNudge', - true, - ); + settings.setValue(SettingScope.User, 'ide.hasSeenNudge', true); } setIdePromptAnswered(true); }, diff --git a/packages/core/src/ide/ide-installer.test.ts b/packages/core/src/ide/ide-installer.test.ts index fe83d5b5..fe112f1c 100644 --- a/packages/core/src/ide/ide-installer.test.ts +++ b/packages/core/src/ide/ide-installer.test.ts @@ -112,14 +112,19 @@ describe('ide-installer', () => { platform: 'linux', }); await installer.install(); + + // Note: The implementation uses process.platform, not the mocked platform + const isActuallyWindows = process.platform === 'win32'; + const expectedCommand = isActuallyWindows ? '"code"' : 'code'; + expect(child_process.spawnSync).toHaveBeenCalledWith( - 'code', + expectedCommand, [ '--install-extension', 'qwenlm.qwen-code-vscode-ide-companion', '--force', ], - { stdio: 'pipe' }, + { stdio: 'pipe', shell: isActuallyWindows }, ); }); diff --git a/packages/core/src/ide/ide-installer.ts b/packages/core/src/ide/ide-installer.ts index 577c68a7..ab3e268e 100644 --- a/packages/core/src/ide/ide-installer.ts +++ b/packages/core/src/ide/ide-installer.ts @@ -117,15 +117,16 @@ class VsCodeInstaller implements IdeInstaller { }; } + const isWindows = process.platform === 'win32'; try { const result = child_process.spawnSync( - commandPath, + isWindows ? `"${commandPath}"` : commandPath, [ '--install-extension', 'qwenlm.qwen-code-vscode-ide-companion', '--force', ], - { stdio: 'pipe' }, + { stdio: 'pipe', shell: isWindows }, ); if (result.status !== 0) {