fix: /ide install failed to run on Windows (#957)

This commit is contained in:
tanzhenxin
2025-11-04 15:53:03 +08:00
committed by GitHub
parent d8cc0a1f04
commit 04f0996327
3 changed files with 12 additions and 14 deletions

View File

@@ -916,17 +916,9 @@ export const AppContainer = (props: AppContainerProps) => {
(result: IdeIntegrationNudgeResult) => { (result: IdeIntegrationNudgeResult) => {
if (result.userSelection === 'yes') { if (result.userSelection === 'yes') {
handleSlashCommand('/ide install'); handleSlashCommand('/ide install');
settings.setValue( settings.setValue(SettingScope.User, 'ide.hasSeenNudge', true);
SettingScope.User,
'hasSeenIdeIntegrationNudge',
true,
);
} else if (result.userSelection === 'dismiss') { } else if (result.userSelection === 'dismiss') {
settings.setValue( settings.setValue(SettingScope.User, 'ide.hasSeenNudge', true);
SettingScope.User,
'hasSeenIdeIntegrationNudge',
true,
);
} }
setIdePromptAnswered(true); setIdePromptAnswered(true);
}, },

View File

@@ -112,14 +112,19 @@ describe('ide-installer', () => {
platform: 'linux', platform: 'linux',
}); });
await installer.install(); 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( expect(child_process.spawnSync).toHaveBeenCalledWith(
'code', expectedCommand,
[ [
'--install-extension', '--install-extension',
'qwenlm.qwen-code-vscode-ide-companion', 'qwenlm.qwen-code-vscode-ide-companion',
'--force', '--force',
], ],
{ stdio: 'pipe' }, { stdio: 'pipe', shell: isActuallyWindows },
); );
}); });

View File

@@ -117,15 +117,16 @@ class VsCodeInstaller implements IdeInstaller {
}; };
} }
const isWindows = process.platform === 'win32';
try { try {
const result = child_process.spawnSync( const result = child_process.spawnSync(
commandPath, isWindows ? `"${commandPath}"` : commandPath,
[ [
'--install-extension', '--install-extension',
'qwenlm.qwen-code-vscode-ide-companion', 'qwenlm.qwen-code-vscode-ide-companion',
'--force', '--force',
], ],
{ stdio: 'pipe' }, { stdio: 'pipe', shell: isWindows },
); );
if (result.status !== 0) { if (result.status !== 0) {