chore(deps): update vitest monorepo to v4 #12

Open
sa-renovate wants to merge 1 commit from renovate/major-vitest-monorepo into main
Member

This PR contains the following updates:

Package Change Age Confidence
@vitest/coverage-v8 (source) ^1.6.1^4.0.0 age confidence
vitest (source) ^1.6.0^4.0.0 age confidence

Release Notes

vitest-dev/vitest (@​vitest/coverage-v8)

v4.1.10

Compare Source

   🐞 Bug Fixes
    View changes on GitHub

v4.1.9

Compare Source

🐞 Bug Fixes
  • Fix importOriginal with optimizer and query import [backport to v4] - by Hiroshi Ogawa, David Harris, Codexand Vladimir in #​10546 (a5180)
  • browser:
    • Wait for orchestrator readiness before resolving browser sessions [backport to v4] - by Vladimir and Séamus O'Connor in #​10555 (7fb29)
    • Wait for iframe tester readiness before preparing [backport to v4] - by Vladimir and Séamus O'Connor in #​10497 and #​10556 (fbc62)
  • mocker:
    • Hoist vi.mock() for vite-plus/test imports [backport to v4] - by Hiroshi Ogawa, LongYinan, Claude Opus 4.8 and Vladimir in #​10548 (2c955)
  • pool:
    • Prevent test run hang on worker crash [backport to v4] - by Ari Perkkiö and Jattioui Ismail in #​10543 and #​10564 (934b0)
View changes on GitHub

v4.1.8

Compare Source

   🐞 Bug Fixes
    View changes on GitHub

v4.1.7

Compare Source

   🐞 Bug Fixes
    View changes on GitHub

v4.1.6

Compare Source

   🐞 Bug Fixes
   🏎 Performance
    View changes on GitHub

v4.1.5

Compare Source

   🚀 Experimental Features
   🐞 Bug Fixes
    View changes on GitHub

v4.1.4

Compare Source

   🚀 Experimental Features
   🐞 Bug Fixes
    View changes on GitHub

v4.1.3

Compare Source

   🚀 Experimental Features
   🐞 Bug Fixes
    View changes on GitHub

v4.1.2

Compare Source

