Catalog / Vitest

Vitest 3 to 4

Every Vitest 4.x release the archive holds, 32 of them, starting at 4.0.0 and running to 4.1.12. The publisher writes these one at a time and its documentation describes the version you are on, so the run between two majors is not laid out anywhere as a list.

Releases
32 32 carry notes
Opened
22 Oct 2025 1 year ago
Span
12 months to 15 Oct 2026
Breaking
1 tagged by the publisher
Advisories closed
7 security

The turn

The last 3.x release the archive holds before the turn is 3.2.4, on 17 Jun 2025. 4.0.0 followed 127 days later. 3.x did not stop there. 3 more 3.x releases shipped after 4.0.0 opened, the last of them on 6 Jul 2026, so both lines were being maintained at once.

Tagged breaking

1 of these releases carries the breaking label: 4.0.0. The label is matched from words in the publisher’s own notes, so a release that changed an API without using the word does not carry it.

Every 4.x release

All Vitest releases
4.1.12fixed

🐞 Bug Fixes mocker: Harden manual and redirect mocks [backport to v4] - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/11580 (b8253) View changes on GitHub

4.1.11fixed

🐞 Bug Fixes Revive global concurrency limit for test lifecycle [backport to v4] - by @sheremet-va and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/10992 (5146d) browser: Encode iframeId in tester iframe URL [backport to v4] - b

4.1.10fixed

🐞 Bug Fixes browser: Check fs access in builtin commands [backport to v4] - by @hi-ogawa, Hiroshi Ogawa and OpenCode (claude-opus-4-8) in https://github.com/vitest-dev/vitest/issues/10680 (5c18d) vm: Fix external module resolve error with

4.1.9fixed

🐞 Bug Fixes Fix importOriginal with optimizer and query import [backport to v4] - by Hiroshi Ogawa, David Harris, Codexand Vladimir in https://github.com/vitest-dev/vitest/issues/10546 (a5180) browser: Wait for orchestrator readiness befor

4.1.8fixed

🐞 Bug Fixes browser: Disable client cdp API when allowWrite/allowExec: false [backport to v4] - by @hi-ogawa and Codex in https://github.com/vitest-dev/vitest/issues/10450 (e4067) Remove orphaned Playwright route when same module is mocked

4.1.7fixed

🐞 Bug Fixes runner: Limit concurrency per task branch in addition to per leaf callbacks (backport) - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/10384 (4f0f2) View changes on GitHub

4.1.6fixed

🐞 Bug Fixes browser: Provide project reference in ToMatchScreenshotResolvePath - by @macarie and @sheremet-va in https://github.com/vitest-dev/vitest/issues/10138 (31882) Global sequence.concurrent: true with top-level test(..., { concurre

4.1.5fixedremoved

πŸš€ Experimental Features coverage: Istanbul to support instrumenter option - by @BartWaardenburg and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/10119 (0e0ff) 🐞 Bug Fixes --project negation excludes browser instances - by @f

4.1.4addedfixed

πŸš€ Experimental Features coverage: Default to text reporter skipFull if agent detected - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/10018 (53757) experimental: Expose assertion as a public field - by @sheremet-va in https:/

4.1.3addedfixedchanged

πŸš€ Experimental Features Add experimental.preParse flag - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/10070 (78273) Support browser.locators.exact option - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/10

4.1.2fixedremoved

