Skip to content

fix: upgradePowershell should fall back to pwsh on PowerShell-7-only Windows hosts #955

@anandgupta42

Description

@anandgupta42

Found during the v0.8.8 release review (Tech Lead, P2 deferred).

upgradePowershell in packages/opencode/src/installation/index.ts hardcodes the powershell executable (Windows PowerShell 5.1):

return Process.run(["powershell", "-NoProfile", "-ExecutionPolicy", "Bypass", "-Command", `irm ${UPGRADE_INSTALL_PS_URL} | iex`], ...)

On Windows 11 / PowerShell-7-only hosts (or hardened images) where powershell.exe (5.1) is absent, altimate upgrade fails. The bash installer's Windows AVX2 probe already tries powershell.exe then pwsh — the upgrade path should do the same.

Fix: resolve the shell once, preferring pwsh then falling back to powershell (e.g. Bun.which("pwsh") ?? "powershell" or a shared helper), and pass the resolved path to Process.run.

Deferred from v0.8.8 because the self-upgrade path is sensitive and pwsh-only hosts are a subset; tracking for a focused follow-up with a test.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions