Skip to content

fix(env): preserve PowerShell argument separators - #3083

Open
fengmk2 wants to merge 3 commits into
mainfrom
codex/fix-powershell-argument-separator
Open

fengmk2 wants to merge 3 commits into
mainfrom
codex/fix-powershell-argument-separator

Conversation

@fengmk2

@fengmk2 fengmk2 commented Oct 16, 2026 •

Copy link
Copy Markdown
Member

PowerShell consumes a bare -- before the vp.ps1 wrapper receives its arguments, so vp create vite -- --template react-ts rejects --template instead of forwarding it to create-vite.

Restore the first bare separator with a single pass over the caller's command AST, without re-evaluating expressions or reading caller variables. Quoted and escaped separators remain unchanged. If a preceding array or hashtable splat makes the separator's position ambiguous, preserve PowerShell's bound arguments instead of guessing where to insert it.

Fixes #3080.

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Oct 16, 2026 •

Copy link
Copy Markdown

🚀 Deploying Preview to Cloudflare 🚀

Preview URL: https://codex-fix-powershell-argument-separator-viteplus-dev.voidzero-docs.workers.dev (commit a0aa482)

This URL reflects your latest Preview deployment

Preview Deployments by commit

Status Deployment URL Commit Updated (UTC) See this deployment's details
  • Build: Success ✅
  • Deployment: Success ✅

View logs ↗
https://7add1910-viteplus-dev.voidzero-docs.workers.dev a0aa482 2026-10-20T07:08:16.512Z Visit the dashboard ↗
  • Build: Success ✅
  • Deployment: Success ✅

View logs ↗
https://480e746c-viteplus-dev.voidzero-docs.workers.dev b411ab9 2026-10-20T07:05:54.271Z Visit the dashboard ↗
  • Build: Success ✅
  • Deployment: Success ✅

View logs ↗
https://33b3f1c9-viteplus-dev.voidzero-docs.workers.dev 7cc6acf 2026-10-20T06:55:32.131Z Visit the dashboard ↗
  • Build: Success ✅
  • Deployment: Success ✅

View logs ↗
https://9bd15b37-viteplus-dev.voidzero-docs.workers.dev 3851fba 2026-10-16T04:57:25.814Z Visit the dashboard ↗

@github-actions

github-actions Bot commented Oct 16, 2026 •

Copy link
Copy Markdown
Contributor

CLI artifact sizes (a0aa482)

Final release artifacts built by the canonical build-upstream and build-windows-cli actions.
The dist rows use the Linux build. The core total excludes .node files to match the release artifact.

Artifact Format Base PR Change
packages/cli/dist Directory total 2.11 MiB 2.11 MiB 0 B (0.00%)
packages/core/dist Directory total 4.08 MiB 4.08 MiB 0 B (0.00%)
Combined package dist Directory total 6.19 MiB 6.19 MiB 0 B (0.00%)
vp (Linux x64) Binary 7.21 MiB 7.21 MiB 0 B (0.00%)
vp (Linux x64) gzip -9 3.34 MiB 3.34 MiB +845 B (+0.02%)
NAPI (Linux x64) Binary 34.79 MiB 34.79 MiB 0 B (0.00%)
NAPI (Linux x64) gzip -9 13.86 MiB 13.86 MiB 0 B (0.00%)
vp (macOS ARM64) Binary 4.77 MiB 4.77 MiB 0 B (0.00%)
vp (macOS ARM64) gzip -9 2.86 MiB 2.86 MiB +545 B (+0.02%)
NAPI (macOS ARM64) Binary 41.71 MiB 41.71 MiB 0 B (0.00%)
NAPI (macOS ARM64) gzip -9 18.02 MiB 18.02 MiB 0 B (0.00%)
vp (Windows x64) Binary 5.26 MiB 5.26 MiB +2.00 KiB (+0.04%)
vp (Windows x64) gzip -9 2.46 MiB 2.46 MiB +420 B (+0.02%)
NAPI (Windows x64) Binary 30.85 MiB 30.85 MiB 0 B (0.00%)
NAPI (Windows x64) gzip -9 12.56 MiB 12.56 MiB -15 B (-0.00%)
Trampoline (Windows x64) Binary 13.50 KiB 13.50 KiB 0 B (0.00%)
Trampoline (Windows x64) gzip -9 7.09 KiB 7.09 KiB 0 B (0.00%)
Installer (Windows x64) Binary 3.64 MiB 3.64 MiB 0 B (0.00%)
Installer (Windows x64) gzip -9 1.78 MiB 1.78 MiB 0 B (0.00%)

@fengmk2
fengmk2 force-pushed the codex/fix-powershell-argument-separator branch from 7cc6acf to b411ab9 Compare October 20, 2026 07:04
@fengmk2 fengmk2 added the preview-build Publish this PR's commits to the registry bridge as preview builds label Oct 20, 2026
@fengmk2 fengmk2 added preview-build Publish this PR's commits to the registry bridge as preview builds and removed preview-build Publish this PR's commits to the registry bridge as preview builds labels Oct 20, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Preview binary sizes (a0aa482)