This release bumps Vitest's flatted version and removes version pinning to resolve flatted's CVE related issues (https://github.com/vitest-dev/vitest/issues/9975). 🐞 Bug Fixes Don't resolve setupFiles from parent directory - by @hi-ogawa i

4.1.1addedfixed

πŸš€ Features experimental: Expose matchesTags to test if the current filter matches tags - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9913 (eec53) Introduce experimental.vcsProvider - by @sheremet-va in https://github.com

4.1.0addedfixedchanged

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 Return a disposable from doMock() - by @kirkwaiblinger in https://githu

4.0.18addedfixed

πŸš€ Experimental Features experimental: Add onModuleRunner hook to worker.init - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9286 (ea837) 🐞 Bug Fixes Use meta.url in createRequire - by @sheremet-va in https://github.com/v

4.0.17addedfixedchanged

πŸš€ Experimental Features Support openTelemetry for browser mode - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/9180 (1ec3a) Support TRACEPARENT and TRACESTATE environment variables for OpenTelemetry context propagation - by @

4.0.16fixeddeprecated

🐞 Bug Fixes Fix browser mode default testTimeout back to 15 seconds - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/9167 (da0ad) Avoid crashing on process.versions stub - by @AriPerkkio in https://github.com/vitest-dev/vitest

4.0.15addedfixedchanged

πŸš€ Experimental Features cache: Add opt-out on a plugin level, fix internal root cache - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9154 (a68f7) reporters: Print import duration breakdown - by @sheremet-va in https://git

4.0.14addedfixed

πŸš€ Experimental Features browser: Expose utils.configurePrettyDOM - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9103 (2cc34) runner: Add full names to tasks - by @macarie in https://github.com/vitest-dev/vitest/issues/908

4.0.13fixed

🐞 Bug Fixes types: Don't use type from Vite 7.1 - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9071 (6356b) Don't import node.js dependent types in vitest/browser - by @sheremet-va in https://github.com/vitest-dev/vitest/

4.0.12fixed

🐞 Bug Fixes Inherit fsModuleCachePath by default - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9063 (9a8bc) Don't import from @opentelemetry/api in public types - by @sheremet-va in https://github.com/vitest-dev/vitest/i

4.0.11added

πŸš€ Experimental Features api: Add extensible test artifact API - by @macarie in https://github.com/vitest-dev/vitest/issues/8987 (77292) See more at https://vitest.dev/api/advanced/artifacts expect: Provide task in MatchState - by @macarie

4.0.10addedfixed

🐞 Bug Fixes Remove onCancel when worker is terminated - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9033 (6d7f0) browser: Don't scale the iframe if UI is disabled - by @sheremet-va in https://github.com/vitest-dev/vitest

4.0.9addedfixed

πŸš€ Experimental Features expect: Add Set support to toBeOneOf - by @tim-we and @sheremet-va in https://github.com/vitest-dev/vitest/issues/8906 (a415d) 🐞 Bug Fixes browser: Add favicon icons to the browser mode ui - by @userquin in https:/

4.0.8fixedchanged

🐞 Bug Fixes Workaround noExternal merging bug on Vite 6 - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/8950 (bcb13) Missed context.d.ts file - by @termorey in https://github.com/vitest-dev/vitest/issues/8965 (9044d) Incorrec

4.0.7addedfixeddeprecated

🐞 Bug Fixes Bind process in case global is overwritten - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/8916 (6240d) Create environment once per worker with isolate: false - by @sheremet-va in https://github.com/vitest-dev/v

4.0.6fixedchanged

🐞 Bug Fixes Don't merge errors with different diffs for reporting - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/8871 (3e19f) Do not throw when importing a type from an external package - by @sheremet-va in https://github.co

4.0.5fixed

🐞 Bug Fixes Respect ssr.noExternal when externalizing dependencies, fix Svelte and Astro - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8862 (a4f86) Allow module in --config - by @sheremet-va in https://github.com/vitest-

4.0.4addedfixed

🐞 Bug Fixes browser: Correct typo - by @benmccann in https://github.com/vitest-dev/vitest/issues/8796 (ede1f) Publish a missing context file for webdriverio - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8824 (7c7b6) mock

4.0.3fixed

🐞 Bug Fixes Preserve reporter options from config when CLI reporters override them - by @Copilot and sheremet-va in https://github.com/vitest-dev/vitest/issues/8794 (15552) browser: More stable in-source testing validation - by @sheremet-v

4.0.2fixeddeprecated

🐞 Bug Fixes browser: Don't print the deprecation notice in node_modules - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8779 (588f7) pool: Assign envs before running tests to keep in sync with process.env - by @sheremet-va

4.0.1fixed

🐞 Bug Fixes Move the getBuiltins check - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8765 (81000) pool: Don't teardown the communication channel too soon if something is running after the test - by @sheremet-va in https:

4.0.0breakingaddedfixed

Vitest 4.0 is out! To stay updated, read our blog post and check the migration guide. 🚨 Breaking Changes Remove 'basic' reporter - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7884 (82fcf) Simplify default exclude pattern