diff --git a/src/integrations/terminal/TerminalProcess.ts b/src/integrations/terminal/TerminalProcess.ts index d202191b95..117ffc469a 100644 --- a/src/integrations/terminal/TerminalProcess.ts +++ b/src/integrations/terminal/TerminalProcess.ts @@ -97,8 +97,8 @@ export class TerminalProcess extends BaseTerminalProcess { // Execute command const defaultWindowsShellProfile = vscode.workspace - .getConfiguration("terminal.integrated.defaultProfile") - .get("windows") + .getConfiguration("terminal.integrated") + .get("defaultProfile.windows") const isPowerShell = process.platform === "win32" && diff --git a/src/utils/__tests__/shell.spec.ts b/src/utils/__tests__/shell.spec.ts index 8f370e4d7f..5882fdc0a4 100644 --- a/src/utils/__tests__/shell.spec.ts +++ b/src/utils/__tests__/shell.spec.ts @@ -139,11 +139,11 @@ describe("Shell Detection Tests", () => { expect(getShell()).toBe("C:\\Program Files\\PowerShell\\7\\pwsh.exe") }) - it("falls back to legacy PowerShell if profile includes 'powershell' but no path/source", () => { + it("falls back to PowerShell 7 if profile includes 'powershell' but no path/source", () => { mockVsCodeConfig("windows", "PowerShell", { PowerShell: {}, }) - expect(getShell()).toBe("C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe") + expect(getShell()).toBe("C:\\Program Files\\PowerShell\\7\\pwsh.exe") }) it("uses WSL bash when profile indicates WSL source", () => { diff --git a/src/utils/shell.ts b/src/utils/shell.ts index 45253c31b0..cd718aaad3 100644 --- a/src/utils/shell.ts +++ b/src/utils/shell.ts @@ -205,8 +205,9 @@ function getWindowsShellFromVSCode(): string | null { // If the profile is sourced from PowerShell, assume the newest return SHELL_PATHS.POWERSHELL_7 } - // Otherwise, assume legacy Windows PowerShell - return SHELL_PATHS.POWERSHELL_LEGACY + // Otherwise, default to PowerShell 7 (modern) since VS Code auto-discovers + // PS7 profiles without setting an explicit path or source property + return SHELL_PATHS.POWERSHELL_7 } // If there's a specific path, return that immediately