…2217)
Release vite-plus v0.2.6: Stable type-aware linting and a refreshed
toolchain.
This release moves Vite+'s type-aware linting to the [stable tsgolint 7
engine](https://oxc.rs/blog/2026-07-22-type-aware-linting-stable),
refreshes the bundled build and formatting tools, strengthens `vp run`
caching and workspace discovery, and removes the redundant `vp build`
startup banner.
### Highlights
- Move bundled type-aware linting to stable tsgolint 7 with 59 of 61
typescript-eslint type-aware rules, and update Vite `8.1.4` -> `8.1.5`,
Rolldown `1.1.5` -> `1.2.0`, tsdown `0.22.7` -> `0.22.13`, Oxlint
`1.73.0` -> `1.75.0`, oxlint-tsgolint `0.24.0` -> `7.0.2001`, and Oxfmt
`0.58.0` -> `0.60.0`
([#2214](#2214)), by
@voidzero-guard[bot]
- Improve `vp run` reliability by caching much larger automatically
tracked input sets, discovering npm workspaces whose patterns start with
`./`, and reporting output-forwarding failures accurately
([vite-task#554](voidzero-dev/vite-task#554),
[vite-task#547](voidzero-dev/vite-task#547),
[vite-task#552](voidzero-dev/vite-task#552),
[#2215](#2215)), by
@wan9chi and @liangmiQwQ
- Remove the redundant Vite startup banner from `vp build` output and
fail fast when upstream Vite changes invalidate Vite+ branding patches
([#2200](#2200),
[#2205](#2205)), by
@liangmiQwQ
### Refactor
- Deduplicate package-manager version gates in migration catalog
handling ([#2216](#2216)),
by @jong-kyung
- Unify static and generated CLI help under one document model and
renderer ([#2211](#2211)),
by @jong-kyung
- Reuse shared subprocess exit-status handling across global CLI command
paths ([#2196](#2196)), by
@jong-kyung
### Docs
- Fix broken documentation anchors and add Migration Rules to the
Migrate sidebar
([#2203](#2203)), by
@charpeni
### Chore
- Stabilize `vp create` build-approval snapshots by removing package-age
timing from those fixtures
([#2224](#2224)), by
@wan9chi
- Remove the temporary release workflow dispatch used for the previous
release ([#2193](#2193)),
by @wan9chi
- Share package-manager fixtures across CLI tests
([#2197](#2197)), by
@jong-kyung
- Remove stale raw Oxlint and Oxfmt development dependencies that
bypassed repository editor configuration
([#2187](#2187)), by
@liangmiQwQ
### Bundled Versions
| Tool | Version | Source |
| --------------- | ------- |
-----------------------------------------------------------------------
|
| vite | `8.1.5` |
[`5e7fe12`](vitejs/vite@5e7fe12)
|
| rolldown | `1.2.0` |
[`03e1e34`](rolldown/rolldown@03e1e34)
|
| tsdown | `0.22.13` | [npm](https://npmx.dev/package/tsdown/v/0.22.13)
|
| vitest | `4.1.10` | [npm](https://npmx.dev/package/vitest/v/4.1.10) |
| oxlint | `1.75.0` | [npm](https://npmx.dev/package/oxlint/v/1.75.0) |
| oxlint-tsgolint | `7.0.2001` |
[npm](https://npmx.dev/package/oxlint-tsgolint/v/7.0.2001) |
| oxfmt | `0.60.0` | [npm](https://npmx.dev/package/oxfmt/v/0.60.0) |
### Upgrade
```bash
vp upgrade
```
### New Contributors
Welcome @charpeni.
**Full Changelog**:
v0.2.5...v0.2.6
---
Merging this PR will trigger the release workflow.
---------
Co-authored-by: voidzero-guard[bot] <278573678+voidzero-guard[bot]@users.noreply.github.com>
Co-authored-by: wan9chi <dk4rest@gmail.com>
Motivation
When forwarding piped output fails after a task process has started—for example, when writing to nonblocking stdout returns EAGAIN—the runner currently categorizes it as a spawn failure. This produces the misleading message Failed to spawn process even though the task did start.
This is the remaining lifecycle error described in #506 after #515 separated wait failures.
Changes