{"id":"src_oW9cH24Mn0QOxV9U_FLck","slug":"vitest","name":"vitest","type":"github","url":"https://github.com/vitest-dev/vitest","orgId":"org_9uzJDvFnJOoUARatEc3cJ","productId":null,"productSlug":null,"org":{"id":"org_9uzJDvFnJOoUARatEc3cJ","slug":"vitest","name":"Vitest"},"isPrimary":true,"isHidden":false,"discovery":"curated","metadata":"{\"wellKnownSweptAt\":\"2026-06-24T06:00:01.224Z\"}","notice":null,"kind":null,"stars":16756,"starsFetchedAt":"2026-06-24T17:04:54.233Z","releaseCount":61,"releasesLast30Days":4,"avgReleasesPerWeek":0.7,"latestVersion":"v4.1.9","latestDate":"2026-06-16T06:13:58.000Z","changelogUrl":null,"hasChangelogFile":false,"lastFetchedAt":"2026-06-24T17:04:54.233Z","lastPolledAt":"2026-06-24T17:04:46.859Z","trackingSince":"2024-09-13T15:33:14.000Z","releases":[{"id":"rel_vyIvsZG4UmeGpqNAhXawF","version":"v4.1.9","type":"feature","title":"v4.1.9","summary":"### 🐞 Bug Fixes\r\n\r\n- Fix `importOriginal` with optimizer and query import [backport to v4] - by **Hiroshi Ogawa**, **David Harris**, **Codex**and **V...","titleGenerated":null,"titleShort":null,"content":"### 🐞 Bug Fixes\r\n\r\n- Fix `importOriginal` with optimizer and query import [backport to v4] - by **Hiroshi Ogawa**, **David Harris**, **Codex**and **Vladimir** in https://github.com/vitest-dev/vitest/issues/10546 [<samp>(a5180)</samp>](https://github.com/vitest-dev/vitest/commit/a5180190c)\r\n- **browser**:\r\n  - Wait for orchestrator readiness before resolving browser sessions [backport to v4] - by **Vladimir** and **Séamus O'Connor** in https://github.com/vitest-dev/vitest/issues/10555 [<samp>(7fb29)</samp>](https://github.com/vitest-dev/vitest/commit/7fb29651a)\r\n  - Wait for iframe tester readiness before preparing  [backport to v4] - by **Vladimir** and **Séamus O'Connor** in https://github.com/vitest-dev/vitest/issues/10497 and https://github.com/vitest-dev/vitest/issues/10556 [<samp>(fbc62)</samp>](https://github.com/vitest-dev/vitest/commit/fbc626c40)\r\n- **mocker**:\r\n  - Hoist vi.mock() for vite-plus/test imports [backport to v4] - by **Hiroshi Ogawa**, **LongYinan**, **Claude Opus 4.8** and **Vladimir** in https://github.com/vitest-dev/vitest/issues/10548 [<samp>(2c955)</samp>](https://github.com/vitest-dev/vitest/commit/2c9559c02)\r\n- **pool**:\r\n  - Prevent test run hang on worker crash  [backport to v4] - by **Ari Perkkiö** and **Jattioui Ismail** in https://github.com/vitest-dev/vitest/issues/10543 and https://github.com/vitest-dev/vitest/issues/10564 [<samp>(934b0)</samp>](https://github.com/vitest-dev/vitest/commit/934b0f587)\r\n\r\n##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.1.8...v4.1.9)","publishedAt":"2026-06-16T06:13:58.000Z","fetchedAt":"2026-06-16T09:05:06.763Z","url":"https://github.com/vitest-dev/vitest/releases/tag/v4.1.9","media":[],"coverageCount":0},{"id":"rel_caW8QnUrGixS-a2qRxpqx","version":"v3.2.6","type":"feature","title":"v3.2.6","summary":"### &nbsp;&nbsp;&nbsp;🐞 Bug Fixes\n\n- Pin last supported vite-node version &nbsp;-&nbsp; by @sheremet-va [<samp>(16f12)</samp>](https://github.com/vit...","titleGenerated":null,"titleShort":null,"content":"### &nbsp;&nbsp;&nbsp;🐞 Bug Fixes\n\n- Pin last supported vite-node version &nbsp;-&nbsp; by @sheremet-va [<samp>(16f12)</samp>](https://github.com/vitest-dev/vitest/commit/16f120d05)\n\n##### &nbsp;&nbsp;&nbsp;&nbsp;[View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.2.5...v3.2.6)","publishedAt":"2026-06-01T09:39:20.000Z","fetchedAt":"2026-06-01T18:10:44.986Z","url":"https://github.com/vitest-dev/vitest/releases/tag/v3.2.6","media":[],"coverageCount":0},{"id":"rel_UxDUBkNLvFMY1tHCXTfsE","version":"v3.2.5","type":"feature","title":"v3.2.5","summary":"### &nbsp;&nbsp;&nbsp;🚀 Features\n\n- **api**: Add `allowWrite` and `allowExec` options to `api` [backport to v3] &nbsp;-&nbsp; by @hi-ogawa and **Code...","titleGenerated":null,"titleShort":null,"content":"### &nbsp;&nbsp;&nbsp;🚀 Features\n\n- **api**: Add `allowWrite` and `allowExec` options to `api` [backport to v3] &nbsp;-&nbsp; by @hi-ogawa and **Codex** in https://github.com/vitest-dev/vitest/issues/10445 [<samp>(af88b)</samp>](https://github.com/vitest-dev/vitest/commit/af88b1f5d)\n\n### &nbsp;&nbsp;&nbsp;🐞 Bug Fixes\n\n- **browser**: Disable client `cdp` API when `allowWrite/allowExec: false` [backport to v3] &nbsp;-&nbsp; by @hi-ogawa and **Codex** in https://github.com/vitest-dev/vitest/issues/10456 [<samp>(385a1)</samp>](https://github.com/vitest-dev/vitest/commit/385a1aefd)\n\n##### &nbsp;&nbsp;&nbsp;&nbsp;[View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.2.4...v3.2.5)","publishedAt":"2026-06-01T08:35:18.000Z","fetchedAt":"2026-06-01T18:10:44.986Z","url":"https://github.com/vitest-dev/vitest/releases/tag/v3.2.5","media":[],"coverageCount":0},{"id":"rel_hRBPCERlURI3JnPhP12v4","version":"v4.1.8","type":"feature","title":"v4.1.8","summary":"### &nbsp;&nbsp;&nbsp;🐞 Bug Fixes\r\n\r\n- **browser**:\r\n  - Disable client `cdp` API when `allowWrite/allowExec: false` [backport to v4] &nbsp;-&nbsp; b...","titleGenerated":null,"titleShort":null,"content":"### &nbsp;&nbsp;&nbsp;🐞 Bug Fixes\r\n\r\n- **browser**:\r\n  - Disable client `cdp` API when `allowWrite/allowExec: false` [backport to v4] &nbsp;-&nbsp; by @hi-ogawa and **Codex** in https://github.com/vitest-dev/vitest/issues/10450 [<samp>(e4067)</samp>](https://github.com/vitest-dev/vitest/commit/e4067b3b1)\r\n  - Remove orphaned Playwright route when same module is mocked via multiple ids [backport to v4] &nbsp;-&nbsp; by @toxik and @Zelys-DFKH in https://github.com/vitest-dev/vitest/issues/10474 [<samp>(675b4)</samp>](https://github.com/vitest-dev/vitest/commit/675b4343f)\r\n\r\n##### &nbsp;&nbsp;&nbsp;&nbsp;[View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.1.7...v4.1.8)","publishedAt":"2026-06-01T08:15:20.000Z","fetchedAt":"2026-06-01T18:10:44.986Z","url":"https://github.com/vitest-dev/vitest/releases/tag/v4.1.8","media":[],"coverageCount":0},{"id":"rel_5vjtRJnzyUWJOYi30dzKC","version":"v4.1.7","type":"feature","title":"v4.1.7","summary":"### &nbsp;&nbsp;&nbsp;🐞 Bug Fixes\n\n- **runner**: Limit concurrency per task branch in addition to per leaf callbacks (backport) &nbsp;-&nbsp; by @hi-...","titleGenerated":null,"titleShort":null,"content":"### &nbsp;&nbsp;&nbsp;🐞 Bug Fixes\n\n- **runner**: Limit concurrency per task branch in addition to per leaf callbacks (backport) &nbsp;-&nbsp; by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/10384 [<samp>(4f0f2)</samp>](https://github.com/vitest-dev/vitest/commit/4f0f2a1ee)\n\n##### &nbsp;&nbsp;&nbsp;&nbsp;[View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.1.6...v4.1.7)","publishedAt":"2026-05-20T07:20:12.000Z","fetchedAt":"2026-06-01T18:10:45.184Z","url":"https://github.com/vitest-dev/vitest/releases/tag/v4.1.7","media":[],"coverageCount":0},{"id":"rel_aMQ5ijBj2ILdB1lfSnYed","version":"v4.1.6","type":"feature","title":"v4.1.6","summary":"### &nbsp;&nbsp;&nbsp;🐞 Bug Fixes\r\n\r\n- **browser**: Provide project reference in `ToMatchScreenshotResolvePath` &nbsp;-&nbsp; by @macarie and @sherem...","titleGenerated":null,"titleShort":null,"content":"### &nbsp;&nbsp;&nbsp;🐞 Bug Fixes\r\n\r\n- **browser**: Provide project reference in `ToMatchScreenshotResolvePath` &nbsp;-&nbsp; by @macarie and @sheremet-va in https://github.com/vitest-dev/vitest/issues/10138 [<samp>(31882)</samp>](https://github.com/vitest-dev/vitest/commit/31882607c)\r\n- Global `sequence.concurrent: true` with top-level `test(..., { concurrent: false })` + depreacte `sequential` test API and options &nbsp;-&nbsp; by @hi-ogawa, **Codex** and @sheremet-va in https://github.com/vitest-dev/vitest/issues/10196 [<samp>(2847d)</samp>](https://github.com/vitest-dev/vitest/commit/2847dfa2a)\r\n- **browser**: Simplify orchestrator otel carrier &nbsp;-&nbsp; by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/10285 [<samp>(18af9)</samp>](https://github.com/vitest-dev/vitest/commit/18af98cee)\r\n\r\n### &nbsp;&nbsp;&nbsp;🏎 Performance\r\n\r\n- Stringify diff objects only once &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/10276 [<samp>(9f7b1)</samp>](https://github.com/vitest-dev/vitest/commit/9f7b1528c)\r\n\r\n##### &nbsp;&nbsp;&nbsp;&nbsp;[View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.1.5...v4.1.6)","publishedAt":"2026-05-11T14:38:28.000Z","fetchedAt":"2026-06-01T18:10:45.184Z","url":"https://github.com/vitest-dev/vitest/releases/tag/v4.1.6","media":[],"coverageCount":0},{"id":"rel_QVzr_MbH4oL1lny_Fp2fn","version":"v4.1.5","type":"feature","title":"v4.1.5","summary":"### &nbsp;&nbsp;&nbsp;🚀 Experimental Features\r\n\r\n- **coverage**: Istanbul to support `instrumenter` option &nbsp;-&nbsp; by @BartWaardenburg and @Ari...","titleGenerated":null,"titleShort":null,"content":"### &nbsp;&nbsp;&nbsp;🚀 Experimental Features\r\n\r\n- **coverage**: Istanbul to support `instrumenter` option &nbsp;-&nbsp; by @BartWaardenburg and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/10119 [<samp>(0e0ff)</samp>](https://github.com/vitest-dev/vitest/commit/0e0ff41c7)\r\n\r\n### &nbsp;&nbsp;&nbsp;🐞 Bug Fixes\r\n\r\n- --project negation excludes browser instances &nbsp;-&nbsp; by @felamaslen in https://github.com/vitest-dev/vitest/issues/10131 [<samp>(9423d)</samp>](https://github.com/vitest-dev/vitest/commit/9423dc084)\r\n- Project color label on html reporter &nbsp;-&nbsp; by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/10142 [<samp>(596f7)</samp>](https://github.com/vitest-dev/vitest/commit/596f73986)\r\n- Fix `vi.defineHelper` called as object method &nbsp;-&nbsp; by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/10163 [<samp>(122c2)</samp>](https://github.com/vitest-dev/vitest/commit/122c25b5b)\r\n- Alias `agent` reporter to `minimal` &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/10157 [<samp>(663b9)</samp>](https://github.com/vitest-dev/vitest/commit/663b99fe3)\r\n- Respect diff config options in soft assertions &nbsp;-&nbsp; by @Copilot, **sheremet-va** and @sheremet-va in https://github.com/vitest-dev/vitest/issues/8696 [<samp>(9787d)</samp>](https://github.com/vitest-dev/vitest/commit/9787dedad)\r\n- Respect diff config options in soft assertions \" &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8696 [<samp>(7dc6d)</samp>](https://github.com/vitest-dev/vitest/commit/7dc6d54fd)\r\n- **ast-collect**: Recognize __vi_import_ prefix in static test discovery &nbsp;-&nbsp; by @Yejneshwar in https://github.com/vitest-dev/vitest/issues/10129 [<samp>(32546)</samp>](https://github.com/vitest-dev/vitest/commit/325463ab2)\r\n- **coverage**: Descriptive error message when reports directory is removed during test run &nbsp;-&nbsp; by @DaveT1991 and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/10117 [<samp>(14133)</samp>](https://github.com/vitest-dev/vitest/commit/1413382e1)\r\n- **snapshot**: Increase default snapshot max output length &nbsp;-&nbsp; by @hi-ogawa and **Codex** in https://github.com/vitest-dev/vitest/issues/10150 [<samp>(21e66)</samp>](https://github.com/vitest-dev/vitest/commit/21e66ff63)\r\n- **ui**: Fix jsx/tsx syntax highlight &nbsp;-&nbsp; by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/10152 [<samp>(f1b1f)</samp>](https://github.com/vitest-dev/vitest/commit/f1b1f6c7b)\r\n- **web-worker**: Support MessagePort objects referenced inside postMessage data &nbsp;-&nbsp; by @whitphx and **Claude Opus 4.6 (1M context)** in https://github.com/vitest-dev/vitest/issues/9927 and https://github.com/vitest-dev/vitest/issues/10124 [<samp>(7ad7d)</samp>](https://github.com/vitest-dev/vitest/commit/7ad7d39af)\r\n- **api**: Make test-specification options writable &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/10154 [<samp>(6abd5)</samp>](https://github.com/vitest-dev/vitest/commit/6abd557b7)\r\n\r\n##### &nbsp;&nbsp;&nbsp;&nbsp;[View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.1.4...v4.1.5)","publishedAt":"2026-04-21T11:04:32.000Z","fetchedAt":"2026-06-01T18:10:45.184Z","url":"https://github.com/vitest-dev/vitest/releases/tag/v4.1.5","media":[],"coverageCount":0},{"id":"rel_p_zxR1ZzlKVUTJJEuQIpY","version":"v4.1.4","type":"feature","title":"v4.1.4","summary":"### &nbsp;&nbsp;&nbsp;🚀 Experimental Features\r\n\r\n- **coverage**:\r\n  - Default to text reporter `skipFull` if agent detected &nbsp;-&nbsp; by @hi-ogaw...","titleGenerated":null,"titleShort":null,"content":"### &nbsp;&nbsp;&nbsp;🚀 Experimental Features\r\n\r\n- **coverage**:\r\n  - Default to text reporter `skipFull` if agent detected &nbsp;-&nbsp; by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/10018 [<samp>(53757)</samp>](https://github.com/vitest-dev/vitest/commit/53757804c)\r\n- **experimental**:\r\n  - Expose `assertion` as a public field &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/10095 [<samp>(a120e)</samp>](https://github.com/vitest-dev/vitest/commit/a120e3ab8)\r\n  - Support aria snapshot &nbsp;-&nbsp; by @hi-ogawa, **Claude Opus 4.6 (1M context)**, @AriPerkkio, **Codex** and @sheremet-va in https://github.com/vitest-dev/vitest/issues/9668 [<samp>(d4fbb)</samp>](https://github.com/vitest-dev/vitest/commit/d4fbb5cc9)\r\n- **reporter**:\r\n  - Add filterMeta option to json reporter &nbsp;-&nbsp; by @nami8824 and @sheremet-va in https://github.com/vitest-dev/vitest/issues/10078 [<samp>(b77de)</samp>](https://github.com/vitest-dev/vitest/commit/b77de968e)\r\n\r\n### &nbsp;&nbsp;&nbsp;🐞 Bug Fixes\r\n\r\n- Use \"black\" foreground for labeled terminal message to ensure contrast &nbsp;-&nbsp; by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/10076 [<samp>(203f0)</samp>](https://github.com/vitest-dev/vitest/commit/203f07af7)\r\n- Make `expect(..., message)` consistent as error message prefix &nbsp;-&nbsp; by @hi-ogawa and **Codex** in https://github.com/vitest-dev/vitest/issues/10068 [<samp>(a1b5f)</samp>](https://github.com/vitest-dev/vitest/commit/a1b5f0f4f)\r\n- Do not hoist imports whose names match class properties . &nbsp;-&nbsp; by @SunsetFi in https://github.com/vitest-dev/vitest/issues/10093 and https://github.com/vitest-dev/vitest/issues/10094 [<samp>(0fc4b)</samp>](https://github.com/vitest-dev/vitest/commit/0fc4b47e0)\r\n- **browser**: Spread user server options into browser Vite server in project &nbsp;-&nbsp; by @GoldStrikeArch in https://github.com/vitest-dev/vitest/issues/10049 [<samp>(65c9d)</samp>](https://github.com/vitest-dev/vitest/commit/65c9d55eb)\r\n\r\n##### &nbsp;&nbsp;&nbsp;&nbsp;[View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.1.3...v4.1.4)","publishedAt":"2026-04-09T07:37:17.000Z","fetchedAt":"2026-06-01T18:10:45.276Z","url":"https://github.com/vitest-dev/vitest/releases/tag/v4.1.4","media":[],"coverageCount":0},{"id":"rel_ilWau3tf5DzQGj9jCvb-n","version":"v4.1.3","type":"feature","title":"v4.1.3","summary":"### &nbsp;&nbsp;&nbsp;🚀 Experimental Features\r\n\r\n- Add `experimental.preParse` flag &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vi...","titleGenerated":null,"titleShort":null,"content":"### &nbsp;&nbsp;&nbsp;🚀 Experimental Features\r\n\r\n- Add `experimental.preParse` flag &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/10070 [<samp>(78273)</samp>](https://github.com/vitest-dev/vitest/commit/7827363bd)\r\n- Support `browser.locators.exact` option &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/10013 [<samp>(48799)</samp>](https://github.com/vitest-dev/vitest/commit/487990a19)\r\n- Add `TestAttachment.bodyEncoding` &nbsp;-&nbsp; by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/9969 [<samp>(89ca0)</samp>](https://github.com/vitest-dev/vitest/commit/89ca0e254)\r\n- Support custom snapshot matcher &nbsp;-&nbsp; by @hi-ogawa, **Claude Sonnet 4.6** and **Codex** in https://github.com/vitest-dev/vitest/issues/9973 [<samp>(59b0e)</samp>](https://github.com/vitest-dev/vitest/commit/59b0e6411)\r\n\r\n### &nbsp;&nbsp;&nbsp;🐞 Bug Fixes\r\n\r\n- Advance fake timers with `expect.poll` interval &nbsp;-&nbsp; by @hi-ogawa and **Claude Sonnet 4.6** in https://github.com/vitest-dev/vitest/issues/10022 [<samp>(3f5bf)</samp>](https://github.com/vitest-dev/vitest/commit/3f5bfa365)\r\n- Add `@vitest/coverage-v8` and `@vitest/coverage-istanbul` as optional dependency &nbsp;-&nbsp; by @alan-agius4 in https://github.com/vitest-dev/vitest/issues/10025 [<samp>(146d4)</samp>](https://github.com/vitest-dev/vitest/commit/146d4f0a0)\r\n- Fix `defineHelper` for webkit async stack trace + update playwright 1.59.0 &nbsp;-&nbsp; by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/10036 [<samp>(5a5fa)</samp>](https://github.com/vitest-dev/vitest/commit/5a5fa49fe)\r\n- Fix suite hook throwing errors for unused auto test-scoped fixture &nbsp;-&nbsp; by @hi-ogawa and **Claude Sonnet 4.6** in https://github.com/vitest-dev/vitest/issues/10035 [<samp>(39865)</samp>](https://github.com/vitest-dev/vitest/commit/398657e8d)\r\n- **expect**:\r\n  - Remove `JestExtendError.context` from verbose error reporting &nbsp;-&nbsp; by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/9983 [<samp>(66751)</samp>](https://github.com/vitest-dev/vitest/commit/66751c9e8)\r\n  - Don't leak \"runner\" types &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/10004 [<samp>(ec204)</samp>](https://github.com/vitest-dev/vitest/commit/ec2045543)\r\n- **snapshot**:\r\n  - Fix flagging obsolete snapshots for snapshot properties mismatch &nbsp;-&nbsp; by @hi-ogawa and **Claude Sonnet 4.6** in https://github.com/vitest-dev/vitest/issues/9986 [<samp>(6b869)</samp>](https://github.com/vitest-dev/vitest/commit/6b869156b)\r\n  - Export custom snapshot matcher helper from `vitest` &nbsp;-&nbsp; by @hi-ogawa and **Codex** in https://github.com/vitest-dev/vitest/issues/10042 [<samp>(691d3)</samp>](https://github.com/vitest-dev/vitest/commit/691d341fd)\r\n- **ui**:\r\n  - Don't leak vite types &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/10005 [<samp>(fdff1)</samp>](https://github.com/vitest-dev/vitest/commit/fdff1bf9a)\r\n- **vm**:\r\n  - Fix external module resolve error with deps optimizer query &nbsp;-&nbsp; by @hi-ogawa and **Claude Sonnet 4.6** in https://github.com/vitest-dev/vitest/issues/10024 [<samp>(9dbf4)</samp>](https://github.com/vitest-dev/vitest/commit/9dbf47786)\r\n\r\n##### &nbsp;&nbsp;&nbsp;&nbsp;[View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.1.2...v4.1.3)","publishedAt":"2026-04-07T09:56:19.000Z","fetchedAt":"2026-06-01T18:10:45.276Z","url":"https://github.com/vitest-dev/vitest/releases/tag/v4.1.3","media":[],"coverageCount":0},{"id":"rel_6Lw7tfKaFPV-jUL7fqeT4","version":"v4.1.2","type":"feature","title":"v4.1.2","summary":"This release bumps Vitest's `flatted` version and removes version pinning to resolve `flatted`'s CVE related issues (https://github.com/vitest-dev/vit...","titleGenerated":null,"titleShort":null,"content":"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).\r\n\r\n### &nbsp;&nbsp;&nbsp;🐞 Bug Fixes\r\n\r\n- Don't resolve `setupFiles` from parent directory &nbsp;-&nbsp; by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/9960 [<samp>(7aa93)</samp>](https://github.com/vitest-dev/vitest/commit/7aa937776)\r\n- Ensure sequential mock/unmock resolution &nbsp;-&nbsp; by @hi-ogawa and **Claude Opus 4.6** in https://github.com/vitest-dev/vitest/issues/9830 [<samp>(7c065)</samp>](https://github.com/vitest-dev/vitest/commit/7c06598db)\r\n- **browser**: Take failure screenshot if `toMatchScreenshot` can't capture a stable screenshot &nbsp;-&nbsp; by @macarie in https://github.com/vitest-dev/vitest/issues/9847 [<samp>(faace)</samp>](https://github.com/vitest-dev/vitest/commit/faace1fbe)\r\n- **coverage**: Correct `coverageConfigDefaults` values and types &nbsp;-&nbsp; by @Arthie in https://github.com/vitest-dev/vitest/issues/9940 [<samp>(b3c99)</samp>](https://github.com/vitest-dev/vitest/commit/b3c992cb2)\r\n- **pretty-format**: Fix output limit over counting &nbsp;-&nbsp; by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/9965 [<samp>(d3b7a)</samp>](https://github.com/vitest-dev/vitest/commit/d3b7a40fa)\r\n- Disable colors if agent is detected &nbsp;-&nbsp; by @sheremet-va and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/9851 [<samp>(6f97b)</samp>](https://github.com/vitest-dev/vitest/commit/6f97b55dd)\r\n\r\n##### &nbsp;&nbsp;&nbsp;&nbsp;[View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.1.1...v4.1.2)","publishedAt":"2026-03-26T14:37:17.000Z","fetchedAt":"2026-06-01T18:10:45.276Z","url":"https://github.com/vitest-dev/vitest/releases/tag/v4.1.2","media":[],"coverageCount":0},{"id":"rel_aObQqPvb0jhVI0Mo2byrP","version":"v4.1.1","type":"feature","title":"v4.1.1","summary":"### &nbsp;&nbsp;&nbsp;🚀 Features\r\n\r\n- **experimental**:\r\n  - Expose `matchesTags` to test if the current filter matches tags &nbsp;-&nbsp; by @sherem...","titleGenerated":null,"titleShort":null,"content":"### &nbsp;&nbsp;&nbsp;🚀 Features\r\n\r\n- **experimental**:\r\n  - Expose `matchesTags` to test if the current filter matches tags &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9913 [<samp>(eec53)</samp>](https://github.com/vitest-dev/vitest/commit/eec53d9f5)\r\n  - Introduce `experimental.vcsProvider` &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9928 [<samp>(56115)</samp>](https://github.com/vitest-dev/vitest/commit/561150036)\r\n\r\n### &nbsp;&nbsp;&nbsp;🐞 Bug Fixes\r\n\r\n- Mark `TestProject.testFilesList` internal properly &nbsp;-&nbsp; by @sapphi-red in https://github.com/vitest-dev/vitest/issues/9867 [<samp>(54f26)</samp>](https://github.com/vitest-dev/vitest/commit/54f2660f5)\r\n- Detect fixture that returns without calling `use` &nbsp;-&nbsp; by @oilater in https://github.com/vitest-dev/vitest/issues/9831 and https://github.com/vitest-dev/vitest/issues/9861 [<samp>(633ae)</samp>](https://github.com/vitest-dev/vitest/commit/633ae2303)\r\n- Drop vite 8.beta support &nbsp;-&nbsp; by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/9862 [<samp>(b78f5)</samp>](https://github.com/vitest-dev/vitest/commit/b78f5389d)\r\n- Type regression in vi.mocked() static class methods &nbsp;-&nbsp; by @purepear and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/9857 [<samp>(90926)</samp>](https://github.com/vitest-dev/vitest/commit/90926641b)\r\n- Properly re-evaluate actual modules of mocked external &nbsp;-&nbsp; by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/9898 [<samp>(ae5ec)</samp>](https://github.com/vitest-dev/vitest/commit/ae5ec03ef)\r\n- Preserve coverage report when html reporter overlaps &nbsp;-&nbsp; by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/9889 [<samp>(2d81a)</samp>](https://github.com/vitest-dev/vitest/commit/2d81ad897)\r\n- Provide `vi.advanceTimers` to the preview provider &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9891 [<samp>(1bc3e)</samp>](https://github.com/vitest-dev/vitest/commit/1bc3e63be)\r\n- Don't leak event listener in playwright provider &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9910 [<samp>(d9355)</samp>](https://github.com/vitest-dev/vitest/commit/d93550ff7)\r\n- Open browser in `--standalone` mode without running tests &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9911 [<samp>(e78ad)</samp>](https://github.com/vitest-dev/vitest/commit/e78adcf97)\r\n- Guard disposable and optional `body` &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9912 [<samp>(6fdb2)</samp>](https://github.com/vitest-dev/vitest/commit/6fdb2ba61)\r\n- Resolve `retry.condition` RegExp serialization issue &nbsp;-&nbsp; by @nstepien and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/9942 [<samp>(7b605)</samp>](https://github.com/vitest-dev/vitest/commit/7b6054328)\r\n- **collect**:\r\n  - Don't treat extra props on `test` return as tests &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9871 [<samp>(141e7)</samp>](https://github.com/vitest-dev/vitest/commit/141e72aa1)\r\n- **coverage**:\r\n  - Simplify provider types &nbsp;-&nbsp; by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/9931 [<samp>(aaf9f)</samp>](https://github.com/vitest-dev/vitest/commit/aaf9f18ae)\r\n  - Load built-in provider without module runner &nbsp;-&nbsp; by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/9939 [<samp>(bf892)</samp>](https://github.com/vitest-dev/vitest/commit/bf8920817)\r\n- **expect**:\r\n  - Soft assertions continue after .resolves/.rejects promise errors &nbsp;-&nbsp; by @mixelburg, **Maks Pikov**, **Claude Opus 4.6 (1M context)** and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/9843 [<samp>(6d74b)</samp>](https://github.com/vitest-dev/vitest/commit/6d74b4948)\r\n  - Fix sinon-chai style API &nbsp;-&nbsp; by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/9943 [<samp>(0f08d)</samp>](https://github.com/vitest-dev/vitest/commit/0f08dda2c)\r\n- **pretty-format**:\r\n  - Limit output for large object &nbsp;-&nbsp; by @hi-ogawa and **Claude Opus 4.6 (1M context)** in https://github.com/vitest-dev/vitest/issues/9949 [<samp>(0d5f9)</samp>](https://github.com/vitest-dev/vitest/commit/0d5f9d6ef)\r\n\r\n##### &nbsp;&nbsp;&nbsp;&nbsp;[View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.1.0...v4.1.1)","publishedAt":"2026-03-23T14:59:16.000Z","fetchedAt":"2026-06-01T18:10:45.276Z","url":"https://github.com/vitest-dev/vitest/releases/tag/v4.1.1","media":[],"coverageCount":0},{"id":"rel_D9YUd0Dj5s4Sk_khoj-Bj","version":"v4.1.0","type":"feature","title":"v4.1.0","summary":"Vitest 4.1 is out!\r\n\r\nThis 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 [...","titleGenerated":null,"titleShort":null,"content":"Vitest 4.1 is out!\r\n\r\nThis 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).\r\n\r\n### &nbsp;&nbsp;&nbsp;🚀 Features\r\n\r\n- Return a disposable from doMock() &nbsp;-&nbsp; by @kirkwaiblinger in https://github.com/vitest-dev/vitest/issues/9332 [<samp>(e3e65)</samp>](https://github.com/vitest-dev/vitest/commit/e3e659a96)\r\n- Added chai style assertions &nbsp;-&nbsp; by @ronnakamoto and @sheremet-va in https://github.com/vitest-dev/vitest/issues/8842 [<samp>(841df)</samp>](https://github.com/vitest-dev/vitest/commit/841df9ac5)\r\n- Update to sinon/fake-timers v15 and add `setTickMode` to timer controls &nbsp;-&nbsp; by @atscott and @sheremet-va in https://github.com/vitest-dev/vitest/issues/8726 [<samp>(4b480)</samp>](https://github.com/vitest-dev/vitest/commit/4b480aaed)\r\n- Expose matcher types &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9448 [<samp>(3e4b9)</samp>](https://github.com/vitest-dev/vitest/commit/3e4b913b1)\r\n- Add `toTestSpecification` to reported tasks &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9464 [<samp>(1a470)</samp>](https://github.com/vitest-dev/vitest/commit/1a4705da9)\r\n- Show a warning if `vi.mock` or `vi.hoisted` are declared outside of top level of the module &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9387 [<samp>(5db54)</samp>](https://github.com/vitest-dev/vitest/commit/5db54a468)\r\n- Track and display expectedly failed tests (.fails) in UI and CLI &nbsp;-&nbsp; by @Copilot, **sheremet-va** and @sheremet-va in https://github.com/vitest-dev/vitest/issues/9476 [<samp>(77d75)</samp>](https://github.com/vitest-dev/vitest/commit/77d75fd34)\r\n- Support tags &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9478 [<samp>(de7c8)</samp>](https://github.com/vitest-dev/vitest/commit/de7c8a521)\r\n- Implement `aroundEach` and `aroundAll` hooks &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9450 [<samp>(2a8cb)</samp>](https://github.com/vitest-dev/vitest/commit/2a8cb9dc2)\r\n- Stabilize experimental features &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9529 [<samp>(b5fd2)</samp>](https://github.com/vitest-dev/vitest/commit/b5fd2a16a)\r\n- Accept `new` or `all` in `--update` flag &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9543 [<samp>(a5acf)</samp>](https://github.com/vitest-dev/vitest/commit/a5acf28a5)\r\n- Support `meta` in test options &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9535 [<samp>(7d622)</samp>](https://github.com/vitest-dev/vitest/commit/7d622e3d1)\r\n- Support type inference with a new `test.extend` syntax &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9550 [<samp>(e5385)</samp>](https://github.com/vitest-dev/vitest/commit/e53854fcc)\r\n- Support vite 8 beta, fix type issues in the config with different vite versions &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9587 [<samp>(99028)</samp>](https://github.com/vitest-dev/vitest/commit/990281dfd)\r\n- Add assertion helper to hide internal stack traces &nbsp;-&nbsp; by @hi-ogawa and **Claude Opus 4.6** in https://github.com/vitest-dev/vitest/issues/9594 [<samp>(eeb0a)</samp>](https://github.com/vitest-dev/vitest/commit/eeb0ae2f8)\r\n- Store failure screenshots using artifacts API &nbsp;-&nbsp; by @macarie in https://github.com/vitest-dev/vitest/issues/9588 [<samp>(24603)</samp>](https://github.com/vitest-dev/vitest/commit/24603e3c4)\r\n- Allow `vitest list` to statically collect tests instead of running files to collect them &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9630 [<samp>(7a8e7)</samp>](https://github.com/vitest-dev/vitest/commit/7a8e7fc20)\r\n- Add `--detect-async-leaks` &nbsp;-&nbsp; by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/9528 [<samp>(c594d)</samp>](https://github.com/vitest-dev/vitest/commit/c594d4af3)\r\n- Implement `mockThrow` and `mockThrowOnce` &nbsp;-&nbsp; by @thor-juhasz and @sheremet-va in https://github.com/vitest-dev/vitest/issues/9512 [<samp>(61917)</samp>](https://github.com/vitest-dev/vitest/commit/619179fb7)\r\n- Support `update: \"none\"` and add docs about snapshots behavior on CI &nbsp;-&nbsp; by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/9700 [<samp>(05f18)</samp>](https://github.com/vitest-dev/vitest/commit/05f1854e2)\r\n- Support playwright `launchOptions` with `connectOptions` &nbsp;-&nbsp; by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/9702 [<samp>(f0ff1)</samp>](https://github.com/vitest-dev/vitest/commit/f0ff1b2a0)\r\n- Add `page/locator.mark` API to enhance playwright trace &nbsp;-&nbsp; by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/9652 [<samp>(d0ee5)</samp>](https://github.com/vitest-dev/vitest/commit/d0ee546fe)\r\n- **api**:\r\n  - Support tests starting or ending with `test` in `experimental_parseSpecification` &nbsp;-&nbsp; by @jgillick and **Jeremy Gillick** in https://github.com/vitest-dev/vitest/issues/9235 [<samp>(2f367)</samp>](https://github.com/vitest-dev/vitest/commit/2f367fad3)\r\n  - Add filters to `createSpecification` &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9336 [<samp>(c8e6c)</samp>](https://github.com/vitest-dev/vitest/commit/c8e6c7fbf)\r\n  - Expose `runTestFiles` as alternative to `runTestSpecifications` &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9443 [<samp>(43d76)</samp>](https://github.com/vitest-dev/vitest/commit/43d761821)\r\n  - Add `allowWrite` and `allowExec` options to `api` &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9350 [<samp>(20e00)</samp>](https://github.com/vitest-dev/vitest/commit/20e00ef78)\r\n  - Allow passing down test cases to `toTestSpecification` &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9627 [<samp>(6f17d)</samp>](https://github.com/vitest-dev/vitest/commit/6f17d5ddf)\r\n- **browser**:\r\n  - Add `userEvent.wheel` API &nbsp;-&nbsp; by @macarie in https://github.com/vitest-dev/vitest/issues/9188 [<samp>(66080)</samp>](https://github.com/vitest-dev/vitest/commit/660801979)\r\n  - Add `filterNode` option to prettyDOM for filtering browser assertion error output &nbsp;-&nbsp; by @Copilot, **sheremet-va** and @sheremet-va in https://github.com/vitest-dev/vitest/issues/9475 [<samp>(d3220)</samp>](https://github.com/vitest-dev/vitest/commit/d3220fcd8)\r\n  - Support playwright persistent context &nbsp;-&nbsp; by @hi-ogawa, **Claude Opus 4.6** and @sheremet-va in https://github.com/vitest-dev/vitest/issues/9229 [<samp>(f865d)</samp>](https://github.com/vitest-dev/vitest/commit/f865d2ba4)\r\n  - Added `detailsPanelPosition` option and button &nbsp;-&nbsp; by @shairez in https://github.com/vitest-dev/vitest/issues/9525 [<samp>(c8a31)</samp>](https://github.com/vitest-dev/vitest/commit/c8a31147c)\r\n  - Use BlazeDiff instead of pixelmatch &nbsp;-&nbsp; by @macarie in https://github.com/vitest-dev/vitest/issues/9514 [<samp>(30936)</samp>](https://github.com/vitest-dev/vitest/commit/309362089)\r\n  - Add `findElement` and enable strict mode in webdriverio and preview &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9677 [<samp>(c3f37)</samp>](https://github.com/vitest-dev/vitest/commit/c3f37721c)\r\n- **cli**:\r\n  - Add @bomb.sh/tab completions &nbsp;-&nbsp; by @AmirSa12 and @sheremet-va in https://github.com/vitest-dev/vitest/issues/8639 [<samp>(200f3)</samp>](https://github.com/vitest-dev/vitest/commit/200f31704)\r\n- **coverage**:\r\n  - Support `ignore start/stop` ignore hints &nbsp;-&nbsp; by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/9204 [<samp>(e59c9)</samp>](https://github.com/vitest-dev/vitest/commit/e59c94ba6)\r\n  - Add `coverage.changed` option to report only changed files &nbsp;-&nbsp; by @kykim00 and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/9521 [<samp>(1d939)</samp>](https://github.com/vitest-dev/vitest/commit/1d9392c67)\r\n- **experimental**:\r\n  - Add `onModuleRunner` hook to `worker.init` &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9286 [<samp>(e977f)</samp>](https://github.com/vitest-dev/vitest/commit/e977f3deb)\r\n  - Option to disable the module runner &nbsp;-&nbsp; by @sheremet-va and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/9210 [<samp>(9be61)</samp>](https://github.com/vitest-dev/vitest/commit/9be6121ee)\r\n  - Add `importDurations: { limit, print }` options &nbsp;-&nbsp; by @hi-ogawa, **Claude Opus 4.6** and @sheremet-va in https://github.com/vitest-dev/vitest/issues/9401 [<samp>(7e10f)</samp>](https://github.com/vitest-dev/vitest/commit/7e10fb356)\r\n  - Add print and fail thresholds for `importDurations` &nbsp;-&nbsp; by @hi-ogawa and **Claude Opus 4.6** in https://github.com/vitest-dev/vitest/issues/9533 [<samp>(3f7a5)</samp>](https://github.com/vitest-dev/vitest/commit/3f7a5f8f8)\r\n- **fixtures**:\r\n  - Pass down file context to `beforeAll`/`afterAll` &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9572 [<samp>(c8339)</samp>](https://github.com/vitest-dev/vitest/commit/c83395f2c)\r\n- **reporters**:\r\n  - Add `agent` reporter to reduce ai agent token usage &nbsp;-&nbsp; by @cpojer in https://github.com/vitest-dev/vitest/issues/9779 [<samp>(3e9e0)</samp>](https://github.com/vitest-dev/vitest/commit/3e9e096a2)\r\n- **runner**:\r\n  - Enhance `retry` options &nbsp;-&nbsp; by @MazenSamehR, **Matan Shavit**, @AriPerkkio and @sheremet-va in https://github.com/vitest-dev/vitest/issues/9370 [<samp>(9e4cf)</samp>](https://github.com/vitest-dev/vitest/commit/9e4cfd295)\r\n- **ui**:\r\n  - Allow run individual test/suites &nbsp;-&nbsp; by @userquin in https://github.com/vitest-dev/vitest/issues/9465 [<samp>(73b10)</samp>](https://github.com/vitest-dev/vitest/commit/73b10f1b9)\r\n  - Add project filter/sort support &nbsp;-&nbsp; by @userquin in https://github.com/vitest-dev/vitest/issues/8689 [<samp>(0c7ea)</samp>](https://github.com/vitest-dev/vitest/commit/0c7eaac16)\r\n  - Add duration sorting to explorer &nbsp;-&nbsp; by @julianhahn and @cursoragent in https://github.com/vitest-dev/vitest/issues/9603 [<samp>(209b1)</samp>](https://github.com/vitest-dev/vitest/commit/209b1b0e1)\r\n  - Implement filter for slow tests &nbsp;-&nbsp; by @DerYeger and @userquin in https://github.com/vitest-dev/vitest/issues/9705 [<samp>(8880c)</samp>](https://github.com/vitest-dev/vitest/commit/8880c907a)\r\n- **vitest**:\r\n  - Add run summary in GitHub Actions Reporter &nbsp;-&nbsp; by @macarie and **jhnance** in https://github.com/vitest-dev/vitest/issues/9579 [<samp>(96bfc)</samp>](https://github.com/vitest-dev/vitest/commit/96bfc8345)\r\n\r\n### &nbsp;&nbsp;&nbsp;🐞 Bug Fixes\r\n\r\n- Deprecate several vitest/* entry points &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9347 [<samp>(fd459)</samp>](https://github.com/vitest-dev/vitest/commit/fd45928be)\r\n- Use `meta.url` in `createRequire` &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9441 [<samp>(e3422)</samp>](https://github.com/vitest-dev/vitest/commit/e34225563)\r\n- Preact browser mode init example of render function not async &nbsp;-&nbsp; by @WuMingDao in https://github.com/vitest-dev/vitest/issues/9375 [<samp>(2bea5)</samp>](https://github.com/vitest-dev/vitest/commit/2bea549c7)\r\n- Deprecate unused types in matcher context &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9449 [<samp>(20f87)</samp>](https://github.com/vitest-dev/vitest/commit/20f8753a2)\r\n- Handle `external/noExternal` during `configEnvironment` hook &nbsp;-&nbsp; by @hi-ogawa and **Claude Opus 4.6** in https://github.com/vitest-dev/vitest/issues/9508 [<samp>(59ea2)</samp>](https://github.com/vitest-dev/vitest/commit/59ea27c1c)\r\n- Replace default ssr environment runner with Vitest server module runner &nbsp;-&nbsp; by @hi-ogawa and **Claude Opus 4.6** in https://github.com/vitest-dev/vitest/issues/9506 [<samp>(cd5db)</samp>](https://github.com/vitest-dev/vitest/commit/cd5db660c)\r\n- Propagate experimental CLI options to child projects &nbsp;-&nbsp; by @hi-ogawa and **Claude Opus 4.6** in https://github.com/vitest-dev/vitest/issues/9531 [<samp>(b624f)</samp>](https://github.com/vitest-dev/vitest/commit/b624fae53)\r\n- Show a warning when `browser.isolate` is used &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9410 [<samp>(3d48e)</samp>](https://github.com/vitest-dev/vitest/commit/3d48ebcb9)\r\n- Fix `vi.mock({ spy: true })` node v8 coverage &nbsp;-&nbsp; by @hi-ogawa, **hi-ogawa** and **Claude Opus 4.6** in https://github.com/vitest-dev/vitest/issues/9541 [<samp>(687b6)</samp>](https://github.com/vitest-dev/vitest/commit/687b633c1)\r\n- Don't show internal ssr handler in errors &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9547 [<samp>(76c43)</samp>](https://github.com/vitest-dev/vitest/commit/76c4397b5)\r\n- Close vitest if it failed to start &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9573 [<samp>(728ba)</samp>](https://github.com/vitest-dev/vitest/commit/728ba617f)\r\n- Fix ssr environment runner in project &nbsp;-&nbsp; by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/9584 [<samp>(09006)</samp>](https://github.com/vitest-dev/vitest/commit/090064f97)\r\n- Trim trailing white spaces in code block &nbsp;-&nbsp; by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/9591 [<samp>(f78be)</samp>](https://github.com/vitest-dev/vitest/commit/f78bea992)\r\n- Support inline snapshot inside test.for/each &nbsp;-&nbsp; by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/9590 [<samp>(615fd)</samp>](https://github.com/vitest-dev/vitest/commit/615fd521e)\r\n- Apply source maps for external module stack trace &nbsp;-&nbsp; by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/9152 [<samp>(79e20)</samp>](https://github.com/vitest-dev/vitest/commit/79e20d5a3)\r\n- Remove the `.name` from statically collected test &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9596 [<samp>(b66ff)</samp>](https://github.com/vitest-dev/vitest/commit/b66ff691a)\r\n- Don't suppress warnings on pnp &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9602 [<samp>(89cbd)</samp>](https://github.com/vitest-dev/vitest/commit/89cbdaea3)\r\n- Support snapshot with `expect.soft` &nbsp;-&nbsp; by @iumehara, @hi-ogawa and **Claude Opus 4.6** in https://github.com/vitest-dev/vitest/issues/9231 [<samp>(3eb2c)</samp>](https://github.com/vitest-dev/vitest/commit/3eb2cd541)\r\n- Log seed when only `sequence.shuffle.tests` is enabled &nbsp;-&nbsp; by @kaigritun, **Kai Gritun** and @sheremet-va in https://github.com/vitest-dev/vitest/issues/9576 [<samp>(8182b)</samp>](https://github.com/vitest-dev/vitest/commit/8182b77ad)\r\n- Externalize `expect/src/utils` from `vitest` &nbsp;-&nbsp; by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/9616 [<samp>(48739)</samp>](https://github.com/vitest-dev/vitest/commit/487398422)\r\n- Ignore test.override during static collection &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9620 [<samp>(09174)</samp>](https://github.com/vitest-dev/vitest/commit/0917470ce)\r\n- Increase stacktrace limit for `--detect-async-leaks` &nbsp;-&nbsp; by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/9638 [<samp>(9fd4c)</samp>](https://github.com/vitest-dev/vitest/commit/9fd4ce533)\r\n- Hanging-reporter link in cli &nbsp;-&nbsp; by @flx-sta in https://github.com/vitest-dev/vitest/issues/9649 [<samp>(7c103)</samp>](https://github.com/vitest-dev/vitest/commit/7c103055c)\r\n- Fix teardown timeout of `aroundEach/All` when inner `aroundEach/All` throws &nbsp;-&nbsp; by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/9657 [<samp>(4ec6c)</samp>](https://github.com/vitest-dev/vitest/commit/4ec6cb305)\r\n- Fix ui mode / html reporter and coverage integration &nbsp;-&nbsp; by @hi-ogawa and **Claude Opus 4.6** in https://github.com/vitest-dev/vitest/issues/9626 [<samp>(86fad)</samp>](https://github.com/vitest-dev/vitest/commit/86fad4b42)\r\n- Don't continue when `aroundEach/All` setup timed out &nbsp;-&nbsp; by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/9670 [<samp>(bb013)</samp>](https://github.com/vitest-dev/vitest/commit/bb013d54b)\r\n- Align `VitestRunnerConfig` optional fields with `SerializedConfig` &nbsp;-&nbsp; by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/9661 [<samp>(79520)</samp>](https://github.com/vitest-dev/vitest/commit/79520d82d)\r\n- Handle Symbol values in format utility &nbsp;-&nbsp; by @nami8824 in https://github.com/vitest-dev/vitest/issues/9658 [<samp>(0583f)</samp>](https://github.com/vitest-dev/vitest/commit/0583f067e)\r\n- Deprecate `toBe*` spy assertions in favor of `toHaveBeen*` (and `toThrowError`) &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9665 [<samp>(4d390)</samp>](https://github.com/vitest-dev/vitest/commit/4d390dfe9)\r\n- Don't propagate nested `aroundEach/All` errors but aggregate them on runner &nbsp;-&nbsp; by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/9673 [<samp>(b6365)</samp>](https://github.com/vitest-dev/vitest/commit/b63653f5a)\r\n- Show a better error if there is a pending dynamic import &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9676 [<samp>(7ef5c)</samp>](https://github.com/vitest-dev/vitest/commit/7ef5cf4b7)\r\n- Preserve stack trace of `resolves/rejects` chained assertion error &nbsp;-&nbsp; by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/9679 [<samp>(c6151)</samp>](https://github.com/vitest-dev/vitest/commit/c61511d4a)\r\n- Handle module-sync condition in vmThreads/vmForks require &nbsp;-&nbsp; by @lesleh in https://github.com/vitest-dev/vitest/issues/9650 and https://github.com/vitest-dev/vitest/issues/9651 [<samp>(bb203)</samp>](https://github.com/vitest-dev/vitest/commit/bb20389f4)\r\n- Hooks should respect `maxConcurrency` &nbsp;-&nbsp; by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/9653 [<samp>(16d13)</samp>](https://github.com/vitest-dev/vitest/commit/16d13d981)\r\n- Recursively autospy module object &nbsp;-&nbsp; by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/9687 [<samp>(695a8)</samp>](https://github.com/vitest-dev/vitest/commit/695a86b41)\r\n- Remove trailing spaces from diff error log &nbsp;-&nbsp; by @hi-ogawa and @sheremet-va in https://github.com/vitest-dev/vitest/issues/9680 [<samp>(395d1)</samp>](https://github.com/vitest-dev/vitest/commit/395d1a29e)\r\n- Respect project `resolve.conditions` for externals &nbsp;-&nbsp; by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/9717 [<samp>(1d498)</samp>](https://github.com/vitest-dev/vitest/commit/1d4987498)\r\n- Use object for WeakMap instead of a symbol to support webcontainers &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9731 [<samp>(c5225)</samp>](https://github.com/vitest-dev/vitest/commit/c52259330)\r\n- Fix re-mocking virtual module &nbsp;-&nbsp; by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/9748 [<samp>(3cbbb)</samp>](https://github.com/vitest-dev/vitest/commit/3cbbb17f1)\r\n- Cancelling should stop current test immediately &nbsp;-&nbsp; by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/9729 [<samp>(0cb2f)</samp>](https://github.com/vitest-dev/vitest/commit/0cb2f7239)\r\n- Make `mockObject` change backwards compatible &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9744 [<samp>(84c69)</samp>](https://github.com/vitest-dev/vitest/commit/84c69497f)\r\n- Fix `URL.name` on jsdom &nbsp;-&nbsp; by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/9767 [<samp>(031f3)</samp>](https://github.com/vitest-dev/vitest/commit/031f3a374)\r\n- Save and restore module graph in blob reporter &nbsp;-&nbsp; by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/9740 [<samp>(84355)</samp>](https://github.com/vitest-dev/vitest/commit/843554bf0)\r\n- Don't silence reporter errors from test runtime events handler in normal run and --merge-reports &nbsp;-&nbsp; by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/9727 [<samp>(4072d)</samp>](https://github.com/vitest-dev/vitest/commit/4072d0132)\r\n- Fix `vi.importActual()` for virtual modules &nbsp;-&nbsp; by @hi-ogawa and **Claude Opus 4.6** in https://github.com/vitest-dev/vitest/issues/9772 [<samp>(1e89e)</samp>](https://github.com/vitest-dev/vitest/commit/1e89ec020)\r\n- Throw `FixtureAccessError` if suite hook accesses undefined fixture &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9786 [<samp>(fc2ce)</samp>](https://github.com/vitest-dev/vitest/commit/fc2cea2b7)\r\n- Allow hyphens in project config file name pattern &nbsp;-&nbsp; by @Koutaro-Hanabusa and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/9760 [<samp>(33e96)</samp>](https://github.com/vitest-dev/vitest/commit/33e96311a)\r\n- Manual and redirect mock shouldn't `load` or `transform` original module &nbsp;-&nbsp; by @hi-ogawa and **Claude Opus 4.6** in https://github.com/vitest-dev/vitest/issues/9774 [<samp>(a8216)</samp>](https://github.com/vitest-dev/vitest/commit/a8216b001)\r\n- `hideSkippedTests` should not hide `test.todo` &nbsp;-&nbsp; by @oilater in https://github.com/vitest-dev/vitest/issues/9562 and https://github.com/vitest-dev/vitest/issues/9781 [<samp>(8181e)</samp>](https://github.com/vitest-dev/vitest/commit/8181e06e7)\r\n- Allow catch/finally for async assertion &nbsp;-&nbsp; by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/9827 [<samp>(031f0)</samp>](https://github.com/vitest-dev/vitest/commit/031f02a89)\r\n- Resolve fixture overrides from test's suite in `beforeEach` hooks &nbsp;-&nbsp; by @hi-ogawa and **Claude Opus 4.6** in https://github.com/vitest-dev/vitest/issues/9826 [<samp>(99e52)</samp>](https://github.com/vitest-dev/vitest/commit/99e52fe58)\r\n- Use isAgent check, not just TTY, for watch mode &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9841 [<samp>(c3cac)</samp>](https://github.com/vitest-dev/vitest/commit/c3cac1c1b)\r\n- Use `performance.now` to measure test timeout duration &nbsp;-&nbsp; by @hi-ogawa and **Claude Opus 4.6** in https://github.com/vitest-dev/vitest/issues/9795 [<samp>(f48a6)</samp>](https://github.com/vitest-dev/vitest/commit/f48a60114)\r\n- Correctly identify concurrent test during static analysis &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9846 [<samp>(1de0a)</samp>](https://github.com/vitest-dev/vitest/commit/1de0aa22d)\r\n- **browser**:\r\n  - Avoid updating screenshots when `toMatchScreenshot` passes &nbsp;-&nbsp; by @macarie in https://github.com/vitest-dev/vitest/issues/9289 [<samp>(46aab)</samp>](https://github.com/vitest-dev/vitest/commit/46aabaa44)\r\n  - Hide injected data-testid attributes &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9503 [<samp>(c8d2c)</samp>](https://github.com/vitest-dev/vitest/commit/c8d2c411c)\r\n  - Throw an error if iframe was reloaded &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9516 [<samp>(73a81)</samp>](https://github.com/vitest-dev/vitest/commit/73a81f880)\r\n  - Encode projectName in browser client URL &nbsp;-&nbsp; by @dkkim0122 in https://github.com/vitest-dev/vitest/issues/9523 [<samp>(5b164)</samp>](https://github.com/vitest-dev/vitest/commit/5b16483c3)\r\n  - Don't take failure screenshot if tests have artifacts created by `toMatchScreenshot` &nbsp;-&nbsp; by @macarie in https://github.com/vitest-dev/vitest/issues/9552 [<samp>(83ca0)</samp>](https://github.com/vitest-dev/vitest/commit/83ca02547)\r\n  - Remove `--remote-debugging-address` from chrome args &nbsp;-&nbsp; by @hi-ogawa and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/9712 [<samp>(f09bb)</samp>](https://github.com/vitest-dev/vitest/commit/f09bb5c32)\r\n  - Make sure userEvent actions support `ensureAwaited` &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9732 [<samp>(97685)</samp>](https://github.com/vitest-dev/vitest/commit/9768517b8)\r\n  - Types of `getCDPSession` and `cdp()` &nbsp;-&nbsp; by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/9716 [<samp>(689a2)</samp>](https://github.com/vitest-dev/vitest/commit/689a22a1b)\r\n  - Skip esbuild.legalComments when using rolldown-vite &nbsp;-&nbsp; by @Copilot, **hi-ogawa** and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/9803 [<samp>(3505f)</samp>](https://github.com/vitest-dev/vitest/commit/3505fa5a3)\r\n- **chai**:\r\n  - Don't allow `deepEqual` in the config because it's not serializable &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9666 [<samp>(9ee99)</samp>](https://github.com/vitest-dev/vitest/commit/9ee999d73)\r\n- **coverage**:\r\n  - Infer transform mode for uncovered files &nbsp;-&nbsp; by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/9435 [<samp>(f3967)</samp>](https://github.com/vitest-dev/vitest/commit/f396792d6)\r\n  - `thresholds.autoUpdate` to preserve ending whitespace &nbsp;-&nbsp; by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/9436 [<samp>(7e534)</samp>](https://github.com/vitest-dev/vitest/commit/7e534a0b6)\r\n- **deps**:\r\n  - Update all non-major dependencies &nbsp;-&nbsp; by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/9192 [<samp>(90c30)</samp>](https://github.com/vitest-dev/vitest/commit/90c302f3b)\r\n  - Update all non-major dependencies &nbsp;-&nbsp; in https://github.com/vitest-dev/vitest/issues/9485 [<samp>(c0118)</samp>](https://github.com/vitest-dev/vitest/commit/c01186022)\r\n  - Update all non-major dependencies &nbsp;-&nbsp; in https://github.com/vitest-dev/vitest/issues/9567 [<samp>(13c9e)</samp>](https://github.com/vitest-dev/vitest/commit/13c9e022b)\r\n- **docs**:\r\n  - Fix old `/config/#option` hash links causing hydration errors &nbsp;-&nbsp; by @hi-ogawa, **Claude Opus 4.6** and @sheremet-va in https://github.com/vitest-dev/vitest/issues/9610 [<samp>(a603c)</samp>](https://github.com/vitest-dev/vitest/commit/a603c3a30)\r\n- **expect**:\r\n  - `toMatchObject(Map/Set)` should expect `Map/Set` on left hand side &nbsp;-&nbsp; by @hi-ogawa and **Claude Opus 4.6** in https://github.com/vitest-dev/vitest/issues/9532 [<samp>(381da)</samp>](https://github.com/vitest-dev/vitest/commit/381da4a9d)\r\n  - Fix objectContaining with proxy &nbsp;-&nbsp; by @hi-ogawa and **Claude Opus 4.6** in https://github.com/vitest-dev/vitest/issues/9554 [<samp>(7ce34)</samp>](https://github.com/vitest-dev/vitest/commit/7ce3417b1)\r\n  - Support arbitrary value equality for `toThrow` and make Error detection robust &nbsp;-&nbsp; by @hi-ogawa and **Claude Opus 4.6** in https://github.com/vitest-dev/vitest/issues/9570 [<samp>(de215)</samp>](https://github.com/vitest-dev/vitest/commit/de215c19c)\r\n- **mock**:\r\n  - Inject helpers after hashbang if present &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9545 [<samp>(65432)</samp>](https://github.com/vitest-dev/vitest/commit/65432a74b)\r\n- **mocker**:\r\n  - Update vite's peer dependency range &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9808 [<samp>(36f9a)</samp>](https://github.com/vitest-dev/vitest/commit/36f9a81a2)\r\n- **reporter**:\r\n  - `dot` reporter leaves pending tests &nbsp;-&nbsp; by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/9684 [<samp>(4d793)</samp>](https://github.com/vitest-dev/vitest/commit/4d7938a56)\r\n- **runner**:\r\n  - Mark repeated tests as finished on last run &nbsp;-&nbsp; by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/9707 [<samp>(cc735)</samp>](https://github.com/vitest-dev/vitest/commit/cc735970a)\r\n- **spy**:\r\n  - Support deep partial in vi.mocked &nbsp;-&nbsp; by @j2h30728 in https://github.com/vitest-dev/vitest/issues/8152 and https://github.com/vitest-dev/vitest/issues/9493 [<samp>(71cb5)</samp>](https://github.com/vitest-dev/vitest/commit/71cb51ffc)\r\n  - Fallback to object accessor if descriptor's value is `undefined` &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9511 [<samp>(6f181)</samp>](https://github.com/vitest-dev/vitest/commit/6f18103fa)\r\n  - Throw correct errors when shorthand methods are used on a class &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9513 [<samp>(5d0fd)</samp>](https://github.com/vitest-dev/vitest/commit/5d0fd3b62)\r\n- **types**:\r\n  - `bench.reporters` no longer gives type errors when passing file name string paths &nbsp;-&nbsp; by @Bertie690 in https://github.com/vitest-dev/vitest/issues/9695 [<samp>(093c8)</samp>](https://github.com/vitest-dev/vitest/commit/093c8f6b5)\r\n- **ui**:\r\n  - Process artifact attachments when generating HTML reporter &nbsp;-&nbsp; by @macarie in https://github.com/vitest-dev/vitest/issues/9472 [<samp>(96eb9)</samp>](https://github.com/vitest-dev/vitest/commit/96eb92826)\r\n  - Don't fail if --ui and --root are specified together &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9536 [<samp>(d9305)</samp>](https://github.com/vitest-dev/vitest/commit/d93055fc7)\r\n\r\n### &nbsp;&nbsp;&nbsp;🏎 Performance\r\n\r\n- **pretty-format**: Combine DOMElement plugins &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9581 [<samp>(da85a)</samp>](https://github.com/vitest-dev/vitest/commit/da85a3267)\r\n\r\n##### &nbsp;&nbsp;&nbsp;&nbsp;[View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.17...v4.1.0)","publishedAt":"2026-03-12T14:06:59.000Z","fetchedAt":"2026-06-01T18:10:45.276Z","url":"https://github.com/vitest-dev/vitest/releases/tag/v4.1.0","media":[],"coverageCount":0},{"id":"rel_rf1JXF26oaFVwL88oWTQd","version":"v4.0.18","type":"feature","title":"v4.0.18","summary":"### &nbsp;&nbsp;&nbsp;🚀 Experimental Features\r\n\r\n- **experimental**: Add `onModuleRunner` hook to `worker.init` &nbsp;-&nbsp; by @sheremet-va in http...","titleGenerated":null,"titleShort":null,"content":"### &nbsp;&nbsp;&nbsp;🚀 Experimental Features\r\n\r\n- **experimental**: Add `onModuleRunner` hook to `worker.init` &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9286 [<samp>(ea837)</samp>](https://github.com/vitest-dev/vitest/commit/ea837de7d)\r\n\r\n### &nbsp;&nbsp;&nbsp;🐞 Bug Fixes\r\n\r\n- Use `meta.url` in `createRequire` &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9441 [<samp>(e0572)</samp>](https://github.com/vitest-dev/vitest/commit/e057281ca)\r\n- **browser**: Hide injected data-testid attributes &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9503 [<samp>(f8989)</samp>](https://github.com/vitest-dev/vitest/commit/f89899cd8)\r\n- **ui**: Process artifact attachments when generating HTML reporter &nbsp;-&nbsp; by @macarie in https://github.com/vitest-dev/vitest/issues/9472 [<samp>(22543)</samp>](https://github.com/vitest-dev/vitest/commit/225435647)\r\n\r\n##### &nbsp;&nbsp;&nbsp;&nbsp;[View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.17...v4.0.18)","publishedAt":"2026-01-22T17:51:01.000Z","fetchedAt":"2026-06-01T18:10:45.466Z","url":"https://github.com/vitest-dev/vitest/releases/tag/v4.0.18","media":[],"coverageCount":0},{"id":"rel_WjEnyI8wxKQ3sxMROKpQv","version":"v4.0.17","type":"feature","title":"v4.0.17","summary":"### &nbsp;&nbsp;&nbsp;🚀 Experimental Features\r\n\r\n- Support openTelemetry for browser mode &nbsp;-&nbsp; by @hi-ogawa in https://github.com/vitest-dev...","titleGenerated":null,"titleShort":null,"content":"### &nbsp;&nbsp;&nbsp;🚀 Experimental Features\r\n\r\n- Support openTelemetry for browser mode &nbsp;-&nbsp; by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/9180 [<samp>(1ec3a)</samp>](https://github.com/vitest-dev/vitest/commit/1ec3a8b68)\r\n- Support TRACEPARENT and TRACESTATE environment variables for OpenTelemetry context propagation &nbsp;-&nbsp; by @Copilot, **hi-ogawa** and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/9295 [<samp>(876cb)</samp>](https://github.com/vitest-dev/vitest/commit/876cb84c2)\r\n\r\n### &nbsp;&nbsp;&nbsp;🐞 Bug Fixes\r\n\r\n- Improve asymmetric matcher diff readability by unwrapping container matchers &nbsp;-&nbsp; by @Copilot, **sheremet-va**, **hi-ogawa** and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/9330 [<samp>(b2ec7)</samp>](https://github.com/vitest-dev/vitest/commit/b2ec724a8)\r\n- Improve runner error when importing outside of test context &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9335 [<samp>(2dd3d)</samp>](https://github.com/vitest-dev/vitest/commit/2dd3dd839)\r\n- Replace crypto.randomUUID to allow insecure environments (fix #9… &nbsp;-&nbsp; by @plusgut in https://github.com/vitest-dev/vitest/issues/9339 and https://github.com/vitest-dev/vitest/issues/9 [<samp>(e6a3f)</samp>](https://github.com/vitest-dev/vitest/commit/e6a3f8cc7)\r\n- Handle null options in `addEventHandler` #9371 &nbsp;-&nbsp; by @ThibautMarechal in https://github.com/vitest-dev/vitest/issues/9372 and https://github.com/vitest-dev/vitest/issues/9371 [<samp>(40841)</samp>](https://github.com/vitest-dev/vitest/commit/40841ff00)\r\n- Typo in browser.provider error &nbsp;-&nbsp; by @deammer in https://github.com/vitest-dev/vitest/issues/9394 [<samp>(4b67f)</samp>](https://github.com/vitest-dev/vitest/commit/4b67fc25a)\r\n- **browser**:\r\n  - Fix `process.env` and `import.meta.env` defines in inline project &nbsp;-&nbsp; by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/9239 [<samp>(b70c9)</samp>](https://github.com/vitest-dev/vitest/commit/b70c96121)\r\n  - Fix upload File instance &nbsp;-&nbsp; by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/9294 [<samp>(b6778)</samp>](https://github.com/vitest-dev/vitest/commit/b67788c69)\r\n  - Fix invalid project token for artifacts assets &nbsp;-&nbsp; by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/9321 [<samp>(caa7d)</samp>](https://github.com/vitest-dev/vitest/commit/caa7d73d4)\r\n  - Log `ErrorEvent.message` when unhandled `ErrorEvent.error` is null &nbsp;-&nbsp; by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/9322 [<samp>(5d84e)</samp>](https://github.com/vitest-dev/vitest/commit/5d84eeb91)\r\n  - Support `fileParallelism` on an instance &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9328 [<samp>(15006)</samp>](https://github.com/vitest-dev/vitest/commit/150065459)\r\n- **coverage**:\r\n  - Remove unnecessary `istanbul-lib-source-maps` usage &nbsp;-&nbsp; by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/9344 [<samp>(b0940)</samp>](https://github.com/vitest-dev/vitest/commit/b09405375)\r\n  - Apply patch from istanbuljs/istanbuljs#837 &nbsp;-&nbsp; by @AriPerkkio and **sapphi-red** in https://github.com/vitest-dev/vitest/issues/9413 and https://github.com/vitest-dev/vitest/issues/837 [<samp>(e05ce)</samp>](https://github.com/vitest-dev/vitest/commit/e05cedbf4)\r\n- **fsModuleCache**:\r\n  - Don't store importers in cache &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9422 [<samp>(75136)</samp>](https://github.com/vitest-dev/vitest/commit/751364eec)\r\n  - Add importers alongside importedModules &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9423 [<samp>(59f92)</samp>](https://github.com/vitest-dev/vitest/commit/59f92d403)\r\n- **mocker**:\r\n  - Fix mock transform with class &nbsp;-&nbsp; by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/9421 [<samp>(d390e)</samp>](https://github.com/vitest-dev/vitest/commit/d390eb527)\r\n- **pool**:\r\n  - Validate environment options when reusing the worker &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9349 [<samp>(a8a88)</samp>](https://github.com/vitest-dev/vitest/commit/a8a8836e3)\r\n  - Handle worker start failures gracefully &nbsp;-&nbsp; by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/9337 [<samp>(200da)</samp>](https://github.com/vitest-dev/vitest/commit/200dadb32)\r\n- **reporter**:\r\n  - Report test module if it failed to run &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9272 [<samp>(c7888)</samp>](https://github.com/vitest-dev/vitest/commit/c78882985)\r\n- **runner**:\r\n  - Respect nested test.only within describe.only &nbsp;-&nbsp; by @Ujjwaljain16 in https://github.com/vitest-dev/vitest/issues/9021 and https://github.com/vitest-dev/vitest/issues/9213 [<samp>(55d5d)</samp>](https://github.com/vitest-dev/vitest/commit/55d5dad69)\r\n- **typecheck**:\r\n  - Improve error message when tsc outputs help text &nbsp;-&nbsp; by @Ujjwaljain16 in https://github.com/vitest-dev/vitest/issues/9214 [<samp>(7b10a)</samp>](https://github.com/vitest-dev/vitest/commit/7b10ab4cd)\r\n- **ui**:\r\n  - Detect gzip by magic numbers instead of Content-Type header in html reporter &nbsp;-&nbsp; by @Copilot, **hi-ogawa** and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/9278 [<samp>(dd033)</samp>](https://github.com/vitest-dev/vitest/commit/dd0331632)\r\n- **webdriverio**:\r\n  - Fall back to WebDriver Classic #9244 &nbsp;-&nbsp; by @JustasMonkev in https://github.com/vitest-dev/vitest/issues/9373 and https://github.com/vitest-dev/vitest/issues/9244 [<samp>(c23dd)</samp>](https://github.com/vitest-dev/vitest/commit/c23dd11bd)\r\n\r\n##### &nbsp;&nbsp;&nbsp;&nbsp;[View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.16...v4.0.17)","publishedAt":"2026-01-12T11:59:13.000Z","fetchedAt":"2026-06-01T18:10:45.466Z","url":"https://github.com/vitest-dev/vitest/releases/tag/v4.0.17","media":[],"coverageCount":0},{"id":"rel_ZWzBegt7OP4dqgUVnJTjg","version":"v4.0.16","type":"feature","title":"v4.0.16","summary":"### &nbsp;&nbsp;&nbsp;🐞 Bug Fixes\n\n- Fix browser mode default testTimeout back to 15 seconds &nbsp;-&nbsp; by @hi-ogawa in https://github.com/vitest-...","titleGenerated":null,"titleShort":null,"content":"### &nbsp;&nbsp;&nbsp;🐞 Bug Fixes\n\n- Fix browser mode default testTimeout back to 15 seconds &nbsp;-&nbsp; by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/9167 [<samp>(da0ad)</samp>](https://github.com/vitest-dev/vitest/commit/da0ade249)\n- Avoid crashing on `process.versions` stub &nbsp;-&nbsp; by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/9174 [<samp>(78cfb)</samp>](https://github.com/vitest-dev/vitest/commit/78cfbf99a)\n- Reject calling suite function inside test &nbsp;-&nbsp; by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/9198 [<samp>(1a259)</samp>](https://github.com/vitest-dev/vitest/commit/1a259c340)\n- Allow inlining fully dynamic import &nbsp;-&nbsp; by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/9137 [<samp>(56851)</samp>](https://github.com/vitest-dev/vitest/commit/568513ca6)\n- Fix module graph UI on html reporter with headless browser mode &nbsp;-&nbsp; by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/9219 [<samp>(60642)</samp>](https://github.com/vitest-dev/vitest/commit/60642b304)\n- Log deprecated `test.poolOptions` if it's set &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9226 [<samp>(f7f6a)</samp>](https://github.com/vitest-dev/vitest/commit/f7f6aa8ba)\n- **browser**:\n  - Import `recordArtifact` from the vitest package &nbsp;-&nbsp; by @macarie in https://github.com/vitest-dev/vitest/issues/9186 [<samp>(01c56)</samp>](https://github.com/vitest-dev/vitest/commit/01c56454d)\n  - Fix `import.meta.env` define &nbsp;-&nbsp; by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/9205 [<samp>(01a9a)</samp>](https://github.com/vitest-dev/vitest/commit/01a9a58d9)\n  - String formatting bug when including placeholders in console.log &nbsp;-&nbsp; by @michael-debs and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/9030 and https://github.com/vitest-dev/vitest/issues/9131 [<samp>(84a30)</samp>](https://github.com/vitest-dev/vitest/commit/84a306210)\n- **coverage**:\n  - Istanbul untested files source maps are off &nbsp;-&nbsp; by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/9208 [<samp>(372e8)</samp>](https://github.com/vitest-dev/vitest/commit/372e86fde)\n- **experimental**:\n  - Export `setupEnvironment` for custom pools &nbsp;-&nbsp; by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/9187 [<samp>(5d26b)</samp>](https://github.com/vitest-dev/vitest/commit/5d26b87b0)\n\n##### &nbsp;&nbsp;&nbsp;&nbsp;[View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.15...v4.0.16)","publishedAt":"2025-12-16T15:09:17.000Z","fetchedAt":"2026-06-01T18:10:45.466Z","url":"https://github.com/vitest-dev/vitest/releases/tag/v4.0.16","media":[],"coverageCount":0},{"id":"rel_1fG06A6pwTP9S6yZCdafD","version":"v4.0.15","type":"feature","title":"v4.0.15","summary":"### &nbsp;&nbsp;&nbsp;🚀 Experimental Features\r\n\r\n- **cache**: Add opt-out on a plugin level, fix internal root cache &nbsp;-&nbsp; by @sheremet-va in...","titleGenerated":null,"titleShort":null,"content":"### &nbsp;&nbsp;&nbsp;🚀 Experimental Features\r\n\r\n- **cache**: Add opt-out on a plugin level, fix internal root cache &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9154 [<samp>(a68f7)</samp>](https://github.com/vitest-dev/vitest/commit/a68f74e5e)\r\n- **reporters**: Print import duration breakdown &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9105 [<samp>(122ff)</samp>](https://github.com/vitest-dev/vitest/commit/122ff321c)\r\n\r\n### &nbsp;&nbsp;&nbsp;🐞 Bug Fixes\r\n\r\n- Keep built-in id as is in bun and deno &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9117 [<samp>(075ab)</samp>](https://github.com/vitest-dev/vitest/commit/075ab3520)\r\n- Use `optimizeDeps.rolldownOptions` to fix depreated warning + fix `ssr.external: true` &nbsp;-&nbsp; by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/9121 [<samp>(fd8bd)</samp>](https://github.com/vitest-dev/vitest/commit/fd8bd6dee)\r\n- Fix external behavior with `deps.optimizer` &nbsp;-&nbsp; by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/9125 [<samp>(4c754)</samp>](https://github.com/vitest-dev/vitest/commit/4c75492cc)\r\n- Very minor typo in \"Chrome DevTools Protocol\" &nbsp;-&nbsp; by @HowToTestFrontend in https://github.com/vitest-dev/vitest/issues/9146 [<samp>(20997)</samp>](https://github.com/vitest-dev/vitest/commit/209976419)\r\n- **browser**: Run `toMatchScreenshot` only once when used with `expect.element` &nbsp;-&nbsp; by @macarie in https://github.com/vitest-dev/vitest/issues/9132 [<samp>(0d2e7)</samp>](https://github.com/vitest-dev/vitest/commit/0d2e7e3e2)\r\n- **coverage**: Istanbul provider to not break source maps &nbsp;-&nbsp; by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/9040 [<samp>(e4ca9)</samp>](https://github.com/vitest-dev/vitest/commit/e4ca917f1)\r\n- **deps**: Update dependency tinyexec to v1 &nbsp;-&nbsp; in https://github.com/vitest-dev/vitest/issues/9122 [<samp>(fd786)</samp>](https://github.com/vitest-dev/vitest/commit/fd7860222)\r\n- **docs**: Remove `--browser.provider` from docs &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9115 [<samp>(120b3)</samp>](https://github.com/vitest-dev/vitest/commit/120b3dac1)\r\n- **expect**: Preserve `currentTestName` in extended matchers &nbsp;-&nbsp; by @macarie in https://github.com/vitest-dev/vitest/issues/9106 [<samp>(e4345)</samp>](https://github.com/vitest-dev/vitest/commit/e43458e02)\r\n- **pool**: Terminate workers on `CTRL+c` forceful exits &nbsp;-&nbsp; by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/9140 [<samp>(d57d8)</samp>](https://github.com/vitest-dev/vitest/commit/d57d8bf0a)\r\n- **reporters**: Show project in github reporter &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9138 [<samp>(bb65e)</samp>](https://github.com/vitest-dev/vitest/commit/bb65e15c7)\r\n- **spy**: Do not mock overriden method, if parent was automocked &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9116 [<samp>(1a246)</samp>](https://github.com/vitest-dev/vitest/commit/1a24607b4)\r\n- **web-worker**: MessagePort objects passed to Worker.postMessage work when clone === \"native\" &nbsp;-&nbsp; by @whitphx in https://github.com/vitest-dev/vitest/issues/9118 [<samp>(deee8)</samp>](https://github.com/vitest-dev/vitest/commit/deee83e54)\r\n\r\n##### &nbsp;&nbsp;&nbsp;&nbsp;[View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.14...v4.0.15)","publishedAt":"2025-12-02T15:53:06.000Z","fetchedAt":"2026-06-01T18:10:45.466Z","url":"https://github.com/vitest-dev/vitest/releases/tag/v4.0.15","media":[],"coverageCount":0},{"id":"rel_ZPQlSHOHG6i8d4MDs-Qj3","version":"v4.0.14","type":"feature","title":"v4.0.14","summary":"### &nbsp;&nbsp;&nbsp;🚀 Experimental Features\r\n\r\n- **browser**: Expose `utils.configurePrettyDOM` &nbsp;-&nbsp; by @sheremet-va in https://github.com...","titleGenerated":null,"titleShort":null,"content":"### &nbsp;&nbsp;&nbsp;🚀 Experimental Features\r\n\r\n- **browser**: Expose `utils.configurePrettyDOM` &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9103 [<samp>(2cc34)</samp>](https://github.com/vitest-dev/vitest/commit/2cc34e0d4)\r\n- **runner**: Add full names to tasks &nbsp;-&nbsp; by @macarie in https://github.com/vitest-dev/vitest/issues/9087 [<samp>(821aa)</samp>](https://github.com/vitest-dev/vitest/commit/821aa2002)\r\n- **ui**: Add tabbed failure view for `toMatchScreenshot` with comparison slider &nbsp;-&nbsp; by @macarie in https://github.com/vitest-dev/vitest/issues/8813 [<samp>(c37c2)</samp>](https://github.com/vitest-dev/vitest/commit/c37c2eb0b)\r\n\r\n### &nbsp;&nbsp;&nbsp;🐞 Bug Fixes\r\n\r\n- Externalize before caching &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9077 [<samp>(e1b2e)</samp>](https://github.com/vitest-dev/vitest/commit/e1b2e086a)\r\n- Collect the duration of external imports &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9097 [<samp>(3326c)</samp>](https://github.com/vitest-dev/vitest/commit/3326cc9f4)\r\n- Rename `collect` to `import`, remove `prepare` &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9091 [<samp>(1256b)</samp>](https://github.com/vitest-dev/vitest/commit/1256b5ca3)\r\n- **browser**:\r\n  - Unsubscribe `onCancel` on rpc destroy &nbsp;-&nbsp; by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/9088 [<samp>(f5b72)</samp>](https://github.com/vitest-dev/vitest/commit/f5b72374b)\r\n  - Revert the viewport scaling in non-ui mode #9018 &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9072 and https://github.com/vitest-dev/vitest/issues/9018 [<samp>(64502)</samp>](https://github.com/vitest-dev/vitest/commit/64502a2c4)\r\n- **coverage**:\r\n  - Invalidate circular modules correctly on rerun with coverage &nbsp;-&nbsp; by @aicest in https://github.com/vitest-dev/vitest/issues/9096 [<samp>(6f22c)</samp>](https://github.com/vitest-dev/vitest/commit/6f22c675f)\r\n- **expect**:\r\n  - Allow function as standard schema &nbsp;-&nbsp; by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/9099 [<samp>(ed8a2)</samp>](https://github.com/vitest-dev/vitest/commit/ed8a2ebbd)\r\n- **jsdom**:\r\n  - Reuse abort signals if possible &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9090 [<samp>(2c468)</samp>](https://github.com/vitest-dev/vitest/commit/2c468ee95)\r\n- **pool**:\r\n  - Init `VITEST_POOL_ID` + `VITEST_WORKER_ID` before environment setup &nbsp;-&nbsp; by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/9085 [<samp>(37918)</samp>](https://github.com/vitest-dev/vitest/commit/379185b40)\r\n- **web-worker**:\r\n  - `postMessage` to send ports to workers &nbsp;-&nbsp; by @whitphx and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/9078 [<samp>(9d176)</samp>](https://github.com/vitest-dev/vitest/commit/9d1763d11)\r\n\r\n### &nbsp;&nbsp;&nbsp;🏎 Performance\r\n\r\n- Replace `debug` with `obug` &nbsp;-&nbsp; by @sxzz and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/9057 [<samp>(acc51)</samp>](https://github.com/vitest-dev/vitest/commit/acc5152b9)\r\n\r\n##### &nbsp;&nbsp;&nbsp;&nbsp;[View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.13...v4.0.14)","publishedAt":"2025-11-25T13:55:04.000Z","fetchedAt":"2026-06-01T18:10:45.615Z","url":"https://github.com/vitest-dev/vitest/releases/tag/v4.0.14","media":[],"coverageCount":0},{"id":"rel_1x2JcLJL5QBMlrjz0Tc9V","version":"v4.0.13","type":"feature","title":"v4.0.13","summary":"### &nbsp;&nbsp;&nbsp;🐞 Bug Fixes\n\n- **types**:\n  - Don't use type from Vite 7.1 &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vites...","titleGenerated":null,"titleShort":null,"content":"### &nbsp;&nbsp;&nbsp;🐞 Bug Fixes\n\n- **types**:\n  - Don't use type from Vite 7.1 &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9071 [<samp>(6356b)</samp>](https://github.com/vitest-dev/vitest/commit/6356b1d38)\n  - Don't import node.js dependent types in vitest/browser &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9068 [<samp>(332af)</samp>](https://github.com/vitest-dev/vitest/commit/332afa0de)\n\n### &nbsp;&nbsp;&nbsp;🏎 Performance\n\n- Avoid fetchModule roundtrip if the module is cached &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9075 [<samp>(b27e0)</samp>](https://github.com/vitest-dev/vitest/commit/b27e002e5)\n- **experimental**: If `fsCacheModule` is enabled, read from the memory when possible &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9076 [<samp>(6b9a1)</samp>](https://github.com/vitest-dev/vitest/commit/6b9a1b5b1)\n\n##### &nbsp;&nbsp;&nbsp;&nbsp;[View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.12...v4.0.13)","publishedAt":"2025-11-21T16:32:49.000Z","fetchedAt":"2026-06-01T18:10:45.615Z","url":"https://github.com/vitest-dev/vitest/releases/tag/v4.0.13","media":[],"coverageCount":0},{"id":"rel_rEYMZb5GwFhY_PPO2REGl","version":"v4.0.12","type":"feature","title":"v4.0.12","summary":"### &nbsp;&nbsp;&nbsp;🐞 Bug Fixes\n\n- Inherit `fsModuleCachePath` by default &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/iss...","titleGenerated":null,"titleShort":null,"content":"### &nbsp;&nbsp;&nbsp;🐞 Bug Fixes\n\n- Inherit `fsModuleCachePath` by default &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9063 [<samp>(9a8bc)</samp>](https://github.com/vitest-dev/vitest/commit/9a8bc78c5)\n- Don't import from `@opentelemetry/api` in public types &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9066 [<samp>(e944a)</samp>](https://github.com/vitest-dev/vitest/commit/e944a37b7)\n\n##### &nbsp;&nbsp;&nbsp;&nbsp;[View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.11...v4.0.12)","publishedAt":"2025-11-20T12:00:15.000Z","fetchedAt":"2026-06-01T18:10:45.615Z","url":"https://github.com/vitest-dev/vitest/releases/tag/v4.0.12","media":[],"coverageCount":0},{"id":"rel_06PWxX60Lrm6fsHoSfd-a","version":"v4.0.11","type":"feature","title":"v4.0.11","summary":"### &nbsp;&nbsp;&nbsp;🚀 Experimental Features\r\n\r\n- **api**: Add extensible test artifact API &nbsp;-&nbsp; by @macarie in https://github.com/vitest-d...","titleGenerated":null,"titleShort":null,"content":"### &nbsp;&nbsp;&nbsp;🚀 Experimental Features\r\n\r\n- **api**: Add extensible test artifact API &nbsp;-&nbsp; by @macarie in https://github.com/vitest-dev/vitest/issues/8987 [<samp>(77292)</samp>](https://github.com/vitest-dev/vitest/commit/772923645)\r\n  - See more at https://vitest.dev/api/advanced/artifacts\r\n- **expect**: Provide `task` in `MatchState` &nbsp;-&nbsp; by @macarie in https://github.com/vitest-dev/vitest/issues/9022 [<samp>(afd1f)</samp>](https://github.com/vitest-dev/vitest/commit/afd1f3e52)\r\n- **experimental**: Support OpenTelemetry traces &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8994 [<samp>(d6d33)</samp>](https://github.com/vitest-dev/vitest/commit/d6d3359dd)\r\n  - See more at https://vitest.dev/guide/open-telemetry\r\n\r\n### &nbsp;&nbsp;&nbsp;🏎 Performance\r\n\r\n- **experimental**: Add file system cache &nbsp;-&nbsp; by @sheremet-va in https://github.com/vitest-dev/vitest/issues/9026 [<samp>(1b147)</samp>](https://github.com/vitest-dev/vitest/commit/1b1473712)\r\n  - See more at https://vitest.dev/config/experimental#experimental-fsmodulecache\r\n\r\n##### &nbsp;&nbsp;&nbsp;&nbsp;[View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.10...v4.0.11)","publishedAt":"2025-11-20T10:32:51.000Z","fetchedAt":"2026-06-01T18:10:45.615Z","url":"https://github.com/vitest-dev/vitest/releases/tag/v4.0.11","media":[],"coverageCount":0}],"pagination":{"nextCursor":"2025-11-20T10:32:51.000Z|2026-06-01T18:10:45.615Z|rel_06PWxX60Lrm6fsHoSfd-a","limit":20},"summaries":{"rolling":null,"monthly":[]}}