This release bumps Vitest's flatted version and removes version pinning to resolve flatted's CVE related issues (#​9975).

   🐞 Bug Fixes
    View changes on GitHub

v4.1.1

Compare Source

   🚀 Features
   🐞 Bug Fixes
    View changes on GitHub

v4.1.0

Compare Source

Vitest 4.1 is out!

This release page lists all changes made to the project during the 4.1 beta. To get a review of all the new features, read our blog post.

   🚀 Features
   🐞 Bug Fixes
   🏎 Performance
    View changes on GitHub

v4.0.18

Compare Source

   🚀 Experimental Features
   🐞 Bug Fixes
    View changes on GitHub

v4.0.17

Compare Source

   🚀 Experimental Features
   🐞 Bug Fixes
    View changes on GitHub

v4.0.16

Compare Source

   🐞 Bug Fixes
    View changes on GitHub

v4.0.15

Compare Source

   🚀 Experimental Features
   🐞 Bug Fixes
    View changes on GitHub

v4.0.14

Compare Source

   🚀 Experimental Features
   🐞 Bug Fixes
   🏎 Performance
    View changes on GitHub

v4.0.13

Compare Source

   🐞 Bug Fixes
   🏎 Performance
    View changes on GitHub

v4.0.12

Compare Source

   🐞 Bug Fixes
    View changes on GitHub

v4.0.11

Compare Source

   🚀 Experimental Features
   🏎 Performance
    View changes on GitHub

v4.0.10

Compare Source

   🐞 Bug Fixes
    View changes on GitHub

v4.0.9

Compare Source

   🚀 Experimental Features
   🐞 Bug Fixes
    View changes on GitHub

v4.0.8

Compare Source

   🐞 Bug Fixes
    View changes on GitHub

v4.0.7

Compare Source

   🐞 Bug Fixes
   🏎 Performance
    View changes on GitHub

v4.0.6

Compare Source

   🐞 Bug Fixes
    View changes on GitHub

v4.0.5

Compare Source

   🐞 Bug Fixes
   🏎 Performance
    View changes on GitHub

v4.0.4

Compare Source

   🐞 Bug Fixes
   🏎 Performance
    View changes on GitHub

v4.0.3

Compare Source

   🐞 Bug Fixes
    View changes on GitHub

v4.0.2

Compare Source

   🐞 Bug Fixes
    View changes on GitHub

v4.0.1

Compare Source

   🐞 Bug Fixes
    View changes on GitHub

v4.0.0

Compare Source

Vitest 4.0 is out!

To stay updated, read our blog post and check the migration guide.

   🚨 Breaking Changes
   🚀 Features
   🐞 Bug Fixes
   🏎 Performance
    View changes on GitHub

v3.2.7

Compare Source

   🐞 Bug Fixes
  • browser: Check fs access in builtin commands [backport to v3]  -  by @​hi-ogawa, Hiroshi Ogawa and OpenCode (claude-opus-4-8) in #​10679 (b795e)
    View changes on GitHub

v3.2.6

Compare Source

   🐞 Bug Fixes
    View changes on GitHub

v3.2.5

Compare Source

   🚀 Features
   🐞 Bug Fixes
    View changes on GitHub

v3.2.4

Compare Source

   🐞 Bug Fixes
    View changes on GitHub

v3.2.3

Compare Source

   🚀 Features
   🐞 Bug Fixes
    View changes on GitHub

v3.2.2

Compare Source

   🚀 Features
   🐞 Bug Fixes
    View changes on GitHub

v3.2.1

Compare Source

   🐞 Bug Fixes
    View changes on GitHub

v3.2.0

Compare Source

   🚀 Features
   🐞 Bug Fixes
    View changes on GitHub

v3.1.4

Compare Source

   🐞 Bug Fixes
    View changes on GitHub

v3.1.3

Compare Source

   🐞 Bug Fixes
    View changes on GitHub

v3.1.2

Compare Source

   🐞 Bug Fixes
   🏎 Performance
    View changes on GitHub

v3.1.1

Compare Source

   🐞 Bug Fixes
    View changes on GitHub

v3.1.0

Compare Source

🚀 Features
🐞 Bug Fixes
🏎 Performance
View changes on GitHub

v3.0.9

Compare Source

   🐞 Bug Fixes
    View changes on GitHub

v3.0.8

Compare Source

   🐞 Bug Fixes
    View changes on GitHub

v3.0.7

Compare Source

   🐞 Bug Fixes
   🏎 Performance
    View changes on GitHub

v3.0.6

Compare Source

   🐞 Bug Fixes
    View changes on GitHub

v3.0.5

Compare Source

This release includes security patches for:

🚀 Features
🐞 Bug Fixes
View changes on GitHub

v3.0.4

Compare Source

This release includes security patches for:

   🐞 Bug Fixes
    View changes on GitHub

v3.0.3

Compare Source

   🐞 Bug Fixes
   🏎 Performance
    View changes on GitHub

v3.0.2

Compare Source

   🐞 Bug Fixes
    View changes on GitHub

v3.0.1

Compare Source

   🐞 Bug Fixes
    View changes on GitHub

v3.0.0

Compare Source

Vitest 3 is here! There are a few breaking changes, but we expect the migration to be smooth. This release page lists all changes made to the project during the beta. For the migration guide, please refer to the documentation.

   🚨 Breaking Changes
   🚀 Features
   🐞 Bug Fixes
    View changes on GitHub

v2.1.9

Compare Source

This release includes security patches for:

   🐞 Bug Fixes
    View changes on GitHub

v2.1.8

Compare Source

   🐞 Bug Fixes
    View changes on GitHub

v2.1.7

Compare Source

   🐞 Bug Fixes
  • Revert support for Vite 6  -  by @​sheremet-va (fbe5c)
    • This introduced some breaking changes (#​6992). We will enable support for it later. In the meantime, you can still use pnpm.overrides or yarn resolutions to override the vite version in the vitest package - the APIs are compatible.
    View changes on GitHub

v2.1.6

Compare Source

🚀 Features
  • Support Vite 6
    View changes on GitHub

v2.1.5

Compare Source

   🐞 Bug Fixes
   🏎 Performance
    View changes on GitHub

v2.1.4

Compare Source

   🚀 Features

This patch release includes a non-breaking feature for the experimental Browser Mode that doesn't follow SemVer. If you want to avoid picking up releases like this, make sure to pin the Vitest version in your package.json. See npm's documentation about semver for more information.

   🐞 Bug Fixes
   🏎 Performance
    View changes on GitHub

v2.1.3

Compare Source

   🐞 Bug Fixes
   🏎 Performance
    View changes on GitHub

v2.1.2

Compare Source

   🐞 Bug Fixes
    View changes on GitHub

v2.1.1

Compare Source

   🐞 Bug Fixes
    View changes on GitHub

v2.1.0

Compare Source

This release makes another big change to the Browser Mode by introducing locators API:

test('renders blog posts', async () => {
  const screen = page.render(<Blog />)

  await expect.element(screen.getByRole('heading', { name: 'Blog' })).toBeInTheDocument()

  const [firstPost] = screen.getByRole('listitem').all()

  await firstPost.getByRole('button', { name: 'Delete' }).click()

  expect(screen.getByRole('listitem').all()).toHaveLength(3)
})

You can use either vitest-browser-vue, vitest-browser-svelte or vitest-browser-react to render components and make assertions using locators. Locators are also available on the page object from @vitest/browser/context.

Potential Breaking Change
  • workspace:
    • Correctly resolve workspace globs and file paths  -  by @​sheremet-va in #​6316 (afdcb)
    • This changes how the custom glob pattern in the workspace config is treated. Any file matching the glob is considered a Vitest config file. Any folder matching the glob pattern is treated as a workspace project and is subject to the regular config resolution (single vitest.config.ts or vite.config.ts inside the folder)
    • For example, projects/* will match anything inside the projects folder. If it's a folder, we try to find the config inside that folder (if there is none, it is still treated as a project with the default config). If it's a file, it will be treated as a Vitest config. projects/**/* previously would assume that you only wanted to have folders as projects, but now it will match every single file insideprojects.
    • This change doesn't affect non-glob usage.
   🚀 Features
   🐞 Bug Fixes
    View changes on GitHub

v2.0.5

Compare Source

   🚀 Features
  • Introduce experimental reported tasks  -  by @​sheremet-va in #​6149 (13d85)
    • This is part of the experimental API and doesn't follow semver. We are hoping to stabilize it for 2.1. If you are working with custom reporters, give this a go!
   🐞 Bug Fixes
    View changes on GitHub

v2.0.4

Compare Source

   🐞 Bug Fixes
    View changes on GitHub

v2.0.3

Compare Source

   🚀 Features
   🐞 Bug Fixes
    View changes on GitHub

v2.0.2

Compare Source

   🐞 Bug Fixes
   🏎 Performance
    View changes on GitHub

v2.0.1

Compare Source

   🐞 Bug Fixes
    View changes on GitHub

v2.0.0

Compare Source

Vitest 2.0 is here! This release page lists all changes made to the project during the beta. For the migration guide, please refer to the documentation.

🚨 Breaking Changes
🚀 Features
Running tresjs example in Vitest BrowserMode
🐞 Bug Fixes
View changes on GitHub

Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about these updates again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate.

This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [@vitest/coverage-v8](https://vitest.dev/guide/coverage) ([source](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8)) | [`^1.6.1` → `^4.0.0`](https://renovatebot.com/diffs/npm/@vitest%2fcoverage-v8/1.6.1/4.1.10) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@vitest%2fcoverage-v8/4.1.10?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vitest%2fcoverage-v8/1.6.1/4.1.10?slim=true) | | [vitest](https://vitest.dev) ([source](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest)) | [`^1.6.0` → `^4.0.0`](https://renovatebot.com/diffs/npm/vitest/1.6.1/4.1.10) | ![age](https://developer.mend.io/api/mc/badges/age/npm/vitest/4.1.10?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vitest/1.6.1/4.1.10?slim=true) | --- ### Release Notes <details> <summary>vitest-dev/vitest (@&#8203;vitest/coverage-v8)</summary> ### [`v4.1.10`](https://github.com/vitest-dev/vitest/releases/tag/v4.1.10) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.1.9...v4.1.10) #####    🐞 Bug Fixes - **browser**: Check fs access in builtin commands \[backport to v4]  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (claude-opus-4-8)** in [#&#8203;10680](https://github.com/vitest-dev/vitest/issues/10680) [<samp>(5c18d)</samp>](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 [@&#8203;SveLil](https://github.com/SveLil) and [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;10661](https://github.com/vitest-dev/vitest/issues/10661) [<samp>(bae52)</samp>](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) ### [`v4.1.9`](https://github.com/vitest-dev/vitest/releases/tag/v4.1.9) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.1.8...v4.1.9) ##### 🐞 Bug Fixes - Fix `importOriginal` with optimizer and query import \[backport to v4] - by **Hiroshi Ogawa**, **David Harris**, **Codex**and **Vladimir** in [#&#8203;10546](https://github.com/vitest-dev/vitest/issues/10546) [<samp>(a5180)</samp>](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 [#&#8203;10555](https://github.com/vitest-dev/vitest/issues/10555) [<samp>(7fb29)</samp>](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 [#&#8203;10497](https://github.com/vitest-dev/vitest/issues/10497) and [#&#8203;10556](https://github.com/vitest-dev/vitest/issues/10556) [<samp>(fbc62)</samp>](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 [#&#8203;10548](https://github.com/vitest-dev/vitest/issues/10548) [<samp>(2c955)</samp>](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 [#&#8203;10543](https://github.com/vitest-dev/vitest/issues/10543) and [#&#8203;10564](https://github.com/vitest-dev/vitest/issues/10564) [<samp>(934b0)</samp>](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) ### [`v4.1.8`](https://github.com/vitest-dev/vitest/releases/tag/v4.1.8) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.1.7...v4.1.8) #####    🐞 Bug Fixes - **browser**: - Disable client `cdp` API when `allowWrite/allowExec: false` \[backport to v4]  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **Codex** in [#&#8203;10450](https://github.com/vitest-dev/vitest/issues/10450) [<samp>(e4067)</samp>](https://github.com/vitest-dev/vitest/commit/e4067b3b1) - Remove orphaned Playwright route when same module is mocked via multiple ids \[backport to v4]  -  by [@&#8203;toxik](https://github.com/toxik) and [@&#8203;Zelys-DFKH](https://github.com/Zelys-DFKH) in [#&#8203;10474](https://github.com/vitest-dev/vitest/issues/10474) [<samp>(675b4)</samp>](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) ### [`v4.1.7`](https://github.com/vitest-dev/vitest/releases/tag/v4.1.7) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.1.6...v4.1.7) #####    🐞 Bug Fixes - **runner**: Limit concurrency per task branch in addition to per leaf callbacks (backport)  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;10384](https://github.com/vitest-dev/vitest/issues/10384) [<samp>(4f0f2)</samp>](https://github.com/vitest-dev/vitest/commit/4f0f2a1ee) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.1.6...v4.1.7) ### [`v4.1.6`](https://github.com/vitest-dev/vitest/releases/tag/v4.1.6) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.1.5...v4.1.6) #####    🐞 Bug Fixes - **browser**: Provide project reference in `ToMatchScreenshotResolvePath`  -  by [@&#8203;macarie](https://github.com/macarie) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;10138](https://github.com/vitest-dev/vitest/issues/10138) [<samp>(31882)</samp>](https://github.com/vitest-dev/vitest/commit/31882607c) - Global `sequence.concurrent: true` with top-level `test(..., { concurrent: false })` + depreacte `sequential` test API and options  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa), **Codex** and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;10196](https://github.com/vitest-dev/vitest/issues/10196) [<samp>(2847d)</samp>](https://github.com/vitest-dev/vitest/commit/2847dfa2a) - **browser**: Simplify orchestrator otel carrier  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;10285](https://github.com/vitest-dev/vitest/issues/10285) [<samp>(18af9)</samp>](https://github.com/vitest-dev/vitest/commit/18af98cee) #####    🏎 Performance - Stringify diff objects only once  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;10276](https://github.com/vitest-dev/vitest/issues/10276) [<samp>(9f7b1)</samp>](https://github.com/vitest-dev/vitest/commit/9f7b1528c) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.1.5...v4.1.6) ### [`v4.1.5`](https://github.com/vitest-dev/vitest/releases/tag/v4.1.5) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.1.4...v4.1.5) #####    🚀 Experimental Features - **coverage**: Istanbul to support `instrumenter` option  -  by [@&#8203;BartWaardenburg](https://github.com/BartWaardenburg) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;10119](https://github.com/vitest-dev/vitest/issues/10119) [<samp>(0e0ff)</samp>](https://github.com/vitest-dev/vitest/commit/0e0ff41c7) #####    🐞 Bug Fixes - \--project negation excludes browser instances  -  by [@&#8203;felamaslen](https://github.com/felamaslen) in [#&#8203;10131](https://github.com/vitest-dev/vitest/issues/10131) [<samp>(9423d)</samp>](https://github.com/vitest-dev/vitest/commit/9423dc084) - Project color label on html reporter  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;10142](https://github.com/vitest-dev/vitest/issues/10142) [<samp>(596f7)</samp>](https://github.com/vitest-dev/vitest/commit/596f73986) - Fix `vi.defineHelper` called as object method  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;10163](https://github.com/vitest-dev/vitest/issues/10163) [<samp>(122c2)</samp>](https://github.com/vitest-dev/vitest/commit/122c25b5b) - Alias `agent` reporter to `minimal`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;10157](https://github.com/vitest-dev/vitest/issues/10157) [<samp>(663b9)</samp>](https://github.com/vitest-dev/vitest/commit/663b99fe3) - Respect diff config options in soft assertions  -  by [@&#8203;Copilot](https://github.com/Copilot), **sheremet-va** and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8696](https://github.com/vitest-dev/vitest/issues/8696) [<samp>(9787d)</samp>](https://github.com/vitest-dev/vitest/commit/9787dedad) - Respect diff config options in soft assertions "  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8696](https://github.com/vitest-dev/vitest/issues/8696) [<samp>(7dc6d)</samp>](https://github.com/vitest-dev/vitest/commit/7dc6d54fd) - **ast-collect**: Recognize \_*vi\_import* prefix in static test discovery  -  by [@&#8203;Yejneshwar](https://github.com/Yejneshwar) in [#&#8203;10129](https://github.com/vitest-dev/vitest/issues/10129) [<samp>(32546)</samp>](https://github.com/vitest-dev/vitest/commit/325463ab2) - **coverage**: Descriptive error message when reports directory is removed during test run  -  by [@&#8203;DaveT1991](https://github.com/DaveT1991) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;10117](https://github.com/vitest-dev/vitest/issues/10117) [<samp>(14133)</samp>](https://github.com/vitest-dev/vitest/commit/1413382e1) - **snapshot**: Increase default snapshot max output length  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **Codex** in [#&#8203;10150](https://github.com/vitest-dev/vitest/issues/10150) [<samp>(21e66)</samp>](https://github.com/vitest-dev/vitest/commit/21e66ff63) - **ui**: Fix jsx/tsx syntax highlight  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;10152](https://github.com/vitest-dev/vitest/issues/10152) [<samp>(f1b1f)</samp>](https://github.com/vitest-dev/vitest/commit/f1b1f6c7b) - **web-worker**: Support MessagePort objects referenced inside postMessage data  -  by [@&#8203;whitphx](https://github.com/whitphx) and **Claude Opus 4.6 (1M context)** in [#&#8203;9927](https://github.com/vitest-dev/vitest/issues/9927) and [#&#8203;10124](https://github.com/vitest-dev/vitest/issues/10124) [<samp>(7ad7d)</samp>](https://github.com/vitest-dev/vitest/commit/7ad7d39af) - **api**: Make test-specification options writable  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;10154](https://github.com/vitest-dev/vitest/issues/10154) [<samp>(6abd5)</samp>](https://github.com/vitest-dev/vitest/commit/6abd557b7) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.1.4...v4.1.5) ### [`v4.1.4`](https://github.com/vitest-dev/vitest/releases/tag/v4.1.4) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.1.3...v4.1.4) #####    🚀 Experimental Features - **coverage**: - Default to text reporter `skipFull` if agent detected  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;10018](https://github.com/vitest-dev/vitest/issues/10018) [<samp>(53757)</samp>](https://github.com/vitest-dev/vitest/commit/53757804c) - **experimental**: - Expose `assertion` as a public field  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;10095](https://github.com/vitest-dev/vitest/issues/10095) [<samp>(a120e)</samp>](https://github.com/vitest-dev/vitest/commit/a120e3ab8) - Support aria snapshot  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa), **Claude Opus 4.6 (1M context)**, [@&#8203;AriPerkkio](https://github.com/AriPerkkio), **Codex** and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9668](https://github.com/vitest-dev/vitest/issues/9668) [<samp>(d4fbb)</samp>](https://github.com/vitest-dev/vitest/commit/d4fbb5cc9) - **reporter**: - Add filterMeta option to json reporter  -  by [@&#8203;nami8824](https://github.com/nami8824) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;10078](https://github.com/vitest-dev/vitest/issues/10078) [<samp>(b77de)</samp>](https://github.com/vitest-dev/vitest/commit/b77de968e) #####    🐞 Bug Fixes - Use "black" foreground for labeled terminal message to ensure contrast  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;10076](https://github.com/vitest-dev/vitest/issues/10076) [<samp>(203f0)</samp>](https://github.com/vitest-dev/vitest/commit/203f07af7) - Make `expect(..., message)` consistent as error message prefix  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **Codex** in [#&#8203;10068](https://github.com/vitest-dev/vitest/issues/10068) [<samp>(a1b5f)</samp>](https://github.com/vitest-dev/vitest/commit/a1b5f0f4f) - Do not hoist imports whose names match class properties .  -  by [@&#8203;SunsetFi](https://github.com/SunsetFi) in [#&#8203;10093](https://github.com/vitest-dev/vitest/issues/10093) and [#&#8203;10094](https://github.com/vitest-dev/vitest/issues/10094) [<samp>(0fc4b)</samp>](https://github.com/vitest-dev/vitest/commit/0fc4b47e0) - **browser**: Spread user server options into browser Vite server in project  -  by [@&#8203;GoldStrikeArch](https://github.com/GoldStrikeArch) in [#&#8203;10049](https://github.com/vitest-dev/vitest/issues/10049) [<samp>(65c9d)</samp>](https://github.com/vitest-dev/vitest/commit/65c9d55eb) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.1.3...v4.1.4) ### [`v4.1.3`](https://github.com/vitest-dev/vitest/releases/tag/v4.1.3) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.1.2...v4.1.3) #####    🚀 Experimental Features - Add `experimental.preParse` flag  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;10070](https://github.com/vitest-dev/vitest/issues/10070) [<samp>(78273)</samp>](https://github.com/vitest-dev/vitest/commit/7827363bd) - Support `browser.locators.exact` option  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;10013](https://github.com/vitest-dev/vitest/issues/10013) [<samp>(48799)</samp>](https://github.com/vitest-dev/vitest/commit/487990a19) - Add `TestAttachment.bodyEncoding`  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9969](https://github.com/vitest-dev/vitest/issues/9969) [<samp>(89ca0)</samp>](https://github.com/vitest-dev/vitest/commit/89ca0e254) - Support custom snapshot matcher  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa), **Claude Sonnet 4.6** and **Codex** in [#&#8203;9973](https://github.com/vitest-dev/vitest/issues/9973) [<samp>(59b0e)</samp>](https://github.com/vitest-dev/vitest/commit/59b0e6411) #####    🐞 Bug Fixes - Advance fake timers with `expect.poll` interval  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **Claude Sonnet 4.6** in [#&#8203;10022](https://github.com/vitest-dev/vitest/issues/10022) [<samp>(3f5bf)</samp>](https://github.com/vitest-dev/vitest/commit/3f5bfa365) - Add `@vitest/coverage-v8` and `@vitest/coverage-istanbul` as optional dependency  -  by [@&#8203;alan-agius4](https://github.com/alan-agius4) in [#&#8203;10025](https://github.com/vitest-dev/vitest/issues/10025) [<samp>(146d4)</samp>](https://github.com/vitest-dev/vitest/commit/146d4f0a0) - Fix `defineHelper` for webkit async stack trace + update playwright 1.59.0  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;10036](https://github.com/vitest-dev/vitest/issues/10036) [<samp>(5a5fa)</samp>](https://github.com/vitest-dev/vitest/commit/5a5fa49fe) - Fix suite hook throwing errors for unused auto test-scoped fixture  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **Claude Sonnet 4.6** in [#&#8203;10035](https://github.com/vitest-dev/vitest/issues/10035) [<samp>(39865)</samp>](https://github.com/vitest-dev/vitest/commit/398657e8d) - **expect**: - Remove `JestExtendError.context` from verbose error reporting  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9983](https://github.com/vitest-dev/vitest/issues/9983) [<samp>(66751)</samp>](https://github.com/vitest-dev/vitest/commit/66751c9e8) - Don't leak "runner" types  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;10004](https://github.com/vitest-dev/vitest/issues/10004) [<samp>(ec204)</samp>](https://github.com/vitest-dev/vitest/commit/ec2045543) - **snapshot**: - Fix flagging obsolete snapshots for snapshot properties mismatch  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **Claude Sonnet 4.6** in [#&#8203;9986](https://github.com/vitest-dev/vitest/issues/9986) [<samp>(6b869)</samp>](https://github.com/vitest-dev/vitest/commit/6b869156b) - Export custom snapshot matcher helper from `vitest`  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **Codex** in [#&#8203;10042](https://github.com/vitest-dev/vitest/issues/10042) [<samp>(691d3)</samp>](https://github.com/vitest-dev/vitest/commit/691d341fd) - **ui**: - Don't leak vite types  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;10005](https://github.com/vitest-dev/vitest/issues/10005) [<samp>(fdff1)</samp>](https://github.com/vitest-dev/vitest/commit/fdff1bf9a) - **vm**: - Fix external module resolve error with deps optimizer query  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **Claude Sonnet 4.6** in [#&#8203;10024](https://github.com/vitest-dev/vitest/issues/10024) [<samp>(9dbf4)</samp>](https://github.com/vitest-dev/vitest/commit/9dbf47786) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.1.2...v4.1.3) ### [`v4.1.2`](https://github.com/vitest-dev/vitest/releases/tag/v4.1.2) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.1.1...v4.1.2) This release bumps Vitest's `flatted` version and removes version pinning to resolve `flatted`'s CVE related issues ([#&#8203;9975](https://github.com/vitest-dev/vitest/issues/9975)). #####    🐞 Bug Fixes - Don't resolve `setupFiles` from parent directory  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9960](https://github.com/vitest-dev/vitest/issues/9960) [<samp>(7aa93)</samp>](https://github.com/vitest-dev/vitest/commit/7aa937776) - Ensure sequential mock/unmock resolution  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **Claude Opus 4.6** in [#&#8203;9830](https://github.com/vitest-dev/vitest/issues/9830) [<samp>(7c065)</samp>](https://github.com/vitest-dev/vitest/commit/7c06598db) - **browser**: Take failure screenshot if `toMatchScreenshot` can't capture a stable screenshot  -  by [@&#8203;macarie](https://github.com/macarie) in [#&#8203;9847](https://github.com/vitest-dev/vitest/issues/9847) [<samp>(faace)</samp>](https://github.com/vitest-dev/vitest/commit/faace1fbe) - **coverage**: Correct `coverageConfigDefaults` values and types  -  by [@&#8203;Arthie](https://github.com/Arthie) in [#&#8203;9940](https://github.com/vitest-dev/vitest/issues/9940) [<samp>(b3c99)</samp>](https://github.com/vitest-dev/vitest/commit/b3c992cb2) - **pretty-format**: Fix output limit over counting  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9965](https://github.com/vitest-dev/vitest/issues/9965) [<samp>(d3b7a)</samp>](https://github.com/vitest-dev/vitest/commit/d3b7a40fa) - Disable colors if agent is detected  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;9851](https://github.com/vitest-dev/vitest/issues/9851) [<samp>(6f97b)</samp>](https://github.com/vitest-dev/vitest/commit/6f97b55dd) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.1.1...v4.1.2) ### [`v4.1.1`](https://github.com/vitest-dev/vitest/releases/tag/v4.1.1) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.1.0...v4.1.1) #####    🚀 Features - **experimental**: - Expose `matchesTags` to test if the current filter matches tags  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9913](https://github.com/vitest-dev/vitest/issues/9913) [<samp>(eec53)</samp>](https://github.com/vitest-dev/vitest/commit/eec53d9f5) - Introduce `experimental.vcsProvider`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9928](https://github.com/vitest-dev/vitest/issues/9928) [<samp>(56115)</samp>](https://github.com/vitest-dev/vitest/commit/561150036) #####    🐞 Bug Fixes - Mark `TestProject.testFilesList` internal properly  -  by [@&#8203;sapphi-red](https://github.com/sapphi-red) in [#&#8203;9867](https://github.com/vitest-dev/vitest/issues/9867) [<samp>(54f26)</samp>](https://github.com/vitest-dev/vitest/commit/54f2660f5) - Detect fixture that returns without calling `use`  -  by [@&#8203;oilater](https://github.com/oilater) in [#&#8203;9831](https://github.com/vitest-dev/vitest/issues/9831) and [#&#8203;9861](https://github.com/vitest-dev/vitest/issues/9861) [<samp>(633ae)</samp>](https://github.com/vitest-dev/vitest/commit/633ae2303) - Drop vite 8.beta support  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;9862](https://github.com/vitest-dev/vitest/issues/9862) [<samp>(b78f5)</samp>](https://github.com/vitest-dev/vitest/commit/b78f5389d) - Type regression in vi.mocked() static class methods  -  by [@&#8203;purepear](https://github.com/purepear) and [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9857](https://github.com/vitest-dev/vitest/issues/9857) [<samp>(90926)</samp>](https://github.com/vitest-dev/vitest/commit/90926641b) - Properly re-evaluate actual modules of mocked external  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9898](https://github.com/vitest-dev/vitest/issues/9898) [<samp>(ae5ec)</samp>](https://github.com/vitest-dev/vitest/commit/ae5ec03ef) - Preserve coverage report when html reporter overlaps  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9889](https://github.com/vitest-dev/vitest/issues/9889) [<samp>(2d81a)</samp>](https://github.com/vitest-dev/vitest/commit/2d81ad897) - Provide `vi.advanceTimers` to the preview provider  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9891](https://github.com/vitest-dev/vitest/issues/9891) [<samp>(1bc3e)</samp>](https://github.com/vitest-dev/vitest/commit/1bc3e63be) - Don't leak event listener in playwright provider  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9910](https://github.com/vitest-dev/vitest/issues/9910) [<samp>(d9355)</samp>](https://github.com/vitest-dev/vitest/commit/d93550ff7) - Open browser in `--standalone` mode without running tests  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9911](https://github.com/vitest-dev/vitest/issues/9911) [<samp>(e78ad)</samp>](https://github.com/vitest-dev/vitest/commit/e78adcf97) - Guard disposable and optional `body`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9912](https://github.com/vitest-dev/vitest/issues/9912) [<samp>(6fdb2)</samp>](https://github.com/vitest-dev/vitest/commit/6fdb2ba61) - Resolve `retry.condition` RegExp serialization issue  -  by [@&#8203;nstepien](https://github.com/nstepien) and [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9942](https://github.com/vitest-dev/vitest/issues/9942) [<samp>(7b605)</samp>](https://github.com/vitest-dev/vitest/commit/7b6054328) - **collect**: - Don't treat extra props on `test` return as tests  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9871](https://github.com/vitest-dev/vitest/issues/9871) [<samp>(141e7)</samp>](https://github.com/vitest-dev/vitest/commit/141e72aa1) - **coverage**: - Simplify provider types  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;9931](https://github.com/vitest-dev/vitest/issues/9931) [<samp>(aaf9f)</samp>](https://github.com/vitest-dev/vitest/commit/aaf9f18ae) - Load built-in provider without module runner  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;9939](https://github.com/vitest-dev/vitest/issues/9939) [<samp>(bf892)</samp>](https://github.com/vitest-dev/vitest/commit/bf8920817) - **expect**: - Soft assertions continue after .resolves/.rejects promise errors  -  by [@&#8203;mixelburg](https://github.com/mixelburg), **Maks Pikov**, **Claude Opus 4.6 (1M context)** and [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9843](https://github.com/vitest-dev/vitest/issues/9843) [<samp>(6d74b)</samp>](https://github.com/vitest-dev/vitest/commit/6d74b4948) - Fix sinon-chai style API  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9943](https://github.com/vitest-dev/vitest/issues/9943) [<samp>(0f08d)</samp>](https://github.com/vitest-dev/vitest/commit/0f08dda2c) - **pretty-format**: - Limit output for large object  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **Claude Opus 4.6 (1M context)** in [#&#8203;9949](https://github.com/vitest-dev/vitest/issues/9949) [<samp>(0d5f9)</samp>](https://github.com/vitest-dev/vitest/commit/0d5f9d6ef) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.1.0...v4.1.1) ### [`v4.1.0`](https://github.com/vitest-dev/vitest/releases/tag/v4.1.0) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.18...v4.1.0) Vitest 4.1 is out! This release page lists all changes made to the project during the 4.1 beta. To get a review of all the new features, read our [blog post](https://vitest.dev/blog/vitest-4-1). #####    🚀 Features - Return a disposable from doMock()  -  by [@&#8203;kirkwaiblinger](https://github.com/kirkwaiblinger) in [#&#8203;9332](https://github.com/vitest-dev/vitest/issues/9332) [<samp>(e3e65)</samp>](https://github.com/vitest-dev/vitest/commit/e3e659a96) - Added chai style assertions  -  by [@&#8203;ronnakamoto](https://github.com/ronnakamoto) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8842](https://github.com/vitest-dev/vitest/issues/8842) [<samp>(841df)</samp>](https://github.com/vitest-dev/vitest/commit/841df9ac5) - Update to sinon/fake-timers v15 and add `setTickMode` to timer controls  -  by [@&#8203;atscott](https://github.com/atscott) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8726](https://github.com/vitest-dev/vitest/issues/8726) [<samp>(4b480)</samp>](https://github.com/vitest-dev/vitest/commit/4b480aaed) - Expose matcher types  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9448](https://github.com/vitest-dev/vitest/issues/9448) [<samp>(3e4b9)</samp>](https://github.com/vitest-dev/vitest/commit/3e4b913b1) - Add `toTestSpecification` to reported tasks  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9464](https://github.com/vitest-dev/vitest/issues/9464) [<samp>(1a470)</samp>](https://github.com/vitest-dev/vitest/commit/1a4705da9) - Show a warning if `vi.mock` or `vi.hoisted` are declared outside of top level of the module  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9387](https://github.com/vitest-dev/vitest/issues/9387) [<samp>(5db54)</samp>](https://github.com/vitest-dev/vitest/commit/5db54a468) - Track and display expectedly failed tests (.fails) in UI and CLI  -  by [@&#8203;Copilot](https://github.com/Copilot), **sheremet-va** and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9476](https://github.com/vitest-dev/vitest/issues/9476) [<samp>(77d75)</samp>](https://github.com/vitest-dev/vitest/commit/77d75fd34) - Support tags  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9478](https://github.com/vitest-dev/vitest/issues/9478) [<samp>(de7c8)</samp>](https://github.com/vitest-dev/vitest/commit/de7c8a521) - Implement `aroundEach` and `aroundAll` hooks  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9450](https://github.com/vitest-dev/vitest/issues/9450) [<samp>(2a8cb)</samp>](https://github.com/vitest-dev/vitest/commit/2a8cb9dc2) - Stabilize experimental features  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9529](https://github.com/vitest-dev/vitest/issues/9529) [<samp>(b5fd2)</samp>](https://github.com/vitest-dev/vitest/commit/b5fd2a16a) - Accept `new` or `all` in `--update` flag  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9543](https://github.com/vitest-dev/vitest/issues/9543) [<samp>(a5acf)</samp>](https://github.com/vitest-dev/vitest/commit/a5acf28a5) - Support `meta` in test options  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9535](https://github.com/vitest-dev/vitest/issues/9535) [<samp>(7d622)</samp>](https://github.com/vitest-dev/vitest/commit/7d622e3d1) - Support type inference with a new `test.extend` syntax  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9550](https://github.com/vitest-dev/vitest/issues/9550) [<samp>(e5385)</samp>](https://github.com/vitest-dev/vitest/commit/e53854fcc) - Support vite 8 beta, fix type issues in the config with different vite versions  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9587](https://github.com/vitest-dev/vitest/issues/9587) [<samp>(99028)</samp>](https://github.com/vitest-dev/vitest/commit/990281dfd) - Add assertion helper to hide internal stack traces  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **Claude Opus 4.6** in [#&#8203;9594](https://github.com/vitest-dev/vitest/issues/9594) [<samp>(eeb0a)</samp>](https://github.com/vitest-dev/vitest/commit/eeb0ae2f8) - Store failure screenshots using artifacts API  -  by [@&#8203;macarie](https://github.com/macarie) in [#&#8203;9588](https://github.com/vitest-dev/vitest/issues/9588) [<samp>(24603)</samp>](https://github.com/vitest-dev/vitest/commit/24603e3c4) - Allow `vitest list` to statically collect tests instead of running files to collect them  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9630](https://github.com/vitest-dev/vitest/issues/9630) [<samp>(7a8e7)</samp>](https://github.com/vitest-dev/vitest/commit/7a8e7fc20) - Add `--detect-async-leaks`  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;9528](https://github.com/vitest-dev/vitest/issues/9528) [<samp>(c594d)</samp>](https://github.com/vitest-dev/vitest/commit/c594d4af3) - Implement `mockThrow` and `mockThrowOnce`  -  by [@&#8203;thor-juhasz](https://github.com/thor-juhasz) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9512](https://github.com/vitest-dev/vitest/issues/9512) [<samp>(61917)</samp>](https://github.com/vitest-dev/vitest/commit/619179fb7) - Support `update: "none"` and add docs about snapshots behavior on CI  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9700](https://github.com/vitest-dev/vitest/issues/9700) [<samp>(05f18)</samp>](https://github.com/vitest-dev/vitest/commit/05f1854e2) - Support playwright `launchOptions` with `connectOptions`  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9702](https://github.com/vitest-dev/vitest/issues/9702) [<samp>(f0ff1)</samp>](https://github.com/vitest-dev/vitest/commit/f0ff1b2a0) - Add `page/locator.mark` API to enhance playwright trace  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9652](https://github.com/vitest-dev/vitest/issues/9652) [<samp>(d0ee5)</samp>](https://github.com/vitest-dev/vitest/commit/d0ee546fe) - **api**: - Support tests starting or ending with `test` in `experimental_parseSpecification`  -  by [@&#8203;jgillick](https://github.com/jgillick) and **Jeremy Gillick** in [#&#8203;9235](https://github.com/vitest-dev/vitest/issues/9235) [<samp>(2f367)</samp>](https://github.com/vitest-dev/vitest/commit/2f367fad3) - Add filters to `createSpecification`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9336](https://github.com/vitest-dev/vitest/issues/9336) [<samp>(c8e6c)</samp>](https://github.com/vitest-dev/vitest/commit/c8e6c7fbf) - Expose `runTestFiles` as alternative to `runTestSpecifications`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9443](https://github.com/vitest-dev/vitest/issues/9443) [<samp>(43d76)</samp>](https://github.com/vitest-dev/vitest/commit/43d761821) - Add `allowWrite` and `allowExec` options to `api`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9350](https://github.com/vitest-dev/vitest/issues/9350) [<samp>(20e00)</samp>](https://github.com/vitest-dev/vitest/commit/20e00ef78) - Allow passing down test cases to `toTestSpecification`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9627](https://github.com/vitest-dev/vitest/issues/9627) [<samp>(6f17d)</samp>](https://github.com/vitest-dev/vitest/commit/6f17d5ddf) - **browser**: - Add `userEvent.wheel` API  -  by [@&#8203;macarie](https://github.com/macarie) in [#&#8203;9188](https://github.com/vitest-dev/vitest/issues/9188) [<samp>(66080)</samp>](https://github.com/vitest-dev/vitest/commit/660801979) - Add `filterNode` option to prettyDOM for filtering browser assertion error output  -  by [@&#8203;Copilot](https://github.com/Copilot), **sheremet-va** and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9475](https://github.com/vitest-dev/vitest/issues/9475) [<samp>(d3220)</samp>](https://github.com/vitest-dev/vitest/commit/d3220fcd8) - Support playwright persistent context  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa), **Claude Opus 4.6** and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9229](https://github.com/vitest-dev/vitest/issues/9229) [<samp>(f865d)</samp>](https://github.com/vitest-dev/vitest/commit/f865d2ba4) - Added `detailsPanelPosition` option and button  -  by [@&#8203;shairez](https://github.com/shairez) in [#&#8203;9525](https://github.com/vitest-dev/vitest/issues/9525) [<samp>(c8a31)</samp>](https://github.com/vitest-dev/vitest/commit/c8a31147c) - Use BlazeDiff instead of pixelmatch  -  by [@&#8203;macarie](https://github.com/macarie) in [#&#8203;9514](https://github.com/vitest-dev/vitest/issues/9514) [<samp>(30936)</samp>](https://github.com/vitest-dev/vitest/commit/309362089) - Add `findElement` and enable strict mode in webdriverio and preview  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9677](https://github.com/vitest-dev/vitest/issues/9677) [<samp>(c3f37)</samp>](https://github.com/vitest-dev/vitest/commit/c3f37721c) - **cli**: - Add [@&#8203;bomb](https://github.com/bomb).sh/tab completions  -  by [@&#8203;AmirSa12](https://github.com/AmirSa12) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8639](https://github.com/vitest-dev/vitest/issues/8639) [<samp>(200f3)</samp>](https://github.com/vitest-dev/vitest/commit/200f31704) - **coverage**: - Support `ignore start/stop` ignore hints  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;9204](https://github.com/vitest-dev/vitest/issues/9204) [<samp>(e59c9)</samp>](https://github.com/vitest-dev/vitest/commit/e59c94ba6) - Add `coverage.changed` option to report only changed files  -  by [@&#8203;kykim00](https://github.com/kykim00) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;9521](https://github.com/vitest-dev/vitest/issues/9521) [<samp>(1d939)</samp>](https://github.com/vitest-dev/vitest/commit/1d9392c67) - **experimental**: - Add `onModuleRunner` hook to `worker.init`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9286](https://github.com/vitest-dev/vitest/issues/9286) [<samp>(e977f)</samp>](https://github.com/vitest-dev/vitest/commit/e977f3deb) - Option to disable the module runner  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;9210](https://github.com/vitest-dev/vitest/issues/9210) [<samp>(9be61)</samp>](https://github.com/vitest-dev/vitest/commit/9be6121ee) - Add `importDurations: { limit, print }` options  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa), **Claude Opus 4.6** and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9401](https://github.com/vitest-dev/vitest/issues/9401) [<samp>(7e10f)</samp>](https://github.com/vitest-dev/vitest/commit/7e10fb356) - Add print and fail thresholds for `importDurations`  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **Claude Opus 4.6** in [#&#8203;9533](https://github.com/vitest-dev/vitest/issues/9533) [<samp>(3f7a5)</samp>](https://github.com/vitest-dev/vitest/commit/3f7a5f8f8) - **fixtures**: - Pass down file context to `beforeAll`/`afterAll`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9572](https://github.com/vitest-dev/vitest/issues/9572) [<samp>(c8339)</samp>](https://github.com/vitest-dev/vitest/commit/c83395f2c) - **reporters**: - Add `agent` reporter to reduce ai agent token usage  -  by [@&#8203;cpojer](https://github.com/cpojer) in [#&#8203;9779](https://github.com/vitest-dev/vitest/issues/9779) [<samp>(3e9e0)</samp>](https://github.com/vitest-dev/vitest/commit/3e9e096a2) - **runner**: - Enhance `retry` options  -  by [@&#8203;MazenSamehR](https://github.com/MazenSamehR), **Matan Shavit**, [@&#8203;AriPerkkio](https://github.com/AriPerkkio) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9370](https://github.com/vitest-dev/vitest/issues/9370) [<samp>(9e4cf)</samp>](https://github.com/vitest-dev/vitest/commit/9e4cfd295) - **ui**: - Allow run individual test/suites  -  by [@&#8203;userquin](https://github.com/userquin) in [#&#8203;9465](https://github.com/vitest-dev/vitest/issues/9465) [<samp>(73b10)</samp>](https://github.com/vitest-dev/vitest/commit/73b10f1b9) - Add project filter/sort support  -  by [@&#8203;userquin](https://github.com/userquin) in [#&#8203;8689](https://github.com/vitest-dev/vitest/issues/8689) [<samp>(0c7ea)</samp>](https://github.com/vitest-dev/vitest/commit/0c7eaac16) - Add duration sorting to explorer  -  by [@&#8203;julianhahn](https://github.com/julianhahn) and [@&#8203;cursoragent](https://github.com/cursoragent) in [#&#8203;9603](https://github.com/vitest-dev/vitest/issues/9603) [<samp>(209b1)</samp>](https://github.com/vitest-dev/vitest/commit/209b1b0e1) - Implement filter for slow tests  -  by [@&#8203;DerYeger](https://github.com/DerYeger) and [@&#8203;userquin](https://github.com/userquin) in [#&#8203;9705](https://github.com/vitest-dev/vitest/issues/9705) [<samp>(8880c)</samp>](https://github.com/vitest-dev/vitest/commit/8880c907a) - **vitest**: - Add run summary in GitHub Actions Reporter  -  by [@&#8203;macarie](https://github.com/macarie) and **jhnance** in [#&#8203;9579](https://github.com/vitest-dev/vitest/issues/9579) [<samp>(96bfc)</samp>](https://github.com/vitest-dev/vitest/commit/96bfc8345) #####    🐞 Bug Fixes - Deprecate several vitest/\* entry points  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9347](https://github.com/vitest-dev/vitest/issues/9347) [<samp>(fd459)</samp>](https://github.com/vitest-dev/vitest/commit/fd45928be) - Use `meta.url` in `createRequire`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9441](https://github.com/vitest-dev/vitest/issues/9441) [<samp>(e3422)</samp>](https://github.com/vitest-dev/vitest/commit/e34225563) - Preact browser mode init example of render function not async  -  by [@&#8203;WuMingDao](https://github.com/WuMingDao) in [#&#8203;9375](https://github.com/vitest-dev/vitest/issues/9375) [<samp>(2bea5)</samp>](https://github.com/vitest-dev/vitest/commit/2bea549c7) - Deprecate unused types in matcher context  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9449](https://github.com/vitest-dev/vitest/issues/9449) [<samp>(20f87)</samp>](https://github.com/vitest-dev/vitest/commit/20f8753a2) - Handle `external/noExternal` during `configEnvironment` hook  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **Claude Opus 4.6** in [#&#8203;9508](https://github.com/vitest-dev/vitest/issues/9508) [<samp>(59ea2)</samp>](https://github.com/vitest-dev/vitest/commit/59ea27c1c) - Replace default ssr environment runner with Vitest server module runner  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **Claude Opus 4.6** in [#&#8203;9506](https://github.com/vitest-dev/vitest/issues/9506) [<samp>(cd5db)</samp>](https://github.com/vitest-dev/vitest/commit/cd5db660c) - Propagate experimental CLI options to child projects  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **Claude Opus 4.6** in [#&#8203;9531](https://github.com/vitest-dev/vitest/issues/9531) [<samp>(b624f)</samp>](https://github.com/vitest-dev/vitest/commit/b624fae53) - Show a warning when `browser.isolate` is used  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9410](https://github.com/vitest-dev/vitest/issues/9410) [<samp>(3d48e)</samp>](https://github.com/vitest-dev/vitest/commit/3d48ebcb9) - Fix `vi.mock({ spy: true })` node v8 coverage  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa), **hi-ogawa** and **Claude Opus 4.6** in [#&#8203;9541](https://github.com/vitest-dev/vitest/issues/9541) [<samp>(687b6)</samp>](https://github.com/vitest-dev/vitest/commit/687b633c1) - Don't show internal ssr handler in errors  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9547](https://github.com/vitest-dev/vitest/issues/9547) [<samp>(76c43)</samp>](https://github.com/vitest-dev/vitest/commit/76c4397b5) - Close vitest if it failed to start  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9573](https://github.com/vitest-dev/vitest/issues/9573) [<samp>(728ba)</samp>](https://github.com/vitest-dev/vitest/commit/728ba617f) - Fix ssr environment runner in project  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9584](https://github.com/vitest-dev/vitest/issues/9584) [<samp>(09006)</samp>](https://github.com/vitest-dev/vitest/commit/090064f97) - Trim trailing white spaces in code block  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9591](https://github.com/vitest-dev/vitest/issues/9591) [<samp>(f78be)</samp>](https://github.com/vitest-dev/vitest/commit/f78bea992) - Support inline snapshot inside test.for/each  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9590](https://github.com/vitest-dev/vitest/issues/9590) [<samp>(615fd)</samp>](https://github.com/vitest-dev/vitest/commit/615fd521e) - Apply source maps for external module stack trace  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9152](https://github.com/vitest-dev/vitest/issues/9152) [<samp>(79e20)</samp>](https://github.com/vitest-dev/vitest/commit/79e20d5a3) - Remove the `.name` from statically collected test  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9596](https://github.com/vitest-dev/vitest/issues/9596) [<samp>(b66ff)</samp>](https://github.com/vitest-dev/vitest/commit/b66ff691a) - Don't suppress warnings on pnp  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9602](https://github.com/vitest-dev/vitest/issues/9602) [<samp>(89cbd)</samp>](https://github.com/vitest-dev/vitest/commit/89cbdaea3) - Support snapshot with `expect.soft`  -  by [@&#8203;iumehara](https://github.com/iumehara), [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **Claude Opus 4.6** in [#&#8203;9231](https://github.com/vitest-dev/vitest/issues/9231) [<samp>(3eb2c)</samp>](https://github.com/vitest-dev/vitest/commit/3eb2cd541) - Log seed when only `sequence.shuffle.tests` is enabled  -  by [@&#8203;kaigritun](https://github.com/kaigritun), **Kai Gritun** and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9576](https://github.com/vitest-dev/vitest/issues/9576) [<samp>(8182b)</samp>](https://github.com/vitest-dev/vitest/commit/8182b77ad) - Externalize `expect/src/utils` from `vitest`  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9616](https://github.com/vitest-dev/vitest/issues/9616) [<samp>(48739)</samp>](https://github.com/vitest-dev/vitest/commit/487398422) - Ignore test.override during static collection  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9620](https://github.com/vitest-dev/vitest/issues/9620) [<samp>(09174)</samp>](https://github.com/vitest-dev/vitest/commit/0917470ce) - Increase stacktrace limit for `--detect-async-leaks`  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;9638](https://github.com/vitest-dev/vitest/issues/9638) [<samp>(9fd4c)</samp>](https://github.com/vitest-dev/vitest/commit/9fd4ce533) - Hanging-reporter link in cli  -  by [@&#8203;flx-sta](https://github.com/flx-sta) in [#&#8203;9649](https://github.com/vitest-dev/vitest/issues/9649) [<samp>(7c103)</samp>](https://github.com/vitest-dev/vitest/commit/7c103055c) - Fix teardown timeout of `aroundEach/All` when inner `aroundEach/All` throws  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9657](https://github.com/vitest-dev/vitest/issues/9657) [<samp>(4ec6c)</samp>](https://github.com/vitest-dev/vitest/commit/4ec6cb305) - Fix ui mode / html reporter and coverage integration  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **Claude Opus 4.6** in [#&#8203;9626](https://github.com/vitest-dev/vitest/issues/9626) [<samp>(86fad)</samp>](https://github.com/vitest-dev/vitest/commit/86fad4b42) - Don't continue when `aroundEach/All` setup timed out  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9670](https://github.com/vitest-dev/vitest/issues/9670) [<samp>(bb013)</samp>](https://github.com/vitest-dev/vitest/commit/bb013d54b) - Align `VitestRunnerConfig` optional fields with `SerializedConfig`  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9661](https://github.com/vitest-dev/vitest/issues/9661) [<samp>(79520)</samp>](https://github.com/vitest-dev/vitest/commit/79520d82d) - Handle Symbol values in format utility  -  by [@&#8203;nami8824](https://github.com/nami8824) in [#&#8203;9658](https://github.com/vitest-dev/vitest/issues/9658) [<samp>(0583f)</samp>](https://github.com/vitest-dev/vitest/commit/0583f067e) - Deprecate `toBe*` spy assertions in favor of `toHaveBeen*` (and `toThrowError`)  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9665](https://github.com/vitest-dev/vitest/issues/9665) [<samp>(4d390)</samp>](https://github.com/vitest-dev/vitest/commit/4d390dfe9) - Don't propagate nested `aroundEach/All` errors but aggregate them on runner  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9673](https://github.com/vitest-dev/vitest/issues/9673) [<samp>(b6365)</samp>](https://github.com/vitest-dev/vitest/commit/b63653f5a) - Show a better error if there is a pending dynamic import  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9676](https://github.com/vitest-dev/vitest/issues/9676) [<samp>(7ef5c)</samp>](https://github.com/vitest-dev/vitest/commit/7ef5cf4b7) - Preserve stack trace of `resolves/rejects` chained assertion error  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9679](https://github.com/vitest-dev/vitest/issues/9679) [<samp>(c6151)</samp>](https://github.com/vitest-dev/vitest/commit/c61511d4a) - Handle module-sync condition in vmThreads/vmForks require  -  by [@&#8203;lesleh](https://github.com/lesleh) in [#&#8203;9650](https://github.com/vitest-dev/vitest/issues/9650) and [#&#8203;9651](https://github.com/vitest-dev/vitest/issues/9651) [<samp>(bb203)</samp>](https://github.com/vitest-dev/vitest/commit/bb20389f4) - Hooks should respect `maxConcurrency`  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9653](https://github.com/vitest-dev/vitest/issues/9653) [<samp>(16d13)</samp>](https://github.com/vitest-dev/vitest/commit/16d13d981) - Recursively autospy module object  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9687](https://github.com/vitest-dev/vitest/issues/9687) [<samp>(695a8)</samp>](https://github.com/vitest-dev/vitest/commit/695a86b41) - Remove trailing spaces from diff error log  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9680](https://github.com/vitest-dev/vitest/issues/9680) [<samp>(395d1)</samp>](https://github.com/vitest-dev/vitest/commit/395d1a29e) - Respect project `resolve.conditions` for externals  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9717](https://github.com/vitest-dev/vitest/issues/9717) [<samp>(1d498)</samp>](https://github.com/vitest-dev/vitest/commit/1d4987498) - Use object for WeakMap instead of a symbol to support webcontainers  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9731](https://github.com/vitest-dev/vitest/issues/9731) [<samp>(c5225)</samp>](https://github.com/vitest-dev/vitest/commit/c52259330) - Fix re-mocking virtual module  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9748](https://github.com/vitest-dev/vitest/issues/9748) [<samp>(3cbbb)</samp>](https://github.com/vitest-dev/vitest/commit/3cbbb17f1) - Cancelling should stop current test immediately  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;9729](https://github.com/vitest-dev/vitest/issues/9729) [<samp>(0cb2f)</samp>](https://github.com/vitest-dev/vitest/commit/0cb2f7239) - Make `mockObject` change backwards compatible  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9744](https://github.com/vitest-dev/vitest/issues/9744) [<samp>(84c69)</samp>](https://github.com/vitest-dev/vitest/commit/84c69497f) - Fix `URL.name` on jsdom  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9767](https://github.com/vitest-dev/vitest/issues/9767) [<samp>(031f3)</samp>](https://github.com/vitest-dev/vitest/commit/031f3a374) - Save and restore module graph in blob reporter  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9740](https://github.com/vitest-dev/vitest/issues/9740) [<samp>(84355)</samp>](https://github.com/vitest-dev/vitest/commit/843554bf0) - Don't silence reporter errors from test runtime events handler in normal run and --merge-reports  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9727](https://github.com/vitest-dev/vitest/issues/9727) [<samp>(4072d)</samp>](https://github.com/vitest-dev/vitest/commit/4072d0132) - Fix `vi.importActual()` for virtual modules  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **Claude Opus 4.6** in [#&#8203;9772](https://github.com/vitest-dev/vitest/issues/9772) [<samp>(1e89e)</samp>](https://github.com/vitest-dev/vitest/commit/1e89ec020) - Throw `FixtureAccessError` if suite hook accesses undefined fixture  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9786](https://github.com/vitest-dev/vitest/issues/9786) [<samp>(fc2ce)</samp>](https://github.com/vitest-dev/vitest/commit/fc2cea2b7) - Allow hyphens in project config file name pattern  -  by [@&#8203;Koutaro-Hanabusa](https://github.com/Koutaro-Hanabusa) and [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9760](https://github.com/vitest-dev/vitest/issues/9760) [<samp>(33e96)</samp>](https://github.com/vitest-dev/vitest/commit/33e96311a) - Manual and redirect mock shouldn't `load` or `transform` original module  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **Claude Opus 4.6** in [#&#8203;9774](https://github.com/vitest-dev/vitest/issues/9774) [<samp>(a8216)</samp>](https://github.com/vitest-dev/vitest/commit/a8216b001) - `hideSkippedTests` should not hide `test.todo`  -  by [@&#8203;oilater](https://github.com/oilater) in [#&#8203;9562](https://github.com/vitest-dev/vitest/issues/9562) and [#&#8203;9781](https://github.com/vitest-dev/vitest/issues/9781) [<samp>(8181e)</samp>](https://github.com/vitest-dev/vitest/commit/8181e06e7) - Allow catch/finally for async assertion  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9827](https://github.com/vitest-dev/vitest/issues/9827) [<samp>(031f0)</samp>](https://github.com/vitest-dev/vitest/commit/031f02a89) - Resolve fixture overrides from test's suite in `beforeEach` hooks  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **Claude Opus 4.6** in [#&#8203;9826](https://github.com/vitest-dev/vitest/issues/9826) [<samp>(99e52)</samp>](https://github.com/vitest-dev/vitest/commit/99e52fe58) - Use isAgent check, not just TTY, for watch mode  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9841](https://github.com/vitest-dev/vitest/issues/9841) [<samp>(c3cac)</samp>](https://github.com/vitest-dev/vitest/commit/c3cac1c1b) - Use `performance.now` to measure test timeout duration  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **Claude Opus 4.6** in [#&#8203;9795](https://github.com/vitest-dev/vitest/issues/9795) [<samp>(f48a6)</samp>](https://github.com/vitest-dev/vitest/commit/f48a60114) - Correctly identify concurrent test during static analysis  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9846](https://github.com/vitest-dev/vitest/issues/9846) [<samp>(1de0a)</samp>](https://github.com/vitest-dev/vitest/commit/1de0aa22d) - **browser**: - Avoid updating screenshots when `toMatchScreenshot` passes  -  by [@&#8203;macarie](https://github.com/macarie) in [#&#8203;9289](https://github.com/vitest-dev/vitest/issues/9289) [<samp>(46aab)</samp>](https://github.com/vitest-dev/vitest/commit/46aabaa44) - Hide injected data-testid attributes  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9503](https://github.com/vitest-dev/vitest/issues/9503) [<samp>(c8d2c)</samp>](https://github.com/vitest-dev/vitest/commit/c8d2c411c) - Throw an error if iframe was reloaded  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9516](https://github.com/vitest-dev/vitest/issues/9516) [<samp>(73a81)</samp>](https://github.com/vitest-dev/vitest/commit/73a81f880) - Encode projectName in browser client URL  -  by [@&#8203;dkkim0122](https://github.com/dkkim0122) in [#&#8203;9523](https://github.com/vitest-dev/vitest/issues/9523) [<samp>(5b164)</samp>](https://github.com/vitest-dev/vitest/commit/5b16483c3) - Don't take failure screenshot if tests have artifacts created by `toMatchScreenshot`  -  by [@&#8203;macarie](https://github.com/macarie) in [#&#8203;9552](https://github.com/vitest-dev/vitest/issues/9552) [<samp>(83ca0)</samp>](https://github.com/vitest-dev/vitest/commit/83ca02547) - Remove `--remote-debugging-address` from chrome args  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;9712](https://github.com/vitest-dev/vitest/issues/9712) [<samp>(f09bb)</samp>](https://github.com/vitest-dev/vitest/commit/f09bb5c32) - Make sure userEvent actions support `ensureAwaited`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9732](https://github.com/vitest-dev/vitest/issues/9732) [<samp>(97685)</samp>](https://github.com/vitest-dev/vitest/commit/9768517b8) - Types of `getCDPSession` and `cdp()`  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;9716](https://github.com/vitest-dev/vitest/issues/9716) [<samp>(689a2)</samp>](https://github.com/vitest-dev/vitest/commit/689a22a1b) - Skip esbuild.legalComments when using rolldown-vite  -  by [@&#8203;Copilot](https://github.com/Copilot), **hi-ogawa** and [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9803](https://github.com/vitest-dev/vitest/issues/9803) [<samp>(3505f)</samp>](https://github.com/vitest-dev/vitest/commit/3505fa5a3) - **chai**: - Don't allow `deepEqual` in the config because it's not serializable  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9666](https://github.com/vitest-dev/vitest/issues/9666) [<samp>(9ee99)</samp>](https://github.com/vitest-dev/vitest/commit/9ee999d73) - **coverage**: - Infer transform mode for uncovered files  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;9435](https://github.com/vitest-dev/vitest/issues/9435) [<samp>(f3967)</samp>](https://github.com/vitest-dev/vitest/commit/f396792d6) - `thresholds.autoUpdate` to preserve ending whitespace  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;9436](https://github.com/vitest-dev/vitest/issues/9436) [<samp>(7e534)</samp>](https://github.com/vitest-dev/vitest/commit/7e534a0b6) - **deps**: - Update all non-major dependencies  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9192](https://github.com/vitest-dev/vitest/issues/9192) [<samp>(90c30)</samp>](https://github.com/vitest-dev/vitest/commit/90c302f3b) - Update all non-major dependencies  -  in [#&#8203;9485](https://github.com/vitest-dev/vitest/issues/9485) [<samp>(c0118)</samp>](https://github.com/vitest-dev/vitest/commit/c01186022) - Update all non-major dependencies  -  in [#&#8203;9567](https://github.com/vitest-dev/vitest/issues/9567) [<samp>(13c9e)</samp>](https://github.com/vitest-dev/vitest/commit/13c9e022b) - **docs**: - Fix old `/config/#option` hash links causing hydration errors  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa), **Claude Opus 4.6** and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9610](https://github.com/vitest-dev/vitest/issues/9610) [<samp>(a603c)</samp>](https://github.com/vitest-dev/vitest/commit/a603c3a30) - **expect**: - `toMatchObject(Map/Set)` should expect `Map/Set` on left hand side  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **Claude Opus 4.6** in [#&#8203;9532](https://github.com/vitest-dev/vitest/issues/9532) [<samp>(381da)</samp>](https://github.com/vitest-dev/vitest/commit/381da4a9d) - Fix objectContaining with proxy  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **Claude Opus 4.6** in [#&#8203;9554](https://github.com/vitest-dev/vitest/issues/9554) [<samp>(7ce34)</samp>](https://github.com/vitest-dev/vitest/commit/7ce3417b1) - Support arbitrary value equality for `toThrow` and make Error detection robust  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **Claude Opus 4.6** in [#&#8203;9570](https://github.com/vitest-dev/vitest/issues/9570) [<samp>(de215)</samp>](https://github.com/vitest-dev/vitest/commit/de215c19c) - **mock**: - Inject helpers after hashbang if present  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9545](https://github.com/vitest-dev/vitest/issues/9545) [<samp>(65432)</samp>](https://github.com/vitest-dev/vitest/commit/65432a74b) - **mocker**: - Update vite's peer dependency range  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9808](https://github.com/vitest-dev/vitest/issues/9808) [<samp>(36f9a)</samp>](https://github.com/vitest-dev/vitest/commit/36f9a81a2) - **reporter**: - `dot` reporter leaves pending tests  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;9684](https://github.com/vitest-dev/vitest/issues/9684) [<samp>(4d793)</samp>](https://github.com/vitest-dev/vitest/commit/4d7938a56) - **runner**: - Mark repeated tests as finished on last run  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;9707](https://github.com/vitest-dev/vitest/issues/9707) [<samp>(cc735)</samp>](https://github.com/vitest-dev/vitest/commit/cc735970a) - **spy**: - Support deep partial in vi.mocked  -  by [@&#8203;j2h30728](https://github.com/j2h30728) in [#&#8203;8152](https://github.com/vitest-dev/vitest/issues/8152) and [#&#8203;9493](https://github.com/vitest-dev/vitest/issues/9493) [<samp>(71cb5)</samp>](https://github.com/vitest-dev/vitest/commit/71cb51ffc) - Fallback to object accessor if descriptor's value is `undefined`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9511](https://github.com/vitest-dev/vitest/issues/9511) [<samp>(6f181)</samp>](https://github.com/vitest-dev/vitest/commit/6f18103fa) - Throw correct errors when shorthand methods are used on a class  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9513](https://github.com/vitest-dev/vitest/issues/9513) [<samp>(5d0fd)</samp>](https://github.com/vitest-dev/vitest/commit/5d0fd3b62) - **types**: - `bench.reporters` no longer gives type errors when passing file name string paths  -  by [@&#8203;Bertie690](https://github.com/Bertie690) in [#&#8203;9695](https://github.com/vitest-dev/vitest/issues/9695) [<samp>(093c8)</samp>](https://github.com/vitest-dev/vitest/commit/093c8f6b5) - **ui**: - Process artifact attachments when generating HTML reporter  -  by [@&#8203;macarie](https://github.com/macarie) in [#&#8203;9472](https://github.com/vitest-dev/vitest/issues/9472) [<samp>(96eb9)</samp>](https://github.com/vitest-dev/vitest/commit/96eb92826) - Don't fail if --ui and --root are specified together  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9536](https://github.com/vitest-dev/vitest/issues/9536) [<samp>(d9305)</samp>](https://github.com/vitest-dev/vitest/commit/d93055fc7) #####    🏎 Performance - **pretty-format**: Combine DOMElement plugins  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9581](https://github.com/vitest-dev/vitest/issues/9581) [<samp>(da85a)</samp>](https://github.com/vitest-dev/vitest/commit/da85a3267) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.17...v4.1.0) ### [`v4.0.18`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.18) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.17...v4.0.18) #####    🚀 Experimental Features - **experimental**: Add `onModuleRunner` hook to `worker.init`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9286](https://github.com/vitest-dev/vitest/issues/9286) [<samp>(ea837)</samp>](https://github.com/vitest-dev/vitest/commit/ea837de7d) #####    🐞 Bug Fixes - Use `meta.url` in `createRequire`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9441](https://github.com/vitest-dev/vitest/issues/9441) [<samp>(e0572)</samp>](https://github.com/vitest-dev/vitest/commit/e057281ca) - **browser**: Hide injected data-testid attributes  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9503](https://github.com/vitest-dev/vitest/issues/9503) [<samp>(f8989)</samp>](https://github.com/vitest-dev/vitest/commit/f89899cd8) - **ui**: Process artifact attachments when generating HTML reporter  -  by [@&#8203;macarie](https://github.com/macarie) in [#&#8203;9472](https://github.com/vitest-dev/vitest/issues/9472) [<samp>(22543)</samp>](https://github.com/vitest-dev/vitest/commit/225435647) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.17...v4.0.18) ### [`v4.0.17`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.17) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.16...v4.0.17) #####    🚀 Experimental Features - Support openTelemetry for browser mode  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9180](https://github.com/vitest-dev/vitest/issues/9180) [<samp>(1ec3a)</samp>](https://github.com/vitest-dev/vitest/commit/1ec3a8b68) - Support TRACEPARENT and TRACESTATE environment variables for OpenTelemetry context propagation  -  by [@&#8203;Copilot](https://github.com/Copilot), **hi-ogawa** and [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9295](https://github.com/vitest-dev/vitest/issues/9295) [<samp>(876cb)</samp>](https://github.com/vitest-dev/vitest/commit/876cb84c2) #####    🐞 Bug Fixes - Improve asymmetric matcher diff readability by unwrapping container matchers  -  by [@&#8203;Copilot](https://github.com/Copilot), **sheremet-va**, **hi-ogawa** and [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9330](https://github.com/vitest-dev/vitest/issues/9330) [<samp>(b2ec7)</samp>](https://github.com/vitest-dev/vitest/commit/b2ec724a8) - Improve runner error when importing outside of test context  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9335](https://github.com/vitest-dev/vitest/issues/9335) [<samp>(2dd3d)</samp>](https://github.com/vitest-dev/vitest/commit/2dd3dd839) - Replace crypto.randomUUID to allow insecure environments (fix [#&#8203;9](https://github.com/vitest-dev/vitest/issues/9)…  -  by [@&#8203;plusgut](https://github.com/plusgut) in [#&#8203;9339](https://github.com/vitest-dev/vitest/issues/9339) and [#&#8203;9](https://github.com/vitest-dev/vitest/issues/9) [<samp>(e6a3f)</samp>](https://github.com/vitest-dev/vitest/commit/e6a3f8cc7) - Handle null options in `addEventHandler` [#&#8203;9371](https://github.com/vitest-dev/vitest/issues/9371)  -  by [@&#8203;ThibautMarechal](https://github.com/ThibautMarechal) in [#&#8203;9372](https://github.com/vitest-dev/vitest/issues/9372) and [#&#8203;9371](https://github.com/vitest-dev/vitest/issues/9371) [<samp>(40841)</samp>](https://github.com/vitest-dev/vitest/commit/40841ff00) - Typo in browser.provider error  -  by [@&#8203;deammer](https://github.com/deammer) in [#&#8203;9394](https://github.com/vitest-dev/vitest/issues/9394) [<samp>(4b67f)</samp>](https://github.com/vitest-dev/vitest/commit/4b67fc25a) - **browser**: - Fix `process.env` and `import.meta.env` defines in inline project  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9239](https://github.com/vitest-dev/vitest/issues/9239) [<samp>(b70c9)</samp>](https://github.com/vitest-dev/vitest/commit/b70c96121) - Fix upload File instance  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9294](https://github.com/vitest-dev/vitest/issues/9294) [<samp>(b6778)</samp>](https://github.com/vitest-dev/vitest/commit/b67788c69) - Fix invalid project token for artifacts assets  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9321](https://github.com/vitest-dev/vitest/issues/9321) [<samp>(caa7d)</samp>](https://github.com/vitest-dev/vitest/commit/caa7d73d4) - Log `ErrorEvent.message` when unhandled `ErrorEvent.error` is null  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9322](https://github.com/vitest-dev/vitest/issues/9322) [<samp>(5d84e)</samp>](https://github.com/vitest-dev/vitest/commit/5d84eeb91) - Support `fileParallelism` on an instance  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9328](https://github.com/vitest-dev/vitest/issues/9328) [<samp>(15006)</samp>](https://github.com/vitest-dev/vitest/commit/150065459) - **coverage**: - Remove unnecessary `istanbul-lib-source-maps` usage  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;9344](https://github.com/vitest-dev/vitest/issues/9344) [<samp>(b0940)</samp>](https://github.com/vitest-dev/vitest/commit/b09405375) - Apply patch from [istanbuljs/istanbuljs#837](https://github.com/istanbuljs/istanbuljs/issues/837)  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) and **sapphi-red** in [#&#8203;9413](https://github.com/vitest-dev/vitest/issues/9413) and [#&#8203;837](https://github.com/vitest-dev/vitest/issues/837) [<samp>(e05ce)</samp>](https://github.com/vitest-dev/vitest/commit/e05cedbf4) - **fsModuleCache**: - Don't store importers in cache  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9422](https://github.com/vitest-dev/vitest/issues/9422) [<samp>(75136)</samp>](https://github.com/vitest-dev/vitest/commit/751364eec) - Add importers alongside importedModules  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9423](https://github.com/vitest-dev/vitest/issues/9423) [<samp>(59f92)</samp>](https://github.com/vitest-dev/vitest/commit/59f92d403) - **mocker**: - Fix mock transform with class  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9421](https://github.com/vitest-dev/vitest/issues/9421) [<samp>(d390e)</samp>](https://github.com/vitest-dev/vitest/commit/d390eb527) - **pool**: - Validate environment options when reusing the worker  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9349](https://github.com/vitest-dev/vitest/issues/9349) [<samp>(a8a88)</samp>](https://github.com/vitest-dev/vitest/commit/a8a8836e3) - Handle worker start failures gracefully  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;9337](https://github.com/vitest-dev/vitest/issues/9337) [<samp>(200da)</samp>](https://github.com/vitest-dev/vitest/commit/200dadb32) - **reporter**: - Report test module if it failed to run  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9272](https://github.com/vitest-dev/vitest/issues/9272) [<samp>(c7888)</samp>](https://github.com/vitest-dev/vitest/commit/c78882985) - **runner**: - Respect nested test.only within describe.only  -  by [@&#8203;Ujjwaljain16](https://github.com/Ujjwaljain16) in [#&#8203;9021](https://github.com/vitest-dev/vitest/issues/9021) and [#&#8203;9213](https://github.com/vitest-dev/vitest/issues/9213) [<samp>(55d5d)</samp>](https://github.com/vitest-dev/vitest/commit/55d5dad69) - **typecheck**: - Improve error message when tsc outputs help text  -  by [@&#8203;Ujjwaljain16](https://github.com/Ujjwaljain16) in [#&#8203;9214](https://github.com/vitest-dev/vitest/issues/9214) [<samp>(7b10a)</samp>](https://github.com/vitest-dev/vitest/commit/7b10ab4cd) - **ui**: - Detect gzip by magic numbers instead of Content-Type header in html reporter  -  by [@&#8203;Copilot](https://github.com/Copilot), **hi-ogawa** and [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9278](https://github.com/vitest-dev/vitest/issues/9278) [<samp>(dd033)</samp>](https://github.com/vitest-dev/vitest/commit/dd0331632) - **webdriverio**: - Fall back to WebDriver Classic [#&#8203;9244](https://github.com/vitest-dev/vitest/issues/9244)  -  by [@&#8203;JustasMonkev](https://github.com/JustasMonkev) in [#&#8203;9373](https://github.com/vitest-dev/vitest/issues/9373) and [#&#8203;9244](https://github.com/vitest-dev/vitest/issues/9244) [<samp>(c23dd)</samp>](https://github.com/vitest-dev/vitest/commit/c23dd11bd) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.16...v4.0.17) ### [`v4.0.16`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.16) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.15...v4.0.16) #####    🐞 Bug Fixes - Fix browser mode default testTimeout back to 15 seconds  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9167](https://github.com/vitest-dev/vitest/issues/9167) [<samp>(da0ad)</samp>](https://github.com/vitest-dev/vitest/commit/da0ade249) - Avoid crashing on `process.versions` stub  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;9174](https://github.com/vitest-dev/vitest/issues/9174) [<samp>(78cfb)</samp>](https://github.com/vitest-dev/vitest/commit/78cfbf99a) - Reject calling suite function inside test  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9198](https://github.com/vitest-dev/vitest/issues/9198) [<samp>(1a259)</samp>](https://github.com/vitest-dev/vitest/commit/1a259c340) - Allow inlining fully dynamic import  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9137](https://github.com/vitest-dev/vitest/issues/9137) [<samp>(56851)</samp>](https://github.com/vitest-dev/vitest/commit/568513ca6) - Fix module graph UI on html reporter with headless browser mode  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9219](https://github.com/vitest-dev/vitest/issues/9219) [<samp>(60642)</samp>](https://github.com/vitest-dev/vitest/commit/60642b304) - Log deprecated `test.poolOptions` if it's set  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9226](https://github.com/vitest-dev/vitest/issues/9226) [<samp>(f7f6a)</samp>](https://github.com/vitest-dev/vitest/commit/f7f6aa8ba) - **browser**: - Import `recordArtifact` from the vitest package  -  by [@&#8203;macarie](https://github.com/macarie) in [#&#8203;9186](https://github.com/vitest-dev/vitest/issues/9186) [<samp>(01c56)</samp>](https://github.com/vitest-dev/vitest/commit/01c56454d) - Fix `import.meta.env` define  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9205](https://github.com/vitest-dev/vitest/issues/9205) [<samp>(01a9a)</samp>](https://github.com/vitest-dev/vitest/commit/01a9a58d9) - String formatting bug when including placeholders in console.log  -  by [@&#8203;michael-debs](https://github.com/michael-debs) and [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9030](https://github.com/vitest-dev/vitest/issues/9030) and [#&#8203;9131](https://github.com/vitest-dev/vitest/issues/9131) [<samp>(84a30)</samp>](https://github.com/vitest-dev/vitest/commit/84a306210) - **coverage**: - Istanbul untested files source maps are off  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;9208](https://github.com/vitest-dev/vitest/issues/9208) [<samp>(372e8)</samp>](https://github.com/vitest-dev/vitest/commit/372e86fde) - **experimental**: - Export `setupEnvironment` for custom pools  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;9187](https://github.com/vitest-dev/vitest/issues/9187) [<samp>(5d26b)</samp>](https://github.com/vitest-dev/vitest/commit/5d26b87b0) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.15...v4.0.16) ### [`v4.0.15`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.15) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.14...v4.0.15) #####    🚀 Experimental Features - **cache**: Add opt-out on a plugin level, fix internal root cache  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9154](https://github.com/vitest-dev/vitest/issues/9154) [<samp>(a68f7)</samp>](https://github.com/vitest-dev/vitest/commit/a68f74e5e) - **reporters**: Print import duration breakdown  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9105](https://github.com/vitest-dev/vitest/issues/9105) [<samp>(122ff)</samp>](https://github.com/vitest-dev/vitest/commit/122ff321c) #####    🐞 Bug Fixes - Keep built-in id as is in bun and deno  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9117](https://github.com/vitest-dev/vitest/issues/9117) [<samp>(075ab)</samp>](https://github.com/vitest-dev/vitest/commit/075ab3520) - Use `optimizeDeps.rolldownOptions` to fix depreated warning + fix `ssr.external: true`  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9121](https://github.com/vitest-dev/vitest/issues/9121) [<samp>(fd8bd)</samp>](https://github.com/vitest-dev/vitest/commit/fd8bd6dee) - Fix external behavior with `deps.optimizer`  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9125](https://github.com/vitest-dev/vitest/issues/9125) [<samp>(4c754)</samp>](https://github.com/vitest-dev/vitest/commit/4c75492cc) - Very minor typo in "Chrome DevTools Protocol"  -  by [@&#8203;HowToTestFrontend](https://github.com/HowToTestFrontend) in [#&#8203;9146](https://github.com/vitest-dev/vitest/issues/9146) [<samp>(20997)</samp>](https://github.com/vitest-dev/vitest/commit/209976419) - **browser**: Run `toMatchScreenshot` only once when used with `expect.element`  -  by [@&#8203;macarie](https://github.com/macarie) in [#&#8203;9132](https://github.com/vitest-dev/vitest/issues/9132) [<samp>(0d2e7)</samp>](https://github.com/vitest-dev/vitest/commit/0d2e7e3e2) - **coverage**: Istanbul provider to not break source maps  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;9040](https://github.com/vitest-dev/vitest/issues/9040) [<samp>(e4ca9)</samp>](https://github.com/vitest-dev/vitest/commit/e4ca917f1) - **deps**: Update dependency tinyexec to v1  -  in [#&#8203;9122](https://github.com/vitest-dev/vitest/issues/9122) [<samp>(fd786)</samp>](https://github.com/vitest-dev/vitest/commit/fd7860222) - **docs**: Remove `--browser.provider` from docs  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9115](https://github.com/vitest-dev/vitest/issues/9115) [<samp>(120b3)</samp>](https://github.com/vitest-dev/vitest/commit/120b3dac1) - **expect**: Preserve `currentTestName` in extended matchers  -  by [@&#8203;macarie](https://github.com/macarie) in [#&#8203;9106](https://github.com/vitest-dev/vitest/issues/9106) [<samp>(e4345)</samp>](https://github.com/vitest-dev/vitest/commit/e43458e02) - **pool**: Terminate workers on `CTRL+c` forceful exits  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;9140](https://github.com/vitest-dev/vitest/issues/9140) [<samp>(d57d8)</samp>](https://github.com/vitest-dev/vitest/commit/d57d8bf0a) - **reporters**: Show project in github reporter  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9138](https://github.com/vitest-dev/vitest/issues/9138) [<samp>(bb65e)</samp>](https://github.com/vitest-dev/vitest/commit/bb65e15c7) - **spy**: Do not mock overriden method, if parent was automocked  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9116](https://github.com/vitest-dev/vitest/issues/9116) [<samp>(1a246)</samp>](https://github.com/vitest-dev/vitest/commit/1a24607b4) - **web-worker**: MessagePort objects passed to Worker.postMessage work when clone === "native"  -  by [@&#8203;whitphx](https://github.com/whitphx) in [#&#8203;9118](https://github.com/vitest-dev/vitest/issues/9118) [<samp>(deee8)</samp>](https://github.com/vitest-dev/vitest/commit/deee83e54) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.14...v4.0.15) ### [`v4.0.14`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.14) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.13...v4.0.14) #####    🚀 Experimental Features - **browser**: Expose `utils.configurePrettyDOM`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9103](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  -  by [@&#8203;macarie](https://github.com/macarie) in [#&#8203;9087](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  -  by [@&#8203;macarie](https://github.com/macarie) in [#&#8203;8813](https://github.com/vitest-dev/vitest/issues/8813) [<samp>(c37c2)</samp>](https://github.com/vitest-dev/vitest/commit/c37c2eb0b) #####    🐞 Bug Fixes - Externalize before caching  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9077](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  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9097](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`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9091](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  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;9088](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 [#&#8203;9018](https://github.com/vitest-dev/vitest/issues/9018)  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9072](https://github.com/vitest-dev/vitest/issues/9072) and [#&#8203;9018](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  -  by [@&#8203;aicest](https://github.com/aicest) in [#&#8203;9096](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  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9099](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  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9090](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  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;9085](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  -  by [@&#8203;whitphx](https://github.com/whitphx) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;9078](https://github.com/vitest-dev/vitest/issues/9078) [<samp>(9d176)</samp>](https://github.com/vitest-dev/vitest/commit/9d1763d11) #####    🏎 Performance - Replace `debug` with `obug`  -  by [@&#8203;sxzz](https://github.com/sxzz) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;9057](https://github.com/vitest-dev/vitest/issues/9057) [<samp>(acc51)</samp>](https://github.com/vitest-dev/vitest/commit/acc5152b9) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.13...v4.0.14) ### [`v4.0.13`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.13) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.12...v4.0.13) #####    🐞 Bug Fixes - **types**: - Don't use type from Vite 7.1  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9071](https://github.com/vitest-dev/vitest/issues/9071) [<samp>(6356b)</samp>](https://github.com/vitest-dev/vitest/commit/6356b1d38) - Don't import node.js dependent types in vitest/browser  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9068](https://github.com/vitest-dev/vitest/issues/9068) [<samp>(332af)</samp>](https://github.com/vitest-dev/vitest/commit/332afa0de) #####    🏎 Performance - Avoid fetchModule roundtrip if the module is cached  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9075](https://github.com/vitest-dev/vitest/issues/9075) [<samp>(b27e0)</samp>](https://github.com/vitest-dev/vitest/commit/b27e002e5) - **experimental**: If `fsCacheModule` is enabled, read from the memory when possible  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9076](https://github.com/vitest-dev/vitest/issues/9076) [<samp>(6b9a1)</samp>](https://github.com/vitest-dev/vitest/commit/6b9a1b5b1) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.12...v4.0.13) ### [`v4.0.12`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.12) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.11...v4.0.12) #####    🐞 Bug Fixes - Inherit `fsModuleCachePath` by default  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9063](https://github.com/vitest-dev/vitest/issues/9063) [<samp>(9a8bc)</samp>](https://github.com/vitest-dev/vitest/commit/9a8bc78c5) - Don't import from `@opentelemetry/api` in public types  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9066](https://github.com/vitest-dev/vitest/issues/9066) [<samp>(e944a)</samp>](https://github.com/vitest-dev/vitest/commit/e944a37b7) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.11...v4.0.12) ### [`v4.0.11`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.11) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.10...v4.0.11) #####    🚀 Experimental Features - **api**: Add extensible test artifact API  -  by [@&#8203;macarie](https://github.com/macarie) in [#&#8203;8987](https://github.com/vitest-dev/vitest/issues/8987) [<samp>(77292)</samp>](https://github.com/vitest-dev/vitest/commit/772923645) - See more at <https://vitest.dev/api/advanced/artifacts> - **expect**: Provide `task` in `MatchState`  -  by [@&#8203;macarie](https://github.com/macarie) in [#&#8203;9022](https://github.com/vitest-dev/vitest/issues/9022) [<samp>(afd1f)</samp>](https://github.com/vitest-dev/vitest/commit/afd1f3e52) - **experimental**: Support OpenTelemetry traces  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8994](https://github.com/vitest-dev/vitest/issues/8994) [<samp>(d6d33)</samp>](https://github.com/vitest-dev/vitest/commit/d6d3359dd) - See more at <https://vitest.dev/guide/open-telemetry> #####    🏎 Performance - **experimental**: Add file system cache  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9026](https://github.com/vitest-dev/vitest/issues/9026) [<samp>(1b147)</samp>](https://github.com/vitest-dev/vitest/commit/1b1473712) - See more at <https://vitest.dev/config/experimental#experimental-fsmodulecache> #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.10...v4.0.11) ### [`v4.0.10`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.10) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.9...v4.0.10) #####    🐞 Bug Fixes - Remove `onCancel` when worker is terminated  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9033](https://github.com/vitest-dev/vitest/issues/9033) [<samp>(6d7f0)</samp>](https://github.com/vitest-dev/vitest/commit/6d7f0a99e) - **browser**: - Don't scale the iframe if UI is disabled  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9018](https://github.com/vitest-dev/vitest/issues/9018) [<samp>(5406e)</samp>](https://github.com/vitest-dev/vitest/commit/5406e8ea4) - Handle dependency stack traces with external source maps. Resolves: [#&#8203;9003](https://github.com/vitest-dev/vitest/issues/9003)  -  by [@&#8203;iclectic](https://github.com/iclectic) in [#&#8203;9016](https://github.com/vitest-dev/vitest/issues/9016) and [#&#8203;9003](https://github.com/vitest-dev/vitest/issues/9003) [<samp>(57ae5)</samp>](https://github.com/vitest-dev/vitest/commit/57ae547de) - **bun**: - Parsing of stack trace for bun runtime  -  by [@&#8203;nazarhussain](https://github.com/nazarhussain) in [#&#8203;9032](https://github.com/vitest-dev/vitest/issues/9032) [<samp>(f3ec6)</samp>](https://github.com/vitest-dev/vitest/commit/f3ec6fcb0) - **core**: - Prevent starting new run when cancelling  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8991](https://github.com/vitest-dev/vitest/issues/8991) [<samp>(eb98d)</samp>](https://github.com/vitest-dev/vitest/commit/eb98dd8fd) - **pool**: - Prevent writing to closed worker  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9023](https://github.com/vitest-dev/vitest/issues/9023) [<samp>(042c6)</samp>](https://github.com/vitest-dev/vitest/commit/042c60c80) - **reporters**: - Report correct test run duration at the end  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8969](https://github.com/vitest-dev/vitest/issues/8969) [<samp>(bc3a6)</samp>](https://github.com/vitest-dev/vitest/commit/bc3a6921e) - **ui**: - Use execution time from ws reporter (`onFinished`)  -  by [@&#8203;userquin](https://github.com/userquin) in [#&#8203;8975](https://github.com/vitest-dev/vitest/issues/8975) [<samp>(f56dc)</samp>](https://github.com/vitest-dev/vitest/commit/f56dc0cc4) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.9...v4.0.10) ### [`v4.0.9`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.9) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.8...v4.0.9) #####    🚀 Experimental Features - **expect**: Add Set support to toBeOneOf  -  by [@&#8203;tim-we](https://github.com/tim-we) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8906](https://github.com/vitest-dev/vitest/issues/8906) [<samp>(a415d)</samp>](https://github.com/vitest-dev/vitest/commit/a415d0375) #####    🐞 Bug Fixes - **browser**: Add favicon icons to the browser mode ui  -  by [@&#8203;userquin](https://github.com/userquin) in [#&#8203;8972](https://github.com/vitest-dev/vitest/issues/8972) [<samp>(353ee)</samp>](https://github.com/vitest-dev/vitest/commit/353ee5bbc) - **forks**: Increase worker start timeout  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;9027](https://github.com/vitest-dev/vitest/issues/9027) [<samp>(5e750)</samp>](https://github.com/vitest-dev/vitest/commit/5e750f4ba) - **jsdom**: Cloned request is an instance of `Request`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8985](https://github.com/vitest-dev/vitest/issues/8985) [<samp>(506a9)</samp>](https://github.com/vitest-dev/vitest/commit/506a9fd0f) - **ui**: Collect file/suite/test duration correctly  -  by [@&#8203;userquin](https://github.com/userquin) in [#&#8203;8976](https://github.com/vitest-dev/vitest/issues/8976) [<samp>(8016d)</samp>](https://github.com/vitest-dev/vitest/commit/8016da886) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.8...v4.0.9) ### [`v4.0.8`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.8) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.7...v4.0.8) #####    🐞 Bug Fixes - Workaround `noExternal` merging bug on Vite 6  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;8950](https://github.com/vitest-dev/vitest/issues/8950) [<samp>(bcb13)</samp>](https://github.com/vitest-dev/vitest/commit/bcb132fd4) - Missed context.d.ts file  -  by [@&#8203;termorey](https://github.com/termorey) in [#&#8203;8965](https://github.com/vitest-dev/vitest/issues/8965) [<samp>(9044d)</samp>](https://github.com/vitest-dev/vitest/commit/9044d9356) - Incorrect error message for non-awaited `expect.element()`  -  by [@&#8203;StyleShit](https://github.com/StyleShit) in [#&#8203;8954](https://github.com/vitest-dev/vitest/issues/8954) [<samp>(9638d)</samp>](https://github.com/vitest-dev/vitest/commit/9638db0f3) - **browser**: Cleanup frame-ancestors from CSP header at coverage middleware  -  by [@&#8203;userquin](https://github.com/userquin) in [#&#8203;8941](https://github.com/vitest-dev/vitest/issues/8941) [<samp>(1f730)</samp>](https://github.com/vitest-dev/vitest/commit/1f7303738) - **deps**: Update all non-major dependencies  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8636](https://github.com/vitest-dev/vitest/issues/8636) [<samp>(da8b9)</samp>](https://github.com/vitest-dev/vitest/commit/da8b93aa5) - **forks**: Do not fail with Windows Defender enabled  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8967](https://github.com/vitest-dev/vitest/issues/8967) [<samp>(c79f4)</samp>](https://github.com/vitest-dev/vitest/commit/c79f47c65) - **runner**: Properly encode Uint8Array body in annotations  -  by [@&#8203;Livan-pro](https://github.com/Livan-pro) in [#&#8203;8951](https://github.com/vitest-dev/vitest/issues/8951) [<samp>(997ca)</samp>](https://github.com/vitest-dev/vitest/commit/997ca5a82) - **spy**: Copy static properties if spy is initialised with `vi.fn()`, fix types for `vi.spyOn(obj, class)`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8956](https://github.com/vitest-dev/vitest/issues/8956) [<samp>(75e7f)</samp>](https://github.com/vitest-dev/vitest/commit/75e7fcc51) - **webdriverio**: When no argument is passed to the .click interaction command, the webdriver command should also have no argument  -  by [@&#8203;julienw](https://github.com/julienw) in [#&#8203;8937](https://github.com/vitest-dev/vitest/issues/8937) [<samp>(069e6)</samp>](https://github.com/vitest-dev/vitest/commit/069e6db9b) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.7...v4.0.8) ### [`v4.0.7`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.7) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.6...v4.0.7) #####    🐞 Bug Fixes - Bind `process` in case global is overwritten  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8916](https://github.com/vitest-dev/vitest/issues/8916) [<samp>(6240d)</samp>](https://github.com/vitest-dev/vitest/commit/6240d51a6) - Create environment once per worker with `isolate: false`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8915](https://github.com/vitest-dev/vitest/issues/8915) [<samp>(c9078)</samp>](https://github.com/vitest-dev/vitest/commit/c9078a26e) - Add Locator as a possible element type in `toContainElement()` matcher  -  by [@&#8203;vitalybaev](https://github.com/vitalybaev) in [#&#8203;8910](https://github.com/vitest-dev/vitest/issues/8910) and [#&#8203;8927](https://github.com/vitest-dev/vitest/issues/8927) [<samp>(35a27)</samp>](https://github.com/vitest-dev/vitest/commit/35a27d4b3) - **browser**: Inherit `isolate` option, deprecate `browser.isolate`/`browser.fileParallelism`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8890](https://github.com/vitest-dev/vitest/issues/8890) [<samp>(9d2b4)</samp>](https://github.com/vitest-dev/vitest/commit/9d2b4d501) - **cli**: Parse `--execArgv` as array  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8924](https://github.com/vitest-dev/vitest/issues/8924) [<samp>(751c3)</samp>](https://github.com/vitest-dev/vitest/commit/751c3926f) - **jsdom**: Support `URL.createObjectURL`, `FormData.set(prop, blob)`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8935](https://github.com/vitest-dev/vitest/issues/8935) [<samp>(a1b73)</samp>](https://github.com/vitest-dev/vitest/commit/a1b7361ab) - **pool**: Avoid `--require` argument when running in deno  -  by [@&#8203;pi0](https://github.com/pi0) in [#&#8203;8897](https://github.com/vitest-dev/vitest/issues/8897) [<samp>(d41fa)</samp>](https://github.com/vitest-dev/vitest/commit/d41fa742f) - **typecheck**: Handle re-runs outside `tsc`  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8920](https://github.com/vitest-dev/vitest/issues/8920) [<samp>(fdb2e)</samp>](https://github.com/vitest-dev/vitest/commit/fdb2e7982) #####    🏎 Performance - **pool**: - Sort test files by project by default  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8914](https://github.com/vitest-dev/vitest/issues/8914) [<samp>(680a6)</samp>](https://github.com/vitest-dev/vitest/commit/680a612ea) - **reporters**: - Optimize getting the tests stats  -  by [@&#8203;Connormiha](https://github.com/Connormiha) in [#&#8203;8908](https://github.com/vitest-dev/vitest/issues/8908) [<samp>(06d62)</samp>](https://github.com/vitest-dev/vitest/commit/06d6207fb) - Remove unnecessary `Array.from` call  -  by [@&#8203;Connormiha](https://github.com/Connormiha) in [#&#8203;8907](https://github.com/vitest-dev/vitest/issues/8907) [<samp>(b6014)</samp>](https://github.com/vitest-dev/vitest/commit/b60149b27) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.6...v4.0.7) ### [`v4.0.6`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.6) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.5...v4.0.6) #####    🐞 Bug Fixes - Don't merge errors with different diffs for reporting  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;8871](https://github.com/vitest-dev/vitest/issues/8871) [<samp>(3e19f)</samp>](https://github.com/vitest-dev/vitest/commit/3e19f27d0) - Do not throw when importing a type from an external package  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8875](https://github.com/vitest-dev/vitest/issues/8875) [<samp>(7e6c3)</samp>](https://github.com/vitest-dev/vitest/commit/7e6c37ae5) - Improve spying types  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8878](https://github.com/vitest-dev/vitest/issues/8878) [<samp>(ca041)</samp>](https://github.com/vitest-dev/vitest/commit/ca041f51a) - Reuse the same environment when `isolate` and `fileParallelism` are false  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8889](https://github.com/vitest-dev/vitest/issues/8889) [<samp>(31706)</samp>](https://github.com/vitest-dev/vitest/commit/31706dfe5) - **browser**: - Support module tracking  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8877](https://github.com/vitest-dev/vitest/issues/8877) [<samp>(9e24a)</samp>](https://github.com/vitest-dev/vitest/commit/9e24a59f2) - Ensure setup files are re-evaluated on each test run  -  by [@&#8203;yjaaidi](https://github.com/yjaaidi) in [#&#8203;8883](https://github.com/vitest-dev/vitest/issues/8883) and [#&#8203;8884](https://github.com/vitest-dev/vitest/issues/8884) [<samp>(f50ea)</samp>](https://github.com/vitest-dev/vitest/commit/f50ea7a25) - **coverage**: - Prevent filtering out virtual files before remapping to sources  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8860](https://github.com/vitest-dev/vitest/issues/8860) [<samp>(e3b77)</samp>](https://github.com/vitest-dev/vitest/commit/e3b777550) - **happy-dom**: - Properly teardown additional keys  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8888](https://github.com/vitest-dev/vitest/issues/8888) [<samp>(10a06)</samp>](https://github.com/vitest-dev/vitest/commit/10a06d8c9) - **jsdom**: - Pass down Node.js `FormData` to `Request`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8880](https://github.com/vitest-dev/vitest/issues/8880) [<samp>(197ca)</samp>](https://github.com/vitest-dev/vitest/commit/197caf2f9) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.5...v4.0.6) ### [`v4.0.5`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.5) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.4...v4.0.5) #####    🐞 Bug Fixes - Respect `ssr.noExternal` when externalizing dependencies, fix Svelte and Astro  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8862](https://github.com/vitest-dev/vitest/issues/8862) [<samp>(a4f86)</samp>](https://github.com/vitest-dev/vitest/commit/a4f86f1ba) - Allow module in --config  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8864](https://github.com/vitest-dev/vitest/issues/8864) [<samp>(b9521)</samp>](https://github.com/vitest-dev/vitest/commit/b9521e0c2) - **browser**: Allow `Locator` type in selectOptions element parameter  -  by [@&#8203;rzzf](https://github.com/rzzf) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8848](https://github.com/vitest-dev/vitest/issues/8848) [<samp>(7ee28)</samp>](https://github.com/vitest-dev/vitest/commit/7ee283c96) - **module-runner**: Don't return node builtins for `getBuiltins` unconditionally  -  by [@&#8203;sapphi-red](https://github.com/sapphi-red) in [#&#8203;8863](https://github.com/vitest-dev/vitest/issues/8863) [<samp>(0e858)</samp>](https://github.com/vitest-dev/vitest/commit/0e858bab4) - **pool**: Rename `groupId` to `groupOrder` in error message  -  by [@&#8203;Yohannfra](https://github.com/Yohannfra) in [#&#8203;8856](https://github.com/vitest-dev/vitest/issues/8856) [<samp>(b9aab)</samp>](https://github.com/vitest-dev/vitest/commit/b9aabf4e6) #####    🏎 Performance - Pass testfiles at once when `--no-isolate --maxWorkers=1`  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8835](https://github.com/vitest-dev/vitest/issues/8835) [<samp>(584aa)</samp>](https://github.com/vitest-dev/vitest/commit/584aa7148) - **expect**: Optimize checking the input type  -  by [@&#8203;Connormiha](https://github.com/Connormiha) in [#&#8203;8840](https://github.com/vitest-dev/vitest/issues/8840) [<samp>(06968)</samp>](https://github.com/vitest-dev/vitest/commit/0696898b4) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.4...v4.0.5) ### [`v4.0.4`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.4) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.3...v4.0.4) #####    🐞 Bug Fixes - **browser**: - Correct typo  -  by [@&#8203;benmccann](https://github.com/benmccann) in [#&#8203;8796](https://github.com/vitest-dev/vitest/issues/8796) [<samp>(ede1f)</samp>](https://github.com/vitest-dev/vitest/commit/ede1f39d6) - Publish a missing context file for webdriverio  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8824](https://github.com/vitest-dev/vitest/issues/8824) [<samp>(7c7b6)</samp>](https://github.com/vitest-dev/vitest/commit/7c7b6f0b1) - **mocker**: - Support mocking builtins without `node:` prefix  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8829](https://github.com/vitest-dev/vitest/issues/8829) [<samp>(06208)</samp>](https://github.com/vitest-dev/vitest/commit/06208d30b) - **pool**: - Runner's error listener causing `MaxListenersExceededWarning`  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8820](https://github.com/vitest-dev/vitest/issues/8820) [<samp>(d1bff)</samp>](https://github.com/vitest-dev/vitest/commit/d1bff3bb3) - Capture workers `stdio` to logger  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8809](https://github.com/vitest-dev/vitest/issues/8809) [<samp>(fb95f)</samp>](https://github.com/vitest-dev/vitest/commit/fb95fc736) - **spy**: - Allow classes in `vi.mocked` utility  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8839](https://github.com/vitest-dev/vitest/issues/8839) [<samp>(f8756)</samp>](https://github.com/vitest-dev/vitest/commit/f87568d64) - **worker**: - Rpc listener leak when `isolate: false`  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8821](https://github.com/vitest-dev/vitest/issues/8821) [<samp>(573dc)</samp>](https://github.com/vitest-dev/vitest/commit/573dc06fe) #####    🏎 Performance - **utils**: Optimized reducer to avoid creating new objects  -  by [@&#8203;Connormiha](https://github.com/Connormiha) in [#&#8203;8818](https://github.com/vitest-dev/vitest/issues/8818) [<samp>(d19ce)</samp>](https://github.com/vitest-dev/vitest/commit/d19cece3a) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.3...v4.0.4) ### [`v4.0.3`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.3) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.2...v4.0.3) #####    🐞 Bug Fixes - Preserve reporter options from config when CLI reporters override them  -  by [@&#8203;Copilot](https://github.com/Copilot) and **sheremet-va** in [#&#8203;8794](https://github.com/vitest-dev/vitest/issues/8794) [<samp>(15552)</samp>](https://github.com/vitest-dev/vitest/commit/155521a85) - **browser**: More stable in-source testing validation  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8793](https://github.com/vitest-dev/vitest/issues/8793) [<samp>(62297)</samp>](https://github.com/vitest-dev/vitest/commit/622977e61) - **happy-dom**: Support fetch globals  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8791](https://github.com/vitest-dev/vitest/issues/8791) [<samp>(0fb74)</samp>](https://github.com/vitest-dev/vitest/commit/0fb74bd3b) - **init**: Use correct jsx/tsx extension  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8792](https://github.com/vitest-dev/vitest/issues/8792) [<samp>(abc04)</samp>](https://github.com/vitest-dev/vitest/commit/abc046f95) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.2...v4.0.3) ### [`v4.0.2`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.2) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.1...v4.0.2) #####    🐞 Bug Fixes - **browser**: - Don't print the deprecation notice in node\_modules  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8779](https://github.com/vitest-dev/vitest/issues/8779) [<samp>(588f7)</samp>](https://github.com/vitest-dev/vitest/commit/588f76858) - **pool**: - Assign envs before running tests to keep in sync with process.env  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8769](https://github.com/vitest-dev/vitest/issues/8769) [<samp>(26ce8)</samp>](https://github.com/vitest-dev/vitest/commit/26ce88db6) - **spy**: - Properly inherit implementation's `length`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8778](https://github.com/vitest-dev/vitest/issues/8778) [<samp>(d4c2b)</samp>](https://github.com/vitest-dev/vitest/commit/d4c2b280b) - Reset spies if both `restoreMocks` and `mockReset` are set in the config  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8781](https://github.com/vitest-dev/vitest/issues/8781) [<samp>(2eedb)</samp>](https://github.com/vitest-dev/vitest/commit/2eedbce76) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.1...v4.0.2) ### [`v4.0.1`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.1) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.0...v4.0.1) #####    🐞 Bug Fixes - Move the `getBuiltins` check  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8765](https://github.com/vitest-dev/vitest/issues/8765) [<samp>(81000)</samp>](https://github.com/vitest-dev/vitest/commit/81000631d) - **pool**: Don't teardown the communication channel too soon if something is running after the test  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8767](https://github.com/vitest-dev/vitest/issues/8767) [<samp>(3fae7)</samp>](https://github.com/vitest-dev/vitest/commit/3fae73e2e) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.0...v4.0.1) ### [`v4.0.0`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.0) [Compare Source](https://github.com/vitest-dev/vitest/compare/v3.2.7...v4.0.0) Vitest 4.0 is out! To stay updated, read our [blog post](https://vitest.dev/blog/vitest-4) and check the [migration guide](https://vitest.dev/guide/migration). #####    🚨 Breaking Changes - Remove `'basic'` reporter  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7884](https://github.com/vitest-dev/vitest/issues/7884) [<samp>(82fcf)</samp>](https://github.com/vitest-dev/vitest/commit/82fcf5d53) - Simplify default exclude pattern  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6287](https://github.com/vitest-dev/vitest/issues/6287) [<samp>(14c50)</samp>](https://github.com/vitest-dev/vitest/commit/14c507200) - Remove deprecated getSourceMap  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8194](https://github.com/vitest-dev/vitest/issues/8194) [<samp>(ff934)</samp>](https://github.com/vitest-dev/vitest/commit/ff93444f8) - Replace deprecated ErrorWithDiff with TestError  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8195](https://github.com/vitest-dev/vitest/issues/8195) [<samp>(da59e)</samp>](https://github.com/vitest-dev/vitest/commit/da59eb887) - Remove UserConfig type in favor of ViteUserConfig  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8196](https://github.com/vitest-dev/vitest/issues/8196) [<samp>(22f7f)</samp>](https://github.com/vitest-dev/vitest/commit/22f7f2db5) - Remove deprecated coverage options in favor of `vitest/node` exports  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8197](https://github.com/vitest-dev/vitest/issues/8197) [<samp>(dc848)</samp>](https://github.com/vitest-dev/vitest/commit/dc8486d22) - Remove deprecated internal helpers and environment exports  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8198](https://github.com/vitest-dev/vitest/issues/8198) [<samp>(4703c)</samp>](https://github.com/vitest-dev/vitest/commit/4703cf850) - Remove deprecated typecheck and runner types  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8199](https://github.com/vitest-dev/vitest/issues/8199) [<samp>(89a1c)</samp>](https://github.com/vitest-dev/vitest/commit/89a1cb626) - Remove Node types from the main entry point, use `vitest/node` instead  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8200](https://github.com/vitest-dev/vitest/issues/8200) [<samp>(1e60c)</samp>](https://github.com/vitest-dev/vitest/commit/1e60c4f44) - Remove support for Vite 5  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8202](https://github.com/vitest-dev/vitest/issues/8202) [<samp>(cb8b0)</samp>](https://github.com/vitest-dev/vitest/commit/cb8b03bac) - Remove deprecated types  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8203](https://github.com/vitest-dev/vitest/issues/8203) [<samp>(66bee)</samp>](https://github.com/vitest-dev/vitest/commit/66bee836f) - Remove deprecated environmentMatchGlobs and poolMatchGlobs  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8205](https://github.com/vitest-dev/vitest/issues/8205) [<samp>(be11d)</samp>](https://github.com/vitest-dev/vitest/commit/be11d374c) - Remove deprecated `workspace` option in favor of `projects`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8218](https://github.com/vitest-dev/vitest/issues/8218) [<samp>(76fb7)</samp>](https://github.com/vitest-dev/vitest/commit/76fb75d42) - Ignore `--standalone` when CLI filename filter is used  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8262](https://github.com/vitest-dev/vitest/issues/8262) [<samp>(013bf)</samp>](https://github.com/vitest-dev/vitest/commit/013bf2cb2) - Use module-runner instead of vite-node  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8208](https://github.com/vitest-dev/vitest/issues/8208) [<samp>(9be01)</samp>](https://github.com/vitest-dev/vitest/commit/9be01ba59) - Rewrite spying implementation to make module mocking more intuitive  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8363](https://github.com/vitest-dev/vitest/issues/8363) [<samp>(9e412)</samp>](https://github.com/vitest-dev/vitest/commit/9e412de35) - Remove deprecated APIs  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8428](https://github.com/vitest-dev/vitest/issues/8428) [<samp>(a1cb9)</samp>](https://github.com/vitest-dev/vitest/commit/a1cb9719a) - Remove `minWorkers` and set it automatically to 0 in non watch mode  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8454](https://github.com/vitest-dev/vitest/issues/8454) [<samp>(2c2d1)</samp>](https://github.com/vitest-dev/vitest/commit/2c2d1d4ce) - Verbose reporter prints tests in a list, introduce `tree` reporter  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8500](https://github.com/vitest-dev/vitest/issues/8500) [<samp>(25fd3)</samp>](https://github.com/vitest-dev/vitest/commit/25fd32bf0) - Include shadow root contents in pretty-format output  -  by [@&#8203;wkillerud](https://github.com/wkillerud) in [#&#8203;8545](https://github.com/vitest-dev/vitest/issues/8545) [<samp>(9e722)</samp>](https://github.com/vitest-dev/vitest/commit/9e722834a) - Remove deprecated order from test() API  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8594](https://github.com/vitest-dev/vitest/issues/8594) [<samp>(4d419)</samp>](https://github.com/vitest-dev/vitest/commit/4d41928c6) - Rewrite pools without `tinypool`  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8705](https://github.com/vitest-dev/vitest/issues/8705) [<samp>(4822d)</samp>](https://github.com/vitest-dev/vitest/commit/4822d047a) - **browser**: Require a provider factory instead of a string  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8445](https://github.com/vitest-dev/vitest/issues/8445) [<samp>(606cb)</samp>](https://github.com/vitest-dev/vitest/commit/606cb9e3e) - **expect**: Pass current equality testers to asymmetric matcher  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6825](https://github.com/vitest-dev/vitest/issues/6825) [<samp>(965ce)</samp>](https://github.com/vitest-dev/vitest/commit/965cefc19) - **projects**: Allow only files that have "vitest.config" or "vite.config" in the name  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8542](https://github.com/vitest-dev/vitest/issues/8542) [<samp>(304bc)</samp>](https://github.com/vitest-dev/vitest/commit/304bc20f0) - **reporter**: Remove deprecated APIs  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8223](https://github.com/vitest-dev/vitest/issues/8223) [<samp>(149f8)</samp>](https://github.com/vitest-dev/vitest/commit/149f8e509) - **runner**: Set mode to `todo` if no function is passed down to `test` or `describe`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8346](https://github.com/vitest-dev/vitest/issues/8346) [<samp>(1a81c)</samp>](https://github.com/vitest-dev/vitest/commit/1a81c21d2) - **snapshot**: Fail test with obsolete snapshot on CI  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7963](https://github.com/vitest-dev/vitest/issues/7963) [<samp>(4d84f)</samp>](https://github.com/vitest-dev/vitest/commit/4d84f0ac6) - **spy**: Support spying on classes  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6160](https://github.com/vitest-dev/vitest/issues/6160) [<samp>(abc0d)</samp>](https://github.com/vitest-dev/vitest/commit/abc0d8273) #####    🚀 Features - Provide entity to onConsoleLog  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8159](https://github.com/vitest-dev/vitest/issues/8159) [<samp>(437d4)</samp>](https://github.com/vitest-dev/vitest/commit/437d461aa) - Add `onUnhandledError` callback  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8162](https://github.com/vitest-dev/vitest/issues/8162) [<samp>(924cb)</samp>](https://github.com/vitest-dev/vitest/commit/924cb6961) - Add spy option to vi.mockObject  -  by [@&#8203;rChaoz](https://github.com/rChaoz) in [#&#8203;8285](https://github.com/vitest-dev/vitest/issues/8285) [<samp>(81d76)</samp>](https://github.com/vitest-dev/vitest/commit/81d7601e4) - Don't use vite-node in coverage packages  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) [<samp>(ffdb4)</samp>](https://github.com/vitest-dev/vitest/commit/ffdb4d5fd) - Clickable dashboard numbers  -  by [@&#8203;shairez](https://github.com/shairez) in [#&#8203;7406](https://github.com/vitest-dev/vitest/issues/7406) [<samp>(2344c)</samp>](https://github.com/vitest-dev/vitest/commit/2344c1f6e) - Display test "path" when filtering  -  by [@&#8203;userquin](https://github.com/userquin) in [#&#8203;8547](https://github.com/vitest-dev/vitest/issues/8547) [<samp>(2e491)</samp>](https://github.com/vitest-dev/vitest/commit/2e4918954) - Introduce separate packages for browser mode providers  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8629](https://github.com/vitest-dev/vitest/issues/8629) [<samp>(0dc93)</samp>](https://github.com/vitest-dev/vitest/commit/0dc93ea98) - Add hooks with type-safe extra context to TestAPI  -  by [@&#8203;ysfaran](https://github.com/ysfaran) in [#&#8203;8623](https://github.com/vitest-dev/vitest/issues/8623) [<samp>(6b21c)</samp>](https://github.com/vitest-dev/vitest/commit/6b21cfe55) - Support `expect.assert` for type narrowing  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8695](https://github.com/vitest-dev/vitest/issues/8695) [<samp>(fe589)</samp>](https://github.com/vitest-dev/vitest/commit/fe5895d2b) - Add `displayAnnotations` option to `github-options`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8706](https://github.com/vitest-dev/vitest/issues/8706) [<samp>(4a66d)</samp>](https://github.com/vitest-dev/vitest/commit/4a66df625) - Add schema validation matchers  -  by [@&#8203;zirkelc](https://github.com/zirkelc) in [#&#8203;8527](https://github.com/vitest-dev/vitest/issues/8527) [<samp>(c0b25)</samp>](https://github.com/vitest-dev/vitest/commit/c0b250e5c) - Add a way to dump transformed content  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8711](https://github.com/vitest-dev/vitest/issues/8711) [<samp>(931c0)</samp>](https://github.com/vitest-dev/vitest/commit/931c0ee63) - **api**: - Expose `experimental_parseSpecifications`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8408](https://github.com/vitest-dev/vitest/issues/8408) [<samp>(fdeb2)</samp>](https://github.com/vitest-dev/vitest/commit/fdeb2f482) - Expose Vitest watcher  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8413](https://github.com/vitest-dev/vitest/issues/8413) [<samp>(aaa6e)</samp>](https://github.com/vitest-dev/vitest/commit/aaa6e6512) - Add `enableCoverage` and `disableCoverage` methods  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8412](https://github.com/vitest-dev/vitest/issues/8412) [<samp>(61eb7)</samp>](https://github.com/vitest-dev/vitest/commit/61eb7dd9c) - Add `getGlobalTestNamePattern` method  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8438](https://github.com/vitest-dev/vitest/issues/8438) [<samp>(bdb70)</samp>](https://github.com/vitest-dev/vitest/commit/bdb7067f1) - Add `relativeModuleId` to `TestModule`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8505](https://github.com/vitest-dev/vitest/issues/8505) [<samp>(3be09)</samp>](https://github.com/vitest-dev/vitest/commit/3be0986aa) - Add `getSeed` method  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8592](https://github.com/vitest-dev/vitest/issues/8592) [<samp>(438c4)</samp>](https://github.com/vitest-dev/vitest/commit/438c44e7f) - **browser**: - Support `toBeInViewport` utility method to assert element is in viewport or not  -  by [@&#8203;Shinyaigeek](https://github.com/Shinyaigeek) in [#&#8203;8234](https://github.com/vitest-dev/vitest/issues/8234) [<samp>(ceed5)</samp>](https://github.com/vitest-dev/vitest/commit/ceed5b622) - Add qwik to the `vitest init` cli command  -  by [@&#8203;thejackshelton](https://github.com/thejackshelton) in [#&#8203;8330](https://github.com/vitest-dev/vitest/issues/8330) [<samp>(1638b)</samp>](https://github.com/vitest-dev/vitest/commit/1638b44e8) - Introduce `toMatchScreenshot` for Visual Regression Testing  -  by [@&#8203;macarie](https://github.com/macarie) in [#&#8203;8041](https://github.com/vitest-dev/vitest/issues/8041) [<samp>(d45f9)</samp>](https://github.com/vitest-dev/vitest/commit/d45f964c1) - Add `trackUnhandledErrors` option  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8386](https://github.com/vitest-dev/vitest/issues/8386) [<samp>(c0ec0)</samp>](https://github.com/vitest-dev/vitest/commit/c0ec08a90) - Support iframe locator with playwright provider  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8016](https://github.com/vitest-dev/vitest/issues/8016) [<samp>(57b2c)</samp>](https://github.com/vitest-dev/vitest/commit/57b2cca2e) - Add `length` property to locators, `toHaveLength` now accepts locators  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8512](https://github.com/vitest-dev/vitest/issues/8512) [<samp>(2308c)</samp>](https://github.com/vitest-dev/vitest/commit/2308cbf13) - Support playwright tracing  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8584](https://github.com/vitest-dev/vitest/issues/8584) [<samp>(1aac5)</samp>](https://github.com/vitest-dev/vitest/commit/1aac59cd2) - Expose `options` on `BrowserProviderOption`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8609](https://github.com/vitest-dev/vitest/issues/8609) [<samp>(0d0e5)</samp>](https://github.com/vitest-dev/vitest/commit/0d0e5cdf6) - Support `--inspect` option in webdriverio  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8613](https://github.com/vitest-dev/vitest/issues/8613) [<samp>(38adc)</samp>](https://github.com/vitest-dev/vitest/commit/38adc86cf) - Support custom screenshot comparison algorithms  -  by [@&#8203;macarie](https://github.com/macarie) in [#&#8203;8687](https://github.com/vitest-dev/vitest/issues/8687) [<samp>(e63b1)</samp>](https://github.com/vitest-dev/vitest/commit/e63b17efc) - **coverage**: - `autoUpdate` to support percentage formatting  -  by [@&#8203;Battjmo](https://github.com/Battjmo) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8456](https://github.com/vitest-dev/vitest/issues/8456) [<samp>(99e01)</samp>](https://github.com/vitest-dev/vitest/commit/99e016bec) - **expect**: - Support `toBeNullable` expect function to check provided value is nullish  -  by [@&#8203;Shinyaigeek](https://github.com/Shinyaigeek) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8294](https://github.com/vitest-dev/vitest/issues/8294) [<samp>(eeec5)</samp>](https://github.com/vitest-dev/vitest/commit/eeec501de) - **mocker**: - Add `automocker` entry  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8301](https://github.com/vitest-dev/vitest/issues/8301) [<samp>(e9c92)</samp>](https://github.com/vitest-dev/vitest/commit/e9c928252) #####    🐞 Bug Fixes - Allow overriding globals in types  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8215](https://github.com/vitest-dev/vitest/issues/8215) [<samp>(2248b)</samp>](https://github.com/vitest-dev/vitest/commit/2248b06d4) - Remove unused dependencies  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8184](https://github.com/vitest-dev/vitest/issues/8184) [<samp>(feadc)</samp>](https://github.com/vitest-dev/vitest/commit/feadc60af) - Distribute test files to shards more evenly  -  by [@&#8203;Shinyaigeek](https://github.com/Shinyaigeek) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8288](https://github.com/vitest-dev/vitest/issues/8288) [<samp>(7b489)</samp>](https://github.com/vitest-dev/vitest/commit/7b489959a) - Use suite's timeout when `test.extend`  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8278](https://github.com/vitest-dev/vitest/issues/8278) [<samp>(43977)</samp>](https://github.com/vitest-dev/vitest/commit/43977c2b8) - Support snapshot with no object key sorting  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8136](https://github.com/vitest-dev/vitest/issues/8136) [<samp>(e85e3)</samp>](https://github.com/vitest-dev/vitest/commit/e85e396f0) - Annotation location always points to the test file  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8315](https://github.com/vitest-dev/vitest/issues/8315) [<samp>(88071)</samp>](https://github.com/vitest-dev/vitest/commit/88071a8f2) - Add `--changed` flag support to `vitest list` command  -  by [@&#8203;haakonjackfloat](https://github.com/haakonjackfloat) in [#&#8203;8270](https://github.com/vitest-dev/vitest/issues/8270) and [#&#8203;8272](https://github.com/vitest-dev/vitest/issues/8272) [<samp>(e71a5)</samp>](https://github.com/vitest-dev/vitest/commit/e71a5d0ec) - Prevent rpc timeout on slow thread blocking synchronous methods  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8297](https://github.com/vitest-dev/vitest/issues/8297) [<samp>(bea87)</samp>](https://github.com/vitest-dev/vitest/commit/bea874610) - Forbid setting environment to `browser`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8334](https://github.com/vitest-dev/vitest/issues/8334) [<samp>(0417a)</samp>](https://github.com/vitest-dev/vitest/commit/0417a2c1a) - Invalidate modules in all module graphs when the file is changed  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8352](https://github.com/vitest-dev/vitest/issues/8352) [<samp>(94ab3)</samp>](https://github.com/vitest-dev/vitest/commit/94ab392b3) - Screenshot masks with Playwright provider  -  by [@&#8203;macarie](https://github.com/macarie) in [#&#8203;8357](https://github.com/vitest-dev/vitest/issues/8357) [<samp>(459ef)</samp>](https://github.com/vitest-dev/vitest/commit/459efba6b) - Configure `oxc` instead of `esbuild` on `rolldown-vite`  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;8378](https://github.com/vitest-dev/vitest/issues/8378) [<samp>(e922e)</samp>](https://github.com/vitest-dev/vitest/commit/e922e9266) - Make sure test errors always have `stacks` property in Node.js context  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8392](https://github.com/vitest-dev/vitest/issues/8392) [<samp>(b825e)</samp>](https://github.com/vitest-dev/vitest/commit/b825ef87c) - Support `import.meta.resolve` on Vite 7  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;8493](https://github.com/vitest-dev/vitest/issues/8493) [<samp>(549d3)</samp>](https://github.com/vitest-dev/vitest/commit/549d321e2) - Show the assertion error first when `expect.poll` assertion fails  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8483](https://github.com/vitest-dev/vitest/issues/8483) [<samp>(fb450)</samp>](https://github.com/vitest-dev/vitest/commit/fb4500bec) - Override fake timers when `useFakeTimers` is called multiple times  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8504](https://github.com/vitest-dev/vitest/issues/8504) [<samp>(ed7e3)</samp>](https://github.com/vitest-dev/vitest/commit/ed7e3ad5d) - Custom expect messages for `expect.extend` matchers  -  by [@&#8203;lzl0304](https://github.com/lzl0304) in [#&#8203;8520](https://github.com/vitest-dev/vitest/issues/8520) [<samp>(96945)</samp>](https://github.com/vitest-dev/vitest/commit/969456b4a) - Process sourcemaps for stack traces from `globalSetup` files  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8534](https://github.com/vitest-dev/vitest/issues/8534) [<samp>(8978a)</samp>](https://github.com/vitest-dev/vitest/commit/8978a23b7) - Resolve performance issue when throwing errors with stackTraceLimit = 0  -  by [@&#8203;Copilot](https://github.com/Copilot), **sheremet-va** and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8531](https://github.com/vitest-dev/vitest/issues/8531) [<samp>(6d5b5)</samp>](https://github.com/vitest-dev/vitest/commit/6d5b5b1a5) - Avoid recursively applying `$` and `%` formatting to `test.for/each` title  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;8557](https://github.com/vitest-dev/vitest/issues/8557) [<samp>(ea6d7)</samp>](https://github.com/vitest-dev/vitest/commit/ea6d7322e) - Replace wildcard exports `"./*"` with specific files in vitest package  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;8560](https://github.com/vitest-dev/vitest/issues/8560) [<samp>(ce746)</samp>](https://github.com/vitest-dev/vitest/commit/ce7466408) - Don't publish unused d.ts files  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8562](https://github.com/vitest-dev/vitest/issues/8562) [<samp>(42dfd)</samp>](https://github.com/vitest-dev/vitest/commit/42dfd1c43) - Remove loupe dependencies from `optimizeDeps.include` for browser mode  -  by [@&#8203;jake-danton](https://github.com/jake-danton) in [#&#8203;8570](https://github.com/vitest-dev/vitest/issues/8570) [<samp>(cdcf7)</samp>](https://github.com/vitest-dev/vitest/commit/cdcf7e854) - Update `engines` field to drop Node 18 support  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8608](https://github.com/vitest-dev/vitest/issues/8608) [<samp>(9a0bf)</samp>](https://github.com/vitest-dev/vitest/commit/9a0bf2254) - Correctly inherit test options on extended tests  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8618](https://github.com/vitest-dev/vitest/issues/8618) [<samp>(15c09)</samp>](https://github.com/vitest-dev/vitest/commit/15c091a99) - Update [@&#8203;types/node](https://github.com/types/node) peer deps  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) [<samp>(ee6b2)</samp>](https://github.com/vitest-dev/vitest/commit/ee6b27b5f) - Re-export CDP Session directly from playwright  -  by [@&#8203;mrginglymus](https://github.com/mrginglymus) in [#&#8203;8702](https://github.com/vitest-dev/vitest/issues/8702) [<samp>(9553a)</samp>](https://github.com/vitest-dev/vitest/commit/9553ab923) - Disable trackUnhandledErrors if inspector is enabled  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8732](https://github.com/vitest-dev/vitest/issues/8732) [<samp>(acac7)</samp>](https://github.com/vitest-dev/vitest/commit/acac7104d) - `base` option doesn't crash vitest  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8760](https://github.com/vitest-dev/vitest/issues/8760) [<samp>(9f0ec)</samp>](https://github.com/vitest-dev/vitest/commit/9f0ecccb8) - **browser**: - Run in-source tests only when the file itsels is a test file  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8204](https://github.com/vitest-dev/vitest/issues/8204) [<samp>(bdd2e)</samp>](https://github.com/vitest-dev/vitest/commit/bdd2e01c3) - `locator.element()` returns `HTMLElement` or `SVGElement`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8440](https://github.com/vitest-dev/vitest/issues/8440) [<samp>(c1ac1)</samp>](https://github.com/vitest-dev/vitest/commit/c1ac15c6b) - Don't import from `vite` directly  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8541](https://github.com/vitest-dev/vitest/issues/8541) [<samp>(d7fca)</samp>](https://github.com/vitest-dev/vitest/commit/d7fca0389) - Update expect.element type to match the implementation  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8597](https://github.com/vitest-dev/vitest/issues/8597) [<samp>(b2804)</samp>](https://github.com/vitest-dev/vitest/commit/b2804a1f9) - Throw an error if iframe is not accessible anymore  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8601](https://github.com/vitest-dev/vitest/issues/8601) [<samp>(6acdc)</samp>](https://github.com/vitest-dev/vitest/commit/6acdc3a5e) - Stop creating unnecessary directories when taking screenshots  -  by [@&#8203;macarie](https://github.com/macarie) in [#&#8203;8605](https://github.com/vitest-dev/vitest/issues/8605) [<samp>(b1c8f)</samp>](https://github.com/vitest-dev/vitest/commit/b1c8fdbe9) - Always define commands  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8626](https://github.com/vitest-dev/vitest/issues/8626) [<samp>(acbe0)</samp>](https://github.com/vitest-dev/vitest/commit/acbe0e973) - Exclude deprecated context import from optimization  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8658](https://github.com/vitest-dev/vitest/issues/8658) [<samp>(a96ea)</samp>](https://github.com/vitest-dev/vitest/commit/a96ea140e) - Allow importing BrowserCommand if no browser package is installed  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8666](https://github.com/vitest-dev/vitest/issues/8666) [<samp>(95c36)</samp>](https://github.com/vitest-dev/vitest/commit/95c367f5e) - Define an export for browser/utils  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8678](https://github.com/vitest-dev/vitest/issues/8678) [<samp>(529ab)</samp>](https://github.com/vitest-dev/vitest/commit/529ab46ac) - Allow service workers to mock the network in chromium without breaking vi.mock  -  by [@&#8203;Georgegriff](https://github.com/Georgegriff) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8668](https://github.com/vitest-dev/vitest/issues/8668) [<samp>(87108)</samp>](https://github.com/vitest-dev/vitest/commit/87108db33) - Support sync `not.toBeInTheDocument()`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8751](https://github.com/vitest-dev/vitest/issues/8751) [<samp>(f5d06)</samp>](https://github.com/vitest-dev/vitest/commit/f5d06434f) - **core**: - Fix `objectContaining` expect utility to have more compatibility to jest's one  -  by [@&#8203;Shinyaigeek](https://github.com/Shinyaigeek) in [#&#8203;8241](https://github.com/vitest-dev/vitest/issues/8241) [<samp>(480be)</samp>](https://github.com/vitest-dev/vitest/commit/480be1a78) - **coverage**: - Include files based on `--project` filter  -  by [@&#8203;gtbuchanan](https://github.com/gtbuchanan) in [#&#8203;7885](https://github.com/vitest-dev/vitest/issues/7885) [<samp>(761be)</samp>](https://github.com/vitest-dev/vitest/commit/761beeeea) - Prevent encoding filenames of uncovered files  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8239](https://github.com/vitest-dev/vitest/issues/8239) [<samp>(8a998)</samp>](https://github.com/vitest-dev/vitest/commit/8a9988043) - Handle query param based transforms correctly  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8418](https://github.com/vitest-dev/vitest/issues/8418) [<samp>(a400a)</samp>](https://github.com/vitest-dev/vitest/commit/a400a9d2a) - Enforce order of `vitest:coverage-transform` plugin  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8477](https://github.com/vitest-dev/vitest/issues/8477) [<samp>(ff517)</samp>](https://github.com/vitest-dev/vitest/commit/ff5170cff) - V8 to ignore Vite's generated cjs import helpers  -  by [@&#8203;mrginglymus](https://github.com/mrginglymus) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8718](https://github.com/vitest-dev/vitest/issues/8718) [<samp>(35816)</samp>](https://github.com/vitest-dev/vitest/commit/35816fe8d) - Keep only strings in `coverage.exclude`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8731](https://github.com/vitest-dev/vitest/issues/8731) [<samp>(c9c30)</samp>](https://github.com/vitest-dev/vitest/commit/c9c303178) - **deps**: - Update all non-major dependencies  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8235](https://github.com/vitest-dev/vitest/issues/8235) [<samp>(a1e57)</samp>](https://github.com/vitest-dev/vitest/commit/a1e576ae0) - Update all non-major dependencies  -  in [#&#8203;8328](https://github.com/vitest-dev/vitest/issues/8328) [<samp>(aa79e)</samp>](https://github.com/vitest-dev/vitest/commit/aa79e2733) - Update all non-major dependencies  -  in [#&#8203;8348](https://github.com/vitest-dev/vitest/issues/8348) [<samp>(13f94)</samp>](https://github.com/vitest-dev/vitest/commit/13f946229) - Update all non-major dependencies  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8382](https://github.com/vitest-dev/vitest/issues/8382) [<samp>(704eb)</samp>](https://github.com/vitest-dev/vitest/commit/704eba24b) - Update all non-major dependencies  -  in [#&#8203;8550](https://github.com/vitest-dev/vitest/issues/8550) [<samp>(048f7)</samp>](https://github.com/vitest-dev/vitest/commit/048f7a1ca) - **jsdom**: - Override globals that Fetch API relies on  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8390](https://github.com/vitest-dev/vitest/issues/8390) [<samp>(05b41)</samp>](https://github.com/vitest-dev/vitest/commit/05b4178e8) - Support AbortSignal API  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8704](https://github.com/vitest-dev/vitest/issues/8704) [<samp>(f6690)</samp>](https://github.com/vitest-dev/vitest/commit/f6690ed46) - **mocker**: - Fix `regexpHoistable` to allow whitespace before parentheses  -  by [@&#8203;cszhjh](https://github.com/cszhjh) in [#&#8203;8231](https://github.com/vitest-dev/vitest/issues/8231) [<samp>(a0f9a)</samp>](https://github.com/vitest-dev/vitest/commit/a0f9ae3f0) - **module-runner**: - Resolve `resolvedSources` correctly  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8736](https://github.com/vitest-dev/vitest/issues/8736) [<samp>(8fc52)</samp>](https://github.com/vitest-dev/vitest/commit/8fc52974f) - Support getBuiltins  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8746](https://github.com/vitest-dev/vitest/issues/8746) [<samp>(87bb8)</samp>](https://github.com/vitest-dev/vitest/commit/87bb8f49c) - **pool**: - Properly reuse the vm pool  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8758](https://github.com/vitest-dev/vitest/issues/8758) [<samp>(08498)</samp>](https://github.com/vitest-dev/vitest/commit/08498f0e9) - **reporter**: - Invisible CLI menus when `vitest --standalone`  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8248](https://github.com/vitest-dev/vitest/issues/8248) [<samp>(37cc2)</samp>](https://github.com/vitest-dev/vitest/commit/37cc26994) - **rolldown-vite**: - Properly disable minifier in the browser client  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8306](https://github.com/vitest-dev/vitest/issues/8306) [<samp>(f55bb)</samp>](https://github.com/vitest-dev/vitest/commit/f55bb81e6) - **runner**: - Don't bundle runner with utils  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8496](https://github.com/vitest-dev/vitest/issues/8496) [<samp>(2b4b0)</samp>](https://github.com/vitest-dev/vitest/commit/2b4b05823) - **spy**: - Fix spyOn types with optional method  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8499](https://github.com/vitest-dev/vitest/issues/8499) [<samp>(d3afa)</samp>](https://github.com/vitest-dev/vitest/commit/d3afa601a) - Can respy on an exported method  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8521](https://github.com/vitest-dev/vitest/issues/8521) [<samp>(bf450)</samp>](https://github.com/vitest-dev/vitest/commit/bf450b433) - Don't fail when spying on static getters  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8589](https://github.com/vitest-dev/vitest/issues/8589) [<samp>(ac1d9)</samp>](https://github.com/vitest-dev/vitest/commit/ac1d92f14) - **types**: - Ensure Chai declaration merge works with TS-Go  -  by [@&#8203;LukeAbby](https://github.com/LukeAbby) in [#&#8203;8188](https://github.com/vitest-dev/vitest/issues/8188) [<samp>(5261d)</samp>](https://github.com/vitest-dev/vitest/commit/5261df0b9) - Allow returning a promise from defineConfig  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8651](https://github.com/vitest-dev/vitest/issues/8651) [<samp>(c3474)</samp>](https://github.com/vitest-dev/vitest/commit/c347487e6) - **ui**: - Keep the same tab open when clicking on different tests  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8599](https://github.com/vitest-dev/vitest/issues/8599) [<samp>(3e535)</samp>](https://github.com/vitest-dev/vitest/commit/3e535f78b) - **utils**: - Remove ast export  -  by [@&#8203;bluwy](https://github.com/bluwy) in [#&#8203;8435](https://github.com/vitest-dev/vitest/issues/8435) [<samp>(21622)</samp>](https://github.com/vitest-dev/vitest/commit/21622b5ae) - **vitest**: - Override `config.include` option with `config.browser.instances[].include` option if it is specified  -  by [@&#8203;Shinyaigeek](https://github.com/Shinyaigeek) in [#&#8203;8260](https://github.com/vitest-dev/vitest/issues/8260) [<samp>(010fc)</samp>](https://github.com/vitest-dev/vitest/commit/010fc55b5) - **watch**: - Filename filter runs duplicate tests in workspaces  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8250](https://github.com/vitest-dev/vitest/issues/8250) [<samp>(932d8)</samp>](https://github.com/vitest-dev/vitest/commit/932d837c6) - **wdio**: - Wait for the driver to be properly closed  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8305](https://github.com/vitest-dev/vitest/issues/8305) [<samp>(c16ab)</samp>](https://github.com/vitest-dev/vitest/commit/c16abe71e) - Properly construct the shadow root selector if there are multiple elements  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8354](https://github.com/vitest-dev/vitest/issues/8354) [<samp>(28765)</samp>](https://github.com/vitest-dev/vitest/commit/28765b4bb) #####    🏎 Performance - Avoid spawning extra workers if no tests will run there  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8446](https://github.com/vitest-dev/vitest/issues/8446) [<samp>(3fb3e)</samp>](https://github.com/vitest-dev/vitest/commit/3fb3e8036) - Don't set `process.title`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8453](https://github.com/vitest-dev/vitest/issues/8453) [<samp>(0a766)</samp>](https://github.com/vitest-dev/vitest/commit/0a7666323) - Remove chai as a direct dependency, keep it in `@vitest/expect`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8461](https://github.com/vitest-dev/vitest/issues/8461) [<samp>(cc98c)</samp>](https://github.com/vitest-dev/vitest/commit/cc98c611f) - Reduce the amount of dynamic imports  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8465](https://github.com/vitest-dev/vitest/issues/8465) [<samp>(db6cd)</samp>](https://github.com/vitest-dev/vitest/commit/db6cd73ba) - Use ES2022 language features  -  by [@&#8203;TrevorBurnham](https://github.com/TrevorBurnham) in [#&#8203;8492](https://github.com/vitest-dev/vitest/issues/8492) [<samp>(bb34c)</samp>](https://github.com/vitest-dev/vitest/commit/bb34c64dc) - Delay populating node-globals  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8506](https://github.com/vitest-dev/vitest/issues/8506) [<samp>(41cbc)</samp>](https://github.com/vitest-dev/vitest/commit/41cbc5328) - Get `workerId` from a global object  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8507](https://github.com/vitest-dev/vitest/issues/8507) [<samp>(46b13)</samp>](https://github.com/vitest-dev/vitest/commit/46b13f669) - Replace startsWith with strict equality  -  by [@&#8203;btea](https://github.com/btea) in [#&#8203;8546](https://github.com/vitest-dev/vitest/issues/8546) [<samp>(c42e6)</samp>](https://github.com/vitest-dev/vitest/commit/c42e64e62) - Reduce the number of unused imports  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8508](https://github.com/vitest-dev/vitest/issues/8508) [<samp>(9a79b)</samp>](https://github.com/vitest-dev/vitest/commit/9a79b90c9) - Use experimental `meta.resolve` flag instead of a custom loader  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8567](https://github.com/vitest-dev/vitest/issues/8567) [<samp>(2e063)</samp>](https://github.com/vitest-dev/vitest/commit/2e0630b76) - Create only one fetcher per project  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8762](https://github.com/vitest-dev/vitest/issues/8762) [<samp>(8e15b)</samp>](https://github.com/vitest-dev/vitest/commit/8e15bc8f9) - **pool**: Resolve all environments first  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8759](https://github.com/vitest-dev/vitest/issues/8759) [<samp>(d3ef4)</samp>](https://github.com/vitest-dev/vitest/commit/d3ef4f29c) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.2.4...v4.0.0) ### [`v3.2.7`](https://github.com/vitest-dev/vitest/releases/tag/v3.2.7) [Compare Source](https://github.com/vitest-dev/vitest/compare/v3.2.6...v3.2.7) #####    🐞 Bug Fixes - **browser**: Check fs access in builtin commands \[backport to v3]  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (claude-opus-4-8)** in [#&#8203;10679](https://github.com/vitest-dev/vitest/issues/10679) [<samp>(b795e)</samp>](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) ### [`v3.2.6`](https://github.com/vitest-dev/vitest/releases/tag/v3.2.6) [Compare Source](https://github.com/vitest-dev/vitest/compare/v3.2.5...v3.2.6) #####    🐞 Bug Fixes - Pin last supported vite-node version  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) [<samp>(16f12)</samp>](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) ### [`v3.2.5`](https://github.com/vitest-dev/vitest/releases/tag/v3.2.5) [Compare Source](https://github.com/vitest-dev/vitest/compare/v3.2.4...v3.2.5) #####    🚀 Features - **api**: Add `allowWrite` and `allowExec` options to `api` \[backport to v3]  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **Codex** in [#&#8203;10445](https://github.com/vitest-dev/vitest/issues/10445) [<samp>(af88b)</samp>](https://github.com/vitest-dev/vitest/commit/af88b1f5d) #####    🐞 Bug Fixes - **browser**: Disable client `cdp` API when `allowWrite/allowExec: false` \[backport to v3]  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **Codex** in [#&#8203;10456](https://github.com/vitest-dev/vitest/issues/10456) [<samp>(385a1)</samp>](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) ### [`v3.2.4`](https://github.com/vitest-dev/vitest/releases/tag/v3.2.4) [Compare Source](https://github.com/vitest-dev/vitest/compare/v3.2.3...v3.2.4) #####    🐞 Bug Fixes - Use correct path for optimisation of strip-literal  -  by [@&#8203;mrginglymus](https://github.com/mrginglymus) in [#&#8203;8139](https://github.com/vitest-dev/vitest/issues/8139) [<samp>(44940)</samp>](https://github.com/vitest-dev/vitest/commit/44940d9dd) - Print uint and buffer as a simple string  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8141](https://github.com/vitest-dev/vitest/issues/8141) [<samp>(b86bf)</samp>](https://github.com/vitest-dev/vitest/commit/b86bf0d99) - **browser**: - Show a helpful error when spying on an export  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8178](https://github.com/vitest-dev/vitest/issues/8178) [<samp>(56007)</samp>](https://github.com/vitest-dev/vitest/commit/5600772c2) - **cli**: - `vitest run --watch` should be watch-mode  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8128](https://github.com/vitest-dev/vitest/issues/8128) [<samp>(657e8)</samp>](https://github.com/vitest-dev/vitest/commit/657e83f9f) - Use absolute path environment on Windows  -  by [@&#8203;colinaaa](https://github.com/colinaaa) in [#&#8203;8105](https://github.com/vitest-dev/vitest/issues/8105) [<samp>(85dc0)</samp>](https://github.com/vitest-dev/vitest/commit/85dc0195f) - Throw error when `--shard x/<count>` exceeds count of test files  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8112](https://github.com/vitest-dev/vitest/issues/8112) [<samp>(8a18c)</samp>](https://github.com/vitest-dev/vitest/commit/8a18c8e20) - **coverage**: - Ignore SCSS in browser mode  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8161](https://github.com/vitest-dev/vitest/issues/8161) [<samp>(0c3be)</samp>](https://github.com/vitest-dev/vitest/commit/0c3be6f63) - **deps**: - Update all non-major dependencies  -  in [#&#8203;8123](https://github.com/vitest-dev/vitest/issues/8123) [<samp>(93f32)</samp>](https://github.com/vitest-dev/vitest/commit/93f3200e4) - **expect**: - Handle async errors in expect.soft  -  by [@&#8203;lzl0304](https://github.com/lzl0304) in [#&#8203;8145](https://github.com/vitest-dev/vitest/issues/8145) [<samp>(68699)</samp>](https://github.com/vitest-dev/vitest/commit/686996912) - **pool**: - Auto-adjust `minWorkers` when only `maxWorkers` specified  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8110](https://github.com/vitest-dev/vitest/issues/8110) [<samp>(14dc0)</samp>](https://github.com/vitest-dev/vitest/commit/14dc0724f) - **reporter**: - `task.meta` should be available in custom reporter's errors  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8115](https://github.com/vitest-dev/vitest/issues/8115) [<samp>(27df6)</samp>](https://github.com/vitest-dev/vitest/commit/27df68a0e) - **runner**: - Preserve handler wrapping on extend  -  by [@&#8203;pengooseDev](https://github.com/pengooseDev) in [#&#8203;8153](https://github.com/vitest-dev/vitest/issues/8153) [<samp>(a9281)</samp>](https://github.com/vitest-dev/vitest/commit/a92812b70) - **ui**: - Ensure ui config option works correctly  -  by [@&#8203;lzl0304](https://github.com/lzl0304) in [#&#8203;8147](https://github.com/vitest-dev/vitest/issues/8147) [<samp>(42eeb)</samp>](https://github.com/vitest-dev/vitest/commit/42eeb2ee6) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.2.3...v3.2.4) ### [`v3.2.3`](https://github.com/vitest-dev/vitest/releases/tag/v3.2.3) [Compare Source](https://github.com/vitest-dev/vitest/compare/v3.2.2...v3.2.3) #####    🚀 Features - **browser**: Use base url instead of **vitest**  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8126](https://github.com/vitest-dev/vitest/issues/8126) [<samp>(1d8eb)</samp>](https://github.com/vitest-dev/vitest/commit/1d8ebf9ae) - **ui**: Show test annotations and metadata in the test report tab  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8093](https://github.com/vitest-dev/vitest/issues/8093) [<samp>(c69be)</samp>](https://github.com/vitest-dev/vitest/commit/c69be1fc1) #####    🐞 Bug Fixes - Rerun tests when project's setup file is changed  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8097](https://github.com/vitest-dev/vitest/issues/8097) [<samp>(0f335)</samp>](https://github.com/vitest-dev/vitest/commit/0f3350667) - Revert `expect.any` return type  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8129](https://github.com/vitest-dev/vitest/issues/8129) [<samp>(47514)</samp>](https://github.com/vitest-dev/vitest/commit/4751436d5) - Run only the name plugin last, not all config plugins  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8130](https://github.com/vitest-dev/vitest/issues/8130) [<samp>(83862)</samp>](https://github.com/vitest-dev/vitest/commit/83862d46e) - **pool**: - Throw if user's tests use `process.send()`  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8125](https://github.com/vitest-dev/vitest/issues/8125) [<samp>(dfe81)</samp>](https://github.com/vitest-dev/vitest/commit/dfe81a67a) - **runner**: - Fast sequential task updates missing  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8121](https://github.com/vitest-dev/vitest/issues/8121) [<samp>(7bd11)</samp>](https://github.com/vitest-dev/vitest/commit/7bd11a9b3) - Comments between fixture destructures  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8127](https://github.com/vitest-dev/vitest/issues/8127) [<samp>(dc469)</samp>](https://github.com/vitest-dev/vitest/commit/dc469f260) - **vite-node**: - Unable to handle errors where sourcemap mapping empty  -  by [@&#8203;blake-newman](https://github.com/blake-newman) and [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;8071](https://github.com/vitest-dev/vitest/issues/8071) [<samp>(8aa25)</samp>](https://github.com/vitest-dev/vitest/commit/8aa252121) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.2.2...v3.2.3) ### [`v3.2.2`](https://github.com/vitest-dev/vitest/releases/tag/v3.2.2) [Compare Source](https://github.com/vitest-dev/vitest/compare/v3.2.1...v3.2.2) #####    🚀 Features - Support rolldown-vite  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) and [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7509](https://github.com/vitest-dev/vitest/issues/7509) [<samp>(c8d62)</samp>](https://github.com/vitest-dev/vitest/commit/c8d6264bf) #####    🐞 Bug Fixes - **browser**: - Calculate prepare time from `createTesters` call on the main thread  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8101](https://github.com/vitest-dev/vitest/issues/8101) [<samp>(142c7)</samp>](https://github.com/vitest-dev/vitest/commit/142c735e1) - Optimize build output and always prebundle vitest  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) [<samp>(00a39)</samp>](https://github.com/vitest-dev/vitest/commit/00a391656) - Make custom locators available in `vitest-browser-*` packages  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8103](https://github.com/vitest-dev/vitest/issues/8103) [<samp>(247ef)</samp>](https://github.com/vitest-dev/vitest/commit/247ef5822) - **expect**: - Ensure we can always self `toEqual`  -  by [@&#8203;dubzzz](https://github.com/dubzzz) in [#&#8203;8094](https://github.com/vitest-dev/vitest/issues/8094) [<samp>(02ec8)</samp>](https://github.com/vitest-dev/vitest/commit/02ec89203) - **reporter**: - Allow `dot` reporter to work in non interactive terminals  -  by [@&#8203;bstephen1](https://github.com/bstephen1) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7994](https://github.com/vitest-dev/vitest/issues/7994) [<samp>(6db9f)</samp>](https://github.com/vitest-dev/vitest/commit/6db9f5207) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.2.1...v3.2.2) ### [`v3.2.1`](https://github.com/vitest-dev/vitest/releases/tag/v3.2.1) [Compare Source](https://github.com/vitest-dev/vitest/compare/v3.2.0...v3.2.1) #####    🐞 Bug Fixes - Use sha1 instead of md5 for hashing  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) [<samp>(e4c73)</samp>](https://github.com/vitest-dev/vitest/commit/e4c73503e) - **expect**: - Fix chai import in dts  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;8077](https://github.com/vitest-dev/vitest/issues/8077) [<samp>(a7593)</samp>](https://github.com/vitest-dev/vitest/commit/a759347ff) - Export `DeeplyAllowMatchers`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8078](https://github.com/vitest-dev/vitest/issues/8078) [<samp>(30ab4)</samp>](https://github.com/vitest-dev/vitest/commit/30ab42c0f) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.2.0...v3.2.1) ### [`v3.2.0`](https://github.com/vitest-dev/vitest/releases/tag/v3.2.0) [Compare Source](https://github.com/vitest-dev/vitest/compare/v3.1.4...v3.2.0) #####    🚀 Features - Provide `ctx.signal`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7878](https://github.com/vitest-dev/vitest/issues/7878) [<samp>(e761f)</samp>](https://github.com/vitest-dev/vitest/commit/e761f27d7) - Support custom colors for `test.name`  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7809](https://github.com/vitest-dev/vitest/issues/7809) [<samp>(4af5d)</samp>](https://github.com/vitest-dev/vitest/commit/4af5df33b) - Add `vi.mockObject` to automock any object  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7761](https://github.com/vitest-dev/vitest/issues/7761) [<samp>(465bd)</samp>](https://github.com/vitest-dev/vitest/commit/465bdb3d7) - Introduce `watchTriggerPatterns` option  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7778](https://github.com/vitest-dev/vitest/issues/7778) [<samp>(a0675)</samp>](https://github.com/vitest-dev/vitest/commit/a067531ac) - Deprecate `workspace` in favor of `projects`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7923](https://github.com/vitest-dev/vitest/issues/7923) [<samp>(41beb)</samp>](https://github.com/vitest-dev/vitest/commit/41beb261e) - Explicit Resource Management support in mocked functions  -  by [@&#8203;EskiMojo14](https://github.com/EskiMojo14) in [#&#8203;7927](https://github.com/vitest-dev/vitest/issues/7927) [<samp>(b67d3)</samp>](https://github.com/vitest-dev/vitest/commit/b67d307de) - Add `sequence.groupOrder` option  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7852](https://github.com/vitest-dev/vitest/issues/7852) [<samp>(d1a1d)</samp>](https://github.com/vitest-dev/vitest/commit/d1a1df036) - Initial support for Temporal equality  -  by [@&#8203;dirkluijk](https://github.com/dirkluijk) in [#&#8203;8007](https://github.com/vitest-dev/vitest/issues/8007) [<samp>(52bd7)</samp>](https://github.com/vitest-dev/vitest/commit/52bd78965) - Support Vite 7  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8003](https://github.com/vitest-dev/vitest/issues/8003) [<samp>(1716b)</samp>](https://github.com/vitest-dev/vitest/commit/1716b61c5) - Track module execution totalTime and selfTime  -  by [@&#8203;abrenneke](https://github.com/abrenneke) in [#&#8203;8027](https://github.com/vitest-dev/vitest/issues/8027) [<samp>(95961)</samp>](https://github.com/vitest-dev/vitest/commit/95961e40a) - Annotation API  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7953](https://github.com/vitest-dev/vitest/issues/7953) [<samp>(b03f2)</samp>](https://github.com/vitest-dev/vitest/commit/b03f2098a) - **browser**: - Implement `connect` option for `playwright` browser provider  -  by [@&#8203;egfx-notifications](https://github.com/egfx-notifications) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7915](https://github.com/vitest-dev/vitest/issues/7915) [<samp>(029c0)</samp>](https://github.com/vitest-dev/vitest/commit/029c0788c) - Add `screenshot.save` option  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7777](https://github.com/vitest-dev/vitest/issues/7777) [<samp>(d9f51)</samp>](https://github.com/vitest-dev/vitest/commit/d9f516353) - Custom locators API  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7993](https://github.com/vitest-dev/vitest/issues/7993) [<samp>(e6fbd)</samp>](https://github.com/vitest-dev/vitest/commit/e6fbd8d25) - **coverage**: - V8 experimental AST-aware remapping  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7736](https://github.com/vitest-dev/vitest/issues/7736) [<samp>(78a3d)</samp>](https://github.com/vitest-dev/vitest/commit/78a3d2787) - **reporter**: - Add `onWritePath` option to `github-actions`  -  by [@&#8203;nwalters512](https://github.com/nwalters512) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8015](https://github.com/vitest-dev/vitest/issues/8015) [<samp>(abd3b)</samp>](https://github.com/vitest-dev/vitest/commit/abd3bb76a) - **vitest**: - Allow per-file and per-worker fixtures  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7704](https://github.com/vitest-dev/vitest/issues/7704) [<samp>(9cbfc)</samp>](https://github.com/vitest-dev/vitest/commit/9cbfc231a) #####    🐞 Bug Fixes - Replace `micromatch` with `picomatch`  -  by [@&#8203;sapphi-red](https://github.com/sapphi-red) in [#&#8203;7951](https://github.com/vitest-dev/vitest/issues/7951) [<samp>(df076)</samp>](https://github.com/vitest-dev/vitest/commit/df07611f0) - Try to catch unhandled error outside of a test  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7968](https://github.com/vitest-dev/vitest/issues/7968) [<samp>(46421)</samp>](https://github.com/vitest-dev/vitest/commit/464218f42) - Generate a separate config for "vitest init browser" instead of a workspace file  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7934](https://github.com/vitest-dev/vitest/issues/7934) [<samp>(e84e2)</samp>](https://github.com/vitest-dev/vitest/commit/e84e2184e) - Switch ExpectStatic `any` types to `AsymmetricMatcher<unknown>`, with `DeeplyAllowMatchers<T>`  -  by [@&#8203;JoshuaKGoldberg](https://github.com/JoshuaKGoldberg) in [#&#8203;7016](https://github.com/vitest-dev/vitest/issues/7016) [<samp>(8ec44)</samp>](https://github.com/vitest-dev/vitest/commit/8ec448db6) - Remove unused exports  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7618](https://github.com/vitest-dev/vitest/issues/7618) [<samp>(33d05)</samp>](https://github.com/vitest-dev/vitest/commit/33d053852) - Throw an error if typechecker failed to spawn  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7990](https://github.com/vitest-dev/vitest/issues/7990) [<samp>(0e960)</samp>](https://github.com/vitest-dev/vitest/commit/0e960aa78) - Ignore non-string `stack` properties  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7995](https://github.com/vitest-dev/vitest/issues/7995) [<samp>(330f9)</samp>](https://github.com/vitest-dev/vitest/commit/330f9a40b) - Apply browser CLI options only if the project has the browser set in the config already  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7984](https://github.com/vitest-dev/vitest/issues/7984) [<samp>(70358)</samp>](https://github.com/vitest-dev/vitest/commit/703581b62) - Ensure errors keep their message and stack after `toJSON` serialisation  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8053](https://github.com/vitest-dev/vitest/issues/8053) [<samp>(3bdf0)</samp>](https://github.com/vitest-dev/vitest/commit/3bdf05d19) - **browser**: - Resolve FS commands relative to the project root  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7896](https://github.com/vitest-dev/vitest/issues/7896) [<samp>(69ac9)</samp>](https://github.com/vitest-dev/vitest/commit/69ac92cb7) - Run tests serially if provider doesn't provide a mocker  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8032](https://github.com/vitest-dev/vitest/issues/8032) [<samp>(227a9)</samp>](https://github.com/vitest-dev/vitest/commit/227a992ad) - Resolve `upload` files relative to the project root  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8042](https://github.com/vitest-dev/vitest/issues/8042) [<samp>(b9a31)</samp>](https://github.com/vitest-dev/vitest/commit/b9a312a8a) - Await mocker invalidation to avoid race condition with "mock wasn't registered"  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8021](https://github.com/vitest-dev/vitest/issues/8021) [<samp>(b34ff)</samp>](https://github.com/vitest-dev/vitest/commit/b34ffada3) - Share vite cache with the project cache  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8049](https://github.com/vitest-dev/vitest/issues/8049) [<samp>(0cbad)</samp>](https://github.com/vitest-dev/vitest/commit/0cbad1b0d) - Add `this` type to `locators.extend`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8069](https://github.com/vitest-dev/vitest/issues/8069) [<samp>(70fb0)</samp>](https://github.com/vitest-dev/vitest/commit/70fb03c38) - **cache**: - Preserve test results from previous runs  -  by [@&#8203;macko911](https://github.com/macko911) in [#&#8203;8043](https://github.com/vitest-dev/vitest/issues/8043) [<samp>(d6ef0)</samp>](https://github.com/vitest-dev/vitest/commit/d6ef0da11) - **cli**: - Add built-in reporters list to --help output  -  by [@&#8203;pengooseDev](https://github.com/pengooseDev) in [#&#8203;7955](https://github.com/vitest-dev/vitest/issues/7955) [<samp>(ef6ef)</samp>](https://github.com/vitest-dev/vitest/commit/ef6ef542b) - Parse `--silent` values properly  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8055](https://github.com/vitest-dev/vitest/issues/8055) [<samp>(8fad7)</samp>](https://github.com/vitest-dev/vitest/commit/8fad73563) - **coverage**: - Istanbul provider to not use Vite preserved query params  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7939](https://github.com/vitest-dev/vitest/issues/7939) [<samp>(a05d4)</samp>](https://github.com/vitest-dev/vitest/commit/a05d48c25) - Browser + v8 in source tests missing  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7946](https://github.com/vitest-dev/vitest/issues/7946) [<samp>(51cd8)</samp>](https://github.com/vitest-dev/vitest/commit/51cd81444) - In-source test cases excluded  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7985](https://github.com/vitest-dev/vitest/issues/7985) [<samp>(407c0)</samp>](https://github.com/vitest-dev/vitest/commit/407c0e4d2) - **dev**: - Fix relay of custom equality testers  -  by [@&#8203;StefanLiebscher](https://github.com/StefanLiebscher) in [#&#8203;6140](https://github.com/vitest-dev/vitest/issues/6140) [<samp>(6dc1d)</samp>](https://github.com/vitest-dev/vitest/commit/6dc1d1858) - **expect**: - Unbundle `@types/chai`  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7937](https://github.com/vitest-dev/vitest/issues/7937) [<samp>(525f5)</samp>](https://github.com/vitest-dev/vitest/commit/525f524c7) - Support type-safe declaration of custom matchers  -  by [@&#8203;kettanaito](https://github.com/kettanaito) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7656](https://github.com/vitest-dev/vitest/issues/7656) [<samp>(e996b)</samp>](https://github.com/vitest-dev/vitest/commit/e996b4103) - **reporters**: - Check the test result again when tests are rerunning  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8063](https://github.com/vitest-dev/vitest/issues/8063) [<samp>(35e31)</samp>](https://github.com/vitest-dev/vitest/commit/35e313f8c) - **spy**: - Copy over static properties from the function  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7780](https://github.com/vitest-dev/vitest/issues/7780) [<samp>(9b9f0)</samp>](https://github.com/vitest-dev/vitest/commit/9b9f09bcb) - **typecheck**: - Don't panic during `vitest list` command  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7933](https://github.com/vitest-dev/vitest/issues/7933) [<samp>(ba6da)</samp>](https://github.com/vitest-dev/vitest/commit/ba6da4d07) - Avoid creating a temporary tsconfig file when typechecking  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7967](https://github.com/vitest-dev/vitest/issues/7967) [<samp>(34f43)</samp>](https://github.com/vitest-dev/vitest/commit/34f43ae68) - **vite-node**: - Add `__vite_ssr_exportName__`  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7925](https://github.com/vitest-dev/vitest/issues/7925) [<samp>(76091)</samp>](https://github.com/vitest-dev/vitest/commit/76091074a) - **vitest**: - Adjust `getWorkerMemoryLimit` priority for vmForks  -  by [@&#8203;pengooseDev](https://github.com/pengooseDev) in [#&#8203;7960](https://github.com/vitest-dev/vitest/issues/7960) [<samp>(5a91e)</samp>](https://github.com/vitest-dev/vitest/commit/5a91eca20) - **wdio**: - Don't scale browser in headless mode  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8033](https://github.com/vitest-dev/vitest/issues/8033) [<samp>(c23b0)</samp>](https://github.com/vitest-dev/vitest/commit/c23b0f78f) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.1.3...v3.2.0) ### [`v3.1.4`](https://github.com/vitest-dev/vitest/releases/tag/v3.1.4) [Compare Source](https://github.com/vitest-dev/vitest/compare/v3.1.3...v3.1.4) #####    🐞 Bug Fixes - Apply browser CLI options only if the project has the browser set in the config already  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8002](https://github.com/vitest-dev/vitest/issues/8002) [<samp>(64f2b)</samp>](https://github.com/vitest-dev/vitest/commit/64f2b431) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.1.3...v3.1.4) ### [`v3.1.3`](https://github.com/vitest-dev/vitest/releases/tag/v3.1.3) [Compare Source](https://github.com/vitest-dev/vitest/compare/v3.1.2...v3.1.3) #####    🐞 Bug Fixes - Correctly resolve vitest import if `inline: true` is set  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7856](https://github.com/vitest-dev/vitest/issues/7856) [<samp>(a83f3)</samp>](https://github.com/vitest-dev/vitest/commit/a83f3bf6) - Fix fixture parsing with lowered async with esbuild 0.25.3  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7921](https://github.com/vitest-dev/vitest/issues/7921) [<samp>(c5c85)</samp>](https://github.com/vitest-dev/vitest/commit/c5c8502b) - Remove event-catcher code  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7898](https://github.com/vitest-dev/vitest/issues/7898) [<samp>(deb1b)</samp>](https://github.com/vitest-dev/vitest/commit/deb1bc27) - Reset mocks on test retry/repeat  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7897](https://github.com/vitest-dev/vitest/issues/7897) [<samp>(2fa76)</samp>](https://github.com/vitest-dev/vitest/commit/2fa763a6) - Ignore failures on writeToCache  -  by [@&#8203;orgads](https://github.com/orgads) in [#&#8203;7893](https://github.com/vitest-dev/vitest/issues/7893) [<samp>(8c7f7)</samp>](https://github.com/vitest-dev/vitest/commit/8c7f75a6) - **browser**: Correctly inherit CLI options  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7858](https://github.com/vitest-dev/vitest/issues/7858) [<samp>(03660)</samp>](https://github.com/vitest-dev/vitest/commit/03660f9d) - **deps**: Update all non-major dependencies  -  in [#&#8203;7867](https://github.com/vitest-dev/vitest/issues/7867) [<samp>(67ef7)</samp>](https://github.com/vitest-dev/vitest/commit/67ef74a0) - **reporters**: `--merge-reports` to show each total run times  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7877](https://github.com/vitest-dev/vitest/issues/7877) [<samp>(d613b)</samp>](https://github.com/vitest-dev/vitest/commit/d613b813) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.1.2...v3.1.3) ### [`v3.1.2`](https://github.com/vitest-dev/vitest/releases/tag/v3.1.2) [Compare Source](https://github.com/vitest-dev/vitest/compare/v3.1.1...v3.1.2) #####    🐞 Bug Fixes - Add global `chai` variable in `vitest/globals` (fix: [#&#8203;7474](https://github.com/vitest-dev/vitest/issues/7474))  -  by [@&#8203;Jay-Karia](https://github.com/Jay-Karia) in [#&#8203;7771](https://github.com/vitest-dev/vitest/issues/7771) and [#&#8203;7474](https://github.com/vitest-dev/vitest/issues/7474) [<samp>(d9297)</samp>](https://github.com/vitest-dev/vitest/commit/d9297920) - Prevent modifying `test.exclude` when same object passed in `coverage.exclude`  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7774](https://github.com/vitest-dev/vitest/issues/7774) [<samp>(c3751)</samp>](https://github.com/vitest-dev/vitest/commit/c375101d) - Fix already hoisted mock  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7815](https://github.com/vitest-dev/vitest/issues/7815) [<samp>(773b1)</samp>](https://github.com/vitest-dev/vitest/commit/773b10e0) - Fix test.scoped inheritance  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7814](https://github.com/vitest-dev/vitest/issues/7814) [<samp>(db6c3)</samp>](https://github.com/vitest-dev/vitest/commit/db6c3bcc) - Remove pointer-events-none after resizing the left panel  -  by [@&#8203;alexprudhomme](https://github.com/alexprudhomme) in [#&#8203;7811](https://github.com/vitest-dev/vitest/issues/7811) [<samp>(a7e77)</samp>](https://github.com/vitest-dev/vitest/commit/a7e773bd) - Default to run mode when stdin is not a TTY  -  by [@&#8203;kentonv](https://github.com/kentonv), [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7673](https://github.com/vitest-dev/vitest/issues/7673) [<samp>(6358f)</samp>](https://github.com/vitest-dev/vitest/commit/6358f216) - Use happy-dom/jsdom types for `envionmentOptions`  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7795](https://github.com/vitest-dev/vitest/issues/7795) [<samp>(67430)</samp>](https://github.com/vitest-dev/vitest/commit/67430083) - **browser**: - Fix transform error before browser server initialization  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7783](https://github.com/vitest-dev/vitest/issues/7783) [<samp>(5f762)</samp>](https://github.com/vitest-dev/vitest/commit/5f762ec5) - Fix mocking from outside of root  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7789](https://github.com/vitest-dev/vitest/issues/7789) [<samp>(03f55)</samp>](https://github.com/vitest-dev/vitest/commit/03f55d74) - Scale iframe for non ui case  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6512](https://github.com/vitest-dev/vitest/issues/6512) [<samp>(c3374)</samp>](https://github.com/vitest-dev/vitest/commit/c3374808) - **coverage**: - `await` profiler calls  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7763](https://github.com/vitest-dev/vitest/issues/7763) [<samp>(795a6)</samp>](https://github.com/vitest-dev/vitest/commit/795a6433) - Expose profiling timers  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7820](https://github.com/vitest-dev/vitest/issues/7820) [<samp>(5652b)</samp>](https://github.com/vitest-dev/vitest/commit/5652bf92) - **deps**: - Update all non-major dependencies  -  in [#&#8203;7765](https://github.com/vitest-dev/vitest/issues/7765) [<samp>(7c3df)</samp>](https://github.com/vitest-dev/vitest/commit/7c3dfb17) - Update all non-major dependencies  -  in [#&#8203;7831](https://github.com/vitest-dev/vitest/issues/7831) [<samp>(15701)</samp>](https://github.com/vitest-dev/vitest/commit/15701f5d) - **runner**: - Correctly call test hooks and teardown functions  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7775](https://github.com/vitest-dev/vitest/issues/7775) [<samp>(3c00c)</samp>](https://github.com/vitest-dev/vitest/commit/3c00c875) - Show stacktrace on test timeout error  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7799](https://github.com/vitest-dev/vitest/issues/7799) [<samp>(df33b)</samp>](https://github.com/vitest-dev/vitest/commit/df33bba7) - **ui**: - Load panel sizes from storage on initial load  -  by [@&#8203;userquin](https://github.com/userquin) in [#&#8203;7265](https://github.com/vitest-dev/vitest/issues/7265) [<samp>(6555d)</samp>](https://github.com/vitest-dev/vitest/commit/6555d61d) - **vite-node**: - Named export should overwrite export all  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7846](https://github.com/vitest-dev/vitest/issues/7846) [<samp>(5ba0d)</samp>](https://github.com/vitest-dev/vitest/commit/5ba0d914) - Add ERR\_MODULE\_NOT\_FOUND code error if module cannot be loaded  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7776](https://github.com/vitest-dev/vitest/issues/7776) [<samp>(f9eac)</samp>](https://github.com/vitest-dev/vitest/commit/f9eacbc5) #####    🏎 Performance - **browser**: Improve browser parallelisation  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7665](https://github.com/vitest-dev/vitest/issues/7665) [<samp>(816a5)</samp>](https://github.com/vitest-dev/vitest/commit/816a5c51) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.1.1...v3.1.2) ### [`v3.1.1`](https://github.com/vitest-dev/vitest/releases/tag/v3.1.1) [Compare Source](https://github.com/vitest-dev/vitest/compare/v3.1.0...v3.1.1) #####    🐞 Bug Fixes - **reporter**: - Report tests in correct order  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7752](https://github.com/vitest-dev/vitest/issues/7752) [<samp>(b166e)</samp>](https://github.com/vitest-dev/vitest/commit/b166efa2) - Print test only once in the verbose mode  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7738](https://github.com/vitest-dev/vitest/issues/7738) [<samp>(69ca4)</samp>](https://github.com/vitest-dev/vitest/commit/69ca425c) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.1.0...v3.1.1) ### [`v3.1.0`](https://github.com/vitest-dev/vitest/releases/tag/v3.1.0) [Compare Source](https://github.com/vitest-dev/vitest/compare/v3.0.9...v3.1.0) ##### 🚀 Features - Introduce `%$` option to add number of the test to its title - by [@&#8203;kemuridama](https://github.com/kemuridama) in [#&#8203;7412](https://github.com/vitest-dev/vitest/issues/7412) [<samp>(df347)</samp>](https://github.com/vitest-dev/vitest/commit/df3477076) - Add `diff.maxDepth` option and set non-`Infinity` value as a default to reduce crash - by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7481](https://github.com/vitest-dev/vitest/issues/7481) [<samp>(eacab)</samp>](https://github.com/vitest-dev/vitest/commit/eacab25e7) - Allow array element for `test.each/for` title formatting - by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7522](https://github.com/vitest-dev/vitest/issues/7522) [<samp>(ea3d6)</samp>](https://github.com/vitest-dev/vitest/commit/ea3d67b03) - Add "configureVitest" plugin hook - by [@&#8203;sheremet-va](https://github.com/sheremet-va) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7349](https://github.com/vitest-dev/vitest/issues/7349) [<samp>(20a5d)</samp>](https://github.com/vitest-dev/vitest/commit/20a5d4bfc) - Support `--configLoader` CLI option - by [@&#8203;Carnageous](https://github.com/Carnageous) and [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7574](https://github.com/vitest-dev/vitest/issues/7574) [<samp>(2a852)</samp>](https://github.com/vitest-dev/vitest/commit/2a8520a83) - Added `vitest-browser-lit` to `vitest init browser` and docs - by [@&#8203;EskiMojo14](https://github.com/EskiMojo14) and [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7705](https://github.com/vitest-dev/vitest/issues/7705) [<samp>(5659a)</samp>](https://github.com/vitest-dev/vitest/commit/5659a0e0c) - Use providers request interception for module mocking - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7576](https://github.com/vitest-dev/vitest/issues/7576) [<samp>(7883a)</samp>](https://github.com/vitest-dev/vitest/commit/7883acd63) - **browser**: - Introduce `and`, `or` and `filter` locators - by [@&#8203;sheremet-va](https://github.com/sheremet-va) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7463](https://github.com/vitest-dev/vitest/issues/7463) [<samp>(63949)</samp>](https://github.com/vitest-dev/vitest/commit/63949b1d7) - **reporter**: - Always render test time - by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) and [@&#8203;spamshaker](https://github.com/spamshaker) in [#&#8203;7529](https://github.com/vitest-dev/vitest/issues/7529) [<samp>(5eba6)</samp>](https://github.com/vitest-dev/vitest/commit/5eba60ae1) - `--silent=passed-only` to log failed tasks only - by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7530](https://github.com/vitest-dev/vitest/issues/7530) [<samp>(f9e1c)</samp>](https://github.com/vitest-dev/vitest/commit/f9e1cb494) - **runner**: - Add `test.scoped` to override `test.extend` fixtures per-suite - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7233](https://github.com/vitest-dev/vitest/issues/7233) [<samp>(e5851)</samp>](https://github.com/vitest-dev/vitest/commit/e5851e4b8) - **vitest**: - Allow conditional `context.skip(boolean)` - by [@&#8203;sheremet-va](https://github.com/sheremet-va) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7659](https://github.com/vitest-dev/vitest/issues/7659) [<samp>(6adec)</samp>](https://github.com/vitest-dev/vitest/commit/6adecb903) - Support rolldown-vite in NormalizeUrlPlugin - by [@&#8203;sapphi-red](https://github.com/sapphi-red) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7739](https://github.com/vitest-dev/vitest/issues/7739) [<samp>(1ef31)</samp>](https://github.com/vitest-dev/vitest/commit/1ef31a7bb) ##### 🐞 Bug Fixes - Update test stats regularly - by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7700](https://github.com/vitest-dev/vitest/issues/7700) [<samp>(b7953)</samp>](https://github.com/vitest-dev/vitest/commit/b7953487b) - Fix vm tests flakiness - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7741](https://github.com/vitest-dev/vitest/issues/7741) [<samp>(2702c)</samp>](https://github.com/vitest-dev/vitest/commit/2702cf424) - Set `diff.expand: false` as default - by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7697](https://github.com/vitest-dev/vitest/issues/7697) [<samp>(f3420)</samp>](https://github.com/vitest-dev/vitest/commit/f34206536) - **browser**: - Correctly calculate timeout in hooks when actions are performed - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7747](https://github.com/vitest-dev/vitest/issues/7747) [<samp>(a5505)</samp>](https://github.com/vitest-dev/vitest/commit/a55055180) - **deps**: - Update all non-major dependencies - by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7600](https://github.com/vitest-dev/vitest/issues/7600) [<samp>(7fc5a)</samp>](https://github.com/vitest-dev/vitest/commit/7fc5a2908) - **reporter**: - `--hideSkippedTests` should hide suites too - by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7695](https://github.com/vitest-dev/vitest/issues/7695) [<samp>(ba9b5)</samp>](https://github.com/vitest-dev/vitest/commit/ba9b51ccc) - Report tests in correct order - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7752](https://github.com/vitest-dev/vitest/issues/7752) [<samp>(b166e)</samp>](https://github.com/vitest-dev/vitest/commit/b166efa28) - Print test only once in the verbose mode - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7738](https://github.com/vitest-dev/vitest/issues/7738) [<samp>(69ca4)</samp>](https://github.com/vitest-dev/vitest/commit/69ca425c6) - **snapshot**: - Fix indent normalization - by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7400](https://github.com/vitest-dev/vitest/issues/7400) [<samp>(82997)</samp>](https://github.com/vitest-dev/vitest/commit/8299709d2) - This change can cause small amount of very old snapshots to be updated, but there will be no functional change to how they work. ##### 🏎 Performance - **browser**: Fork jest-dom instead of bundling it - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7605](https://github.com/vitest-dev/vitest/issues/7605) [<samp>(12762)</samp>](https://github.com/vitest-dev/vitest/commit/12762ea6c) ##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.0.9...v3.1.1) ### [`v3.0.9`](https://github.com/vitest-dev/vitest/releases/tag/v3.0.9) [Compare Source](https://github.com/vitest-dev/vitest/compare/v3.0.8...v3.0.9) #####    🐞 Bug Fixes - Typings of `ctx.skip()` as `never`  -  by [@&#8203;sirlancelot](https://github.com/sirlancelot) in [#&#8203;7608](https://github.com/vitest-dev/vitest/issues/7608) [<samp>(09f35)</samp>](https://github.com/vitest-dev/vitest/commit/09f35301) - Cleanup vitest in public `resolveConfig` API  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7623](https://github.com/vitest-dev/vitest/issues/7623) [<samp>(db14a)</samp>](https://github.com/vitest-dev/vitest/commit/db14ab71) - Fix `toHaveBeenCalledWith(asymmetricMatcher)` with `undefined` arguments  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7624](https://github.com/vitest-dev/vitest/issues/7624) [<samp>(0fb21)</samp>](https://github.com/vitest-dev/vitest/commit/0fb21faa) - Race condition in RPC filesystem cache.  -  by [@&#8203;dts](https://github.com/dts) in [#&#8203;7531](https://github.com/vitest-dev/vitest/issues/7531) [<samp>(b7f55)</samp>](https://github.com/vitest-dev/vitest/commit/b7f55261) - Fix `getState().testPath` during collection with no isolation  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7640](https://github.com/vitest-dev/vitest/issues/7640) [<samp>(3fb3f)</samp>](https://github.com/vitest-dev/vitest/commit/3fb3fbf8) - Support custom toString method in %s format  -  by [@&#8203;pengooseDev](https://github.com/pengooseDev) in [#&#8203;7637](https://github.com/vitest-dev/vitest/issues/7637) [<samp>(46d93)</samp>](https://github.com/vitest-dev/vitest/commit/46d93a2e) - **browser**: - Fail playwright timeouts earlier than a test timeout  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) and [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7565](https://github.com/vitest-dev/vitest/issues/7565) [<samp>(5eb4c)</samp>](https://github.com/vitest-dev/vitest/commit/5eb4cd1f) - Remove [@&#8203;testing-library/dom](https://github.com/testing-library/dom) from dependencies [#&#8203;7555](https://github.com/vitest-dev/vitest/issues/7555))"  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7628](https://github.com/vitest-dev/vitest/issues/7628) and [#&#8203;7555](https://github.com/vitest-dev/vitest/issues/7555) [<samp>(94b27)</samp>](https://github.com/vitest-dev/vitest/commit/94b27af5) - **coverage**: - Browser mode + `coverage.all`  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7597](https://github.com/vitest-dev/vitest/issues/7597) [<samp>(422ba)</samp>](https://github.com/vitest-dev/vitest/commit/422ba66b) - **runner**: - Show stacktrace on hook timeout error  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7502](https://github.com/vitest-dev/vitest/issues/7502) [<samp>(268a1)</samp>](https://github.com/vitest-dev/vitest/commit/268a19e1) - **vite-node**: - Fix source map of inlined node\_modules  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7557](https://github.com/vitest-dev/vitest/issues/7557) [<samp>(34aa3)</samp>](https://github.com/vitest-dev/vitest/commit/34aa322b) - Fix missing `buildStart`  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7652](https://github.com/vitest-dev/vitest/issues/7652) [<samp>(29f5a)</samp>](https://github.com/vitest-dev/vitest/commit/29f5a848) - **web-worker**: - Ensure `removeEventListener` is bound to worker  -  by [@&#8203;joelgallant](https://github.com/joelgallant) in [#&#8203;7631](https://github.com/vitest-dev/vitest/issues/7631) [<samp>(ff42b)</samp>](https://github.com/vitest-dev/vitest/commit/ff42bcb3) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.0.8...v3.0.9) ### [`v3.0.8`](https://github.com/vitest-dev/vitest/releases/tag/v3.0.8) [Compare Source](https://github.com/vitest-dev/vitest/compare/v3.0.7...v3.0.8) #####    🐞 Bug Fixes - Fix fetch cache multiple writes  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7546](https://github.com/vitest-dev/vitest/issues/7546) [<samp>(1a8b4)</samp>](https://github.com/vitest-dev/vitest/commit/1a8b4337) - Use browser.isolate instead of config.isolate  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7560](https://github.com/vitest-dev/vitest/issues/7560) [<samp>(4b5ed)</samp>](https://github.com/vitest-dev/vitest/commit/4b5ed902) - Remove vestigial spy stub, import directly from `@vitest/spy`  -  by [@&#8203;mrginglymus](https://github.com/mrginglymus) in [#&#8203;7575](https://github.com/vitest-dev/vitest/issues/7575) [<samp>(7f7ff)</samp>](https://github.com/vitest-dev/vitest/commit/7f7ff11c) - Correctly split the argv string  -  by [@&#8203;btea](https://github.com/btea) in [#&#8203;7533](https://github.com/vitest-dev/vitest/issues/7533) [<samp>(4325a)</samp>](https://github.com/vitest-dev/vitest/commit/4325ac67) - **browser**: - Remove [@&#8203;testing-library/dom](https://github.com/testing-library/dom) from dependencies  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7555](https://github.com/vitest-dev/vitest/issues/7555) [<samp>(5387a)</samp>](https://github.com/vitest-dev/vitest/commit/5387a5b3) - Improve source map handling for bundled files  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7534](https://github.com/vitest-dev/vitest/issues/7534) [<samp>(e2c57)</samp>](https://github.com/vitest-dev/vitest/commit/e2c570b6) - Print related test file and potential test in unhandled errors  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7564](https://github.com/vitest-dev/vitest/issues/7564) [<samp>(fee90)</samp>](https://github.com/vitest-dev/vitest/commit/fee90d85) - **runner**: - Fix `beforeEach/All` cleanup callback timeout  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7500](https://github.com/vitest-dev/vitest/issues/7500) [<samp>(0c292)</samp>](https://github.com/vitest-dev/vitest/commit/0c2924b7) - Fix and simplify `Task.suite` initialization  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7414](https://github.com/vitest-dev/vitest/issues/7414) [<samp>(ca9ff)</samp>](https://github.com/vitest-dev/vitest/commit/ca9ffac5) - **snapshot**: - Allow inline snapshot calls on same location with same snapshot  -  by [@&#8203;jycouet](https://github.com/jycouet) and [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7464](https://github.com/vitest-dev/vitest/issues/7464) [<samp>(d5cb8)</samp>](https://github.com/vitest-dev/vitest/commit/d5cb8212) - **vite-node**: - Fix `buildStart` on Vite 6  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7480](https://github.com/vitest-dev/vitest/issues/7480) [<samp>(c0f47)</samp>](https://github.com/vitest-dev/vitest/commit/c0f47e03) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.0.7...v3.0.8) ### [`v3.0.7`](https://github.com/vitest-dev/vitest/releases/tag/v3.0.7) [Compare Source](https://github.com/vitest-dev/vitest/compare/v3.0.6...v3.0.7) #####    🐞 Bug Fixes - **browser**: Support webdriverio 9  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7553](https://github.com/vitest-dev/vitest/issues/7553) [<samp>(b1949)</samp>](https://github.com/vitest-dev/vitest/commit/b1949c97) - **deps**: Update all non-major dependencies  -  in [#&#8203;7543](https://github.com/vitest-dev/vitest/issues/7543) [<samp>(365ff)</samp>](https://github.com/vitest-dev/vitest/commit/365ffe6b) - **expect**: Correct generic MatchersObject this type in expect.extend  -  by [@&#8203;Workingstiff-s](https://github.com/Workingstiff-s) in [#&#8203;7526](https://github.com/vitest-dev/vitest/issues/7526) [<samp>(d5765)</samp>](https://github.com/vitest-dev/vitest/commit/d5765f71) - **mocker**: Include more modules to prefix-only module list  -  by [@&#8203;btea](https://github.com/btea) in [#&#8203;7524](https://github.com/vitest-dev/vitest/issues/7524) [<samp>(a12ec)</samp>](https://github.com/vitest-dev/vitest/commit/a12ec008) - **spy**: Clear/reset/restore mocks in stack order  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7499](https://github.com/vitest-dev/vitest/issues/7499) [<samp>(f7100)</samp>](https://github.com/vitest-dev/vitest/commit/f71004ff) #####    🏎 Performance - **browser**: Do wdio context switching only once per file  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7549](https://github.com/vitest-dev/vitest/issues/7549) [<samp>(aaa58)</samp>](https://github.com/vitest-dev/vitest/commit/aaa58556) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.0.6...v3.0.7) ### [`v3.0.6`](https://github.com/vitest-dev/vitest/releases/tag/v3.0.6) [Compare Source](https://github.com/vitest-dev/vitest/compare/v3.0.5...v3.0.6) #####    🐞 Bug Fixes - Fix `getMockedSystemTime` for `useFakeTimer`  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7405](https://github.com/vitest-dev/vitest/issues/7405) [<samp>(03912)</samp>](https://github.com/vitest-dev/vitest/commit/03912b43) - Compat for jest-image-snapshot  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7390](https://github.com/vitest-dev/vitest/issues/7390) [<samp>(9542b)</samp>](https://github.com/vitest-dev/vitest/commit/9542b699) - Ensure project names are readable in dark terminals  -  by [@&#8203;rgrove](https://github.com/rgrove) in [#&#8203;7371](https://github.com/vitest-dev/vitest/issues/7371) [<samp>(bb94c)</samp>](https://github.com/vitest-dev/vitest/commit/bb94c19f) - Exclude `queueMicrotask` from default fake timers to not break node fetch  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7505](https://github.com/vitest-dev/vitest/pull/7505) [<samp>(167a9)</samp>](https://github.com/vitest-dev/vitest/commit/167a98d7) - Use `tinyglobby` instead of `fast-glob`  -  by [@&#8203;benmccann](https://github.com/benmccann) in [#&#8203;7504](https://github.com/vitest-dev/vitest/issues/7504) [<samp>(b62ac)</samp>](https://github.com/vitest-dev/vitest/commit/b62ac22) - **browser**: - Fix mocking modules out of root  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7415](https://github.com/vitest-dev/vitest/issues/7415) [<samp>(d3acb)</samp>](https://github.com/vitest-dev/vitest/commit/d3acbd8b) - Fix `toHaveClass` typing  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7383](https://github.com/vitest-dev/vitest/issues/7383) [<samp>(7ef23)</samp>](https://github.com/vitest-dev/vitest/commit/7ef238c0) - Relax locator selectors methods  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7422](https://github.com/vitest-dev/vitest/issues/7422) [<samp>(1b8c5)</samp>](https://github.com/vitest-dev/vitest/commit/1b8c5c9e) - Resolve thread count from `maxWorkers`  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7483](https://github.com/vitest-dev/vitest/issues/7483) [<samp>(adbb2)</samp>](https://github.com/vitest-dev/vitest/commit/adbb25ab) - Cleanup timeout on resolve and give more information in the error  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7487](https://github.com/vitest-dev/vitest/issues/7487) [<samp>(5a45a)</samp>](https://github.com/vitest-dev/vitest/commit/5a45a7ca) - **coverage**: - `vite-node` to pass correct execution wrapper offset  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7417](https://github.com/vitest-dev/vitest/issues/7417) [<samp>(1f2e5)</samp>](https://github.com/vitest-dev/vitest/commit/1f2e5552) - Preserve moduleExecutionInfo in non-isolated runs  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7486](https://github.com/vitest-dev/vitest/issues/7486) [<samp>(f31a0)</samp>](https://github.com/vitest-dev/vitest/commit/f31a07bb) - **deps**: - Update all non-major dependencies  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7363](https://github.com/vitest-dev/vitest/issues/7363) [<samp>(e348b)</samp>](https://github.com/vitest-dev/vitest/commit/e348bd4c) - Update all non-major dependencies  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7507](https://github.com/vitest-dev/vitest/issues/7507) [<samp>(6cc40)</samp>](https://github.com/vitest-dev/vitest/commit/6cc408d6) - **init**: - Invalid browser config  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7475](https://github.com/vitest-dev/vitest/issues/7475) [<samp>(8fe64)</samp>](https://github.com/vitest-dev/vitest/commit/8fe641b4) - **reporters**: - Render tasks in tree when in TTY  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7503](https://github.com/vitest-dev/vitest/issues/7503) [<samp>(027ce)</samp>](https://github.com/vitest-dev/vitest/commit/027ce9bb) - **vite-node**: - Remove fake first line mapping on Vite 6  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7124](https://github.com/vitest-dev/vitest/issues/7124) [<samp>(b9973)</samp>](https://github.com/vitest-dev/vitest/commit/b997355b) - **watch**: - Properly remove cache after removing existing test files  -  by [@&#8203;soc221b](https://github.com/soc221b) in [#&#8203;7399](https://github.com/vitest-dev/vitest/issues/7399) [<samp>(01a59)</samp>](https://github.com/vitest-dev/vitest/commit/01a59721) - **workspace**: - Forward `inspect` related cli options  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7373](https://github.com/vitest-dev/vitest/issues/7373) [<samp>(ed15b)</samp>](https://github.com/vitest-dev/vitest/commit/ed15b5b3) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.0.5...v3.0.6) ### [`v3.0.5`](https://github.com/vitest-dev/vitest/releases/tag/v3.0.5) [Compare Source](https://github.com/vitest-dev/vitest/compare/v3.0.4...v3.0.5) This release includes security patches for: - [Remote Code Execution when accessing a malicious website while Vitest API server is listening | CVE-2025-24964](https://github.com/vitest-dev/vitest/security/advisories/GHSA-9crc-q9x8-hgqq) ##### 🚀 Features - **ui**: Insert message "no tests found" in ui - by [@&#8203;DevJoaoLopes](https://github.com/DevJoaoLopes) in [#&#8203;7366](https://github.com/vitest-dev/vitest/issues/7366) [<samp>(92da4)</samp>](https://github.com/vitest-dev/vitest/commit/92da490bd) ##### 🐞 Bug Fixes - Validate websocket request - by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7317](https://github.com/vitest-dev/vitest/issues/7317) [<samp>(191ef)</samp>](https://github.com/vitest-dev/vitest/commit/191ef9e34) - Don't toggle cli cursor on non-TTY - by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7336](https://github.com/vitest-dev/vitest/issues/7336) [<samp>(3c805)</samp>](https://github.com/vitest-dev/vitest/commit/3c8050e69) - **vite-node**: Differentiate file url with hash and query - by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7365](https://github.com/vitest-dev/vitest/issues/7365) [<samp>(926ca)</samp>](https://github.com/vitest-dev/vitest/commit/926ca9546) ##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.0.4...v3.0.5) ### [`v3.0.4`](https://github.com/vitest-dev/vitest/releases/tag/v3.0.4) [Compare Source](https://github.com/vitest-dev/vitest/compare/v3.0.3...v3.0.4) This release includes security patches for: - [Browser mode serves arbitrary files | CVE-2025-24963](https://github.com/vitest-dev/vitest/security/advisories/GHSA-8gvc-j273-4wm5) #####    🐞 Bug Fixes - Filter projects eagerly during config resolution  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7313](https://github.com/vitest-dev/vitest/issues/7313) [<samp>(dff44)</samp>](https://github.com/vitest-dev/vitest/commit/dff4406d) - Apply `development|production` condition on Vites 6 by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and [@&#8203;sheremet-va](https://github.com/sheremet-va) ([#&#8203;7301](https://github.com/vitest-dev/vitest/issues/7301)) [<samp>(ef146)</samp>](https://github.com/vitest-dev/vitest/commit/ef1464fc7b101709bfbf7b040e5bad62998c2ff9) - **browser**: Restrict served files from `/__screenshot-error`  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7340](https://github.com/vitest-dev/vitest/issues/7340) [<samp>(ed9ae)</samp>](https://github.com/vitest-dev/vitest/commit/ed9aeba2) - **deps**: Update all non-major dependencies  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7297](https://github.com/vitest-dev/vitest/issues/7297) [<samp>(38ea8)</samp>](https://github.com/vitest-dev/vitest/commit/38ea8eae) - **runner**: Timeout long sync hook  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7289](https://github.com/vitest-dev/vitest/issues/7289) [<samp>(c60ee)</samp>](https://github.com/vitest-dev/vitest/commit/c60ee27c) - **typechecking**: Support typechecking parsing with Vite 6  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7335](https://github.com/vitest-dev/vitest/issues/7335) [<samp>(bff70)</samp>](https://github.com/vitest-dev/vitest/commit/bff70be9) - **types**: Fix public types  -  by [@&#8203;mrginglymus](https://github.com/mrginglymus) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7328](https://github.com/vitest-dev/vitest/issues/7328) [<samp>(ce6af)</samp>](https://github.com/vitest-dev/vitest/commit/ce6af70c) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.0.3...v3.0.4) ### [`v3.0.3`](https://github.com/vitest-dev/vitest/releases/tag/v3.0.3) [Compare Source](https://github.com/vitest-dev/vitest/compare/v3.0.2...v3.0.3) #####    🐞 Bug Fixes - **browser**: - Don't throw a validation error if v8 coverage is used with filtered instances  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7306](https://github.com/vitest-dev/vitest/issues/7306) [<samp>(fa463)</samp>](https://github.com/vitest-dev/vitest/commit/fa4634b2) - Don't fail when running --browser.headless if the browser projest is part of the workspace  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7311](https://github.com/vitest-dev/vitest/issues/7311) [<samp>(e43a8)</samp>](https://github.com/vitest-dev/vitest/commit/e43a8f56) #####    🏎 Performance - **reporters**: Update summary only when needed  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7291](https://github.com/vitest-dev/vitest/issues/7291) [<samp>(7f36b)</samp>](https://github.com/vitest-dev/vitest/commit/7f36b6f9) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.0.2...v3.0.3) ### [`v3.0.2`](https://github.com/vitest-dev/vitest/releases/tag/v3.0.2) [Compare Source](https://github.com/vitest-dev/vitest/compare/v3.0.1...v3.0.2) #####    🐞 Bug Fixes - Don't await an empty timeout after every test  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7281](https://github.com/vitest-dev/vitest/issues/7281) [<samp>(ef1aa)</samp>](https://github.com/vitest-dev/vitest/commit/ef1aa893) - **expect**: Fix `expect().resolves/rejects` chain typings  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7273](https://github.com/vitest-dev/vitest/issues/7273) [<samp>(fa415)</samp>](https://github.com/vitest-dev/vitest/commit/fa415059) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.0.1...v3.0.2) ### [`v3.0.1`](https://github.com/vitest-dev/vitest/releases/tag/v3.0.1) [Compare Source](https://github.com/vitest-dev/vitest/compare/v3.0.0...v3.0.1) #####    🐞 Bug Fixes - Revert "fix: re-apply default conditions if using vite 6 or later ([#&#8203;7071](https://github.com/vitest-dev/vitest/issues/7071))"  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7071](https://github.com/vitest-dev/vitest/issues/7071) and [#&#8203;7271](https://github.com/vitest-dev/vitest/issues/7271) [<samp>(755ec)</samp>](https://github.com/vitest-dev/vitest/commit/755ecdfa) - **deps**: Update all non-major dependencies  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7147](https://github.com/vitest-dev/vitest/issues/7147) [<samp>(537fa)</samp>](https://github.com/vitest-dev/vitest/commit/537fa5ed) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.0.0...v3.0.1) ### [`v3.0.0`](https://github.com/vitest-dev/vitest/releases/tag/v3.0.0) [Compare Source](https://github.com/vitest-dev/vitest/compare/v2.1.9...v3.0.0) Vitest 3 is here! There are a few breaking changes, but we expect the migration to be smooth. This release page lists all changes made to the project during the beta. For the migration guide, please refer to the [documentation](https://vitest.dev/guide/migration.html#migrating-to-vitest-2-0). #####    🚨 Breaking Changes - `spy.mockReset` changes  -  by [@&#8203;Lordfirespeed](https://github.com/Lordfirespeed) in [#&#8203;6426](https://github.com/vitest-dev/vitest/issues/6426) [<samp>(db7a8)</samp>](https://github.com/vitest-dev/vitest/commit/db7a8888) - Pass down context to test hooks  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7034](https://github.com/vitest-dev/vitest/issues/7034) [<samp>(82c2e)</samp>](https://github.com/vitest-dev/vitest/commit/82c2e244) - Support Vite 6  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7026](https://github.com/vitest-dev/vitest/issues/7026) [<samp>(7abe8)</samp>](https://github.com/vitest-dev/vitest/commit/7abe854c) - **coverage**: Always exclude test files  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7254](https://github.com/vitest-dev/vitest/issues/7254) [<samp>(b5268)</samp>](https://github.com/vitest-dev/vitest/commit/b5268965) - **deps**: Update fake-timers to v14.0.0  -  by [@&#8203;xxzefgh](https://github.com/xxzefgh) and [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7097](https://github.com/vitest-dev/vitest/issues/7097) [<samp>(c98b4)</samp>](https://github.com/vitest-dev/vitest/commit/c98b4b1c) - **expect**: Check more properties for error equality  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;5876](https://github.com/vitest-dev/vitest/issues/5876) [<samp>(10023)</samp>](https://github.com/vitest-dev/vitest/commit/100230e9) - **runner**: Support `describe(..., { shuffle: boolean })` and inherit from parent suite  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6670](https://github.com/vitest-dev/vitest/issues/6670) [<samp>(aa1da)</samp>](https://github.com/vitest-dev/vitest/commit/aa1dac3d) - **snapshot**: Reset snapshot state for `retry` and `repeats`  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6817](https://github.com/vitest-dev/vitest/issues/6817) [<samp>(e8ce9)</samp>](https://github.com/vitest-dev/vitest/commit/e8ce94cf) - **spy**: SpyOn reuses mock if method is already spyed on  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) and [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6464](https://github.com/vitest-dev/vitest/issues/6464) [<samp>(b3e43)</samp>](https://github.com/vitest-dev/vitest/commit/b3e43d04) - **vitest**: Don't expose default toFake config  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6288](https://github.com/vitest-dev/vitest/issues/6288) [<samp>(e3144)</samp>](https://github.com/vitest-dev/vitest/commit/e3144fd8) #####    🚀 Features - Support inline `diff` options and support `printBasicPrototype`  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa), [@&#8203;sheremet-va](https://github.com/sheremet-va) and **Michał Grzegorzewski** in [#&#8203;6740](https://github.com/vitest-dev/vitest/issues/6740) [<samp>(39186)</samp>](https://github.com/vitest-dev/vitest/commit/391860f7) - Allow a custom note when calling `ctx.skip()` dynamically  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6805](https://github.com/vitest-dev/vitest/issues/6805) [<samp>(697c3)</samp>](https://github.com/vitest-dev/vitest/commit/697c35c5) - Allow inline workspace configuration  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6923](https://github.com/vitest-dev/vitest/issues/6923) [<samp>(562e1)</samp>](https://github.com/vitest-dev/vitest/commit/562e1b14) - Provide the current project to the global setup  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6942](https://github.com/vitest-dev/vitest/issues/6942) [<samp>(a5bbc)</samp>](https://github.com/vitest-dev/vitest/commit/a5bbc0a9) - Print project name as a label  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6925](https://github.com/vitest-dev/vitest/issues/6925) [<samp>(a3bef)</samp>](https://github.com/vitest-dev/vitest/commit/a3bef598) - Print a deprecation warning if suite or test uses object as the third argument  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7031](https://github.com/vitest-dev/vitest/issues/7031) [<samp>(407f1)</samp>](https://github.com/vitest-dev/vitest/commit/407f10e4) - Expose versions from `vitest/node` entry point and statically on Vitest  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7029](https://github.com/vitest-dev/vitest/issues/7029) [<samp>(be8d4)</samp>](https://github.com/vitest-dev/vitest/commit/be8d479b) - `diff.printBasicPrototype: false` by default  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7043](https://github.com/vitest-dev/vitest/issues/7043) [<samp>(2b5c5)</samp>](https://github.com/vitest-dev/vitest/commit/2b5c5201) - Prepare the Vitest API to be stable  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6962](https://github.com/vitest-dev/vitest/issues/6962) [<samp>(9a1b5)</samp>](https://github.com/vitest-dev/vitest/commit/9a1b5012) - Support Vite v6 in mocker package  -  by [@&#8203;cexbrayat](https://github.com/cexbrayat) in [#&#8203;7058](https://github.com/vitest-dev/vitest/issues/7058) [<samp>(96f47)</samp>](https://github.com/vitest-dev/vitest/commit/96f47d37) - Allow multi-browser configuration  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6975](https://github.com/vitest-dev/vitest/issues/6975) [<samp>(78b62)</samp>](https://github.com/vitest-dev/vitest/commit/78b62ffe) - Add resolved project names to the reporter API  -  by [@&#8203;userquin](https://github.com/userquin) in [#&#8203;7213](https://github.com/vitest-dev/vitest/issues/7213) [<samp>(91758)</samp>](https://github.com/vitest-dev/vitest/commit/91758360) - Introduce the new reporter API  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7069](https://github.com/vitest-dev/vitest/issues/7069) [<samp>(76662)</samp>](https://github.com/vitest-dev/vitest/commit/766624ab) - Add `describe.for`  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7253](https://github.com/vitest-dev/vitest/issues/7253) [<samp>(0ad28)</samp>](https://github.com/vitest-dev/vitest/commit/0ad2860b) - **api**: - Add onBrowserInit event  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7255](https://github.com/vitest-dev/vitest/issues/7255) [<samp>(80ce0)</samp>](https://github.com/vitest-dev/vitest/commit/80ce0e1c) - **browser**: - Support `actionTimeout` as playwright provider options  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6984](https://github.com/vitest-dev/vitest/issues/6984) [<samp>(e2c29)</samp>](https://github.com/vitest-dev/vitest/commit/e2c29eaf) - Support clipboard api `userEvent.copy, cut, paste`  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6769](https://github.com/vitest-dev/vitest/issues/6769) [<samp>(843a6)</samp>](https://github.com/vitest-dev/vitest/commit/843a621e) - Implement locator.nth()  -  by [@&#8203;xeger](https://github.com/xeger) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7137](https://github.com/vitest-dev/vitest/issues/7137) [<samp>(38458)</samp>](https://github.com/vitest-dev/vitest/commit/38458ea6) - **cli**: - Support excluding projects with `--project=!pattern`  -  by [@&#8203;haines](https://github.com/haines) in [#&#8203;6924](https://github.com/vitest-dev/vitest/issues/6924) [<samp>(ebfe9)</samp>](https://github.com/vitest-dev/vitest/commit/ebfe942c) - Support specifying a line number when filtering tests  -  by [@&#8203;mzhubail](https://github.com/mzhubail) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6411](https://github.com/vitest-dev/vitest/issues/6411) [<samp>(4d94b)</samp>](https://github.com/vitest-dev/vitest/commit/4d94b956) - Support location filters for suites  -  by [@&#8203;mzhubail](https://github.com/mzhubail) in [#&#8203;7048](https://github.com/vitest-dev/vitest/issues/7048) [<samp>(751e2)</samp>](https://github.com/vitest-dev/vitest/commit/751e2dce) - **coverage**: - `thresholds` to support maximum uncovered items  -  by [@&#8203;jonahkagan](https://github.com/jonahkagan) in [#&#8203;7061](https://github.com/vitest-dev/vitest/issues/7061) [<samp>(bde98)</samp>](https://github.com/vitest-dev/vitest/commit/bde98b6d) - **expect**: - Add `toHaveBeenCalledExactlyOnceWith` expect matcher  -  by [@&#8203;jacoberdman2147](https://github.com/jacoberdman2147) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6894](https://github.com/vitest-dev/vitest/issues/6894) [<samp>(ff662)</samp>](https://github.com/vitest-dev/vitest/commit/ff66206a) - Add `toHaveBeenCalledAfter` and `toHaveBeenCalledBefore` utility  -  by [@&#8203;Barbapapazes](https://github.com/Barbapapazes) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6056](https://github.com/vitest-dev/vitest/issues/6056) [<samp>(85e6f)</samp>](https://github.com/vitest-dev/vitest/commit/85e6f99f) - Add `toSatisfy` asymmetric matcher  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7022](https://github.com/vitest-dev/vitest/issues/7022) [<samp>(f691a)</samp>](https://github.com/vitest-dev/vitest/commit/f691ad76) - Add `toBeOneOf` matcher  -  by [@&#8203;zirkelc](https://github.com/zirkelc) and [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6974](https://github.com/vitest-dev/vitest/issues/6974) [<samp>(3d742)</samp>](https://github.com/vitest-dev/vitest/commit/3d742b2b) - **reporter**: - Add support for function type to classname option in the junit reporter  -  by [@&#8203;jpleclerc](https://github.com/jpleclerc), **Jean-Philippe Leclerc** and [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6839](https://github.com/vitest-dev/vitest/issues/6839) [<samp>(dc238)</samp>](https://github.com/vitest-dev/vitest/commit/dc238e92) - **reporters**: - `summary` option for `verbose` and `default` reporters  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;6893](https://github.com/vitest-dev/vitest/issues/6893) [<samp>(511b7)</samp>](https://github.com/vitest-dev/vitest/commit/511b73c7) - **runner**: - Test context can inject values from the config's `provide`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6813](https://github.com/vitest-dev/vitest/issues/6813) [<samp>(85c64)</samp>](https://github.com/vitest-dev/vitest/commit/85c64e35) - Add "queued" state  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;6931](https://github.com/vitest-dev/vitest/issues/6931) [<samp>(5f8d2)</samp>](https://github.com/vitest-dev/vitest/commit/5f8d2091) - **snapshot**: - Provide `config` to `resolveSnapshotPath`  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6800](https://github.com/vitest-dev/vitest/issues/6800) [<samp>(746d8)</samp>](https://github.com/vitest-dev/vitest/commit/746d8986) - **ui**: - Allow run individual tests/suites from the UI  -  by [@&#8203;userquin](https://github.com/userquin) in [#&#8203;6641](https://github.com/vitest-dev/vitest/issues/6641) [<samp>(d9cc8)</samp>](https://github.com/vitest-dev/vitest/commit/d9cc81dd) - Make clicking on a test in the UI open the report section and scroll to the test failure if applicable  -  by [@&#8203;jacoberdman2147](https://github.com/jacoberdman2147) in [#&#8203;6900](https://github.com/vitest-dev/vitest/issues/6900) [<samp>(1bf27)</samp>](https://github.com/vitest-dev/vitest/commit/1bf27f0d) - Allow hide/show node\_modules in module graph tab  -  by [@&#8203;userquin](https://github.com/userquin) in [#&#8203;7217](https://github.com/vitest-dev/vitest/issues/7217) [<samp>(50cf6)</samp>](https://github.com/vitest-dev/vitest/commit/50cf61b8) - **vitest**: - Include `coverageMap` in json report  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6606](https://github.com/vitest-dev/vitest/issues/6606) [<samp>(9c8f7)</samp>](https://github.com/vitest-dev/vitest/commit/9c8f7e3e) - Add `onTestsRerun` method to global setup context  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6803](https://github.com/vitest-dev/vitest/issues/6803) [<samp>(e26e0)</samp>](https://github.com/vitest-dev/vitest/commit/e26e066c) #####    🐞 Bug Fixes - Misc fix for vite 6 ecosystem ci  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6867](https://github.com/vitest-dev/vitest/issues/6867) [<samp>(80f8b)</samp>](https://github.com/vitest-dev/vitest/commit/80f8bbf4) - Respect `cacheDir` when optimizer is enabled  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6910](https://github.com/vitest-dev/vitest/issues/6910) [<samp>(0b08b)</samp>](https://github.com/vitest-dev/vitest/commit/0b08bc11) - Reset runningPromise after `finally` in case there is an error to avoid it getting stuck  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6951](https://github.com/vitest-dev/vitest/issues/6951) [<samp>(02194)</samp>](https://github.com/vitest-dev/vitest/commit/021944cd) - Revert support for Vite 6  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) [<samp>(fbe5c)</samp>](https://github.com/vitest-dev/vitest/commit/fbe5c39d) - Support Node 21  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) [<samp>(92f7a)</samp>](https://github.com/vitest-dev/vitest/commit/92f7a2ad) - Don't use `Custom` type internally  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7032](https://github.com/vitest-dev/vitest/issues/7032) [<samp>(7957f)</samp>](https://github.com/vitest-dev/vitest/commit/7957f912) - Persist cli filters as watch mode file filter  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6955](https://github.com/vitest-dev/vitest/issues/6955) [<samp>(cc703)</samp>](https://github.com/vitest-dev/vitest/commit/cc703362) - Don't use dim color for succeeded tests  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7059](https://github.com/vitest-dev/vitest/issues/7059) [<samp>(8a6f5)</samp>](https://github.com/vitest-dev/vitest/commit/8a6f5f16) - Fix missing chai types  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7149](https://github.com/vitest-dev/vitest/issues/7149) [<samp>(6a09c)</samp>](https://github.com/vitest-dev/vitest/commit/6a09cc3b) - `cancelCurrentRun` awaits `runningPromise`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7168](https://github.com/vitest-dev/vitest/issues/7168) [<samp>(1dbf5)</samp>](https://github.com/vitest-dev/vitest/commit/1dbf5140) - Add Locator typings for nth, first and last.  -  by [@&#8203;xeger](https://github.com/xeger) in [#&#8203;7176](https://github.com/vitest-dev/vitest/issues/7176) [<samp>(d262e)</samp>](https://github.com/vitest-dev/vitest/commit/d262e059) - Batch console logs by microtask  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7183](https://github.com/vitest-dev/vitest/issues/7183) [<samp>(53d1d)</samp>](https://github.com/vitest-dev/vitest/commit/53d1d5f5) - Allow `getMockImplementation` to return "once" implementation  -  by [@&#8203;chaptergy](https://github.com/chaptergy) in [#&#8203;7033](https://github.com/vitest-dev/vitest/issues/7033) [<samp>(39125)</samp>](https://github.com/vitest-dev/vitest/commit/3912554b) - `capturePrintError` logger duplicate event handlers  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7197](https://github.com/vitest-dev/vitest/issues/7197) [<samp>(e89c3)</samp>](https://github.com/vitest-dev/vitest/commit/e89c3693) - Allow slots in vitest-browser-vue  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7120](https://github.com/vitest-dev/vitest/issues/7120) [<samp>(2319f)</samp>](https://github.com/vitest-dev/vitest/commit/2319f849) - Reset root workspace project on restart  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7238](https://github.com/vitest-dev/vitest/issues/7238) [<samp>(6e518)</samp>](https://github.com/vitest-dev/vitest/commit/6e51843a) - Cleanup `vitest/reporters` entrypoint  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7241](https://github.com/vitest-dev/vitest/issues/7241) [<samp>(aec0b)</samp>](https://github.com/vitest-dev/vitest/commit/aec0b530) - Colors on `forks` pool  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7090](https://github.com/vitest-dev/vitest/issues/7090) [<samp>(8cab9)</samp>](https://github.com/vitest-dev/vitest/commit/8cab9601) - Export `VitestRunner` type from `vitest/runners`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7240](https://github.com/vitest-dev/vitest/issues/7240) [<samp>(9b218)</samp>](https://github.com/vitest-dev/vitest/commit/9b218854) - Return test fn result to runner  -  by [@&#8203;wmertens](https://github.com/wmertens) in [#&#8203;7239](https://github.com/vitest-dev/vitest/issues/7239) [<samp>(48645)</samp>](https://github.com/vitest-dev/vitest/commit/48645bf4) - Re-apply default conditions if using vite 6 or later  -  by [@&#8203;thebanjomatic](https://github.com/thebanjomatic), **thebanjomatic** and [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7071](https://github.com/vitest-dev/vitest/issues/7071) [<samp>(84287)</samp>](https://github.com/vitest-dev/vitest/commit/84287fc2) - Prevent infinite loop on prettyDOM calls  -  by [@&#8203;tsirlucas](https://github.com/tsirlucas) in [#&#8203;7250](https://github.com/vitest-dev/vitest/issues/7250) [<samp>(a3a46)</samp>](https://github.com/vitest-dev/vitest/commit/a3a46a53) - **api**: - Don't report events during `vitest list`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7257](https://github.com/vitest-dev/vitest/issues/7257) [<samp>(1c2b2)</samp>](https://github.com/vitest-dev/vitest/commit/1c2b210d) - **benchmark**: - Disable type testing while benchmarking  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7068](https://github.com/vitest-dev/vitest/issues/7068) [<samp>(4e603)</samp>](https://github.com/vitest-dev/vitest/commit/4e60333d) - Rewrite reporter without `log-update`  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7019](https://github.com/vitest-dev/vitest/issues/7019) [<samp>(6d23f)</samp>](https://github.com/vitest-dev/vitest/commit/6d23f4b1) - **browser**: - Improve source maps when `vi.mock` is present  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6810](https://github.com/vitest-dev/vitest/issues/6810) [<samp>(8d179)</samp>](https://github.com/vitest-dev/vitest/commit/8d179afc) - Explain TypeScript support in docs and add asymmetric matchers to types  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6934](https://github.com/vitest-dev/vitest/issues/6934) [<samp>(ac1a7)</samp>](https://github.com/vitest-dev/vitest/commit/ac1a7fdc) - Fix matchers.d.ts  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6995](https://github.com/vitest-dev/vitest/issues/6995) [<samp>(a485b)</samp>](https://github.com/vitest-dev/vitest/commit/a485b32b) - Fix user event state on preview provider  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7041](https://github.com/vitest-dev/vitest/issues/7041) [<samp>(8e944)</samp>](https://github.com/vitest-dev/vitest/commit/8e94427e) - Fix provider options types  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7115](https://github.com/vitest-dev/vitest/issues/7115) [<samp>(579bd)</samp>](https://github.com/vitest-dev/vitest/commit/579bda97) - Only use locator.element on last expect.element attempt  -  by [@&#8203;tsirlucas](https://github.com/tsirlucas) in [#&#8203;7139](https://github.com/vitest-dev/vitest/issues/7139) and [#&#8203;7152](https://github.com/vitest-dev/vitest/issues/7152) [<samp>(847d3)</samp>](https://github.com/vitest-dev/vitest/commit/847d3221) - Use correct project when filtering `entries` in the browser mode  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7167](https://github.com/vitest-dev/vitest/issues/7167) [<samp>(423d6)</samp>](https://github.com/vitest-dev/vitest/commit/423d6345) - Fix `console.time` with fake timers  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7207](https://github.com/vitest-dev/vitest/issues/7207) [<samp>(903f3)</samp>](https://github.com/vitest-dev/vitest/commit/903f3b9b) - Add instance validation to resolve coverage error  -  by [@&#8203;DevJoaoLopes](https://github.com/DevJoaoLopes) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7231](https://github.com/vitest-dev/vitest/issues/7231) [<samp>(1e791)</samp>](https://github.com/vitest-dev/vitest/commit/1e7915b5) - **coverage**: - Exclude browser mode iframe results  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;6905](https://github.com/vitest-dev/vitest/issues/6905) [<samp>(e04a1)</samp>](https://github.com/vitest-dev/vitest/commit/e04a1368) - Correct coverage when `isolate: false` is used  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;6957](https://github.com/vitest-dev/vitest/issues/6957) [<samp>(426ce)</samp>](https://github.com/vitest-dev/vitest/commit/426ce6d8) - Prevent crash when v8 incorrectly merges static\_initializer's  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7150](https://github.com/vitest-dev/vitest/issues/7150) [<samp>(cb6db)</samp>](https://github.com/vitest-dev/vitest/commit/cb6db13e) - **deps**: - Update all non-major dependencies  -  in [#&#8203;7085](https://github.com/vitest-dev/vitest/issues/7085) [<samp>(8cc92)</samp>](https://github.com/vitest-dev/vitest/commit/8cc92c2f) - Update all non-major dependencies  -  in [#&#8203;7116](https://github.com/vitest-dev/vitest/issues/7116) [<samp>(de5ce)</samp>](https://github.com/vitest-dev/vitest/commit/de5ce3d9) - Update dependency pathe to v2  -  in [#&#8203;7181](https://github.com/vitest-dev/vitest/issues/7181) [<samp>(74dbe)</samp>](https://github.com/vitest-dev/vitest/commit/74dbe03f) - **diff**: - Truncate to avoid crash on diff large objects  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7133](https://github.com/vitest-dev/vitest/issues/7133) [<samp>(2a9d6)</samp>](https://github.com/vitest-dev/vitest/commit/2a9d67a2) - **junit**: - Fix testsuites time to be sum of all testsuite items  -  by [@&#8203;saitonakamura](https://github.com/saitonakamura) in [#&#8203;6985](https://github.com/vitest-dev/vitest/issues/6985) [<samp>(ca37a)</samp>](https://github.com/vitest-dev/vitest/commit/ca37a06a) - **pretty-format**: - Support react 19  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6909](https://github.com/vitest-dev/vitest/issues/6909) [<samp>(bd29b)</samp>](https://github.com/vitest-dev/vitest/commit/bd29bcc7) - **reporters**: - Write buffered stdout/stderr on process exit  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;6932](https://github.com/vitest-dev/vitest/issues/6932) [<samp>(80cde)</samp>](https://github.com/vitest-dev/vitest/commit/80cde2a0) - Rewrite `dot` reporter without `log-update`  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;6943](https://github.com/vitest-dev/vitest/issues/6943) [<samp>(be969)</samp>](https://github.com/vitest-dev/vitest/commit/be969cfb) - Check `--hideSkippedTests` in base reporter  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;6988](https://github.com/vitest-dev/vitest/issues/6988) [<samp>(721a5)</samp>](https://github.com/vitest-dev/vitest/commit/721a5b84) - Show `retry` and `repeats` counts  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) and [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7004](https://github.com/vitest-dev/vitest/issues/7004) [<samp>(3496a)</samp>](https://github.com/vitest-dev/vitest/commit/3496a015) - **runner**: - Long synchronous tasks does not time out  -  by [@&#8203;ferdodo](https://github.com/ferdodo) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;2920](https://github.com/vitest-dev/vitest/issues/2920) and [#&#8203;6944](https://github.com/vitest-dev/vitest/issues/6944) [<samp>(2fb58)</samp>](https://github.com/vitest-dev/vitest/commit/2fb585ae) - Mark tests of `describe.todo` as `'todo'`  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7171](https://github.com/vitest-dev/vitest/issues/7171) [<samp>(1d458)</samp>](https://github.com/vitest-dev/vitest/commit/1d458955) - **snapshot**: - Fix "obsolete" message on snapshot update re-run  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7129](https://github.com/vitest-dev/vitest/issues/7129) [<samp>(c2beb)</samp>](https://github.com/vitest-dev/vitest/commit/c2beb8ca) - Preserve white space of `toMatchFileSnapshot`  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7156](https://github.com/vitest-dev/vitest/issues/7156) [<samp>(a437b)</samp>](https://github.com/vitest-dev/vitest/commit/a437b656) - Fix obsoleteness check of `toMatchSnapshot("...")`  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7126](https://github.com/vitest-dev/vitest/issues/7126) [<samp>(ac9ba)</samp>](https://github.com/vitest-dev/vitest/commit/ac9ba151) - **typecheck**: - Fix typecheck collect on Vite 6  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6972](https://github.com/vitest-dev/vitest/issues/6972) [<samp>(7b35d)</samp>](https://github.com/vitest-dev/vitest/commit/7b35d13a) - Use unique temp and tsbuildinfo file for each tsconfig file  -  by [@&#8203;masnormen](https://github.com/masnormen) in [#&#8203;7107](https://github.com/vitest-dev/vitest/issues/7107) and [#&#8203;7112](https://github.com/vitest-dev/vitest/issues/7112) [<samp>(61b30)</samp>](https://github.com/vitest-dev/vitest/commit/61b30162) - Fix error test case mapping for `@ts-expect-error`  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7125](https://github.com/vitest-dev/vitest/issues/7125) [<samp>(27d34)</samp>](https://github.com/vitest-dev/vitest/commit/27d340aa) - **types**: - Make parameters non-nullable for Playwright options  -  by [@&#8203;apple-yagi](https://github.com/apple-yagi) in [#&#8203;6989](https://github.com/vitest-dev/vitest/issues/6989) [<samp>(fe2a1)</samp>](https://github.com/vitest-dev/vitest/commit/fe2a187f) - **ui**: - Wrong module graph when generating html.meta.json.gz in browser mode  -  by [@&#8203;userquin](https://github.com/userquin) in [#&#8203;7214](https://github.com/vitest-dev/vitest/issues/7214) [<samp>(dccdd)</samp>](https://github.com/vitest-dev/vitest/commit/dccdd550) - Add errors and draft state (\*) to the code editor  -  by [@&#8203;userquin](https://github.com/userquin) in [#&#8203;7044](https://github.com/vitest-dev/vitest/issues/7044) [<samp>(faca4)</samp>](https://github.com/vitest-dev/vitest/commit/faca4de8) - **vite-node**: - Fix error stack on Windows  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6786](https://github.com/vitest-dev/vitest/issues/6786) [<samp>(bf7b3)</samp>](https://github.com/vitest-dev/vitest/commit/bf7b36ac) - Properly normalize file url import  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7087](https://github.com/vitest-dev/vitest/issues/7087) [<samp>(31675)</samp>](https://github.com/vitest-dev/vitest/commit/31675e3b) - Fix mandatory node prefix  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7179](https://github.com/vitest-dev/vitest/issues/7179) [<samp>(b6284)</samp>](https://github.com/vitest-dev/vitest/commit/b6284642) - **watch**: - Don't indicate exit when no matching files  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7246](https://github.com/vitest-dev/vitest/issues/7246) [<samp>(003c0)</samp>](https://github.com/vitest-dev/vitest/commit/003c0bef) - **workspace**: - `extends: true` correctly inherits all root config properties  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7232](https://github.com/vitest-dev/vitest/issues/7232) [<samp>(798c0)</samp>](https://github.com/vitest-dev/vitest/commit/798c0da2) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v2.1.8...v3.0.0) ### [`v2.1.9`](https://github.com/vitest-dev/vitest/releases/tag/v2.1.9) [Compare Source](https://github.com/vitest-dev/vitest/compare/v2.1.8...v2.1.9) This release includes security patches for: - [Browser mode serves arbitrary files | CVE-2025-24963](https://github.com/vitest-dev/vitest/security/advisories/GHSA-8gvc-j273-4wm5) - [Remote Code Execution when accessing a malicious website while Vitest API server is listening | CVE-2025-24964](https://github.com/vitest-dev/vitest/security/advisories/GHSA-9crc-q9x8-hgqq) #####    🐞 Bug Fixes - backport [#&#8203;7317](https://github.com/vitest-dev/vitest/issues/7317) to v2 - by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7318](https://github.com/vitest-dev/vitest/pull/7318) - (backport [#&#8203;7340](https://github.com/vitest-dev/vitest/issues/7340) to v2) restrict served files from `/__screenshot-error` - by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7343](https://github.com/vitest-dev/vitest/pull/7343) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v2.1.8...v2.1.9) ### [`v2.1.8`](https://github.com/vitest-dev/vitest/releases/tag/v2.1.8) [Compare Source](https://github.com/vitest-dev/vitest/compare/v2.1.7...v2.1.8) #####    🐞 Bug Fixes - Support Node 21  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) [<samp>(92f7a)</samp>](https://github.com/vitest-dev/vitest/commit/92f7a2ad) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v2.1.7...v2.1.8) ### [`v2.1.7`](https://github.com/vitest-dev/vitest/releases/tag/v2.1.7) [Compare Source](https://github.com/vitest-dev/vitest/compare/v2.1.6...v2.1.7) #####    🐞 Bug Fixes - Revert support for Vite 6  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) [<samp>(fbe5c)</samp>](https://github.com/vitest-dev/vitest/commit/fbe5c39d) - This introduced some breaking changes ([#&#8203;6992](https://github.com/vitest-dev/vitest/issues/6992)). We will enable support for it later. In the meantime, you can still use `pnpm.overrides` or yarn resolutions to override the `vite` version in the `vitest` package - the APIs are compatible. #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v2.1.6...v2.1.7) ### [`v2.1.6`](https://github.com/vitest-dev/vitest/releases/tag/v2.1.6) [Compare Source](https://github.com/vitest-dev/vitest/compare/v2.1.5...v2.1.6) ##### 🚀 Features - Support Vite 6 #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v2.1.5...v2.1.6) ### [`v2.1.5`](https://github.com/vitest-dev/vitest/releases/tag/v2.1.5) [Compare Source](https://github.com/vitest-dev/vitest/compare/v2.1.4...v2.1.5) #####    🐞 Bug Fixes - `dangerouslyIgnoreUnhandledErrors` without base reporter  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;6808](https://github.com/vitest-dev/vitest/issues/6808) [<samp>(0bf0a)</samp>](https://github.com/vitest-dev/vitest/commit/0bf0ab00) - Capture `unhandledRejection` even when base reporter is not used  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;6812](https://github.com/vitest-dev/vitest/issues/6812) [<samp>(8878b)</samp>](https://github.com/vitest-dev/vitest/commit/8878b04d) - Don't change the working directory when loading workspace projects  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6811](https://github.com/vitest-dev/vitest/issues/6811) [<samp>(f0aea)</samp>](https://github.com/vitest-dev/vitest/commit/f0aeaca8) - Remove `sequence.concurrent` from the `RuntimeConfig` type  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6880](https://github.com/vitest-dev/vitest/issues/6880) [<samp>(6af73)</samp>](https://github.com/vitest-dev/vitest/commit/6af73d93) - Stop the runner before restarting, restart on workspace config change  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6859](https://github.com/vitest-dev/vitest/issues/6859) [<samp>(b01df)</samp>](https://github.com/vitest-dev/vitest/commit/b01df47d) - Don't rerun on Esc or Ctrl-C during watch filter  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6895](https://github.com/vitest-dev/vitest/issues/6895) [<samp>(98f76)</samp>](https://github.com/vitest-dev/vitest/commit/98f76ea7) - Print ssrTransform error  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6885](https://github.com/vitest-dev/vitest/issues/6885) [<samp>(4c96c)</samp>](https://github.com/vitest-dev/vitest/commit/4c96cce7) - Throw an error and a warning if `.poll`, `.element`, `.rejects`/`.resolves`, and `locator.*` weren't awaited  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6877](https://github.com/vitest-dev/vitest/issues/6877) [<samp>(93b67)</samp>](https://github.com/vitest-dev/vitest/commit/93b67c24) - **browser**: - Don't process the default css styles  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6861](https://github.com/vitest-dev/vitest/issues/6861) [<samp>(0d67f)</samp>](https://github.com/vitest-dev/vitest/commit/0d67f04b) - Support non US key input  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6873](https://github.com/vitest-dev/vitest/issues/6873) [<samp>(5969d)</samp>](https://github.com/vitest-dev/vitest/commit/5969d8da) - Stop the browser rpc when the pool is closed  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6858](https://github.com/vitest-dev/vitest/issues/6858) [<samp>(9a0c9)</samp>](https://github.com/vitest-dev/vitest/commit/9a0c93d7) - Init browsers eagerly when tests are running  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6876](https://github.com/vitest-dev/vitest/issues/6876) [<samp>(417bd)</samp>](https://github.com/vitest-dev/vitest/commit/417bdb42) - **coverage**: - Report uncovered files when re-run by `enter` or `'a'`  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;6848](https://github.com/vitest-dev/vitest/issues/6848) [<samp>(487c8)</samp>](https://github.com/vitest-dev/vitest/commit/487c80ae) - **ui**: - Remove crossorigin attributes for same origin assets  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6883](https://github.com/vitest-dev/vitest/issues/6883) [<samp>(6e793)</samp>](https://github.com/vitest-dev/vitest/commit/6e793c64) - **vite-node**: - Improve esm check to decide external  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6816](https://github.com/vitest-dev/vitest/issues/6816) [<samp>(7e1fa)</samp>](https://github.com/vitest-dev/vitest/commit/7e1faf3d) - Top-level throw in module is not reported properly  -  by [@&#8203;vanaigr](https://github.com/vanaigr) and [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6840](https://github.com/vitest-dev/vitest/issues/6840) [<samp>(cf0cb)</samp>](https://github.com/vitest-dev/vitest/commit/cf0cbf6a) - **vitest**: - Use fetch() implementation from happy-dom  -  by [@&#8203;capricorn86](https://github.com/capricorn86) in [#&#8203;6879](https://github.com/vitest-dev/vitest/issues/6879) [<samp>(3c56f)</samp>](https://github.com/vitest-dev/vitest/commit/3c56feb4) #####    🏎 Performance - Limit workspace project concurrency to available cores  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6869](https://github.com/vitest-dev/vitest/issues/6869) [<samp>(f4c04)</samp>](https://github.com/vitest-dev/vitest/commit/f4c04ab6) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v2.1.4...v2.1.5) ### [`v2.1.4`](https://github.com/vitest-dev/vitest/releases/tag/v2.1.4) [Compare Source](https://github.com/vitest-dev/vitest/compare/v2.1.3...v2.1.4) #####    🚀 Features *This patch release includes a non-breaking feature for the experimental Browser Mode that doesn't follow SemVer. If you want to avoid picking up releases like this, make sure to pin the Vitest version in your `package.json`. See npm's documentation about [semver](https://docs.npmjs.com/cli/v6/using-npm/semver/) for more information.* - **browser**: Allow custom HTML path, respect plugins `transformIndexHtml`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6725](https://github.com/vitest-dev/vitest/issues/6725) [<samp>(16902)</samp>](https://github.com/vitest-dev/vitest/commit/169028f0) #####    🐞 Bug Fixes - **windows**: - Don't normalize drive case letter in root  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6792](https://github.com/vitest-dev/vitest/issues/6792) [<samp>(b28cd)</samp>](https://github.com/vitest-dev/vitest/commit/b28cd2e3) - **browser**: - Fix default browser port  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6700](https://github.com/vitest-dev/vitest/issues/6700) [<samp>(9c518)</samp>](https://github.com/vitest-dev/vitest/commit/9c518c14) - Optimize expect-type  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6713](https://github.com/vitest-dev/vitest/issues/6713) [<samp>(07918)</samp>](https://github.com/vitest-dev/vitest/commit/07918538) - Don't polyfill process.env  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6718](https://github.com/vitest-dev/vitest/issues/6718) [<samp>(da6d2)</samp>](https://github.com/vitest-dev/vitest/commit/da6d2ea7) - Increment browser port automatically if there are several projects with browser.enabled  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6717](https://github.com/vitest-dev/vitest/issues/6717) [<samp>(a9397)</samp>](https://github.com/vitest-dev/vitest/commit/a939779f) - Cleanup keyboard state  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6731](https://github.com/vitest-dev/vitest/issues/6731) [<samp>(19278)</samp>](https://github.com/vitest-dev/vitest/commit/19278f4c) - Don't add `v=` queries to setup files imports  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6759](https://github.com/vitest-dev/vitest/issues/6759) [<samp>(b8258)</samp>](https://github.com/vitest-dev/vitest/commit/b82584c9) - User event cleanup on retry  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6764](https://github.com/vitest-dev/vitest/issues/6764) [<samp>(bdd15)</samp>](https://github.com/vitest-dev/vitest/commit/bdd15dd1) - Ignore non mocked msw requests  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6770](https://github.com/vitest-dev/vitest/issues/6770) [<samp>(9d9ba)</samp>](https://github.com/vitest-dev/vitest/commit/9d9bad5b) - Initiate MSW in the same frame as tests  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6772](https://github.com/vitest-dev/vitest/issues/6772) [<samp>(2444f)</samp>](https://github.com/vitest-dev/vitest/commit/2444ff22) - **deps**: - Update dependency sirv to v3  -  in [#&#8203;6701](https://github.com/vitest-dev/vitest/issues/6701) [<samp>(fde5d)</samp>](https://github.com/vitest-dev/vitest/commit/fde5d509) - **expect**: - Correct behavior of `toThrowError` with empty string parameter  -  by [@&#8203;shulaoda](https://github.com/shulaoda) in [#&#8203;6710](https://github.com/vitest-dev/vitest/issues/6710) [<samp>(a6129)</samp>](https://github.com/vitest-dev/vitest/commit/a61293e9) - **mocker**: - Remove spy from peer dependencies  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6777](https://github.com/vitest-dev/vitest/issues/6777) [<samp>(3a8b5)</samp>](https://github.com/vitest-dev/vitest/commit/3a8b56bf) - **vitest**: - Clarify slowTestThreshold, print slow tests in non-TTY mode  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6715](https://github.com/vitest-dev/vitest/issues/6715) [<samp>(2e6aa)</samp>](https://github.com/vitest-dev/vitest/commit/2e6aa647) - Print warnings form Vite plugins  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6724](https://github.com/vitest-dev/vitest/issues/6724) [<samp>(121b1)</samp>](https://github.com/vitest-dev/vitest/commit/121b161f) - Don't fail if the working directory starts with a lowercase drive letter  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6779](https://github.com/vitest-dev/vitest/issues/6779) [<samp>(df6d7)</samp>](https://github.com/vitest-dev/vitest/commit/df6d750b) - Silence import analysis warning  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6785](https://github.com/vitest-dev/vitest/issues/6785) [<samp>(39041)</samp>](https://github.com/vitest-dev/vitest/commit/39041ee5) - **vitest,runner**: - Simplify `test.extend` type exports  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6707](https://github.com/vitest-dev/vitest/issues/6707) [<samp>(e5c38)</samp>](https://github.com/vitest-dev/vitest/commit/e5c388f0) #####    🏎 Performance - Use `hash` to replace `createHash`  -  by [@&#8203;btea](https://github.com/btea) in [#&#8203;6703](https://github.com/vitest-dev/vitest/issues/6703) [<samp>(5d07b)</samp>](https://github.com/vitest-dev/vitest/commit/5d07bba6) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v2.1.3...v2.1.4) ### [`v2.1.3`](https://github.com/vitest-dev/vitest/releases/tag/v2.1.3) [Compare Source](https://github.com/vitest-dev/vitest/compare/v2.1.2...v2.1.3) #####    🐞 Bug Fixes - Fix error diff of `toBeNaN, toBeUndefined, toBeNull, toBeTruthy, toBeFalsy`  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6697](https://github.com/vitest-dev/vitest/issues/6697) [<samp>(e0027)</samp>](https://github.com/vitest-dev/vitest/commit/e002758c) - **browser**: - Provide aria role intellisense  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6629](https://github.com/vitest-dev/vitest/issues/6629) [<samp>(f36ea)</samp>](https://github.com/vitest-dev/vitest/commit/f36eac77) - Not.toBeInTheDocument works with locators API  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6634](https://github.com/vitest-dev/vitest/issues/6634) [<samp>(8bef5)</samp>](https://github.com/vitest-dev/vitest/commit/8bef5d2b) - Use `/mockServiceWorker.js` instead of `/__vitest_msw__`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6687](https://github.com/vitest-dev/vitest/issues/6687) [<samp>(4b2ce)</samp>](https://github.com/vitest-dev/vitest/commit/4b2ce07f) - Don't override the esbuild option in the browser mode  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6692](https://github.com/vitest-dev/vitest/issues/6692) [<samp>(d131f)</samp>](https://github.com/vitest-dev/vitest/commit/d131fd64) - **expect**: - Preserve prototype in `toMatchObject` diff  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6620](https://github.com/vitest-dev/vitest/issues/6620) [<samp>(d289e)</samp>](https://github.com/vitest-dev/vitest/commit/d289e7eb) - **mocker**: - Specify correct spy dependency  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) [<samp>(7e958)</samp>](https://github.com/vitest-dev/vitest/commit/7e9584aa) - **runner**: - Ensure sequential suite overrides sequence.concurrent  -  by [@&#8203;dsyddall](https://github.com/dsyddall) and [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6653](https://github.com/vitest-dev/vitest/issues/6653) [<samp>(5e6de)</samp>](https://github.com/vitest-dev/vitest/commit/5e6de274) - **vitest**: - Deprecate UserConfig in favor of ViteUserConfig  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6626](https://github.com/vitest-dev/vitest/issues/6626) [<samp>(496bd)</samp>](https://github.com/vitest-dev/vitest/commit/496bd251) - Don't hang with maxConcurrency 0  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6627](https://github.com/vitest-dev/vitest/issues/6627) [<samp>(946d8)</samp>](https://github.com/vitest-dev/vitest/commit/946d8bb1) - Deprecate old task types and node-reliant types  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6632](https://github.com/vitest-dev/vitest/issues/6632) [<samp>(00045)</samp>](https://github.com/vitest-dev/vitest/commit/000459a9) - Fix `<empty line>` logs when interleaving `console.log/error`  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6644](https://github.com/vitest-dev/vitest/issues/6644) [<samp>(9ece3)</samp>](https://github.com/vitest-dev/vitest/commit/9ece3952) - Show rollup error details as test error  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6686](https://github.com/vitest-dev/vitest/issues/6686) [<samp>(47dde)</samp>](https://github.com/vitest-dev/vitest/commit/47dde76f) - Always inline setup files  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6689](https://github.com/vitest-dev/vitest/issues/6689) [<samp>(19d64)</samp>](https://github.com/vitest-dev/vitest/commit/19d64e20) - Use `fast-glob` instead of `tinyglobby` in Vitest  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6688](https://github.com/vitest-dev/vitest/issues/6688) [<samp>(70baa)</samp>](https://github.com/vitest-dev/vitest/commit/70baaaa9) - **web-worker**: - Share mocker with main executor  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6623](https://github.com/vitest-dev/vitest/issues/6623) [<samp>(fe7b8)</samp>](https://github.com/vitest-dev/vitest/commit/fe7b8aee) #####    🏎 Performance - Reuse full name in reported tasks, update generator types  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6666](https://github.com/vitest-dev/vitest/issues/6666) [<samp>(7a0de)</samp>](https://github.com/vitest-dev/vitest/commit/7a0de0a7) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v2.1.2...v2.1.3) ### [`v2.1.2`](https://github.com/vitest-dev/vitest/releases/tag/v2.1.2) [Compare Source](https://github.com/vitest-dev/vitest/compare/v2.1.1...v2.1.2) #####    🐞 Bug Fixes - Move `Vitest.setServer` to post `configureServer` hook to enable import analysis for workspace config loading  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6584](https://github.com/vitest-dev/vitest/issues/6584) [<samp>(e7f35)</samp>](https://github.com/vitest-dev/vitest/commit/e7f35214) - **benchmark**: - Clear `BenchmarkResult.samples` array to reduce memory usage  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;6541](https://github.com/vitest-dev/vitest/issues/6541) [<samp>(a6407)</samp>](https://github.com/vitest-dev/vitest/commit/a6407afc) - **browser**: - Fix dynamic import inside worker  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6569](https://github.com/vitest-dev/vitest/issues/6569) [<samp>(ea2d4)</samp>](https://github.com/vitest-dev/vitest/commit/ea2d429b) - Fix browser mock factory event race condition  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6530](https://github.com/vitest-dev/vitest/issues/6530) [<samp>(f131f)</samp>](https://github.com/vitest-dev/vitest/commit/f131f93b) - Serve ui assets as static  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6564](https://github.com/vitest-dev/vitest/issues/6564) [<samp>(adcda)</samp>](https://github.com/vitest-dev/vitest/commit/adcdaee8) - Update solidjs testing library lib  -  by [@&#8203;CamilleTeruel](https://github.com/CamilleTeruel) in [#&#8203;6548](https://github.com/vitest-dev/vitest/issues/6548) [<samp>(91442)</samp>](https://github.com/vitest-dev/vitest/commit/91442dfc) - Use `data:` protocol on preview provider file upload  -  by [@&#8203;userquin](https://github.com/userquin) in [#&#8203;6501](https://github.com/vitest-dev/vitest/issues/6501) [<samp>(e9821)</samp>](https://github.com/vitest-dev/vitest/commit/e9821f70) - Fix base for client script  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6510](https://github.com/vitest-dev/vitest/issues/6510) [<samp>(f9528)</samp>](https://github.com/vitest-dev/vitest/commit/f952874e) - Throw an error if "@&#8203;vitest/browser/context" is imported outside of the browser mode  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6570](https://github.com/vitest-dev/vitest/issues/6570) [<samp>(383f1)</samp>](https://github.com/vitest-dev/vitest/commit/383f1791) - **coverage**: - Remove empty coverage folder on test failure too  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;6547](https://github.com/vitest-dev/vitest/issues/6547) [<samp>(1371c)</samp>](https://github.com/vitest-dev/vitest/commit/1371ca6a) - Include `*.astro` by default  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;6565](https://github.com/vitest-dev/vitest/issues/6565) [<samp>(f8ff7)</samp>](https://github.com/vitest-dev/vitest/commit/f8ff76a9) - `cleanOnRerun: false` to invalidate previous results  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;6592](https://github.com/vitest-dev/vitest/issues/6592) [<samp>(88bde)</samp>](https://github.com/vitest-dev/vitest/commit/88bde99c) - **expect**: - Fix `toBeDefined` with `expect.poll`  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6562](https://github.com/vitest-dev/vitest/issues/6562) [<samp>(f7da6)</samp>](https://github.com/vitest-dev/vitest/commit/f7da6199) - **forks**: - Fix `--cpu-prof` and `--heap-prof` not working by default  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;6555](https://github.com/vitest-dev/vitest/pull/6555) [<samp>(2e4d894)</samp>](https://github.com/vitest-dev/vitest/commit/2e4d894) - **runner**: - Mark tests as skipped when `beforeAll` failed  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6524](https://github.com/vitest-dev/vitest/issues/6524) [<samp>(fb797)</samp>](https://github.com/vitest-dev/vitest/commit/fb79792d) - Support fixture parsing of lowered async syntax  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6531](https://github.com/vitest-dev/vitest/issues/6531) [<samp>(b553c)</samp>](https://github.com/vitest-dev/vitest/commit/b553c7d6) - Fix fixture parsing of lowered async syntax for non arrow functions  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6575](https://github.com/vitest-dev/vitest/issues/6575) [<samp>(3de00)</samp>](https://github.com/vitest-dev/vitest/commit/3de00ab6) - Guard test hook callback  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6604](https://github.com/vitest-dev/vitest/issues/6604) [<samp>(14971)</samp>](https://github.com/vitest-dev/vitest/commit/1497134e) - Run `onTestFinished` and `onTestFailed` during `retry` and `repeats`  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6609](https://github.com/vitest-dev/vitest/issues/6609) [<samp>(c5e29)</samp>](https://github.com/vitest-dev/vitest/commit/c5e29098) - **ui**: - List tests on ui when `--standalone`  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6577](https://github.com/vitest-dev/vitest/issues/6577) [<samp>(d0bf8)</samp>](https://github.com/vitest-dev/vitest/commit/d0bf89d3) - **vite-node**: - Fix esm false-detection inside comment  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6506](https://github.com/vitest-dev/vitest/issues/6506) [<samp>(91f85)</samp>](https://github.com/vitest-dev/vitest/commit/91f85997) - **vitest**: - Install dependencies with the same version when prompted  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6611](https://github.com/vitest-dev/vitest/issues/6611) [<samp>(ed8b7)</samp>](https://github.com/vitest-dev/vitest/commit/ed8b7c08) - Make env.SSR consistent between different pools  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6616](https://github.com/vitest-dev/vitest/issues/6616) [<samp>(8a8d3)</samp>](https://github.com/vitest-dev/vitest/commit/8a8d3f03) - Don't start a websocket server if api is disabled  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6617](https://github.com/vitest-dev/vitest/issues/6617) [<samp>(82140)</samp>](https://github.com/vitest-dev/vitest/commit/821400b8) - **workspace**: - Fix glob pattern detection  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6502](https://github.com/vitest-dev/vitest/issues/6502) [<samp>(7727c)</samp>](https://github.com/vitest-dev/vitest/commit/7727ca87) - Ignore DS\_Store by default  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6571](https://github.com/vitest-dev/vitest/issues/6571) [<samp>(d2a86)</samp>](https://github.com/vitest-dev/vitest/commit/d2a86ff5) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v2.1.1...v2.1.2) ### [`v2.1.1`](https://github.com/vitest-dev/vitest/releases/tag/v2.1.1) [Compare Source](https://github.com/vitest-dev/vitest/compare/v2.1.0...v2.1.1) #####    🐞 Bug Fixes - **browser**: - Make example test callbacks async  -  by [@&#8203;aqandrew](https://github.com/aqandrew) in [#&#8203;6484](https://github.com/vitest-dev/vitest/issues/6484) [<samp>(16aa7)</samp>](https://github.com/vitest-dev/vitest/commit/16aa76c2) - Optimize vitest-browser-vue correctly  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6490](https://github.com/vitest-dev/vitest/issues/6490) [<samp>(5cbb0)</samp>](https://github.com/vitest-dev/vitest/commit/5cbb0bba) - **workspace**: - Resolve glob pattern once to avoid name collision  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6489](https://github.com/vitest-dev/vitest/issues/6489) [<samp>(36b5a)</samp>](https://github.com/vitest-dev/vitest/commit/36b5aceb) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v2.1.0...v2.1.1) ### [`v2.1.0`](https://github.com/vitest-dev/vitest/releases/tag/v2.1.0) [Compare Source](https://github.com/vitest-dev/vitest/compare/v2.0.5...v2.1.0) This release makes another big change to the Browser Mode by introducing [locators API](https://vitest.dev/guide/browser/locators.html): ```ts test('renders blog posts', async () => { const screen = page.render(<Blog />) await expect.element(screen.getByRole('heading', { name: 'Blog' })).toBeInTheDocument() const [firstPost] = screen.getByRole('listitem').all() await firstPost.getByRole('button', { name: 'Delete' }).click() expect(screen.getByRole('listitem').all()).toHaveLength(3) }) ``` You can use either [vitest-browser-vue](https://github.com/vitest-dev/vitest-browser-vue), [vitest-browser-svelte ](https://github.com/vitest-dev/vitest-browser-svelte) or [vitest-browser-react](https://github.com/vitest-dev/vitest-browser-react) to render components and make assertions using locators. Locators are also available on the `page` object from `@vitest/browser/context`. ##### Potential Breaking Change - **workspace**: - Correctly resolve workspace globs and file paths  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6316](https://github.com/vitest-dev/vitest/issues/6316) [<samp>(afdcb)</samp>](https://github.com/vitest-dev/vitest/commit/afdcb8f2) - This changes how the custom glob pattern in the workspace config is treated. *Any* file matching the glob is considered a Vitest config file. Any folder matching the glob pattern is treated as a workspace project and is subject to the regular config resolution (single `vitest.config.ts` or `vite.config.ts` inside the folder) - For example, `projects/*` will match anything inside the `projects` folder. If it's a folder, we try to find the config inside that folder (if there is none, it is still treated as a project with the default config). If it's a file, it will be treated as a Vitest config. `projects/**/*` previously would assume that you only wanted to have folders as projects, but now it will match *every single file* inside`projects`. - This change doesn't affect non-glob usage. #####    🚀 Features - **api**: - Make spec into a class instead of a tuple  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6355](https://github.com/vitest-dev/vitest/issues/6355) [<samp>(874a1)</samp>](https://github.com/vitest-dev/vitest/commit/874a121e) - **browser**: - Move page.config to server.config, add more docs  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6252](https://github.com/vitest-dev/vitest/issues/6252) [<samp>(af2b8)</samp>](https://github.com/vitest-dev/vitest/commit/af2b813c) - Make iframe scalable, improve documentation  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6257](https://github.com/vitest-dev/vitest/issues/6257) [<samp>(74ca1)</samp>](https://github.com/vitest-dev/vitest/commit/74ca11a4) - Introduce built-in locators  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6084](https://github.com/vitest-dev/vitest/issues/6084) [<samp>(3347f)</samp>](https://github.com/vitest-dev/vitest/commit/3347f83e) - Support v8 coverage  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;6273](https://github.com/vitest-dev/vitest/issues/6273) [<samp>(34199)</samp>](https://github.com/vitest-dev/vitest/commit/34199bdf) - Support `userEvent.upload` in playwright provider  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6442](https://github.com/vitest-dev/vitest/issues/6442) [<samp>(cf148)</samp>](https://github.com/vitest-dev/vitest/commit/cf148645) - Support `--inspect`  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;6433](https://github.com/vitest-dev/vitest/issues/6433) [<samp>(0499a)</samp>](https://github.com/vitest-dev/vitest/commit/0499a315) - Support `--inspect-brk`  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;6434](https://github.com/vitest-dev/vitest/issues/6434) [<samp>(7ab0f)</samp>](https://github.com/vitest-dev/vitest/commit/7ab0f4a8) - **cli**: - Extend existing list command to output only a list of file names  -  by [@&#8203;Ma-hawaj](https://github.com/Ma-hawaj) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6392](https://github.com/vitest-dev/vitest/issues/6392) [<samp>(008f0)</samp>](https://github.com/vitest-dev/vitest/commit/008f00b2) - **coverage**: - Add `--exclude-after-remap`  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;6309](https://github.com/vitest-dev/vitest/issues/6309) [<samp>(5932a)</samp>](https://github.com/vitest-dev/vitest/commit/5932a7f9) - **mocker**: - Introduce [@&#8203;vitest/mocker](https://github.com/vitest/mocker) package, allow `{ spy: true }` instead of a factory  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6289](https://github.com/vitest-dev/vitest/issues/6289) [<samp>(95f02)</samp>](https://github.com/vitest-dev/vitest/commit/95f0203f) - **vitest**: - Add "provide" option  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6253](https://github.com/vitest-dev/vitest/issues/6253) [<samp>(4409d)</samp>](https://github.com/vitest-dev/vitest/commit/4409d779) - Add return type and promisable mockFactory  -  by [@&#8203;syi0808](https://github.com/syi0808) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6139](https://github.com/vitest-dev/vitest/issues/6139) [<samp>(f5e0b)</samp>](https://github.com/vitest-dev/vitest/commit/f5e0b987) - Add `vi.advanceTimersToNextFrame`  -  by [@&#8203;bnjm](https://github.com/bnjm) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6347](https://github.com/vitest-dev/vitest/issues/6347) [<samp>(8ff63)</samp>](https://github.com/vitest-dev/vitest/commit/8ff63560) - Allow env to be stubbed to undefined  -  by [@&#8203;JSanchezIO](https://github.com/JSanchezIO) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6359](https://github.com/vitest-dev/vitest/issues/6359) [<samp>(c3b27)</samp>](https://github.com/vitest-dev/vitest/commit/c3b2757c) - Migrate from `fast-glob` to `tinyglobby`  -  by [@&#8203;SuperchupuDev](https://github.com/SuperchupuDev) in [#&#8203;6274](https://github.com/vitest-dev/vitest/pull/6274) [<samp>(c321a)</samp>](https://github.com/vitest-dev/vitest/commit/c321a3fd29902fa9295fe219816381884c40a8cd) #####    🐞 Bug Fixes - Correctly resolve nested mocks with `index` file  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6266](https://github.com/vitest-dev/vitest/issues/6266) [<samp>(081cf)</samp>](https://github.com/vitest-dev/vitest/commit/081cfe03) - Don't panic when coverage.reporter is a string  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6267](https://github.com/vitest-dev/vitest/issues/6267) [<samp>(7b37d)</samp>](https://github.com/vitest-dev/vitest/commit/7b37d27b) - Align RawMatcherFn type definition with Jest  -  by [@&#8203;wheresrhys](https://github.com/wheresrhys) in [#&#8203;6351](https://github.com/vitest-dev/vitest/issues/6351) [<samp>(d09f0)</samp>](https://github.com/vitest-dev/vitest/commit/d09f00c7) - Cjs build of vite node server  -  by [@&#8203;AkaraChen](https://github.com/AkaraChen) in [#&#8203;6389](https://github.com/vitest-dev/vitest/issues/6389) [<samp>(12e70)</samp>](https://github.com/vitest-dev/vitest/commit/12e702bd) - Allow inlining vite's cached dependencies  -  by [@&#8203;chriswheeldon-peakon](https://github.com/chriswheeldon-peakon) in [#&#8203;6284](https://github.com/vitest-dev/vitest/issues/6284) [<samp>(03208)</samp>](https://github.com/vitest-dev/vitest/commit/03208017) - Print unexpected error message if peer dependencies have a different version  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6446](https://github.com/vitest-dev/vitest/issues/6446) [<samp>(b992b)</samp>](https://github.com/vitest-dev/vitest/commit/b992b346) - Ignore importer when resolving Vitest  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6469](https://github.com/vitest-dev/vitest/issues/6469) [<samp>(0b447)</samp>](https://github.com/vitest-dev/vitest/commit/0b447226) - `expect.getState().testPath` always returns correct path  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6472](https://github.com/vitest-dev/vitest/issues/6472) [<samp>(ac698)</samp>](https://github.com/vitest-dev/vitest/commit/ac698b1c) - UserEvent works consistently between providers  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6480](https://github.com/vitest-dev/vitest/issues/6480) [<samp>(0b4da)</samp>](https://github.com/vitest-dev/vitest/commit/0b4da69e) - **browser**: - Print correct stack trace for unhandled errors  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6134](https://github.com/vitest-dev/vitest/issues/6134) [<samp>(1da6c)</samp>](https://github.com/vitest-dev/vitest/commit/1da6cebe) - Use documentElement as the root for selector  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) [<samp>(d8077)</samp>](https://github.com/vitest-dev/vitest/commit/d807767f) - Keep querying elements even if locator is created with elementLocator, add pubic @&#8203;vitest/browser/utils  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6296](https://github.com/vitest-dev/vitest/issues/6296) [<samp>(30dc5)</samp>](https://github.com/vitest-dev/vitest/commit/30dc5793) - Produce valid config file if preview provider is used  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6305](https://github.com/vitest-dev/vitest/issues/6305) [<samp>(7f0ae)</samp>](https://github.com/vitest-dev/vitest/commit/7f0ae292) - Correctly run in-source tests in the browser  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6440](https://github.com/vitest-dev/vitest/issues/6440) [<samp>(c8531)</samp>](https://github.com/vitest-dev/vitest/commit/c853126e) - Exclude missed packages from optimization, print help message  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6445](https://github.com/vitest-dev/vitest/issues/6445) [<samp>(8d883)</samp>](https://github.com/vitest-dev/vitest/commit/8d883cf0) - Define mocker as a dependency  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6476](https://github.com/vitest-dev/vitest/issues/6476) [<samp>(9560a)</samp>](https://github.com/vitest-dev/vitest/commit/9560ab7f) - **coverage**: - Warn if `vitest` and `@vitest/*` versions don't match  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;6317](https://github.com/vitest-dev/vitest/issues/6317) [<samp>(e662c)</samp>](https://github.com/vitest-dev/vitest/commit/e662c7b2) - V8 to support source maps with multiple sources  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6120](https://github.com/vitest-dev/vitest/issues/6120) [<samp>(1f6cb)</samp>](https://github.com/vitest-dev/vitest/commit/1f6cb59f) - V8 to warn instead of crash when conversion fails  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;6318](https://github.com/vitest-dev/vitest/issues/6318) [<samp>(91dea)</samp>](https://github.com/vitest-dev/vitest/commit/91dea8c1) - Use project specific `vitenode` for uncovered files  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;6044](https://github.com/vitest-dev/vitest/issues/6044) [<samp>(da52d)</samp>](https://github.com/vitest-dev/vitest/commit/da52d23f) - **runner**: - Use `performance.now` instead of `Date.now` for duration  -  by [@&#8203;LuciNyan](https://github.com/LuciNyan) in [#&#8203;6382](https://github.com/vitest-dev/vitest/issues/6382) [<samp>(fe489)</samp>](https://github.com/vitest-dev/vitest/commit/fe489432) - Async assertion auto await should timeout  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6391](https://github.com/vitest-dev/vitest/issues/6391) [<samp>(ad6e7)</samp>](https://github.com/vitest-dev/vitest/commit/ad6e72fc) - **snapshot**: - Reject multiple `toMatchInlineSnapshot` updates at the same location  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6332](https://github.com/vitest-dev/vitest/issues/6332) [<samp>(1606f)</samp>](https://github.com/vitest-dev/vitest/commit/1606f34f) - Improve inline snapshot inside loop rejection  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6339](https://github.com/vitest-dev/vitest/issues/6339) [<samp>(e0368)</samp>](https://github.com/vitest-dev/vitest/commit/e03683c5) - **typecheck**: - Run both runtime and typecheck tests if `typecheck.include` overlaps with `include`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6256](https://github.com/vitest-dev/vitest/issues/6256) [<samp>(153ff)</samp>](https://github.com/vitest-dev/vitest/commit/153ff01b) - **types**: - Allow Callbacks Passed to before\*/after\* to Return Anything  -  by [@&#8203;LuciNyan](https://github.com/LuciNyan) in [#&#8203;6393](https://github.com/vitest-dev/vitest/issues/6393) [<samp>(f6217)</samp>](https://github.com/vitest-dev/vitest/commit/f6217a22) - **ui**: - Remove "filters" flickering  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6463](https://github.com/vitest-dev/vitest/issues/6463) [<samp>(0223b)</samp>](https://github.com/vitest-dev/vitest/commit/0223bb79) - Render project name consistently  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6329](https://github.com/vitest-dev/vitest/issues/6329) [<samp>(94a18)</samp>](https://github.com/vitest-dev/vitest/commit/94a186ec) - **vite-node**: - Disable watcher if hmr is disabled  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6251](https://github.com/vitest-dev/vitest/issues/6251) [<samp>(c51c6)</samp>](https://github.com/vitest-dev/vitest/commit/c51c67aa) - Fix watch on vite 6  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6422](https://github.com/vitest-dev/vitest/issues/6422) [<samp>(c3ac4)</samp>](https://github.com/vitest-dev/vitest/commit/c3ac43c1) - **vitest**: - Update json reporter output  -  by [@&#8203;Emiyaaaaa](https://github.com/Emiyaaaaa) in [#&#8203;6064](https://github.com/vitest-dev/vitest/issues/6064) [<samp>(c9979)</samp>](https://github.com/vitest-dev/vitest/commit/c997937b) - Add more type guards for --merge-reports  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6307](https://github.com/vitest-dev/vitest/issues/6307) [<samp>(0a5d8)</samp>](https://github.com/vitest-dev/vitest/commit/0a5d8169) - Always resolve vitest to the root version  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6369](https://github.com/vitest-dev/vitest/issues/6369) [<samp>(163d7)</samp>](https://github.com/vitest-dev/vitest/commit/163d7624) - Dispose vmForks listeners to avoid memory leak  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6448](https://github.com/vitest-dev/vitest/issues/6448) [<samp>(2673c)</samp>](https://github.com/vitest-dev/vitest/commit/2673c3bb) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v2.0.5...v2.1.0) ### [`v2.0.5`](https://github.com/vitest-dev/vitest/releases/tag/v2.0.5) [Compare Source](https://github.com/vitest-dev/vitest/compare/v2.0.4...v2.0.5) #####    🚀 Features - Introduce experimental reported tasks  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6149](https://github.com/vitest-dev/vitest/issues/6149) [<samp>(13d85)</samp>](https://github.com/vitest-dev/vitest/commit/13d85bd1) - This is part of the experimental API and doesn't follow semver. We are hoping to stabilize it for 2.1. If you are working with custom reporters, give this a go! #####    🐞 Bug Fixes - Show a difference between string characters if both values are strings  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6191](https://github.com/vitest-dev/vitest/issues/6191) [<samp>(29176)</samp>](https://github.com/vitest-dev/vitest/commit/291766d7) - `testNamePattern` adds leading space  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;6186](https://github.com/vitest-dev/vitest/issues/6186) [<samp>(073a5)</samp>](https://github.com/vitest-dev/vitest/commit/073a50c9) - **browser**: - Don't bundle `afterEach` cleanup hooks in node entrypoint  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6192](https://github.com/vitest-dev/vitest/issues/6192) [<samp>(e6fbc)</samp>](https://github.com/vitest-dev/vitest/commit/e6fbc620) - UserEvent.setup initiates a separate state for userEvent instance  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6088](https://github.com/vitest-dev/vitest/issues/6088) [<samp>(883f3)</samp>](https://github.com/vitest-dev/vitest/commit/883f3482) - Correctly import optimized module in vi.importActual  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6219](https://github.com/vitest-dev/vitest/issues/6219) [<samp>(804ff)</samp>](https://github.com/vitest-dev/vitest/commit/804ff2fd) - Passing options to hover/unhover  -  by [@&#8203;MNeverOff](https://github.com/MNeverOff) in [#&#8203;6175](https://github.com/vitest-dev/vitest/issues/6175) [<samp>(d4c00)</samp>](https://github.com/vitest-dev/vitest/commit/d4c005bc) - Improve unique CSS selector generation  -  by [@&#8203;zacharyvoase](https://github.com/zacharyvoase) and **Zack Voase** in [#&#8203;6243](https://github.com/vitest-dev/vitest/issues/6243) [<samp>(e7acd)</samp>](https://github.com/vitest-dev/vitest/commit/e7acd0cf) - **vitest**: - Remove nuxt from auto inline deps  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) [<samp>(93882)</samp>](https://github.com/vitest-dev/vitest/commit/93882f38) - Improve `defineProject` and `defineWorkspace` types  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6198](https://github.com/vitest-dev/vitest/issues/6198) [<samp>(8cd82)</samp>](https://github.com/vitest-dev/vitest/commit/8cd8272b) - Correctly resolve mocked `node:*` imports in `__mocks__` folder  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6204](https://github.com/vitest-dev/vitest/issues/6204) [<samp>(a48be)</samp>](https://github.com/vitest-dev/vitest/commit/a48be6ff) - **web-worker**: - Expose globals on self  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6170](https://github.com/vitest-dev/vitest/issues/6170) [<samp>(12bb5)</samp>](https://github.com/vitest-dev/vitest/commit/12bb567e) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v2.0.4...v2.0.5) ### [`v2.0.4`](https://github.com/vitest-dev/vitest/releases/tag/v2.0.4) [Compare Source](https://github.com/vitest-dev/vitest/compare/v2.0.3...v2.0.4) #####    🐞 Bug Fixes - One-line environment options  -  by [@&#8203;hahanein](https://github.com/hahanein) in [#&#8203;5105](https://github.com/vitest-dev/vitest/issues/5105) [<samp>(38269)</samp>](https://github.com/vitest-dev/vitest/commit/38269415) - Resolve assets imported with `require`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6159](https://github.com/vitest-dev/vitest/issues/6159) [<samp>(807a2)</samp>](https://github.com/vitest-dev/vitest/commit/807a2cbc) - **browser**: - Don't panic if [@&#8203;vitest/browser](https://github.com/vitest/browser) is installed outside of project root  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6135](https://github.com/vitest-dev/vitest/issues/6135) [<samp>(ccfcd)</samp>](https://github.com/vitest-dev/vitest/commit/ccfcd488) - Set global filepath  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6190](https://github.com/vitest-dev/vitest/issues/6190) [<samp>(0d0b4)</samp>](https://github.com/vitest-dev/vitest/commit/0d0b46b1) - Allow preview and open in the editor screenshot error from ui  -  by [@&#8203;userquin](https://github.com/userquin) in [#&#8203;6113](https://github.com/vitest-dev/vitest/issues/6113) [<samp>(2d620)</samp>](https://github.com/vitest-dev/vitest/commit/2d62051f) - **coverage**: - Global thresholds to include files from glob thresholds  -  by [@&#8203;thor-juhasz](https://github.com/thor-juhasz) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;6172](https://github.com/vitest-dev/vitest/issues/6172) [<samp>(02e3f)</samp>](https://github.com/vitest-dev/vitest/commit/02e3f003) - Consistent type-only file handling  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;6183](https://github.com/vitest-dev/vitest/issues/6183) [<samp>(90576)</samp>](https://github.com/vitest-dev/vitest/commit/90576148) - Ignore `*.cts` files  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;6189](https://github.com/vitest-dev/vitest/issues/6189) [<samp>(5da45)</samp>](https://github.com/vitest-dev/vitest/commit/5da45db1) - Add `thresholds.<glob>.100` option  -  by [@&#8203;thor-juhasz](https://github.com/thor-juhasz) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;6174](https://github.com/vitest-dev/vitest/issues/6174) [<samp>(f6845)</samp>](https://github.com/vitest-dev/vitest/commit/f68453f8) - **spy**: - Fix `mockImplementation` for function overload and unions  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6181](https://github.com/vitest-dev/vitest/issues/6181) [<samp>(7a75b)</samp>](https://github.com/vitest-dev/vitest/commit/7a75bd4c) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v2.0.3...v2.0.4) ### [`v2.0.3`](https://github.com/vitest-dev/vitest/releases/tag/v2.0.3) [Compare Source](https://github.com/vitest-dev/vitest/compare/v2.0.2...v2.0.3) #####    🚀 Features - **ui**: Show all suites/tests when parent matches  -  by [@&#8203;userquin](https://github.com/userquin) in [#&#8203;6106](https://github.com/vitest-dev/vitest/issues/6106) [<samp>(840e0)</samp>](https://github.com/vitest-dev/vitest/commit/840e02f1) #####    🐞 Bug Fixes - `--inspect-brk` stop on Windows  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;6110](https://github.com/vitest-dev/vitest/issues/6110) [<samp>(f8519)</samp>](https://github.com/vitest-dev/vitest/commit/f851982e) - **browser**: - Don't import from "vite"  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) [<samp>(35655)</samp>](https://github.com/vitest-dev/vitest/commit/35655419) - Allow immidiate reinvalidation of mocked dependencies  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6108](https://github.com/vitest-dev/vitest/issues/6108) [<samp>(f44cc)</samp>](https://github.com/vitest-dev/vitest/commit/f44cc917) - **spy**: - Fix type error when assigning `vi.spyOn` to `MockInstance` of function overload  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6086](https://github.com/vitest-dev/vitest/issues/6086) [<samp>(e9f9a)</samp>](https://github.com/vitest-dev/vitest/commit/e9f9adcd) - **vite-node**: - Remove suffix slash on file protocol for window  -  by [@&#8203;syi0808](https://github.com/syi0808) in [#&#8203;6109](https://github.com/vitest-dev/vitest/issues/6109) [<samp>(93ebd)</samp>](https://github.com/vitest-dev/vitest/commit/93ebdefc) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v2.0.2...v2.0.3) ### [`v2.0.2`](https://github.com/vitest-dev/vitest/releases/tag/v2.0.2) [Compare Source](https://github.com/vitest-dev/vitest/compare/v2.0.1...v2.0.2) #####    🐞 Bug Fixes - **browser**: - Remove [@&#8203;vitest/runner](https://github.com/vitest/runner) > pretty-format from prebundling because it doesn't exist  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6075](https://github.com/vitest-dev/vitest/issues/6075) [<samp>(a169d)</samp>](https://github.com/vitest-dev/vitest/commit/a169d25a) - Inline pretty-format and replace picocolors with tinyrainbow  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6077](https://github.com/vitest-dev/vitest/issues/6077) [<samp>(80a43)</samp>](https://github.com/vitest-dev/vitest/commit/80a43d5c) - Remove `crypto.randomUUID` from the client  -  by [@&#8203;userquin](https://github.com/userquin) in [#&#8203;6079](https://github.com/vitest-dev/vitest/issues/6079) [<samp>(04c83)</samp>](https://github.com/vitest-dev/vitest/commit/04c83acc) - Correctly overwrite loupe require  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) [<samp>(756ac)</samp>](https://github.com/vitest-dev/vitest/commit/756ac2bc) - Dedupe @&#8203;vitest/browser/client  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6081](https://github.com/vitest-dev/vitest/issues/6081) [<samp>(ee725)</samp>](https://github.com/vitest-dev/vitest/commit/ee725184) - Don't release keyboard automatically  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6083](https://github.com/vitest-dev/vitest/issues/6083) [<samp>(58fac)</samp>](https://github.com/vitest-dev/vitest/commit/58fac77b) - **ui**: - Test files notified only when running  -  by [@&#8203;userquin](https://github.com/userquin) in [#&#8203;6069](https://github.com/vitest-dev/vitest/issues/6069) [<samp>(af7fe)</samp>](https://github.com/vitest-dev/vitest/commit/af7fec58) - Encode html entities in task name  -  by [@&#8203;userquin](https://github.com/userquin) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6070](https://github.com/vitest-dev/vitest/issues/6070) [<samp>(7f0cc)</samp>](https://github.com/vitest-dev/vitest/commit/7f0cc24e) - **web-worker**: - Peer dependency version on `vitest`  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;6060](https://github.com/vitest-dev/vitest/issues/6060) [<samp>(95a2d)</samp>](https://github.com/vitest-dev/vitest/commit/95a2d870) #####    🏎 Performance - **browser**: Don't import msw if no modules are mocked  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6073](https://github.com/vitest-dev/vitest/issues/6073) [<samp>(aa527)</samp>](https://github.com/vitest-dev/vitest/commit/aa52792a) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v2.0.1...v2.0.2) ### [`v2.0.1`](https://github.com/vitest-dev/vitest/releases/tag/v2.0.1) [Compare Source](https://github.com/vitest-dev/vitest/compare/v2.0.0...v2.0.1) #####    🐞 Bug Fixes - **browser**: Correctly inherit browser config in a workspace  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6054](https://github.com/vitest-dev/vitest/issues/6054) [<samp>(4b03e)</samp>](https://github.com/vitest-dev/vitest/commit/4b03e72b) - **ui**: Move virtual scroller to dev dependencies  -  by [@&#8203;userquin](https://github.com/userquin) in [#&#8203;6053](https://github.com/vitest-dev/vitest/issues/6053) [<samp>(f94ed)</samp>](https://github.com/vitest-dev/vitest/commit/f94ede02) - **vitest**: Print only running files, not every file  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6052](https://github.com/vitest-dev/vitest/issues/6052) [<samp>(4d559)</samp>](https://github.com/vitest-dev/vitest/commit/4d5597df) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v2.0.0...v2.0.1) ### [`v2.0.0`](https://github.com/vitest-dev/vitest/releases/tag/v2.0.0) [Compare Source](https://github.com/vitest-dev/vitest/compare/v1.6.1...v2.0.0) Vitest 2.0 is here! This release page lists all changes made to the project during the beta. For the migration guide, please refer to the [documentation](https://vitest.dev/guide/migration.html#migrating-to-vitest-2-0). ##### 🚨 Breaking Changes - Simplify mock function generic types and align with jest - by **[@&#8203;hi-ogawa](https://github.com/hi-ogawa)** in [#&#8203;4784](https://github.com/vitest-dev/vitest/pull/4784) [<samp>(a0c1d37)</samp>](https://github.com/vitest-dev/vitest/commit/a0c1d371edb35abfa0e6f53b05086a54d2ecc0a6) - Remove `--segfault-retry` - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;5514](https://github.com/vitest-dev/vitest/issues/5514) [<samp>(ed60e)</samp>](https://github.com/vitest-dev/vitest/commit/ed60e405e) - This flag was introduced to combat `threads` segfaults. Our current recommendation is to use the new default `forks` pool instead. - Run suite hooks in a stack - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;5609](https://github.com/vitest-dev/vitest/issues/5609) [<samp>(1277d)</samp>](https://github.com/vitest-dev/vitest/commit/1277dc1e3) - This feels like a more sensible default. Especially with the new [`onTestFinished`](https://vitest.dev/api/#ontestfinished) hook. This can make your tests run a little bit slower. - Enable `coverage.ignoreEmptyLines` by default - by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;5543](https://github.com/vitest-dev/vitest/issues/5543) [<samp>(31994)</samp>](https://github.com/vitest-dev/vitest/commit/31994942f) - ⚠️ This change may cause significant differences in your coverage results compared to Vitest v1. These changes are expected as coverage reporting is now more accurate. See [#&#8203;5423](https://github.com/vitest-dev/vitest/issues/5423) for more details. - Add correct location and snapshot fields in json reporter - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;5434](https://github.com/vitest-dev/vitest/issues/5434) [<samp>(bcccc)</samp>](https://github.com/vitest-dev/vitest/commit/bcccce6df) - Previously, the `location` field pointed to the error location instead of the test location. Now it is aligned with jest and contains the `line` and `column` of a test function, but requires [`includeTaskLocation`](https://vitest.dev/config/#includeTaskLocation) to be enabled. - Update dependency chai to v5 - by **renovate\[bot]** and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;5135](https://github.com/vitest-dev/vitest/issues/5135) [<samp>(73646)</samp>](https://github.com/vitest-dev/vitest/commit/73646b638) - Remove watchExclude - by [@&#8203;patak-dev](https://github.com/patak-dev) in [#&#8203;5177](https://github.com/vitest-dev/vitest/issues/5177) [<samp>(d7371)</samp>](https://github.com/vitest-dev/vitest/commit/d7371eae3) - Change default `pool` to `'forks'` - by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;5047](https://github.com/vitest-dev/vitest/issues/5047) [<samp>(7f8f9)</samp>](https://github.com/vitest-dev/vitest/commit/7f8f9c0c0) - This change is done for compatibility issues - This pool may be slightly slower than previous `threads` pool: <https://vitest.dev/guide/improving-performance.html#pool> - `--merge-reports` to support coverage - by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;5736](https://github.com/vitest-dev/vitest/issues/5736) [<samp>(b7438)</samp>](https://github.com/vitest-dev/vitest/commit/b7438b9be) - Add promise-based return assertions, do not auto-resolve returned promises - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;5749](https://github.com/vitest-dev/vitest/issues/5749) [<samp>(5f710)</samp>](https://github.com/vitest-dev/vitest/commit/5f710182e) - ⚠️ Vitest no longer unwraps promises in `spy.mock.returns`. If the function is async or returns a promise, it will always succeed and have a `Promise` in `results`. To make migration easier, we introduced `spy.mock.settledResults` that unwraps promises and `expect().toHaveResolved()` matcher that accepts unwrapped value. - Do not exit process if global setup has failed - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;5726](https://github.com/vitest-dev/vitest/issues/5726) [<samp>(ddb09)</samp>](https://github.com/vitest-dev/vitest/commit/ddb09eb12) - Don't exit process if config failed - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;5715](https://github.com/vitest-dev/vitest/issues/5715) [<samp>(f232f)</samp>](https://github.com/vitest-dev/vitest/commit/f232fdd61) - Add meta to `json` output - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;5802](https://github.com/vitest-dev/vitest/issues/5802) [<samp>(dd754)</samp>](https://github.com/vitest-dev/vitest/commit/dd754c103) - Rename `indexScripts` to `orchestratorScripts` in the browser config - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;5842](https://github.com/vitest-dev/vitest/issues/5842) [<samp>(49f34)</samp>](https://github.com/vitest-dev/vitest/commit/49f34ec47) - Add "vitest list" API to print collected tests without running them - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6013](https://github.com/vitest-dev/vitest/issues/6013) [<samp>(583dd)</samp>](https://github.com/vitest-dev/vitest/commit/583dd8a98) - ⚠️ This changes the custom `pool` API - now requires `collectTests` method alongside `runTests`. - Remove the empty suite from the runner - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;5435](https://github.com/vitest-dev/vitest/issues/5435) [<samp>(dbbbe)</samp>](https://github.com/vitest-dev/vitest/commit/dbbbe4304) - Support concurrent suites - by **[@&#8203;hi-ogawa](https://github.com/hi-ogawa)** in [#&#8203;5491](https://github.com/vitest-dev/vitest/pull/5491) [<samp>(222ce44)</samp>](https://github.com/vitest-dev/vitest/commit/222ce44119bd02bdf0c7546f9db653000616ccfa) - Support overriding `exclude` in coverage - by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;5997](https://github.com/vitest-dev/vitest/issues/5997) [<samp>(169bc)</samp>](https://github.com/vitest-dev/vitest/commit/169bc1fde) - ⚠️ Vitest coverage no longer adds test files to `exclude` patterns if `coverage.exclude` was overridden in the config. Add your test patterns manually, or merge your overrides with default ones: `['**/my-pattern.js', ...coverageConfigDefaults.exclude]`. See <https://vitest.dev/config/#coverage-exclude> for an example. - **api:** - Remove `process.exit` if workspace project failed to be created - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;5804](https://github.com/vitest-dev/vitest/issues/5804) [<samp>(a820e)</samp>](https://github.com/vitest-dev/vitest/commit/a820e7ac6) - Don't call `process.exit` manually - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;5926](https://github.com/vitest-dev/vitest/issues/5926) [<samp>(e9b63)</samp>](https://github.com/vitest-dev/vitest/commit/e9b638d40) ##### 🚀 Features <img width="1392" alt="Running tresjs example in Vitest BrowserMode" src="https://github.com/vitest-dev/vitest/assets/16173870/3b6bc721-b194-416d-a685-cf7282ee802a"> - **browser**: - 🌐 This release lays the groundwork for the next iteration of Vitest Browser Mode. You can read more about our future plans at <https://github.com/vitest-dev/vitest/discussions/5828> - Add commands to communicate betweens server and the browser - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;5097](https://github.com/vitest-dev/vitest/issues/5097) [<samp>(aa431)</samp>](https://github.com/vitest-dev/vitest/commit/aa431f4db) - Do not reload the page during watch mode - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;5810](https://github.com/vitest-dev/vitest/issues/5810) [<samp>(e5b9a)</samp>](https://github.com/vitest-dev/vitest/commit/e5b9a0be4) - Support changing the viewport - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;5811](https://github.com/vitest-dev/vitest/issues/5811) [<samp>(71851)</samp>](https://github.com/vitest-dev/vitest/commit/718512d80) - Add browser iframe mouse interaction - by [@&#8203;userquin](https://github.com/userquin) in [#&#8203;5815](https://github.com/vitest-dev/vitest/issues/5815) [<samp>(f29b9)</samp>](https://github.com/vitest-dev/vitest/commit/f29b9d408) - Support `click` event - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;5777](https://github.com/vitest-dev/vitest/issues/5777) [<samp>(839c3)</samp>](https://github.com/vitest-dev/vitest/commit/839c39f06) - Rename none provider to preview, make it default - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;5826](https://github.com/vitest-dev/vitest/issues/5826) [<samp>(18310)</samp>](https://github.com/vitest-dev/vitest/commit/1831008b1) - Run tests in parallel in headless mode, add `page.screenshot` method - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;5853](https://github.com/vitest-dev/vitest/issues/5853) [<samp>(81c42)</samp>](https://github.com/vitest-dev/vitest/commit/81c42fc8a) - Implement several `userEvent` methods, add `fill` and `dragAndDrop` events - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;5882](https://github.com/vitest-dev/vitest/issues/5882) [<samp>(4dbea)</samp>](https://github.com/vitest-dev/vitest/commit/4dbea4aed) - Introduce `expect.dom` method and bundle `jest-dom` matchers with `@vitest/browser` - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;5910](https://github.com/vitest-dev/vitest/issues/5910) [<samp>(3a96a)</samp>](https://github.com/vitest-dev/vitest/commit/3a96a3d0e) - Expose CDP in the browser - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;5938](https://github.com/vitest-dev/vitest/issues/5938) [<samp>(bec43)</samp>](https://github.com/vitest-dev/vitest/commit/bec434cb6) - Add "init" command for browser tests - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;5960](https://github.com/vitest-dev/vitest/issues/5960) [<samp>(49e97)</samp>](https://github.com/vitest-dev/vitest/commit/49e973cb9) - Add an option to take screenshots if the browser test fails - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;5975](https://github.com/vitest-dev/vitest/issues/5975) [<samp>(154cb)</samp>](https://github.com/vitest-dev/vitest/commit/154cb22de) - Add `tripleClick` to interactive api - by [@&#8203;userquin](https://github.com/userquin) in [#&#8203;5987](https://github.com/vitest-dev/vitest/issues/5987) [<samp>(200a4)</samp>](https://github.com/vitest-dev/vitest/commit/200a4349a) - Playwright provider doesn't allow resizing the browser viewport - by [@&#8203;userquin](https://github.com/userquin) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;5984](https://github.com/vitest-dev/vitest/issues/5984) [<samp>(ff978)</samp>](https://github.com/vitest-dev/vitest/commit/ff978e58d) - Pretty print diffs coming from cause - by [@&#8203;dubzzz](https://github.com/dubzzz) in [#&#8203;5660](https://github.com/vitest-dev/vitest/issues/5660) [<samp>(6faf8)</samp>](https://github.com/vitest-dev/vitest/commit/6faf8f84b) - Allow import statement as vi.mock path for better IDE support - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;5690](https://github.com/vitest-dev/vitest/issues/5690) [<samp>(a99a1)</samp>](https://github.com/vitest-dev/vitest/commit/a99a14c1c) - Remove deprecated options - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;5696](https://github.com/vitest-dev/vitest/issues/5696) [<samp>(5c308)</samp>](https://github.com/vitest-dev/vitest/commit/5c308edc6) - Add blob reporter - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;5663](https://github.com/vitest-dev/vitest/issues/5663) [<samp>(e2053)</samp>](https://github.com/vitest-dev/vitest/commit/e20538a36) - ✅ Run Vitest in separate processes with `--reporter=blob` flag to generate reports and combine them with `vitest --merge-reports` later! - Add expect.poll utility - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;5708](https://github.com/vitest-dev/vitest/issues/5708) [<samp>(e2e0f)</samp>](https://github.com/vitest-dev/vitest/commit/e2e0ff46a) - Add browser.ui option - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;5771](https://github.com/vitest-dev/vitest/issues/5771) [<samp>(a5033)</samp>](https://github.com/vitest-dev/vitest/commit/a50330eea) - Add median to `--output-json` - by [@&#8203;Joristdh](https://github.com/Joristdh) in [#&#8203;5745](https://github.com/vitest-dev/vitest/issues/5745) [<samp>(0766b)</samp>](https://github.com/vitest-dev/vitest/commit/0766b7f72) - Allow augmenting config.test.env - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;5784](https://github.com/vitest-dev/vitest/issues/5784) [<samp>(b2469)</samp>](https://github.com/vitest-dev/vitest/commit/b24691efd) - Implement module mocking in browser mode - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;5765](https://github.com/vitest-dev/vitest/issues/5765) [<samp>(7b2f6)</samp>](https://github.com/vitest-dev/vitest/commit/7b2f64cfa) - Allow configuring expect options in the config - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;5729](https://github.com/vitest-dev/vitest/issues/5729) [<samp>(fc53f)</samp>](https://github.com/vitest-dev/vitest/commit/fc53f5634) - Add an option to print console stack trace - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;5720](https://github.com/vitest-dev/vitest/issues/5720) [<samp>(e4fe6)</samp>](https://github.com/vitest-dev/vitest/commit/e4fe6f51a) - Add browser frame to UI - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;5808](https://github.com/vitest-dev/vitest/issues/5808) [<samp>(3796d)</samp>](https://github.com/vitest-dev/vitest/commit/3796dd7e0) - Image type add bmp - by **btea** in [#&#8203;5921](https://github.com/vitest-dev/vitest/issues/5921) [<samp>(98f9b)</samp>](https://github.com/vitest-dev/vitest/commit/98f9b7ab9) - Add an option to return base64 from page.screenshot - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;5993](https://github.com/vitest-dev/vitest/issues/5993) [<samp>(be323)</samp>](https://github.com/vitest-dev/vitest/commit/be3231763) - Expose `parseAst`, `parseAstAsync` from vite - by [@&#8203;sheremet-va](https://github.com/sheremet-va) [<samp>(f645e)</samp>](https://github.com/vitest-dev/vitest/commit/f645e48c5) - **config**: - Allow percentage value for workers option - by [@&#8203;syi0808](https://github.com/syi0808) in [#&#8203;5982](https://github.com/vitest-dev/vitest/issues/5982) [<samp>(b1a27)</samp>](https://github.com/vitest-dev/vitest/commit/b1a27d404) - **runner**: - Implement `test.for` - by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;5861](https://github.com/vitest-dev/vitest/issues/5861) [<samp>(c2380)</samp>](https://github.com/vitest-dev/vitest/commit/c238072fd) - **spy**: - Collect mock.contexts - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;5955](https://github.com/vitest-dev/vitest/issues/5955) [<samp>(3b31a)</samp>](https://github.com/vitest-dev/vitest/commit/3b31a56d5) - **ui**: - Render tests in a tree - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;5807](https://github.com/vitest-dev/vitest/issues/5807) [<samp>(7900f)</samp>](https://github.com/vitest-dev/vitest/commit/7900f9f89) - Load module graph on tab selection - by [@&#8203;userquin](https://github.com/userquin) in [#&#8203;5844](https://github.com/vitest-dev/vitest/issues/5844) [<samp>(b117e)</samp>](https://github.com/vitest-dev/vitest/commit/b117e8756) - Replace navigation tree with test explorer - by [@&#8203;userquin](https://github.com/userquin) in [#&#8203;5907](https://github.com/vitest-dev/vitest/issues/5907) [<samp>(45dfc)</samp>](https://github.com/vitest-dev/vitest/commit/45dfc95ae) - Add initializing explorer logic - by [@&#8203;userquin](https://github.com/userquin) in [#&#8203;5941](https://github.com/vitest-dev/vitest/issues/5941) [<samp>(c31c4)</samp>](https://github.com/vitest-dev/vitest/commit/c31c41c72) - Add action to explorer item to show the test/suite line in the source code tab - by [@&#8203;userquin](https://github.com/userquin) and **Anjorin Damilare** in [#&#8203;5948](https://github.com/vitest-dev/vitest/issues/5948) [<samp>(7ec29)</samp>](https://github.com/vitest-dev/vitest/commit/7ec298eb3) - **ws-client**: - Allow change reactive for state, filesMap and idMap - by [@&#8203;userquin](https://github.com/userquin) in [#&#8203;5906](https://github.com/vitest-dev/vitest/issues/5906) [<samp>(e6020)</samp>](https://github.com/vitest-dev/vitest/commit/e6020b9c2) ##### 🐞 Bug Fixes - Print console statements in vmThreads - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;5678](https://github.com/vitest-dev/vitest/issues/5678) [<samp>(34a80)</samp>](https://github.com/vitest-dev/vitest/commit/34a80b392) - Repeatable `--exclude` option - by [@&#8203;fregante](https://github.com/fregante) in [#&#8203;5782](https://github.com/vitest-dev/vitest/issues/5782) [<samp>(d6700)</samp>](https://github.com/vitest-dev/vitest/commit/d6700bbd8) - Remove browser.fileParallelism - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;5790](https://github.com/vitest-dev/vitest/issues/5790) [<samp>(b881e)</samp>](https://github.com/vitest-dev/vitest/commit/b881e88b2) - Install UI icons - by [@&#8203;sheremet-va](https://github.com/sheremet-va) [<samp>(b84f1)</samp>](https://github.com/vitest-dev/vitest/commit/b84f1721d) - Vi.waitFor/vi.waitUntil interval is now cleared after it times out - by [@&#8203;pedro00dk](https://github.com/pedro00dk) in [#&#8203;5875](https://github.com/vitest-dev/vitest/issues/5875) [<samp>(04107)</samp>](https://github.com/vitest-dev/vitest/commit/041076e7c) - ToJSON recursive error serialization - by [@&#8203;eddienubes](https://github.com/eddienubes) in [#&#8203;5848](https://github.com/vitest-dev/vitest/issues/5848) and [#&#8203;5884](https://github.com/vitest-dev/vitest/issues/5884) [<samp>(8d55d)</samp>](https://github.com/vitest-dev/vitest/commit/8d55d6bd4) - Print error properties only in verbose reporter - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;5917](https://github.com/vitest-dev/vitest/issues/5917) [<samp>(2bd8d)</samp>](https://github.com/vitest-dev/vitest/commit/2bd8d9d6f) - Use TTY reporter when running in Deno - by [@&#8203;marvinhagemeister](https://github.com/marvinhagemeister) in [#&#8203;5972](https://github.com/vitest-dev/vitest/issues/5972) [<samp>(e0f45)</samp>](https://github.com/vitest-dev/vitest/commit/e0f45cb57) - Don't override uppercase - by [@&#8203;sheremet-va](https://github.com/sheremet-va) [<samp>(caef4)</samp>](https://github.com/vitest-dev/vitest/commit/caef40a0b) - Clear screen and scrollback on iTerm2 - by [@&#8203;kxalex](https://github.com/kxalex) in [#&#8203;5978](https://github.com/vitest-dev/vitest/issues/5978) [<samp>(d7f23)</samp>](https://github.com/vitest-dev/vitest/commit/d7f23d08c) - Include pretty-format in [@&#8203;vitest/runner](https://github.com/vitest/runner) for optimization on npm - by [@&#8203;sheremet-va](https://github.com/sheremet-va) [<samp>(42bd4)</samp>](https://github.com/vitest-dev/vitest/commit/42bd4a259) - Transpile esnext to node18 to support newest JS and TS features - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;4409](https://github.com/vitest-dev/vitest/issues/4409) [<samp>(8f65a)</samp>](https://github.com/vitest-dev/vitest/commit/8f65ae906) - **api**: - Correct `project.provide` type - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;5959](https://github.com/vitest-dev/vitest/issues/5959) [<samp>(0eda9)</samp>](https://github.com/vitest-dev/vitest/commit/0eda99de9) - **browser**: - Display UI - by [@&#8203;sheremet-va](https://github.com/sheremet-va) [<samp>(d41e4)</samp>](https://github.com/vitest-dev/vitest/commit/d41e46a81) - Browser actions icons colors - by [@&#8203;userquin](https://github.com/userquin) in [#&#8203;5816](https://github.com/vitest-dev/vitest/issues/5816) [<samp>(f9d9b)</samp>](https://github.com/vitest-dev/vitest/commit/f9d9b3bef) - Restore the original viewport when unselecting the preset viewport - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;5821](https://github.com/vitest-dev/vitest/issues/5821) [<samp>(5ebb3)</samp>](https://github.com/vitest-dev/vitest/commit/5ebb3abf5) - Don't get stuck after the manual page refresh - by [@&#8203;sheremet-va](https://github.com/sheremet-va) [<samp>(2220b)</samp>](https://github.com/vitest-dev/vitest/commit/2220bb3fe) - Use iframe id instead of calculating it from filenames - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;5823](https://github.com/vitest-dev/vitest/issues/5823) [<samp>(34a31)</samp>](https://github.com/vitest-dev/vitest/commit/34a310da1) - Always clean up iframes on rerun - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;5827](https://github.com/vitest-dev/vitest/issues/5827) [<samp>(087fa)</samp>](https://github.com/vitest-dev/vitest/commit/087fa87c3) - Support [@&#8203;testing-library/vue](https://github.com/testing-library/vue) in browser mode out of the box - by [@&#8203;sheremet-va](https://github.com/sheremet-va) [<samp>(76b82)</samp>](https://github.com/vitest-dev/vitest/commit/76b82e5b9) - Print correct transformed module graph - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;5833](https://github.com/vitest-dev/vitest/issues/5833) [<samp>(a7581)</samp>](https://github.com/vitest-dev/vitest/commit/a75815756) - Use `preview` provider when running in StackBlitz - by [@&#8203;userquin](https://github.com/userquin) in [#&#8203;5836](https://github.com/vitest-dev/vitest/issues/5836) [<samp>(76e13)</samp>](https://github.com/vitest-dev/vitest/commit/76e13587c) - Specify entries for correct deps optimization - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;5839](https://github.com/vitest-dev/vitest/issues/5839) [<samp>(c79b3)</samp>](https://github.com/vitest-dev/vitest/commit/c79b3f1f9) - Allow iframe to load even if there is a custom CSP header - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;5841](https://github.com/vitest-dev/vitest/issues/5841) [<samp>(caaaf)</samp>](https://github.com/vitest-dev/vitest/commit/caaafd903) - Don't optimize Vitest dependencies - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;5843](https://github.com/vitest-dev/vitest/issues/5843) [<samp>(f15b4)</samp>](https://github.com/vitest-dev/vitest/commit/f15b4e99d) - Set server.open to false and move error handling after init - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;5845](https://github.com/vitest-dev/vitest/issues/5845) [<samp>(47003)</samp>](https://github.com/vitest-dev/vitest/commit/470036794) - Show correct prepare time - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;5852](https://github.com/vitest-dev/vitest/issues/5852) [<samp>(52d54)</samp>](https://github.com/vitest-dev/vitest/commit/52d545bf9) - Resolve `coverage.reporter` from string values - by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;5920](https://github.com/vitest-dev/vitest/issues/5920) [<samp>(f33da)</samp>](https://github.com/vitest-dev/vitest/commit/f33dabbef) - Correctly update inline snapshot if changed - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;5925](https://github.com/vitest-dev/vitest/issues/5925) [<samp>(2380c)</samp>](https://github.com/vitest-dev/vitest/commit/2380cb95e) - Remove "util" warning - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;5935](https://github.com/vitest-dev/vitest/issues/5935) [<samp>(48f28)</samp>](https://github.com/vitest-dev/vitest/commit/48f28f731) - Remove hacky retry - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;5971](https://github.com/vitest-dev/vitest/issues/5971) [<samp>(2a2c9)</samp>](https://github.com/vitest-dev/vitest/commit/2a2c9085a) - Make userEvent more stable when running in parallel - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;5974](https://github.com/vitest-dev/vitest/issues/5974) [<samp>(14a21)</samp>](https://github.com/vitest-dev/vitest/commit/14a217d53) - Print screenshot path alongside the test error message - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;5992](https://github.com/vitest-dev/vitest/issues/5992) [<samp>(15289)</samp>](https://github.com/vitest-dev/vitest/commit/152891b3d) - Print correct stack trace in source files - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6003](https://github.com/vitest-dev/vitest/issues/6003) [<samp>(62aa7)</samp>](https://github.com/vitest-dev/vitest/commit/62aa72081) - Correctly mock optimized cjs dependencies - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6035](https://github.com/vitest-dev/vitest/issues/6035) [<samp>(057b4)</samp>](https://github.com/vitest-dev/vitest/commit/057b4f34b) - Support shadow root and svg elements - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6036](https://github.com/vitest-dev/vitest/issues/6036) [<samp>(2e3c8)</samp>](https://github.com/vitest-dev/vitest/commit/2e3c872ae) - **coverage**: - Clean up empty coverage reports directory - by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;5731](https://github.com/vitest-dev/vitest/issues/5731) [<samp>(c469c)</samp>](https://github.com/vitest-dev/vitest/commit/c469c74d7) - `thresholds.autoUpdate` to support `mergeConfig` - by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;5818](https://github.com/vitest-dev/vitest/issues/5818) [<samp>(7afb3)</samp>](https://github.com/vitest-dev/vitest/commit/7afb3682f) - Pass thresholds errors to `stderr` of `startVitest()` - by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;5954](https://github.com/vitest-dev/vitest/issues/5954) [<samp>(70805)</samp>](https://github.com/vitest-dev/vitest/commit/708051319) - Exclude bench files from coverage - by [@&#8203;kouak](https://github.com/kouak) in [#&#8203;5983](https://github.com/vitest-dev/vitest/issues/5983) [<samp>(429e1)</samp>](https://github.com/vitest-dev/vitest/commit/429e1a7f8) - Vite to ignore dynamic import of provider - by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;5998](https://github.com/vitest-dev/vitest/issues/5998) [<samp>(6d884)</samp>](https://github.com/vitest-dev/vitest/commit/6d8848e86) - Istanbul to support import attributes - by [@&#8203;Gravitonic](https://github.com/Gravitonic) in [#&#8203;6006](https://github.com/vitest-dev/vitest/issues/6006) [<samp>(2898a)</samp>](https://github.com/vitest-dev/vitest/commit/2898a525d) - Remove work-around for implicit `else` - by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;6014](https://github.com/vitest-dev/vitest/issues/6014) [<samp>(368c1)</samp>](https://github.com/vitest-dev/vitest/commit/368c13728) - **deps**: - Update dependency [@&#8203;testing-library/dom](https://github.com/testing-library/dom) to v10 - by **renovate\[bot]** in [#&#8203;5866](https://github.com/vitest-dev/vitest/issues/5866) [<samp>(e9745)</samp>](https://github.com/vitest-dev/vitest/commit/e9745997e) - Update vulnerable `test-exclude` to v7 - by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;5867](https://github.com/vitest-dev/vitest/issues/5867) [<samp>(0a715)</samp>](https://github.com/vitest-dev/vitest/commit/0a715946b) - **expect**: - Fix immutable.js iterable equality - by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;5692](https://github.com/vitest-dev/vitest/issues/5692) [<samp>(1532c)</samp>](https://github.com/vitest-dev/vitest/commit/1532c19a0) - **forks**: - Resolve `poolOptions.<name>.isolate` from `forks` options - by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;5840](https://github.com/vitest-dev/vitest/issues/5840) [<samp>(a60a1)</samp>](https://github.com/vitest-dev/vitest/commit/a60a140ef) - **runner**: - Ensure inner suite { sequential: true } correctly overrides outer suite { concurrent: true } - by [@&#8203;pengooseDev](https://github.com/pengooseDev) in [#&#8203;5737](https://github.com/vitest-dev/vitest/issues/5737) [<samp>(a20e7)</samp>](https://github.com/vitest-dev/vitest/commit/a20e75b89) - Ensure test.each print -0 and -NaN properly - by [@&#8203;pengooseDev](https://github.com/pengooseDev) in [#&#8203;5806](https://github.com/vitest-dev/vitest/issues/5806) [<samp>(9ac8f)</samp>](https://github.com/vitest-dev/vitest/commit/9ac8ff9bd) - **snapshot**: - Fix `toMatchFileSnapshot` with empty file - by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;5894](https://github.com/vitest-dev/vitest/issues/5894) [<samp>(88006)</samp>](https://github.com/vitest-dev/vitest/commit/8800601d2) - **spy**: - Correctly track constructor's "this" type - by [@&#8203;sheremet-va](https://github.com/sheremet-va) [<samp>(4776e)</samp>](https://github.com/vitest-dev/vitest/commit/4776eca1d) - **types**: - Mark pool options as not available in project config - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;5934](https://github.com/vitest-dev/vitest/issues/5934) [<samp>(486fd)</samp>](https://github.com/vitest-dev/vitest/commit/486fd1169) - **ui**: - Show correct module graph and project name in a Vitest workspace - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;5792](https://github.com/vitest-dev/vitest/issues/5792) [<samp>(48c50)</samp>](https://github.com/vitest-dev/vitest/commit/48c502fbe) - Update running todo tests inside todo suites (each) - by [@&#8203;userquin](https://github.com/userquin) in [#&#8203;5939](https://github.com/vitest-dev/vitest/issues/5939) [<samp>(63ae1)</samp>](https://github.com/vitest-dev/vitest/commit/63ae10bd9) - `FileDetails` title status icon not being updated - by [@&#8203;userquin](https://github.com/userquin) in [#&#8203;5942](https://github.com/vitest-dev/vitest/issues/5942) [<samp>(e9ddf)</samp>](https://github.com/vitest-dev/vitest/commit/e9ddf9ce2) - **ui, browser**: - Disable mouse events when resizing main navigation panel - by [@&#8203;userquin](https://github.com/userquin) in [#&#8203;5863](https://github.com/vitest-dev/vitest/issues/5863) [<samp>(7cbd9)</samp>](https://github.com/vitest-dev/vitest/commit/7cbd943c7) - **utils**: - Produce valid snapshot names - by [@&#8203;dubzzz](https://github.com/dubzzz) in [#&#8203;5724](https://github.com/vitest-dev/vitest/issues/5724) [<samp>(1ec61)</samp>](https://github.com/vitest-dev/vitest/commit/1ec61ceee) - Fix color util maximum call stack error - by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;5733](https://github.com/vitest-dev/vitest/issues/5733) [<samp>(a4ec5)</samp>](https://github.com/vitest-dev/vitest/commit/a4ec58319) - Package exports - by [@&#8203;userquin](https://github.com/userquin) in [#&#8203;5847](https://github.com/vitest-dev/vitest/issues/5847) [<samp>(07876)</samp>](https://github.com/vitest-dev/vitest/commit/07876b7e0) - **vite-node**: - Expose all envs from .env file, not just with a prefix `VITE_` - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6017](https://github.com/vitest-dev/vitest/issues/6017) [<samp>(d87be)</samp>](https://github.com/vitest-dev/vitest/commit/d87bef961) - **vitest**: - Expose `provide` to the public API - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;5897](https://github.com/vitest-dev/vitest/issues/5897) [<samp>(66e64)</samp>](https://github.com/vitest-dev/vitest/commit/66e648ff8) - Cache fs code only for forks pool - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;5909](https://github.com/vitest-dev/vitest/issues/5909) [<samp>(e30d9)</samp>](https://github.com/vitest-dev/vitest/commit/e30d9b4d5) - Allow testing unandled rejection/exception - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6016](https://github.com/vitest-dev/vitest/issues/6016) [<samp>(c8d56)</samp>](https://github.com/vitest-dev/vitest/commit/c8d56fe5f) - Show all failed tests when rerunning a test - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6022](https://github.com/vitest-dev/vitest/issues/6022) [<samp>(91ba6)</samp>](https://github.com/vitest-dev/vitest/commit/91ba6f95e) ##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/6b29f3ddc86060cf3265959d4ae32e90b186cb92...v2.0.0) </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xOTEuMiIsInVwZGF0ZWRJblZlciI6IjQzLjIzNC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->
chore(deps): update vitest monorepo to v4
All checks were successful
CI / build-and-test (pull_request) Successful in 12s
85fa801865
All checks were successful
CI / build-and-test (pull_request) Successful in 12s
This pull request can be merged automatically.
This branch is out-of-date with the base branch
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin renovate/major-vitest-monorepo:renovate/major-vitest-monorepo
git switch renovate/major-vitest-monorepo

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch main
git merge --no-ff renovate/major-vitest-monorepo
git switch renovate/major-vitest-monorepo
git rebase main
git switch main
git merge --ff-only renovate/major-vitest-monorepo
git switch renovate/major-vitest-monorepo
git rebase main
git switch main
git merge --no-ff renovate/major-vitest-monorepo
git switch main
git merge --squash renovate/major-vitest-monorepo
git switch main
git merge --ff-only renovate/major-vitest-monorepo
git switch main
git merge renovate/major-vitest-monorepo
git push origin main
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
DevFW-CICD/mcp-server-forgejo!12
No description provided.