# Vitest changelog
> A Vite-native testing framework.
- Vendor: VoidZero
- Category: Developer Tools
- Official site: https://vitest.dev
- Tracked by: What's New (https://whatsnew.fyi/product/vitest)
- Harvested from: GitHub (vitest-dev/vitest)
- Entries below: 10 (newest first)
What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog.
## Releases
### v5.0.0-beta.7
- Date: 2026-07-24
- Version: v5.0.0-beta.7
- Original notes: https://github.com/vitest-dev/vitest/releases/tag/v5.0.0-beta.7
- Permalink: https://whatsnew.fyi/product/vitest/releases/v5.0.0-beta.7
- Labels: Pre-release
- **changed** — Separate config resolution from the server creation
- **added** — Add toggable injectCjsGlobals option
- **added** — Promote fsModuleCache to a top-level option
- **added** — Support non-ascii characters in for/each title placeholders
- **added** — Add pluggable benchmark provider API
- **fixed** — Disable server HMR before plugins read it in their config hook
- **fixed** — Close the pool before the Vite servers
- **fixed** — Remove listeners in the typecheck worker's off
- **fixed** — Keep per-file isolation in vm pools when maxWorkers is 1
- **fixed** — Prevent node builtins double prefix
- **fixed** — Set non-zero exit code when teardown throws during close
- **fixed** — Don't race the typechecker spawn grace period on windows
- **fixed** — Preserve pre-transform request defaults in browser
- **fixed** — Fix error stacktrace location off-by-one in browser
- **fixed** — Inlined awaited import should not trigger syntax error after transform in browser
- **fixed** — Mock window.print to avoid hanging in browser
- **fixed** — Vm pools to respect cgroupsv2 memory limit in pool
- **changed** — Serve warm modules to workers in one round-trip and enable the node compile cache
- **changed** — Make the Node compile cache opt-in and persist worker caches on teardown
- **changed** — Reuse compiled code across vm pool contexts and prewarm the module graph
###### 🚨 Breaking Changes
- Separate config resolution from the server creation - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/10554 [(1c0ec)](https://github.com/vitest-dev/vitest/commit/1c0ec3444)
###### 🚀 Features
- Add toggable `injectCjsGlobals` option - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/10709 [(82671)](https://github.com/vitest-dev/vitest/commit/826714ece)
- Promote fsModuleCache to a top-level option - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/10734 [(78ed7)](https://github.com/vitest-dev/vitest/commit/78ed73afd)
- Support non-ascii characters in `for/each` title placeholders - by @k-yle in https://github.com/vitest-dev/vitest/issues/10773 [(15e0a)](https://github.com/vitest-dev/vitest/commit/15e0af953)
- **benchmark**: Add pluggable benchmark provider API - by @GuillaumeLagrange and @sheremet-va in https://github.com/vitest-dev/vitest/issues/10799 [(86c70)](https://github.com/vitest-dev/vitest/commit/86c700ed8)
###### 🐞 Bug Fixes
- Disable server HMR before plugins read it in their config hook - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/10731 [(e060b)](https://github.com/vitest-dev/vitest/commit/e060b8fa9)
- Close the pool before the Vite servers - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/10725 [(96fa6)](https://github.com/vitest-dev/vitest/commit/96fa6d73d)
- Remove listeners in the typecheck worker's `off` - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/10741 [(d758b)](https://github.com/vitest-dev/vitest/commit/d758b4755)
- Keep per-file isolation in vm pools when maxWorkers is 1 - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/10743 [(83ab9)](https://github.com/vitest-dev/vitest/commit/83ab9a44f)
- Node.js 20 deprecation warning for `ci.yml` - by @hirehamir in https://github.com/vitest-dev/vitest/issues/10759 [(2127f)](https://github.com/vitest-dev/vitest/commit/2127fa6ce)
- Prevent node builtins double prefix - by @malobre in https://github.com/vitest-dev/vitest/issues/10630 and https://github.com/vitest-dev/vitest/issues/10767 [(22d35)](https://github.com/vitest-dev/vitest/commit/22d353a80)
- Set non-zero exit code when teardown throws during close - by @zakcutner and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/10794 [(22116)](https://github.com/vitest-dev/vitest/commit/22116feb7)
- Don't race the typechecker spawn grace period on windows - by @xevrion in https://github.com/vitest-dev/vitest/issues/10814 [(b19e5)](https://github.com/vitest-dev/vitest/commit/b19e5ece9)
- **browser**:
- Preserve pre-transform request defaults - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/10748 [(b6060)](https://github.com/vitest-dev/vitest/commit/b60605ca7)
- Fix error stacktrace location off-by-one - by @hi-ogawa, **Hiroshi Ogawa** and **OpenCode** in https://github.com/vitest-dev/vitest/issues/10724 [(62b8d)](https://github.com/vitest-dev/vitest/commit/62b8d3b36)
- Inlined awaited import should not trigger syntax error after transform - by @smeng9, **Shaoyu Meng** and **Claude Opus 4.8 (1M context)** in https://github.com/vitest-dev/vitest/issues/10784 [(51acd)](https://github.com/vitest-dev/vitest/commit/51acd5778)
- Mock window.print to avoid hanging - by @aaravjaichand in https://github.com/vitest-dev/vitest/issues/7375 and https://github.com/vitest-dev/vitest/issues/10798 [(66d95)](https://github.com/vitest-dev/vitest/commit/66d95af84)
- **pool**:
- Vm pools to res
_[Truncated at 4000 characters — full notes: https://github.com/vitest-dev/vitest/releases/tag/v5.0.0-beta.7]_
### v5.0.0-beta.6
- Date: 2026-07-06
- Version: v5.0.0-beta.6
- Original notes: https://github.com/vitest-dev/vitest/releases/tag/v5.0.0-beta.6
- Permalink: https://whatsnew.fyi/product/vitest/releases/v5.0.0-beta.6
- Labels: Pre-release
- **added** — Create vi.when() for conditional mocking
- **removed** — Remove webdriverio package
- **removed** — Clear mocks by default before each test
- **changed** — Add screenshotDirectory config to browser.expect.toMatchScreenshot
- **changed** — Update @sinonjs/fake-timers and support mocking Temporal
- **changed** — Write json and junit reporter output files to .vitest by default
- **changed** — Change html reporter default output to .vitest
- **changed** — Harden UI API access
- **fixed** — Fix setImmediate await in detect-async-leak
- **fixed** — Fix per-project sequence config
- **fixed** — Add handshake timeout to iframe communication
- **fixed** — Don't print column in test names when includeTaskLocation is enabled
- **fixed** — Always derive a positive locator action timeout in browser
- **fixed** — Resize the browser ui only if it's not headless
- **fixed** — Check fs access in builtin commands
- **fixed** — Fix non-awaited module imports causing wrong offsets in coverage
- **fixed** — Fail fast when coverage.reportsDirectory conflicts between concurrent runs
- **fixed** — Improve error message when worker exits unexpectedly
- **fixed** — Allow changed in configuration options
- **fixed** — Fix external module resolve error with deps optimizer query for encoded URI
###### 🚨 Breaking Changes
- Add `screenshotDirectory` config to `browser.expect.toMatchScreenshot` - by @macarie in https://github.com/vitest-dev/vitest/issues/10592 [(a60de)](https://github.com/vitest-dev/vitest/commit/a60ded0fb)
- Update `@sinonjs/fake-timers` and support mocking `Temporal` - by @hi-ogawa, **Hiroshi Ogawa** and **OpenCode (claude-opus-4-8)** in https://github.com/vitest-dev/vitest/issues/10654 [(f8b15)](https://github.com/vitest-dev/vitest/commit/f8b1532fe)
- Remove webdriverio package - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/10675 [(5fed6)](https://github.com/vitest-dev/vitest/commit/5fed68f72)
- Clear mocks by default before each test - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/10613 [(0f646)](https://github.com/vitest-dev/vitest/commit/0f6463bf2)
- Don't emit localStorage warnings on Node 26, fail gracefully when worker fails to start - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/10293 [(334ed)](https://github.com/vitest-dev/vitest/commit/334edef92)
- **reporters**:
- Write json and junit reporter output files to `.vitest` by default - by @hi-ogawa, **Hiroshi Ogawa**, **OpenCode (claude-opus-4-8)** and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/10621 [(58577)](https://github.com/vitest-dev/vitest/commit/58577290a)
- **ui**:
- Harden UI API access - by @hi-ogawa, **Hiroshi Ogawa** and **Codex** in https://github.com/vitest-dev/vitest/issues/10583 [(4c26d)](https://github.com/vitest-dev/vitest/commit/4c26d7675)
- Change html reporter default output to `.vitest` - by @hi-ogawa and **Hiroshi Ogawa** in https://github.com/vitest-dev/vitest/issues/10620 [(29c36)](https://github.com/vitest-dev/vitest/commit/29c364d50)
###### 🚀 Features
- **vitest**: Create `vi.when()` - by @macarie in https://github.com/vitest-dev/vitest/issues/10174 [(3900e)](https://github.com/vitest-dev/vitest/commit/3900e6349)
###### 🐞 Bug Fixes
- Fix `setImmediate` await in detect-async-leak - by @hi-ogawa and **Hiroshi Ogawa** in https://github.com/vitest-dev/vitest/issues/10608 [(dd62b)](https://github.com/vitest-dev/vitest/commit/dd62b84e0)
- Fix per-project `sequence` config - by @hi-ogawa, **Hiroshi Ogawa** and **OpenCode (claude-opus-4-8)** in https://github.com/vitest-dev/vitest/issues/10659 [(40cdc)](https://github.com/vitest-dev/vitest/commit/40cdc7fd6)
- Add handshake timeout to iframe communication - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/10656 [(3545f)](https://github.com/vitest-dev/vitest/commit/3545fe78f)
- Don't print column in test names when `includeTaskLocation` is enabled - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/10681 [(bd9cc)](https://github.com/vitest-dev/vitest/commit/bd9cc9d8d)
- **browser**:
- Always derive a positive locator action timeout - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/10626 [(5b864)](https://github.com/vitest-dev/vitest/commit/5b8642120)
- Resize the browser ui only if it's not headless - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/10662 [(b5c61)](https://github.com/vitest-dev/vitest/commit/b5c613051)
- Check fs access in builtin commands - by @hi-ogawa, **Hiroshi Ogawa** and **OpenCode (claude-opus-4-8)** in https://github.com/vitest-dev/vitest/issues/10674 [(33f96)](https://github.com/vitest-dev/vitest/commit/33f96a145)
- **coverage**:
- Non-awaited module imports cause wrong offsets - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/10643 [(5c18d)](https://github.com/vitest-dev/vitest/commit/5c18dd267)
- **vm**: Fix external module resolve error with deps optimizer query for encoded URI [backport to v4] - by @SveLil and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/10661 [(bae52)](https://github.com/vitest-dev/vitest/commit/bae52b511)
###### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.1.9...v4.1.10)
### v3.2.7
- Date: 2026-07-06
- Version: v3.2.7
- Original notes: https://github.com/vitest-dev/vitest/releases/tag/v3.2.7
- Permalink: https://whatsnew.fyi/product/vitest/releases/v3.2.7
- **fixed** — Check fs access in builtin commands for browser
###### 🐞 Bug Fixes
- **browser**: Check fs access in builtin commands [backport to v3] - by @hi-ogawa, **Hiroshi Ogawa** and **OpenCode (claude-opus-4-8)** in https://github.com/vitest-dev/vitest/issues/10679 [(b795e)](https://github.com/vitest-dev/vitest/commit/b795e36b3)
###### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.2.6...v3.2.7)
### v4.1.9
- Date: 2026-06-16
- Version: v4.1.9
- Original notes: https://github.com/vitest-dev/vitest/releases/tag/v4.1.9
- Permalink: https://whatsnew.fyi/product/vitest/releases/v4.1.9
- **fixed** — Fix importOriginal with optimizer and query import
- **fixed** — Wait for orchestrator readiness before resolving browser sessions
- **fixed** — Wait for iframe tester readiness before preparing
- **fixed** — Hoist vi.mock() for vite-plus/test imports
- **fixed** — Prevent test run hang on worker crash
###### 🐞 Bug Fixes
- Fix `importOriginal` with optimizer and query import [backport to v4] - by **Hiroshi Ogawa**, **David Harris**, **Codex**and **Vladimir** in https://github.com/vitest-dev/vitest/issues/10546 [(a5180)](https://github.com/vitest-dev/vitest/commit/a5180190c)
- **browser**:
- Wait for orchestrator readiness before resolving browser sessions [backport to v4] - by **Vladimir** and **Séamus O'Connor** in https://github.com/vitest-dev/vitest/issues/10555 [(7fb29)](https://github.com/vitest-dev/vitest/commit/7fb29651a)
- Wait for iframe tester readiness before preparing [backport to v4] - by **Vladimir** and **Séamus O'Connor** in https://github.com/vitest-dev/vitest/issues/10497 and https://github.com/vitest-dev/vitest/issues/10556 [(fbc62)](https://github.com/vitest-dev/vitest/commit/fbc626c40)
- **mocker**:
- Hoist vi.mock() for vite-plus/test imports [backport to v4] - by **Hiroshi Ogawa**, **LongYinan**, **Claude Opus 4.8** and **Vladimir** in https://github.com/vitest-dev/vitest/issues/10548 [(2c955)](https://github.com/vitest-dev/vitest/commit/2c9559c02)
- **pool**:
- Prevent test run hang on worker crash [backport to v4] - by **Ari Perkkiö** and **Jattioui Ismail** in https://github.com/vitest-dev/vitest/issues/10543 and https://github.com/vitest-dev/vitest/issues/10564 [(934b0)](https://github.com/vitest-dev/vitest/commit/934b0f587)
###### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.1.8...v4.1.9)
### v5.0.0-beta.5
- Date: 2026-06-15
- Version: v5.0.0-beta.5
- Original notes: https://github.com/vitest-dev/vitest/releases/tag/v5.0.0-beta.5
- Permalink: https://whatsnew.fyi/product/vitest/releases/v5.0.0-beta.5
- Labels: Pre-release
- **removed** — Don't lookup config file from ancestor directories
- **removed** — Inline @vitest/runner package, do not publish it anymore
- **changed** — Allow mutating happy-dom/jsdom window object
- **changed** — Expose concurrencyId/workerId on TestModule's diagnostics, make id 1-based
- **changed** — Require sessionId for orchestrator html request in browser mode
- **changed** — Allow thresholds.perFile to accept an object in coverage
- **added** — Display nested mark trace in UI in browser mode
- **added** — Add --repeats CLI option
- **added** — Allow thresholds.autoUpdate to receive previous threshold as argument in coverage
- **fixed** — Fix mixed stdout/stderr log timestamps in onUserConsoleLog
- **fixed** — Fix importOriginal with optimizer and query import
- **fixed** — Correct transform time calculation in merged report
- **fixed** — Wait for orchestrator readiness before resolving browser sessions
- **fixed** — Wait for iframe tester readiness before preparing
- **fixed** — Encode iframeId in tester iframe URL
- **fixed** — Avoid matching sibling project roots in coverage
- **fixed** — Hoist vi.mock() for vite-plus/test imports
- **fixed** — Prevent test run hang on worker crash
- **fixed** — Strip non-serializable functions from inline diff config
###### 🚨 Breaking Changes
- Don't lookup config file from ancestor directories - by @hi-ogawa, **Codex** and **Hiroshi Ogawa** in https://github.com/vitest-dev/vitest/issues/10428 [(945d9)](https://github.com/vitest-dev/vitest/commit/945d9090e)
- Inline `@vitest/runner` package, do not publish it anymore - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/10511 [(6d6e4)](https://github.com/vitest-dev/vitest/commit/6d6e46b1e)
- Allow mutating happy-dom/jsdom window object - by @hi-ogawa, **Hiroshi Ogawa** and **Codex** in https://github.com/vitest-dev/vitest/issues/10373 [(206e8)](https://github.com/vitest-dev/vitest/commit/206e8cff8)
- Expose `concurrencyId`/`workerId` on TestModule's diagnostics, make id 1-based - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/10516 [(bdd98)](https://github.com/vitest-dev/vitest/commit/bdd985433)
- **browser**: Require `sessionId` for orchestrator html request - by @hi-ogawa, **Hiroshi Ogawa** and **Codex** in https://github.com/vitest-dev/vitest/issues/10522 [(79b7d)](https://github.com/vitest-dev/vitest/commit/79b7d8fcc)
- **coverage**: Allow `thresholds.perFile` to accept an object - by @vladlenskiy and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/10190 [(13b78)](https://github.com/vitest-dev/vitest/commit/13b78d98b)
###### 🚀 Features
- **browser**: Display nested mark trace in UI - by @hi-ogawa, **Hiroshi Ogawa** and **Codex** in https://github.com/vitest-dev/vitest/issues/10437 [(86ffc)](https://github.com/vitest-dev/vitest/commit/86ffc8ac6)
- **cli**: Add `--repeats` CLI option - by @todor-a in https://github.com/vitest-dev/vitest/issues/10504 [(ee48b)](https://github.com/vitest-dev/vitest/commit/ee48b959e)
- **coverage**: `thresholds.autoUpdate` to receive previous threshold as argument - by @wouterkroes in https://github.com/vitest-dev/vitest/issues/10495 [(04f81)](https://github.com/vitest-dev/vitest/commit/04f81854f)
###### 🐞 Bug Fixes
- Fix mixed stdout/stderr log timestamps in `onUserConsoleLog` - by @Copilot, **Hiroshi Ogawa**, @hi-ogawa and @sheremet-va in https://github.com/vitest-dev/vitest/issues/10308 [(62756)](https://github.com/vitest-dev/vitest/commit/627565475)
- Fix `importOriginal` with optimizer and query import - by @davidhwilliams, **David Harris**, @hi-ogawa, **Hiroshi Ogawa** and **Codex** in https://github.com/vitest-dev/vitest/issues/10469 [(6a3bb)](https://github.com/vitest-dev/vitest/commit/6a3bb02e0)
- Correct transform time calculation in merged report - by @potatomatoooo and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/10570 and https://github.com/vitest-dev/vitest/issues/10578 [(b7897)](https://github.com/vitest-dev/vitest/commit/b78972892)
- **browser**:
- Wait for orchestrator readiness before resolving browser sessions - by @soconnor-seeq in https://github.com/vitest-dev/vitest/issues/10397 [(fe5ed)](https://github.com/vitest-dev/vitest/commit/fe5ed6bc7)
- Wait for iframe tester readiness before preparing - by @soconnor-seeq in https://github.com/vitest-dev/vitest/issues/10497 [(f2655)](https://github.com/vitest-dev/vitest/commit/f26552c63)
- Encode iframeId in tester iframe URL - by @Pduhard, **Pduhard** and **Claude Opus 4.8 (1M context)** in https://github.com/vitest-dev/vitest/issues/10520 and https://github.com/vitest-dev/vitest/issues/10521 [(c8bf1)](https://github.com/vitest-dev/vitest/commit/c8bf19f66)
- **coverage**:
- Avoid matching sibling project roots - by @innoprej, **Shin JaeHee** and @AriPerkkio in https://github.com/vitest-dev/vitest/
_[Truncated at 4000 characters — full notes: https://github.com/vitest-dev/vitest/releases/tag/v5.0.0-beta.5]_
### v3.2.6
- Date: 2026-06-01
- Version: v3.2.6
- Original notes: https://github.com/vitest-dev/vitest/releases/tag/v3.2.6
- Permalink: https://whatsnew.fyi/product/vitest/releases/v3.2.6
- **fixed** — Pin last supported vite-node version
###### 🐞 Bug Fixes
- Pin last supported vite-node version - by @sheremet-va [(16f12)](https://github.com/vitest-dev/vitest/commit/16f120d05)
###### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.2.5...v3.2.6)
### v5.0.0-beta.4
- Date: 2026-06-01
- Version: v5.0.0-beta.4
- Original notes: https://github.com/vitest-dev/vitest/releases/tag/v5.0.0-beta.4
- Permalink: https://whatsnew.fyi/product/vitest/releases/v5.0.0-beta.4
- Labels: Pre-release
- **removed** — Throw an error if hoistable methods are outside the top level scope
- **changed** — toHaveTextContent is strict, add toMatchTextContent as alternative
- **changed** — Rewrite the benchmark public API
- **changed** — Enable locators.exact by default in browser mode
- **added** — Show trace view steps in editor panel in browser mode
- **added** — Support html reporter single file output
- **fixed** — Preserve vi.defineHelper callsite for async error stack
- **fixed** — Respect disableConsoleIntercept in browser mode
- **fixed** — ForceRerunTriggers uses directory globs against files
- **fixed** — Unify typechecking and ast collection
- **fixed** — Don't print typecheck warning more than once
- **fixed** — Correct column when parsing tests
- **fixed** — Fix stale source map on watch mode in browser
- **fixed** — Escape inline orchestrator scripts in browser
- **fixed** — Disable client CDP API when allowWrite/allowExec: false in browser
- **fixed** — Skip hoist transform without ast mock calls in mocker
- **fixed** — Fix module graph in browser mode with --ui
- **fixed** — Render ANSI color codes in editor panel inline error widget in UI
- **fixed** — Allow gpu in headless chrome in webdriverio
- **changed** — Improve performance in hot paths
###### 🚨 Breaking Changes
- Throw an error if hoistable methods are outside the top level scope - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/10460 [(d0b4f)](https://github.com/vitest-dev/vitest/commit/d0b4fddcb)
- `toHaveTextContent` is strict, add `toMatchTextContent` as alternative - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/10473 [(18f30)](https://github.com/vitest-dev/vitest/commit/18f303079)
- **benchmark**: Rewrite the public API - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/10113 [(19f6e)](https://github.com/vitest-dev/vitest/commit/19f6e8947)
- **browser**: Enable `locators.exact` by default - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/10430 [(e2032)](https://github.com/vitest-dev/vitest/commit/e203202f9)
###### 🚀 Features
- **browser**: Show trace view steps in editor panel - by @hi-ogawa and **Codex** in https://github.com/vitest-dev/vitest/issues/10404 [(8c4b6)](https://github.com/vitest-dev/vitest/commit/8c4b6da02)
- **reporter**: Support html reporter single file output - by @hi-ogawa, **Codex** and **Claude Opus 4.7 (1M context)** in https://github.com/vitest-dev/vitest/issues/10235 [(f757e)](https://github.com/vitest-dev/vitest/commit/f757ec5e6)
###### 🐞 Bug Fixes
- Preserve `vi.defineHelper` callsite for async error stack - by @macayu17 and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/10415 [(ac697)](https://github.com/vitest-dev/vitest/commit/ac6971ca2)
- Respect `disableConsoleIntercept` in browser mode - by @Copilot, **hi-ogawa**, @hi-ogawa and **Codex** in https://github.com/vitest-dev/vitest/issues/10391 [(66110)](https://github.com/vitest-dev/vitest/commit/66110d271)
- ForceRerunTriggers uses directory globs against files - by @Patrick-Clausen and **Patrick Clausen** in https://github.com/vitest-dev/vitest/issues/10421 and https://github.com/vitest-dev/vitest/issues/10420 [(4fee2)](https://github.com/vitest-dev/vitest/commit/4fee2e303)
- Unify typechecking and ast collection - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/10449 [(af993)](https://github.com/vitest-dev/vitest/commit/af993b66b)
- Don't print typecheck warning more than once - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/10461 [(15275)](https://github.com/vitest-dev/vitest/commit/152750ec0)
- Correct collumn when parsing tests - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/10467 [(7c2fc)](https://github.com/vitest-dev/vitest/commit/7c2fc133e)
- **browser**:
- Fix stale source map on watch mode - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/10389 [(6d772)](https://github.com/vitest-dev/vitest/commit/6d772c800)
- Escape inline orchestrator scripts - by @hi-ogawa and **Codex** in https://github.com/vitest-dev/vitest/issues/10412 [(c22cf)](https://github.com/vitest-dev/vitest/commit/c22cfb656)
- Disable client `cdp` API when `allowWrite/allowExec: false` - by @hi-ogawa and **Codex** in https://github.com/vitest-dev/vitest/issues/10444 [(63e3b)](https://github.com/vitest-dev/vitest/commit/63e3b2eee)
- **mocker**:
- Skip hoist transform without ast mock calls - by @hi-ogawa and **Codex** in https://github.com/vitest-dev/vitest/issues/10410 [(0468e)](https://github.com/vitest-dev/vitest/commit/0468e1572)
- **ui**:
- Fix module graph in browser mode with --ui - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/10386 [(3003c)](https://github.com/vitest-dev/vitest/commit/3003c4327)
- Render ANSI
_[Truncated at 4000 characters — full notes: https://github.com/vitest-dev/vitest/releases/tag/v5.0.0-beta.4]_
### v3.2.5
- Date: 2026-06-01
- Version: v3.2.5
- Original notes: https://github.com/vitest-dev/vitest/releases/tag/v3.2.5
- Permalink: https://whatsnew.fyi/product/vitest/releases/v3.2.5
- **added** — Add `allowWrite` and `allowExec` options to api
- **fixed** — Disable client `cdp` API when `allowWrite/allowExec: false`
###### 🚀 Features
- **api**: Add `allowWrite` and `allowExec` options to `api` [backport to v3] - by @hi-ogawa and **Codex** in https://github.com/vitest-dev/vitest/issues/10445 [(af88b)](https://github.com/vitest-dev/vitest/commit/af88b1f5d)
###### 🐞 Bug Fixes
- **browser**: Disable client `cdp` API when `allowWrite/allowExec: false` [backport to v3] - by @hi-ogawa and **Codex** in https://github.com/vitest-dev/vitest/issues/10456 [(385a1)](https://github.com/vitest-dev/vitest/commit/385a1aefd)
###### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.2.4...v3.2.5)
### v4.1.8
- Date: 2026-06-01
- Version: v4.1.8
- Original notes: https://github.com/vitest-dev/vitest/releases/tag/v4.1.8
- Permalink: https://whatsnew.fyi/product/vitest/releases/v4.1.8
- **fixed** — Disable client cdp API when allowWrite/allowExec: false in browser
- **fixed** — Remove orphaned Playwright route when same module is mocked via multiple ids
###### 🐞 Bug Fixes
- **browser**:
- Disable client `cdp` API when `allowWrite/allowExec: false` [backport to v4] - by @hi-ogawa and **Codex** in https://github.com/vitest-dev/vitest/issues/10450 [(e4067)](https://github.com/vitest-dev/vitest/commit/e4067b3b1)
- Remove orphaned Playwright route when same module is mocked via multiple ids [backport to v4] - by @toxik and @Zelys-DFKH in https://github.com/vitest-dev/vitest/issues/10474 [(675b4)](https://github.com/vitest-dev/vitest/commit/675b4343f)
###### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.1.7...v4.1.8)