voidzero-dev / voidzero-dev/vite-plus
Re-delegate elicited app targets through full CLI resolution
- Dominant language
- Rust
- Stars
- 5.8k
- Forks
- 261
- Avg merge
- 1d 34m
- Merged PRs (30d)
- 135
Description
Follow-up to #2031, from Codex review round 7. When a bare app command at a root is retargeted by target elicitation (defaultPackage, picker, auto-select), the binding swaps the spawn cwd and PWD for the tool, but the executing local CLI, its Node runtime, and PATH were already resolved for the invocation directory.
Within one workspace this matches the supported single-Vite+-version model and the behavior is correct. The gap is the non-workspace framework shape: a root whose vite.config.ts points defaultPackage at a directory that carries its own vite-plus install or runtime pin (.node-version, devEngines.runtime). There, `cd && vp build` resolves that local install and runtime, while `vp build` at the root elicits inside the CLI chosen at the root (possibly the global bundled one), so versions can skew.
Candidate fix: when elicitation returns a target directory, re-delegate as if the user had run `vp -C ` from the top: the global binary re-runs local-CLI and runtime resolution from the target before dispatching (needs a signal across the NAPI boundary, or the global CLI performing elicitation for the bare-at-root case before choosing the local CLI). The RFC documents the current scoping in the equivalence section.
Contributor guide
Research direction
Read the RFC's equivalence section, then trace target elicitation and the local CLI/runtime resolution used by `vp -C `. Compare that with `cd && vp build` for a root whose vite.config.ts sets defaultPackage. Done means an elicited target re-resolves its local CLI, Node runtime, and PATH before dispatch.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- node.js, rust, typescript
- Domain
- build-system, cli, tooling
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100