π 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
Vitest 3 to 4
Every Vitest 4.x release the archive holds, 31 of them, starting at 4.0.0 and running to 4.1.11. 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
- 3131 carry notes
- Opened
- 22 Oct 202510 months ago
- Span
- 10 monthsto 18 Aug 2026
- Breaking
- 1tagged by the publisher
- Advisories closed
- 5security
The turn
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π 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
π 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
π 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
π 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
π 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
π 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
π 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:/
π 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
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
π 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
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
π 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
π 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 @
π 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
π 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
π 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
π 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/
π 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
π 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
π 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
π 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:/
π 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
π 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
π 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
π 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-
π 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
π 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
π 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
π 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:
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