Compared with the latest stable release, v1.3.0. Preview build.
Each row measures one binary. Negative changes mean a smaller preview binary.

Binary Latest release Preview Change
vp (macOS ARM64) 7.62 MiB 4.77 MiB -2.85 MiB (-37.38%)
NAPI (macOS ARM64) 41.49 MiB 41.68 MiB +193.73 KiB (+0.46%)
vp (macOS x64) 9.29 MiB 6.02 MiB -3.27 MiB (-35.18%)
NAPI (macOS x64) 46.44 MiB 46.71 MiB +272.26 KiB (+0.57%)
vp (Linux ARM64 GNU) 8.48 MiB 6.01 MiB -2.47 MiB (-29.16%)
NAPI (Linux ARM64 GNU) 30.66 MiB 30.84 MiB +192.00 KiB (+0.61%)
vp (Linux ARM64 musl) 8.53 MiB 6.08 MiB -2.45 MiB (-28.75%)
NAPI (Linux ARM64 musl) 29.89 MiB 30.07 MiB +185.94 KiB (+0.61%)
vp (Linux x64 GNU) 10.21 MiB 7.21 MiB -3.00 MiB (-29.41%)
NAPI (Linux x64 GNU) 34.53 MiB 34.79 MiB +267.94 KiB (+0.76%)
vp (Linux x64 musl) 10.21 MiB 7.28 MiB -2.93 MiB (-28.72%)
NAPI (Linux x64 musl) 33.50 MiB 33.76 MiB +269.31 KiB (+0.79%)
vp (Windows x64) 8.29 MiB 5.27 MiB -3.02 MiB (-36.46%)
NAPI (Windows x64) 30.25 MiB 30.50 MiB +264.50 KiB (+0.85%)
Trampoline (Windows x64) 13.00 KiB 13.00 KiB 0 B (0.00%)
Installer (Windows x64) 3.64 MiB 3.64 MiB +7.00 KiB (+0.19%)
vp (Windows ARM64) 6.94 MiB 4.63 MiB -2.31 MiB (-33.25%)
NAPI (Windows ARM64) 26.83 MiB 27.01 MiB +186.50 KiB (+0.68%)
Trampoline (Windows ARM64) 13.00 KiB 13.00 KiB 0 B (0.00%)
Installer (Windows ARM64) 3.01 MiB 3.02 MiB +5.00 KiB (+0.16%)
gzip -9 sizes
Binary Latest release Preview Change
vp (macOS ARM64) 3.94 MiB 2.86 MiB -1.08 MiB (-27.48%)
NAPI (macOS ARM64) 17.97 MiB 18.01 MiB +47.72 KiB (+0.26%)
vp (macOS x64) 4.28 MiB 3.02 MiB -1.26 MiB (-29.48%)
NAPI (macOS x64) 19.14 MiB 19.18 MiB +45.60 KiB (+0.23%)
vp (Linux ARM64 GNU) 4.26 MiB 3.29 MiB -999.41 KiB (-22.89%)
NAPI (Linux ARM64 GNU) 13.00 MiB 13.05 MiB +49.05 KiB (+0.37%)
vp (Linux ARM64 musl) 4.30 MiB 3.32 MiB -1007.80 KiB (-22.87%)
NAPI (Linux ARM64 musl) 12.71 MiB 12.76 MiB +49.70 KiB (+0.38%)
vp (Linux x64 GNU) 4.50 MiB 3.34 MiB -1.16 MiB (-25.74%)
NAPI (Linux x64 GNU) 13.81 MiB 13.86 MiB +51.02 KiB (+0.36%)
vp (Linux x64 musl) 4.51 MiB 3.37 MiB -1.14 MiB (-25.23%)
NAPI (Linux x64 musl) 13.35 MiB 13.40 MiB +52.39 KiB (+0.38%)
vp (Windows x64) 3.66 MiB 2.46 MiB -1.20 MiB (-32.73%)
NAPI (Windows x64) 12.37 MiB 12.42 MiB +44.19 KiB (+0.35%)
Trampoline (Windows x64) 7.14 KiB 7.14 KiB -1 B (-0.01%)
Installer (Windows x64) 1.78 MiB 1.78 MiB +3.15 KiB (+0.17%)
vp (Windows ARM64) 3.46 MiB 2.36 MiB -1.10 MiB (-31.88%)
NAPI (Windows ARM64) 11.75 MiB 11.78 MiB +40.28 KiB (+0.33%)
Trampoline (Windows ARM64) 6.93 KiB 6.92 KiB -3 B (-0.04%)
Installer (Windows ARM64) 1.71 MiB 1.71 MiB +2.12 KiB (+0.12%)

Raw sizes are uncompressed file sizes. gzip sizes recompress each binary at level 9; they are not package or download archive sizes.
The baseline uses published release files, including NAPI packages from npm at the same version. Build versions and toolchains can affect the difference.

@github-actions

Copy link
Copy Markdown
Contributor

Registry bridge build (a0aa482)

This commit build is published to the registry bridge, which serves these as ordinary npm versions (every other package proxies to npmjs):

