Skip to content

[agent] feat: PowerShell installer and Windows self-update - #95

Merged
alexng353 merged 2 commits into
mainfrom
agent/windows-installer
Sep 27, 2026
Merged

alexng353 merged 2 commits into
mainfrom
agent/windows-installer

Conversation

@alexng353

Copy link
Copy Markdown
Member

[agent]

Summary

  • install.ps1: powershell -c "irm https://raw.githubusercontent.com/envx-project/cli/main/install.ps1 | iex". Mirrors install.sh: latest or ENVX_VERSION release, HTTPS-only, required SHA256 sidecar (legacy ≤2.13 warns), extracts only envx.exe. Installs per user to %LOCALAPPDATA%\Programs\envx (no admin) and adds it to the user PATH. Upgrades over a running envx.exe by renaming it aside. ENVX_UNINSTALL=1 removes it and the PATH entry. Works on Windows PowerShell 5.1 and PowerShell 7; errors throw rather than exit, so iex never closes the user's shell.
  • envx update on Windows now runs install.ps1 into the running executable's folder instead of refusing.
  • CI: new windows-installer job runs install → reinstall → uninstall on both powershell and pwsh.
  • Docs: README, windows-installation.md, envx skill.

Testing

  • mcr.microsoft.com/powershell container: latest install via iex, PE header check, pinned gnu reinstall over existing, bad platform / http base URL / missing release rejected without killing the shell, uninstall. All pass.
  • cargo fmt, cargo clippy --all-targets, cargo test on Linux. The Windows run_installer path is compiled by the existing windows-latest build job (not runnable locally).

Follow-up

get.envx.sh redirects every path to install.sh, so the Windows command uses the raw GitHub URL. A Cloudflare rule sending get.envx.sh/ps1 (or similar) to install.ps1 would give a short URL.

Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com

🤖 Generated with Claude Code

install.ps1 installs the latest (or ENVX_VERSION) release per user into
%LOCALAPPDATA%\Programs\envx, verifies the SHA256 sidecar, extracts only
envx.exe, and adds the folder to the user PATH. It supports in-place
upgrades of a running envx.exe and ENVX_UNINSTALL=1. `envx update` on
Windows now runs it against the current executable's folder instead of
refusing. CI exercises it on Windows PowerShell 5.1 and PowerShell 7.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@alexng353
alexng353 merged commit 94f6ca0 into main Sep 27, 2026
6 checks passed
@alexng353
alexng353 deleted the agent/windows-installer branch September 27, 2026 08:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant