Vite Plus PATH shim can shadow external CLI upgrades (OpenCode example)
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 50/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Quiet
- Tech stack
- node.js, rust
- Domain
- cli, operating-systems, tooling
Research direction
Start by reproducing the Windows PowerShell case with opencode --version and opencode upgrade --print-logs, then inspect how Vite Plus places executables in ~/.vite-plus/bin and how PATH resolves them. Done means a successful external upgrade causes the normal opencode command to run the newly installed version without manual replacement; preserve the stated scope around OpenCode unless other cases are confirmed.
Written by the indexing model from the issue text.
Description
Summary
On Windows, a Vite Plus-owned executable in ~\.vite-plus\bin can remain ahead of a newer version installed by that CLI's own updater. The shell command then continues to run the stale Vite Plus executable.
OpenCode is the confirmed example below. This may affect any externally updatable CLI for which Vite Plus installs an executable with the same command name, but this report does not claim other packages are currently affected.
Environment
- Windows
- Vite Plus:
0.2.4 - OpenCode before upgrade:
1.17.18
Reproduction
opencode --version
# 1.17.18
opencode upgrade --print-logs
The updater reported:
Using method: npm
From 1.17.18 → 1.18.1
Upgrade complete
But immediately afterwards:
opencode --version
# 1.17.18
Investigation
The command resolved to the Vite Plus-owned path:
C:\Users\<user>\.vite-plus\bin\opencode.exe
The updater had installed OpenCode 1.18.1 at:
C:\Users\<user>\.vite-plus\js_runtime\node\22.19.0\node_modules\opencode-ai\bin\opencode.exe
Running that executable directly returned 1.18.1; the PATH executable remained at 1.17.18.
Scope checked
- Confirmed:
opencodewas shadowed by the stale Vite Plus executable. - Not implicated in this installation:
npm,npx, andcorepackresolve to NVM rather than~\.vite-plus\bin. - Potentially affected pattern: any CLI that manages its own upgrades while Vite Plus also places a same-named executable earlier on PATH.
Expected behavior
After a CLI reports a successful self-upgrade, its normal shell command should run the upgraded version.
Workaround
Replacing the stale Vite Plus executable with the newly installed OpenCode executable made opencode --version report 1.18.1.
Suggested direction
Vite Plus could avoid installing static, same-named binaries for externally self-updating CLIs, make them forwarding shims, or provide a way to refresh the Vite Plus bin entry after an external upgrade.
- Dominant language
- Rust
- Stars
- 5.8k
- Forks
- 263
- Avg merge
- 1d 4h
- Merged PRs (30d)
- 148
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from voidzero-dev/vite-plus
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
voidzero-dev/vite-plus#2097 · 10 comments · 2 reactions ·
-
pending triage
Difficulty 5/5 Over a week Newbie friendliness 45/100
voidzero-dev/vite-plus#2781 · 2 reactions ·
-
enhancement
voidzero-dev/vite-plus#2766 · 4 comments · 1 reaction · 1 assignee ·
-
enhancement
voidzero-dev/vite-plus#2764 · 3 comments · 1 assignee ·
-
pending triage
Difficulty 3/5 1-2 days Newbie friendliness 68/100
voidzero-dev/vite-plus#2735 ·
All issues in voidzero-dev/vite-plus
Similar issues
-
Browser (wasm) relay client cannot connect to relays whose URL has a trailing-dot FQDN hostname Open
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
n0-computer/iroh#4550 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
paritytech/zombienet-sdk#591 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
farion1231/cc-switch#7638 · 1 comment ·
-
onnx-ir re-exports ModelProto and GraphProto but not NodeProto, AttributeProto and AttributeType Open
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100