Package Version
vite-plus 0.0.0-commit.a0aa482a0e846e319b4b83b23facc81c410d67dd
@voidzero-dev/vite-plus-core 0.0.0-commit.a0aa482a0e846e319b4b83b23facc81c410d67dd
create-vite-plus 0.0.0-commit.a0aa482a0e846e319b4b83b23facc81c410d67dd

Install the Vite+ CLI built from this commit, then migrate a project:

# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/voidzero-dev/vite-plus/a0aa482a0e846e319b4b83b23facc81c410d67dd/packages/cli/install.sh | VP_PR_VERSION=3083 VP_LEGACY_INSTALLER_URL=https://raw.githubusercontent.com/voidzero-dev/vite-plus/a0aa482a0e846e319b4b83b23facc81c410d67dd/packages/cli/install-legacy.sh bash
# Windows (PowerShell)
$env:VP_PR_VERSION="3083"; $env:VP_LEGACY_INSTALLER_URL="https://raw.githubusercontent.com/voidzero-dev/vite-plus/a0aa482a0e846e319b4b83b23facc81c410d67dd/packages/cli/install-legacy.ps1"; irm https://raw.githubusercontent.com/voidzero-dev/vite-plus/a0aa482a0e846e319b4b83b23facc81c410d67dd/packages/cli/install.ps1 | iex

Or download the standalone Windows installer built from this commit:

Architecture Installer
x64 vp-setup-x86_64-pc-windows-msvc.exe
Arm64 vp-setup-aarch64-pc-windows-msvc.exe

GitHub requires you to sign in and downloads each installer as a ZIP artifact. Extract vp-setup.exe, then run it against this preview build:

.\vp-setup.exe --version "0.0.0-commit.a0aa482a0e846e319b4b83b23facc81c410d67dd" --registry "https://registry-bridge.viteplus.dev/"

After installing, upgrade the current project's vite-plus to this test build with:

vp migrate

Or create a new project from this commit without installing the CLI:

export npm_config_registry=https://registry-bridge.viteplus.dev/ pnpm_config_registry=https://registry-bridge.viteplus.dev/
pnpm create vite-plus@0.0.0-commit.a0aa482a0e846e319b4b83b23facc81c410d67dd # or: npm create vite-plus@0.0.0-commit.a0aa482a0e846e319b4b83b23facc81c410d67dd
$env:npm_config_registry="https://registry-bridge.viteplus.dev/"; $env:pnpm_config_registry="https://registry-bridge.viteplus.dev/"
pnpm create vite-plus@0.0.0-commit.a0aa482a0e846e319b4b83b23facc81c410d67dd # or: npm create vite-plus@0.0.0-commit.a0aa482a0e846e319b4b83b23facc81c410d67dd

pnpm 11+ reads pnpm_config_registry, npm and older pnpm read npm_config_registry. The new project pins this build, so keep the registry set for later installs, or configure it as below.

Or point your package manager at the bridge registry https://registry-bridge.viteplus.dev/:

Package manager Registry config
npm / pnpm / Bun .npmrc: registry=https://registry-bridge.viteplus.dev/
Yarn (v2+) .yarnrc.yml: npmRegistryServer: "https://registry-bridge.viteplus.dev/"

Then pin the build (vite aliases to vite-plus-core; pnpm can use a catalog, npm an overrides entry):

{
  "devDependencies": {
    "vite-plus": "0.0.0-commit.a0aa482a0e846e319b4b83b23facc81c410d67dd",
    "vite": "npm:@voidzero-dev/vite-plus-core@0.0.0-commit.a0aa482a0e846e319b4b83b23facc81c410d67dd"
  }
}

@github-actions

Copy link
Copy Markdown
Contributor

🐳 Docker preview image

Built from this PR's registry bridge build:

Image Compressed size
ghcr.io/voidzero-dev/vite-plus:pr-3083 225MB
# remove any stale local copy from a previous run, then pull fresh
docker rmi ghcr.io/voidzero-dev/vite-plus:pr-3083 2>/dev/null; docker pull ghcr.io/voidzero-dev/vite-plus:pr-3083

Quick check:

docker run --rm ghcr.io/voidzero-dev/vite-plus:pr-3083 vp --version

See docs/guide/docker.md for usage.

@fengmk2 fengmk2 self-assigned this Oct 20, 2026
@fengmk2 fengmk2 added test: e2e Auto run e2e tests test: install-e2e run vite install e2e test test: create-e2e Run `vp create` e2e tests labels Oct 20, 2026
@fengmk2

fengmk2 commented Oct 20, 2026

Copy link
Copy Markdown
Member Author

@codex review

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 20, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-20T09:44:47.725620Z a0aa482 Manual request
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@fengmk2
fengmk2 marked this pull request as ready for review October 20, 2026 09:42
@fengmk2
fengmk2 requested review from cpojer and wan9chi October 20, 2026 09:42
@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Already looking forward to the next diff.

Reviewed commit: a0aa482a0e

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

preview-build Publish this PR's commits to the registry bridge as preview builds test: create-e2e Run `vp create` e2e tests test: e2e Auto run e2e tests test: install-e2e run vite install e2e test

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug] PowerShell 7 fails to create a project when using the command vp create vite -- --template react-ts

1 participant