- Fixed An issue where Bun tasks on macOS did not rerun when files they read, wrote, or listed changed (#532, #542).
- Improved Windows file-access tracking now uses sparse temporary backing files where supported, avoiding upfront allocation of the full backing file on disk (#524).
- Fixed Automatic file-access tracking on Linux now works in containers and Kubernetes runners with limited
/dev/shmspace (#353, #523). - Fixed Windows automatic input tracking now records executable image reads when process creation performs the lookup inside
NtCreateUserProcess(#518). - Fixed Failures while waiting for a started task process to exit no longer incorrectly say the process failed to spawn (#515).
- Fixed Missing env vars requested through
@voidzero-dev/vite-task-clientnow returnundefinedinstead ofnull, preserving Vite productionNODE_ENVsemantics when builds run throughvp run(#508). - Fixed Windows builds no longer hang on CI when a
node_modules/.bin.cmdshim is routed through PowerShell: the npm/pnpm/yarn.ps1wrappers read stdin and block forever on a non-TTY pipe, so the PowerShell rewrite is now skipped when stdin is not an interactive terminal, falling back to the.cmd(which never reads stdin) (#491). - Added First-party support for caching
vite buildwith zero cache config, giving Vite projects correct cache hits out of the box (vitejs/vite#22453). - Added Support for specifying tasks from dependency packages in
dependsOn, such asdependsOn: [{ "task": "build", "from": "dependencies" }](#479). - Added
@voidzero-dev/vite-task-client, allowing tools to report cache information to Vite Task at runtime so users do not need to configure it manually (#441, #454, #449, #450, #458, #431, #459, #472). - Changed Cached tasks now restore automatically tracked output files by default; use
output: []to disable restoration (#460, #461). - Changed Environment values in task cache fingerprints are now stored only as SHA-256 digests, and env-related cache miss details report names without values (#455).
- Fixed Prefix environment assignments like
PATH=... commandnow affect executable lookup during task planning, so tools provided only by the prefixedPATHcan be resolved correctly (#440) - Changed Cache misses caused by a tracked env var now name the env var inline, for example
cache miss: env 'NODE_ENV' changed, instead of the genericenvs changedmessage (#438) - Fixed The task cache is now stored in a per-schema-version subdirectory (e.g.
node_modules/.vite/task-cache/v13/), so switching between branches that pin different Vite+ versions no longer fails withUnrecognized database version. Each version keeps its own cache directory; a cache from a different version is ignored rather than aborting the run (#433) - Added A task's
envanduntrackedEnvglob patterns now support!negation: a!-prefixed pattern excludes matching variables (e.g.["VITE_*", "!VITE_SECRET"]tracks everyVITE_*exceptVITE_SECRET) (#425) - Fixed
package.jsonandpnpm-workspace.yamlfiles with a UTF-8 BOM no longer fail to parse (#424) - Changed
vp run --filter <expr>now exits 0 with a warning when the filter matches no packages, matching pnpm. Use--fail-if-no-matchto restore the previous strict behavior (#393) - Added task command shorthands for defining tasks as command strings or command string arrays (#391)
- Changed Cached logs are stored with colors intact (
FORCE_COLOR=1is auto-injected into spawned tasks). Colors are then stripped at display time when the terminal does not support them. Other color-related env vars (NO_COLOR,COLORTERM,TERM,TERM_PROGRAM) are no longer passed through by default. Opt in via a task'senv/untrackedEnv(#378) - Added
outputfield for cached tasks: archives matching files after a successful run and restores them on cache hit (#375) - Fixed Windows cached tasks can now run package shims rewritten through PowerShell; default env passthrough now preserves
PATHEXT(#366) - Added Platform support for targets without
inputauto-inference (e.g. Android). Tasks still run; those relying on auto-inference run uncached, with the summary noting thatinputmust be configured manually to enable caching (#352) - Fixed
vp runno longer aborts withfailed to prepare the command for injection: Invalid argumentwhen the user environment already hasLD_PRELOAD(Linux) orDYLD_INSERT_LIBRARIES(macOS) set. The tracer shim is now appended to any existing value and placed last, so user preloads keep their symbol-interposition precedence (#340) - Changed Arguments passed after a task name (e.g.
vp run test some-filter) are now forwarded only to that task. Tasks pulled in viadependsOnno longer receive them (#324) - Fixed Windows file access tracking no longer panics when a task touches malformed paths that cannot be represented as workspace-relative inputs (#330)
- Fixed
vp run --cachenow supports running without a task specifier and opens the interactive task selector, matching barevp runbehavior (#312) - Fixed Ctrl-C now prevents future tasks from being scheduled and prevents caching of in-flight task results (#309)
- Added
--concurrency-limitflag to limit the number of tasks running at the same time (defaults to 4) (#288, #309) - Added
--parallelflag to ignore task dependencies and run all tasks at once with unlimited concurrency (unless--concurrency-limitis also specified) (#309) - Added object form for
inputentries:{ "pattern": "...", "base": "workspace" | "package" }to resolve glob patterns relative to the workspace root instead of the package directory (#295) - Fixed arguments after the task name being consumed by
vpinstead of passed through to the task (#286, #290) - Changed default untracked env patterns to align with Turborepo, covering more CI and platform-specific variables (#262)
- Added
--log=interleaved|labeled|groupedflag to control task output display:interleaved(default) streams directly,labeledprefixes lines with[pkg#task],groupedbuffers output per task (#266) - Added musl target support (
x86_64-unknown-linux-musl) (#273) - Changed cache hit/miss indicators to use neutral symbols (◉/〇) instead of ✓/✗ to avoid confusion with success/error (#268)
- Added automatic skip of caching for tasks that modify their own inputs (#248)