Vitest v4.0.14stable Released Nov 25, 2025
Impact Score: 5/10

Vitest v4.0.14 โ€” Release Notes & Engineering Impact

Source available โ€” automated, not human-reviewed

Component: vitest ยท Channel: stable. Automated analysis, not a compatibility certification. How this works.

Analysis updated: 2026-11-01.

Compatibility not verified โ€” check source notes
๐Ÿ“„ .MD
โšก Executive Summary (TL;DR)

Vitest v4.0.14. Source highlight:    ๐Ÿš€ Experimental Features

Who Does This Impact? (Role-Based Analysis)

๐Ÿ’ป Software Engineers & Devs

Check the source notes against the package and APIs you use before upgrading.

๐Ÿ“Š Product & Engineering Leads

Use the documented changes to assess relevance to your product; release frequency alone is not a quality measure.

โš™๏ธ DevOps & Security

Verify the target version, runtime requirements and rollback procedure in the official documentation.

โœจ New Features & Capabilities (3)

  • **browser**: Expose `utils.configurePrettyDOM` &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9103 <samp>(2cc34)</samp>
  • **runner**: Add full names to tasks &nbsp;-&nbsp; by @macarie in https://github.com/vitest-dev/vitest/issues/9087 <samp>(821aa)</samp>
  • **ui**: Add tabbed failure view for `toMatchScreenshot` with comparison slider &nbsp;-&nbsp; by @macarie in https://github.com/vitest-dev/vitest/issues/8813 <samp>(c37c2)</samp>

๐Ÿ”ง Bug Fixes & Patches (6)

  • Externalize before caching &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9077 <samp>(e1b2e)</samp>
  • Collect the duration of external imports &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9097 <samp>(3326c)</samp>
  • Rename `collect` to `import`, remove `prepare` &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9091 <samp>(1256b)</samp>
  • Unsubscribe `onCancel` on rpc destroy &nbsp;-&nbsp; by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/9088 <samp>(f5b72)</samp>
  • Revert the viewport scaling in non-ui mode #9018 &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9072 and https://github.com/vitest-dev/vitest/issues/9018 <samp>(64502)</samp>
  • Invalidate circular modules correctly on rerun with coverage &nbsp;-&nbsp; by @aicest in https://github.com/vitest-dev/vitest/issues/9096 <samp>(6f22c)</samp>
๐Ÿ“„ View Raw Release Notes (Original Developer Log)
### &nbsp;&nbsp;&nbsp;๐Ÿš€ Experimental Features - **browser**: Expose `utils.configurePrettyDOM` &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9103 [<samp>(2cc34)</samp>](https://github.com/vitest-dev/vitest/commit/2cc34e0d4) - **runner**: Add full names to tasks &nbsp;-&nbsp; by @macarie in https://github.com/vitest-dev/vitest/issues/9087 [<samp>(821aa)</samp>](https://github.com/vitest-dev/vitest/commit/821aa2002) - **ui**: Add tabbed failure view for `toMatchScreenshot` with comparison slider &nbsp;-&nbsp; by @macarie in https://github.com/vitest-dev/vitest/issues/8813 [<samp>(c37c2)</samp>](https://github.com/vitest-dev/vitest/commit/c37c2eb0b) ### &nbsp;&nbsp;&nbsp;๐Ÿž Bug Fixes - Externalize before caching &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9077 [<samp>(e1b2e)</samp>](https://github.com/vitest-dev/vitest/commit/e1b2e086a) - Collect the duration of external imports &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9097 [<samp>(3326c)</samp>](https://github.com/vitest-dev/vitest/commit/3326cc9f4) - Rename `collect` to `import`, remove `prepare` &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9091 [<samp>(1256b)</samp>](https://github.com/vitest-dev/vitest/commit/1256b5ca3) - **browser**: - Unsubscribe `onCancel` on rpc destroy &nbsp;-&nbsp; by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/9088 [<samp>(f5b72)</samp>](https://github.com/vitest-dev/vitest/commit/f5b72374b) - Revert the viewport scaling in non-ui mode #9018 &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9072 and https://github.com/vitest-dev/vitest/issues/9018 [<samp>(64502)</samp>](https://github.com/vitest-dev/vitest/commit/64502a2c4) - **coverage**: - Invalidate circular modules correctly on rerun with coverage &nbsp;-&nbsp; by @aicest in https://github.com/vitest-dev/vitest/issues/9096 [<samp>(6f22c)</samp>](https://github.com/vitest-dev/vitest/commit/6f22c675f) - **expect**: - Allow function as standard schema &nbsp;-&nbsp; by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/9099 [<samp>(ed8a2)</samp>](https://github.com/vitest-dev/vitest/commit/ed8a2ebbd) - **jsdom**: - Reuse abort signals if possible &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9090 [<samp>(2c468)</samp>](https://github.com/vitest-dev/vitest/commit/2c468ee95) - **pool**: - Init `VITEST_POOL_ID` + `VITEST_WORKER_ID` before environment setup &nbsp;-&nbsp; by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/9085 [<samp>(37918)</samp>](https://github.com/vitest-dev/vitest/commit/379185b40) - **web-worker**: - `postMessage` to send ports to workers &nbsp;-&nbsp; by @whitphx and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/9078 [<samp>(9d176)</samp>](https://github.com/vitest-dev/vitest/commit/9d1763d11) ### &nbsp;&nbsp;&nbsp;๐ŸŽ Performance - Replace `debug` with `obug` &nbsp;-&nbsp; by @sxzz and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/9057 [<samp>(acc51)</samp>](https://github.com/vitest-dev/vitest/commit/acc5152b9) ##### &nbsp;&nbsp;&nbsp;&nbsp;[View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.13...v4.0.14)