feat!: fail the test when an asynchronous assertion is not awaited - #10868
Merged
Conversation
✅ Deploy Preview for vitest-dev ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
macarie
approved these changes
Aug 4, 2026
1 task
dadezzz
pushed a commit
to dadezzz/events-cash-register
that referenced
this pull request
Sep 7, 2026
This PR contains the following updates:
| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [vitest](https://vitest.dev) ([source](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest)) | [`4.1.11` → `5.0.0`](https://renovatebot.com/diffs/npm/vitest/4.1.11/5.0.0) |  |  |
---
### Release Notes
<details>
<summary>vitest-dev/vitest (vitest)</summary>
### [`v5.0.0`](https://github.com/vitest-dev/vitest/releases/tag/v5.0.0)
[Compare Source](https://github.com/vitest-dev/vitest/compare/v4.1.11...v5.0.0)
Vitest 5 is officially out! This release focuses on performance and brings a lot of new features while fixing long-standing bugs. See our [blog post](https://vitest.dev/blog/vitest-5.html) for the official announcement.
##### 🚨 Breaking Changes
- Replace `loupe.inspect` with pretty-format - by [@​hi-ogawa](https://github.com/hi-ogawa), **Claude Opus 5 (1M context)** and **OpenAI Codex** in [#​9609](https://github.com/vitest-dev/vitest/issues/9609) [<samp>(3f802)</samp>](https://github.com/vitest-dev/vitest/commit/3f802da4b)
- Remove quotes from string values in `test.for/each` title `$` variable (take 2) - by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​10170](https://github.com/vitest-dev/vitest/issues/10170) [<samp>(04d37)</samp>](https://github.com/vitest-dev/vitest/commit/04d37e9d7)
- Default `attachmentsDir` from `.vitest-attachements/` to `.vitest/attachments/` - by [@​MdSadiqMd](https://github.com/MdSadiqMd) in [#​10186](https://github.com/vitest-dev/vitest/issues/10186) [<samp>(1ba73)</samp>](https://github.com/vitest-dev/vitest/commit/1ba7338c3)
- Remove `sequential` test/suite options in favor of `concurrent` - by [@​hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#​10198](https://github.com/vitest-dev/vitest/issues/10198) [<samp>(9229f)</samp>](https://github.com/vitest-dev/vitest/commit/9229f2edc)
- Represent locator as an object instead of a string - by [@​sheremet-va](https://github.com/sheremet-va) in [#​10212](https://github.com/vitest-dev/vitest/issues/10212) [<samp>(80f07)</samp>](https://github.com/vitest-dev/vitest/commit/80f07edf6)
- Inline `expect` package - by [@​sheremet-va](https://github.com/sheremet-va) in [#​10221](https://github.com/vitest-dev/vitest/issues/10221) [<samp>(ad162)</samp>](https://github.com/vitest-dev/vitest/commit/ad16223e7)
- Remove deprecated entry points - by [@​sheremet-va](https://github.com/sheremet-va) in [#​10222](https://github.com/vitest-dev/vitest/issues/10222) [<samp>(994c6)</samp>](https://github.com/vitest-dev/vitest/commit/994c6ddb9)
- Require Node.js 22 and Vite 6.4 - by [@​sheremet-va](https://github.com/sheremet-va) in [#​10178](https://github.com/vitest-dev/vitest/issues/10178) [<samp>(38762)</samp>](https://github.com/vitest-dev/vitest/commit/3876283e8)
- Fail `expect.poll` when function didn't resolve in time - by [@​hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#​10233](https://github.com/vitest-dev/vitest/issues/10233) [<samp>(4df04)</samp>](https://github.com/vitest-dev/vitest/commit/4df048c11)
- Throw an error if hoistable methods are outside the top level scope - by [@​sheremet-va](https://github.com/sheremet-va) in [#​10460](https://github.com/vitest-dev/vitest/issues/10460) [<samp>(d0b4f)</samp>](https://github.com/vitest-dev/vitest/commit/d0b4fddcb)
- `toHaveTextContent` is strict, add `toMatchTextContent` as alternative - by [@​sheremet-va](https://github.com/sheremet-va) in [#​10473](https://github.com/vitest-dev/vitest/issues/10473) [<samp>(18f30)</samp>](https://github.com/vitest-dev/vitest/commit/18f303079)
- Don't lookup config file from ancestor directories - by [@​hi-ogawa](https://github.com/hi-ogawa), **OpenAI Codex** and **Hiroshi Ogawa** in [#​10428](https://github.com/vitest-dev/vitest/issues/10428) [<samp>(945d9)</samp>](https://github.com/vitest-dev/vitest/commit/945d9090e)
- Inline `@vitest/runner` package, do not publish it anymore - by [@​sheremet-va](https://github.com/sheremet-va) in [#​10511](https://github.com/vitest-dev/vitest/issues/10511) [<samp>(6d6e4)</samp>](https://github.com/vitest-dev/vitest/commit/6d6e46b1e)
- Allow mutating happy-dom/jsdom window object - by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenAI Codex** in [#​10373](https://github.com/vitest-dev/vitest/issues/10373) [<samp>(206e8)</samp>](https://github.com/vitest-dev/vitest/commit/206e8cff8)
- Expose `concurrencyId`/`workerId` on TestModule's diagnostics, make id 1-based - by [@​sheremet-va](https://github.com/sheremet-va) in [#​10516](https://github.com/vitest-dev/vitest/issues/10516) [<samp>(bdd98)</samp>](https://github.com/vitest-dev/vitest/commit/bdd985433)
- Add `screenshotDirectory` config to `browser.expect.toMatchScreenshot` - by [@​macarie](https://github.com/macarie) in [#​10592](https://github.com/vitest-dev/vitest/issues/10592) [<samp>(a60de)</samp>](https://github.com/vitest-dev/vitest/commit/a60ded0fb)
- Update `@sinonjs/fake-timers` and support mocking `Temporal` - by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#​10654](https://github.com/vitest-dev/vitest/issues/10654) [<samp>(f8b15)</samp>](https://github.com/vitest-dev/vitest/commit/f8b1532fe)
- Remove webdriverio package - by [@​sheremet-va](https://github.com/sheremet-va) in [#​10675](https://github.com/vitest-dev/vitest/issues/10675) [<samp>(5fed6)</samp>](https://github.com/vitest-dev/vitest/commit/5fed68f72)
- Clear mocks by default before each test - by [@​sheremet-va](https://github.com/sheremet-va) in [#​10613](https://github.com/vitest-dev/vitest/issues/10613) [<samp>(0f646)</samp>](https://github.com/vitest-dev/vitest/commit/0f6463bf2)
- Don't emit localStorage warnings on Node 26, fail gracefully when worker fails to start - by [@​sheremet-va](https://github.com/sheremet-va) in [#​10293](https://github.com/vitest-dev/vitest/issues/10293) [<samp>(334ed)</samp>](https://github.com/vitest-dev/vitest/commit/334edef92)
- Separate config resolution from the server creation - by [@​sheremet-va](https://github.com/sheremet-va) in [#​10554](https://github.com/vitest-dev/vitest/issues/10554) [<samp>(1c0ec)</samp>](https://github.com/vitest-dev/vitest/commit/1c0ec3444)
- Inline projects extend the root config by default - by [@​sheremet-va](https://github.com/sheremet-va) in [#​10750](https://github.com/vitest-dev/vitest/issues/10750) [<samp>(fec00)</samp>](https://github.com/vitest-dev/vitest/commit/fec001ad3)
- Enable mocking Temporal without fake timers - by [@​fabon-f](https://github.com/fabon-f), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#​10757](https://github.com/vitest-dev/vitest/issues/10757) [<samp>(ac2d4)</samp>](https://github.com/vitest-dev/vitest/commit/ac2d46b42)
- Support nested projects - by [@​sheremet-va](https://github.com/sheremet-va) in [#​10846](https://github.com/vitest-dev/vitest/issues/10846) [<samp>(ec367)</samp>](https://github.com/vitest-dev/vitest/commit/ec367cf2a)
- Use `>` as separator in `-t`, calculate `only` once - by [@​sheremet-va](https://github.com/sheremet-va) in [#​10686](https://github.com/vitest-dev/vitest/issues/10686) [<samp>(a0b20)</samp>](https://github.com/vitest-dev/vitest/commit/a0b20bc86)
- Fail the test when an asynchronous assertion is not awaited - by [@​sheremet-va](https://github.com/sheremet-va) in [#​10868](https://github.com/vitest-dev/vitest/issues/10868) [<samp>(86d4a)</samp>](https://github.com/vitest-dev/vitest/commit/86d4a9da9)
- Share the Vite server between inline projects - by [@​sheremet-va](https://github.com/sheremet-va) in [#​10848](https://github.com/vitest-dev/vitest/issues/10848) [<samp>(d87c9)</samp>](https://github.com/vitest-dev/vitest/commit/d87c96ee4)
- Parse files statically in vitest list by default - by [@​sheremet-va](https://github.com/sheremet-va) in [#​11088](https://github.com/vitest-dev/vitest/issues/11088) [<samp>(51e94)</samp>](https://github.com/vitest-dev/vitest/commit/51e949416)
- **benchmark**:
- Rewrite the public API - by [@​sheremet-va](https://github.com/sheremet-va) in [#​10113](https://github.com/vitest-dev/vitest/issues/10113) [<samp>(19f6e)</samp>](https://github.com/vitest-dev/vitest/commit/19f6e8947)
- **browser**:
- Iframe scale - by [@​macarie](https://github.com/macarie) in [#​9745](https://github.com/vitest-dev/vitest/issues/9745) [<samp>(b6398)</samp>](https://github.com/vitest-dev/vitest/commit/b639852cc)
- Enable `locators.exact` by default - by [@​sheremet-va](https://github.com/sheremet-va) in [#​10430](https://github.com/vitest-dev/vitest/issues/10430) [<samp>(e2032)</samp>](https://github.com/vitest-dev/vitest/commit/e203202f9)
- Require `sessionId` for orchestrator html request - by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenAI Codex** in [#​10522](https://github.com/vitest-dev/vitest/issues/10522) [<samp>(79b7d)</samp>](https://github.com/vitest-dev/vitest/commit/79b7d8fcc)
- Save failure screenshots in `attachmentsDir` - by [@​macarie](https://github.com/macarie) in [#​10917](https://github.com/vitest-dev/vitest/issues/10917) [<samp>(3b5bb)</samp>](https://github.com/vitest-dev/vitest/commit/3b5bbd8b4)
- **coverage**:
- `include/exclude` globs too eager - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​9818](https://github.com/vitest-dev/vitest/issues/9818) [<samp>(edacb)</samp>](https://github.com/vitest-dev/vitest/commit/edacb0fd4)
- Allow `thresholds.perFile` to accept an object - by [@​vladlenskiy](https://github.com/vladlenskiy) and [@​AriPerkkio](https://github.com/AriPerkkio) in [#​10190](https://github.com/vitest-dev/vitest/issues/10190) [<samp>(13b78)</samp>](https://github.com/vitest-dev/vitest/commit/13b78d98b)
- **expect**:
- Fix `toThrow("")` behavior by reverting [#​6710](https://github.com/vitest-dev/vitest/issues/6710) - by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​9643](https://github.com/vitest-dev/vitest/issues/9643) and [#​6710](https://github.com/vitest-dev/vitest/issues/6710) [<samp>(6c3e4)</samp>](https://github.com/vitest-dev/vitest/commit/6c3e4bdbf)
- **mocker**:
- Deserialize automock as automock - by [@​nami8824](https://github.com/nami8824) in [#​10192](https://github.com/vitest-dev/vitest/issues/10192) [<samp>(2f892)</samp>](https://github.com/vitest-dev/vitest/commit/2f892712d)
- **reporters**:
- `blob` reporter and `--merge-reports` default to `.vitest/blob/` - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​10232](https://github.com/vitest-dev/vitest/issues/10232) [<samp>(d22b0)</samp>](https://github.com/vitest-dev/vitest/commit/d22b029ae)
- Write json and junit reporter output files to `.vitest` by default - by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa**, **OpenCode (gpt-5.6-sol)** and [@​AriPerkkio](https://github.com/AriPerkkio) in [#​10621](https://github.com/vitest-dev/vitest/issues/10621) [<samp>(58577)</samp>](https://github.com/vitest-dev/vitest/commit/58577290a)
- **spy**:
- Preserve class mock prototype methods on instances - by [@​sheremet-va](https://github.com/sheremet-va) in [#​10910](https://github.com/vitest-dev/vitest/issues/10910) [<samp>(6093d)</samp>](https://github.com/vitest-dev/vitest/commit/6093d764a)
- **types**:
- Add better promise support in expects and matchers - by [@​samchungy](https://github.com/samchungy) and [@​sheremet-va](https://github.com/sheremet-va) in [#​8266](https://github.com/vitest-dev/vitest/issues/8266) [<samp>(41f55)</samp>](https://github.com/vitest-dev/vitest/commit/41f551bce)
- **ui**:
- Harden UI API access - by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenAI Codex** in [#​10583](https://github.com/vitest-dev/vitest/issues/10583) [<samp>(4c26d)</samp>](https://github.com/vitest-dev/vitest/commit/4c26d7675)
- Change html reporter default output to `.vitest` - by [@​hi-ogawa](https://github.com/hi-ogawa) and **Hiroshi Ogawa** in [#​10620](https://github.com/vitest-dev/vitest/issues/10620) [<samp>(29c36)</samp>](https://github.com/vitest-dev/vitest/commit/29c364d50)
##### 🚀 Features
- Add `createReport` and `.vitest` report directory convention - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​9993](https://github.com/vitest-dev/vitest/issues/9993) [<samp>(72a6d)</samp>](https://github.com/vitest-dev/vitest/commit/72a6dc257)
- Expose default reporters through `configDefaults.reporters` - by [@​hi-ogawa](https://github.com/hi-ogawa) and **Claude Opus 5 (1M context)** in [#​10219](https://github.com/vitest-dev/vitest/issues/10219) [<samp>(083f6)</samp>](https://github.com/vitest-dev/vitest/commit/083f6bdd6)
- Support merge reports for non-sharded multi-environment runs (take 2) - by [@​hi-ogawa](https://github.com/hi-ogawa), **Claude Opus 5 (1M context)**, **OpenAI Codex** and [@​AriPerkkio](https://github.com/AriPerkkio) in [#​10031](https://github.com/vitest-dev/vitest/issues/10031) [<samp>(e60b2)</samp>](https://github.com/vitest-dev/vitest/commit/e60b2f49e)
- Add `logger.formatError` - by [@​hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#​10268](https://github.com/vitest-dev/vitest/issues/10268) [<samp>(2c5f3)</samp>](https://github.com/vitest-dev/vitest/commit/2c5f3ee2f)
- Support typescript build mode - by [@​lishaduck](https://github.com/lishaduck) in [#​9870](https://github.com/vitest-dev/vitest/issues/9870) [<samp>(106da)</samp>](https://github.com/vitest-dev/vitest/commit/106da5896)
- Add toggable `injectCjsGlobals` option - by [@​sheremet-va](https://github.com/sheremet-va) in [#​10709](https://github.com/vitest-dev/vitest/issues/10709) [<samp>(82671)</samp>](https://github.com/vitest-dev/vitest/commit/826714ece)
- Promote fsModuleCache to a top-level option - by [@​sheremet-va](https://github.com/sheremet-va) in [#​10734](https://github.com/vitest-dev/vitest/issues/10734) [<samp>(78ed7)</samp>](https://github.com/vitest-dev/vitest/commit/78ed73afd)
- Support non-ascii characters in `for/each` title placeholders - by [@​k-yle](https://github.com/k-yle) in [#​10773](https://github.com/vitest-dev/vitest/issues/10773) [<samp>(15e0a)</samp>](https://github.com/vitest-dev/vitest/commit/15e0af953)
- Report the duration breakdown as percentages - by [@​sheremet-va](https://github.com/sheremet-va) and [@​AriPerkkio](https://github.com/AriPerkkio) in [#​10820](https://github.com/vitest-dev/vitest/issues/10820) [<samp>(c67d2)</samp>](https://github.com/vitest-dev/vitest/commit/c67d296f4)
- Promote parseSpecifications out of experimental - by [@​sheremet-va](https://github.com/sheremet-va) in [#​11087](https://github.com/vitest-dev/vitest/issues/11087) [<samp>(b628c)</samp>](https://github.com/vitest-dev/vitest/commit/b628cb680)
- Promote clearCache out of experimental - by [@​sheremet-va](https://github.com/sheremet-va) in [#​11086](https://github.com/vitest-dev/vitest/issues/11086) [<samp>(d4fe1)</samp>](https://github.com/vitest-dev/vitest/commit/d4fe1986f)
- **api**:
- Expose logs recorded during the test - by [@​sheremet-va](https://github.com/sheremet-va) in [#​10277](https://github.com/vitest-dev/vitest/issues/10277) [<samp>(cba20)</samp>](https://github.com/vitest-dev/vitest/commit/cba2036a1)
- **benchmark**:
- Add pluggable benchmark provider API - by [@​GuillaumeLagrange](https://github.com/GuillaumeLagrange) and [@​sheremet-va](https://github.com/sheremet-va) in [#​10799](https://github.com/vitest-dev/vitest/issues/10799) [<samp>(86c70)</samp>](https://github.com/vitest-dev/vitest/commit/86c700ed8)
- **browser**:
- Export aria tree utils - by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​10171](https://github.com/vitest-dev/vitest/issues/10171) [<samp>(c3423)</samp>](https://github.com/vitest-dev/vitest/commit/c3423014c)
- Support dom snapshot trace view - by [@​hi-ogawa](https://github.com/hi-ogawa), **Claude Opus 5 (1M context)** and **OpenAI Codex** in [#​10102](https://github.com/vitest-dev/vitest/issues/10102) [<samp>(7eddd)</samp>](https://github.com/vitest-dev/vitest/commit/7eddd273d)
- Provide project reference in `ToMatchScreenshotResolvePath` - by [@​macarie](https://github.com/macarie) and [@​sheremet-va](https://github.com/sheremet-va) in [#​10138](https://github.com/vitest-dev/vitest/issues/10138) [<samp>(16654)</samp>](https://github.com/vitest-dev/vitest/commit/166544e39)
- Show aria tree on locator element error - by [@​hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#​10257](https://github.com/vitest-dev/vitest/issues/10257) [<samp>(04f04)</samp>](https://github.com/vitest-dev/vitest/commit/04f04cdd1)
- Support custom `kind` in `page.mark` - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​10302](https://github.com/vitest-dev/vitest/issues/10302) [<samp>(053e8)</samp>](https://github.com/vitest-dev/vitest/commit/053e8b0d1)
- Live update trace view on watch UI - by [@​hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#​10296](https://github.com/vitest-dev/vitest/issues/10296) [<samp>(78c11)</samp>](https://github.com/vitest-dev/vitest/commit/78c1169cf)
- Add `context.mark` for custom command tracing - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​10329](https://github.com/vitest-dev/vitest/issues/10329) [<samp>(aa514)</samp>](https://github.com/vitest-dev/vitest/commit/aa5140e76)
- Show trace view steps in editor panel - by [@​hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#​10404](https://github.com/vitest-dev/vitest/issues/10404) [<samp>(8c4b6)</samp>](https://github.com/vitest-dev/vitest/commit/8c4b6da02)
- Display nested mark trace in UI - by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenAI Codex** in [#​10437](https://github.com/vitest-dev/vitest/issues/10437) [<samp>(86ffc)</samp>](https://github.com/vitest-dev/vitest/commit/86ffc8ac6)
- **cli**:
- Add `--repeats` CLI option - by [@​todor-a](https://github.com/todor-a) in [#​10504](https://github.com/vitest-dev/vitest/issues/10504) [<samp>(ee48b)</samp>](https://github.com/vitest-dev/vitest/commit/ee48b959e)
- Support -p shorthand for --project - by [@​sheremet-va](https://github.com/sheremet-va) in [#​10826](https://github.com/vitest-dev/vitest/issues/10826) [<samp>(1addd)</samp>](https://github.com/vitest-dev/vitest/commit/1adddde12)
- **coverage**:
- V8 to track `node:child_process` and `node:worker_threads` contexts - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​9976](https://github.com/vitest-dev/vitest/issues/9976) [<samp>(9baa5)</samp>](https://github.com/vitest-dev/vitest/commit/9baa5faba)
- `thresholds.autoUpdate` to receive previous threshold as argument - by [@​wouterkroes](https://github.com/wouterkroes) in [#​10495](https://github.com/vitest-dev/vitest/issues/10495) [<samp>(04f81)</samp>](https://github.com/vitest-dev/vitest/commit/04f81854f)
- Switch to `@vitest/istanbuljs` packages - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​11053](https://github.com/vitest-dev/vitest/issues/11053) [<samp>(5f6a5)</samp>](https://github.com/vitest-dev/vitest/commit/5f6a5e84a)
- **junit-reporter**:
- Add jest-junit-compatible naming options - by [@​neumaennl](https://github.com/neumaennl), **neumaennl**, **Martin Neumann** and **Copilot** in [#​10189](https://github.com/vitest-dev/vitest/issues/10189) [<samp>(27393)</samp>](https://github.com/vitest-dev/vitest/commit/273933440)
- **reporter**:
- Support html reporter single file output - by [@​hi-ogawa](https://github.com/hi-ogawa), **OpenAI Codex** and **Claude Opus 5 (1M context)** in [#​10235](https://github.com/vitest-dev/vitest/issues/10235) [<samp>(f757e)</samp>](https://github.com/vitest-dev/vitest/commit/f757ec5e6)
- Add custom GitHub Actions summary title - by [@​heyJonBray](https://github.com/heyJonBray) and [@​macarie](https://github.com/macarie) in [#​10891](https://github.com/vitest-dev/vitest/issues/10891) [<samp>(4363c)</samp>](https://github.com/vitest-dev/vitest/commit/4363cdb49)
- **ui**:
- Highlight editor source locations - by [@​sheremet-va](https://github.com/sheremet-va), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#​11004](https://github.com/vitest-dev/vitest/issues/11004) [<samp>(bce2d)</samp>](https://github.com/vitest-dev/vitest/commit/bce2d3c2f)
- Navigate trace steps with keyboard and remove indirect editor focus - by [@​sheremet-va](https://github.com/sheremet-va), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#​11005](https://github.com/vitest-dev/vitest/issues/11005) [<samp>(6816f)</samp>](https://github.com/vitest-dev/vitest/commit/6816f3b17)
- Persist trace view selection in URL - by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#​10981](https://github.com/vitest-dev/vitest/issues/10981) [<samp>(3069e)</samp>](https://github.com/vitest-dev/vitest/commit/3069e5927)
- Toggle trace target highlight - by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#​11049](https://github.com/vitest-dev/vitest/issues/11049) [<samp>(cd63e)</samp>](https://github.com/vitest-dev/vitest/commit/cd63e9e43)
- Add link to open playwright trace - by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#​11059](https://github.com/vitest-dev/vitest/issues/11059) [<samp>(58f02)</samp>](https://github.com/vitest-dev/vitest/commit/58f02ae36)
- **vitest**:
- Create `vi.when()` - by [@​macarie](https://github.com/macarie) in [#​10174](https://github.com/vitest-dev/vitest/issues/10174) [<samp>(3900e)</samp>](https://github.com/vitest-dev/vitest/commit/3900e6349)
- **vm**:
- Support `require(esm)` in vm pools - by [@​sheremet-va](https://github.com/sheremet-va) in [#​10829](https://github.com/vitest-dev/vitest/issues/10829) [<samp>(01298)</samp>](https://github.com/vitest-dev/vitest/commit/01298e5b3)
##### 🐞 Bug Fixes
- Global `sequence.concurrent: true` with top-level `test(..., { concurrent: false })` + depreacte `sequential` test API and options - by [@​hi-ogawa](https://github.com/hi-ogawa), **OpenAI Codex** and [@​sheremet-va](https://github.com/sheremet-va) in [#​10194](https://github.com/vitest-dev/vitest/issues/10194) [<samp>(9387f)</samp>](https://github.com/vitest-dev/vitest/commit/9387f57cf)
- Test `tags` options should overwrite inherited suite options + inherit suite options in `task` API - by [@​hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#​10216](https://github.com/vitest-dev/vitest/issues/10216) [<samp>(457db)</samp>](https://github.com/vitest-dev/vitest/commit/457db297b)
- Udpate optimize deps config - by [@​sheremet-va](https://github.com/sheremet-va) in [#​10223](https://github.com/vitest-dev/vitest/issues/10223) [<samp>(95dc6)</samp>](https://github.com/vitest-dev/vitest/commit/95dc6e3f1)
- Shell injection safety via github.ref\_name in publish workflow - by [@​lloyd-c137](https://github.com/lloyd-c137) and **lloyd-c137** in [#​10327](https://github.com/vitest-dev/vitest/issues/10327) [<samp>(dd020)</samp>](https://github.com/vitest-dev/vitest/commit/dd0207f4d)
- Make `attachmentsDir` root only config - by [@​hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#​10334](https://github.com/vitest-dev/vitest/issues/10334) [<samp>(fab1b)</samp>](https://github.com/vitest-dev/vitest/commit/fab1b6020)
- Apply cjs interop for truthy `__esModule` - by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​10363](https://github.com/vitest-dev/vitest/issues/10363) [<samp>(2b135)</samp>](https://github.com/vitest-dev/vitest/commit/2b13547a5)
- Preserve `vi.defineHelper` callsite for async error stack - by [@​macayu17](https://github.com/macayu17) and [@​hi-ogawa](https://github.com/hi-ogawa) in [#​10415](https://github.com/vitest-dev/vitest/issues/10415) [<samp>(ac697)</samp>](https://github.com/vitest-dev/vitest/commit/ac6971ca2)
- Respect `disableConsoleIntercept` in browser mode - by [@​Copilot](https://github.com/Copilot), **Hiroshi Ogawa**, [@​hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#​10391](https://github.com/vitest-dev/vitest/issues/10391) [<samp>(66110)</samp>](https://github.com/vitest-dev/vitest/commit/66110d271)
- ForceRerunTriggers uses directory globs against files - by [@​Patrick-Clausen](https://github.com/Patrick-Clausen) and **Patrick Clausen** in [#​10421](https://github.com/vitest-dev/vitest/issues/10421) and [#​10420](https://github.com/vitest-dev/vitest/issues/10420) [<samp>(4fee2)</samp>](https://github.com/vitest-dev/vitest/commit/4fee2e303)
- Unify typechecking and ast collection - by [@​sheremet-va](https://github.com/sheremet-va) in [#​10449](https://github.com/vitest-dev/vitest/issues/10449) [<samp>(af993)</samp>](https://github.com/vitest-dev/vitest/commit/af993b66b)
- Don't print typecheck warning more than once - by [@​sheremet-va](https://github.com/sheremet-va) in [#​10461](https://github.com/vitest-dev/vitest/issues/10461) [<samp>(15275)</samp>](https://github.com/vitest-dev/vitest/commit/152750ec0)
- Correct collumn when parsing tests - by [@​sheremet-va](https://github.com/sheremet-va) in [#​10467](https://github.com/vitest-dev/vitest/issues/10467) [<samp>(7c2fc)</samp>](https://github.com/vitest-dev/vitest/commit/7c2fc133e)
- Fix mixed stdout/stderr log timestamps in `onUserConsoleLog` - by [@​Copilot](https://github.com/Copilot), **Hiroshi Ogawa**, [@​hi-ogawa](https://github.com/hi-ogawa) and [@​sheremet-va](https://github.com/sheremet-va) in [#​10308](https://github.com/vitest-dev/vitest/issues/10308) [<samp>(62756)</samp>](https://github.com/vitest-dev/vitest/commit/627565475)
- Fix `importOriginal` with optimizer and query import - by [@​davidxharris](https://github.com/davidxharris), **David Harris**, [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenAI Codex** in [#​10469](https://github.com/vitest-dev/vitest/issues/10469) [<samp>(6a3bb)</samp>](https://github.com/vitest-dev/vitest/commit/6a3bb02e0)
- Correct transform time calculation in merged report - by [@​potatomatoooo](https://github.com/potatomatoooo) and [@​hi-ogawa](https://github.com/hi-ogawa) in [#​10570](https://github.com/vitest-dev/vitest/issues/10570) and [#​10578](https://github.com/vitest-dev/vitest/issues/10578) [<samp>(b7897)</samp>](https://github.com/vitest-dev/vitest/commit/b78972892)
- Fix `setImmediate` await in detect-async-leak - by [@​hi-ogawa](https://github.com/hi-ogawa) and **Hiroshi Ogawa** in [#​10608](https://github.com/vitest-dev/vitest/issues/10608) [<samp>(dd62b)</samp>](https://github.com/vitest-dev/vitest/commit/dd62b84e0)
- Fix per-project `sequence` config - by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#​10659](https://github.com/vitest-dev/vitest/issues/10659) [<samp>(40cdc)</samp>](https://github.com/vitest-dev/vitest/commit/40cdc7fd6)
- Add handshake timeout to iframe communication - by [@​sheremet-va](https://github.com/sheremet-va) in [#​10656](https://github.com/vitest-dev/vitest/issues/10656) [<samp>(3545f)</samp>](https://github.com/vitest-dev/vitest/commit/3545fe78f)
- Don't print column in test names when `includeTaskLocation` is enabled - by [@​sheremet-va](https://github.com/sheremet-va) in [#​10681](https://github.com/vitest-dev/vitest/issues/10681) [<samp>(bd9cc)</samp>](https://github.com/vitest-dev/vitest/commit/bd9cc9d8d)
- Disable server HMR before plugins read it in their config hook - by [@​sheremet-va](https://github.com/sheremet-va) in [#​10731](https://github.com/vitest-dev/vitest/issues/10731) [<samp>(e060b)</samp>](https://github.com/vitest-dev/vitest/commit/e060b8fa9)
- Close the pool before the Vite servers - by [@​sheremet-va](https://github.com/sheremet-va) in [#​10725](https://github.com/vitest-dev/vitest/issues/10725) [<samp>(96fa6)</samp>](https://github.com/vitest-dev/vitest/commit/96fa6d73d)
- Remove listeners in the typecheck worker's `off` - by [@​sheremet-va](https://github.com/sheremet-va) in [#​10741](https://github.com/vitest-dev/vitest/issues/10741) [<samp>(d758b)</samp>](https://github.com/vitest-dev/vitest/commit/d758b4755)
- Keep per-file isolation in vm pools when maxWorkers is 1 - by [@​sheremet-va](https://github.com/sheremet-va) in [#​10743](https://github.com/vitest-dev/vitest/issues/10743) [<samp>(83ab9)</samp>](https://github.com/vitest-dev/vitest/commit/83ab9a44f)
- Node.js 20 deprecation warning for `ci.yml` - by [@​hirehamir](https://github.com/hirehamir) in [#​10759](https://github.com/vitest-dev/vitest/issues/10759) [<samp>(2127f)</samp>](https://github.com/vitest-dev/vitest/commit/2127fa6ce)
- Prevent node builtins double prefix - by [@​malobre](https://github.com/malobre) in [#​10630](https://github.com/vitest-dev/vitest/issues/10630) and [#​10767](https://github.com/vitest-dev/vitest/issues/10767) [<samp>(22d35)</samp>](https://github.com/vitest-dev/vitest/commit/22d353a80)
- Set non-zero exit code when teardown throws during close - by [@​zakcutner](https://github.com/zakcutner) and [@​AriPerkkio](https://github.com/AriPerkkio) in [#​10794](https://github.com/vitest-dev/vitest/issues/10794) [<samp>(22116)</samp>](https://github.com/vitest-dev/vitest/commit/22116feb7)
- Don't race the typechecker spawn grace period on windows - by [@​xevrion](https://github.com/xevrion) in [#​10814](https://github.com/vitest-dev/vitest/issues/10814) [<samp>(b19e5)</samp>](https://github.com/vitest-dev/vitest/commit/b19e5ece9)
- Coalesce concurrent watch-mode restarts, deflake the pool stderr fixture - by [@​sheremet-va](https://github.com/sheremet-va) in [#​10822](https://github.com/vitest-dev/vitest/issues/10822) [<samp>(a31f8)</samp>](https://github.com/vitest-dev/vitest/commit/a31f86af7)
- Prevent `vitest --typecheck` from reporting a false success when the `tsc` process crashes - by [@​hitenkalda](https://github.com/hitenkalda) and **Hiten Kalda** in [#​10705](https://github.com/vitest-dev/vitest/issues/10705) [<samp>(a1b05)</samp>](https://github.com/vitest-dev/vitest/commit/a1b0565c9)
- Collect in-source tests when the module is cached - by [@​koutaro-masaki](https://github.com/koutaro-masaki) in [#​10577](https://github.com/vitest-dev/vitest/issues/10577) and [#​10589](https://github.com/vitest-dev/vitest/issues/10589) [<samp>(a7bf2)</samp>](https://github.com/vitest-dev/vitest/commit/a7bf2b2c8)
- Swap replace() arguments so timeout error stack shows the real message - by [@​lazerg](https://github.com/lazerg) in [#​10875](https://github.com/vitest-dev/vitest/issues/10875) [<samp>(aba0f)</samp>](https://github.com/vitest-dev/vitest/commit/aba0f9b7b)
- Stale mock metadata breaks automocking with isolate:false - by [@​kade-robertson](https://github.com/kade-robertson) in [#​10145](https://github.com/vitest-dev/vitest/issues/10145) and [#​10541](https://github.com/vitest-dev/vitest/issues/10541) [<samp>(8e210)</samp>](https://github.com/vitest-dev/vitest/commit/8e2108dda)
- Don't lose worker output on teardown, deflake timing-sensitive tests - by [@​sheremet-va](https://github.com/sheremet-va) in [#​10842](https://github.com/vitest-dev/vitest/issues/10842) [<samp>(1216b)</samp>](https://github.com/vitest-dev/vitest/commit/1216b5af9)
- Revive global concurrency limit for test lifecycle - by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa**, **OpenCode (gpt-5.6-sol)** and [@​sheremet-va](https://github.com/sheremet-va) in [#​10928](https://github.com/vitest-dev/vitest/issues/10928) [<samp>(cf917)</samp>](https://github.com/vitest-dev/vitest/commit/cf9176bfc)
- Own the post-restart rerun, keep `process.exit` disabled in workers - by [@​sheremet-va](https://github.com/sheremet-va) in [#​10963](https://github.com/vitest-dev/vitest/issues/10963) [<samp>(5e69a)</samp>](https://github.com/vitest-dev/vitest/commit/5e69aba65)
- Preserve correct root during resolve config - by [@​AriPerkkio](https://github.com/AriPerkkio) and [@​sheremet-va](https://github.com/sheremet-va) in [#​10909](https://github.com/vitest-dev/vitest/issues/10909) [<samp>(210ba)</samp>](https://github.com/vitest-dev/vitest/commit/210ba00cb)
- Combine multiple --project filters correctly - by [@​sheremet-va](https://github.com/sheremet-va) in [#​10988](https://github.com/vitest-dev/vitest/issues/10988) [<samp>(66c1c)</samp>](https://github.com/vitest-dev/vitest/commit/66c1cbb53)
- Fix `recordArtifact` location with `vi.defineHelper` - by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#​11047](https://github.com/vitest-dev/vitest/issues/11047) [<samp>(c2186)</samp>](https://github.com/vitest-dev/vitest/commit/c21865dfd)
- Invalidate resolved setup files - by [@​sheremet-va](https://github.com/sheremet-va) in [#​11073](https://github.com/vitest-dev/vitest/issues/11073) and [#​11081](https://github.com/vitest-dev/vitest/issues/11081) [<samp>(488c0)</samp>](https://github.com/vitest-dev/vitest/commit/488c04680)
- Accept awaited value in vi.when thenResolve - by [@​sheremet-va](https://github.com/sheremet-va) in [#​11084](https://github.com/vitest-dev/vitest/issues/11084) [<samp>(c10a1)</samp>](https://github.com/vitest-dev/vitest/commit/c10a12900)
- Ignore computed member calls in static collection - by [@​sheremet-va](https://github.com/sheremet-va) in [#​11085](https://github.com/vitest-dev/vitest/issues/11085) [<samp>(130f7)</samp>](https://github.com/vitest-dev/vitest/commit/130f79b8b)
- Don't duplicte `oxc.target` if user provides a custom array - by [@​sheremet-va](https://github.com/sheremet-va) in [#​11095](https://github.com/vitest-dev/vitest/issues/11095) [<samp>(848d7)</samp>](https://github.com/vitest-dev/vitest/commit/848d7243e)
- Propagate --maxWorkers to projects - by [@​Gaurav1112](https://github.com/Gaurav1112) in [#​11102](https://github.com/vitest-dev/vitest/issues/11102) [<samp>(2122f)</samp>](https://github.com/vitest-dev/vitest/commit/2122ffdfb)
- Apply queued mocks from doMock() in queue order - by [@​juliandescottes](https://github.com/juliandescottes) and **Claude Opus 5 (1M context)** in [#​10706](https://github.com/vitest-dev/vitest/issues/10706) and [#​11127](https://github.com/vitest-dev/vitest/issues/11127) [<samp>(f08ce)</samp>](https://github.com/vitest-dev/vitest/commit/f08ce4b71)
- Add a warning if inline project has duplicate plugins due to unexpected `extends: true` - by [@​sheremet-va](https://github.com/sheremet-va) in [#​11120](https://github.com/vitest-dev/vitest/issues/11120) [<samp>(584cf)</samp>](https://github.com/vitest-dev/vitest/commit/584cf3084)
- Treat test.describe as a suite during static collection - by [@​sheremet-va](https://github.com/sheremet-va) in [#​11128](https://github.com/vitest-dev/vitest/issues/11128) [<samp>(d46a7)</samp>](https://github.com/vitest-dev/vitest/commit/d46a74722)
- **browser**:
- Fix trace highlight of shadow dom on webdriverio - by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​10227](https://github.com/vitest-dev/vitest/issues/10227) [<samp>(b01af)</samp>](https://github.com/vitest-dev/vitest/commit/b01afd26c)
- Simplify orchestrator otel carrier - by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​10283](https://github.com/vitest-dev/vitest/issues/10283) [<samp>(3514f)</samp>](https://github.com/vitest-dev/vitest/commit/3514f9fa1)
- Remove orphaned Playwright route when same module is mocked via multiple ids - by [@​Zelys-DFKH](https://github.com/Zelys-DFKH) in [#​9957](https://github.com/vitest-dev/vitest/issues/9957) and [#​10267](https://github.com/vitest-dev/vitest/issues/10267) [<samp>(41db6)</samp>](https://github.com/vitest-dev/vitest/commit/41db6ce28)
- Skip `wrapDynamicImport` transform on ssr environment - by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​10355](https://github.com/vitest-dev/vitest/issues/10355) [<samp>(d3c96)</samp>](https://github.com/vitest-dev/vitest/commit/d3c964bfc)
- Fix stale source map on watch mode - by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​10389](https://github.com/vitest-dev/vitest/issues/10389) [<samp>(6d772)</samp>](https://github.com/vitest-dev/vitest/commit/6d772c800)
- Escape inline orchestrator scripts - by [@​hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#​10412](https://github.com/vitest-dev/vitest/issues/10412) [<samp>(c22cf)</samp>](https://github.com/vitest-dev/vitest/commit/c22cfb656)
- Disable client `cdp` API when `allowWrite/allowExec: false` - by [@​hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#​10444](https://github.com/vitest-dev/vitest/issues/10444) [<samp>(63e3b)</samp>](https://github.com/vitest-dev/vitest/commit/63e3b2eee)
- Wait for orchestrator readiness before resolving browser sessions - by [@​soconnor-seeq](https://github.com/soconnor-seeq) in [#​10397](https://github.com/vitest-dev/vitest/issues/10397) [<samp>(fe5ed)</samp>](https://github.com/vitest-dev/vitest/commit/fe5ed6bc7)
- Wait for iframe tester readiness before preparing - by [@​soconnor-seeq](https://github.com/soconnor-seeq) in [#​10497](https://github.com/vitest-dev/vitest/issues/10497) [<samp>(f2655)</samp>](https://github.com/vitest-dev/vitest/commit/f26552c63)
- Encode iframeId in tester iframe URL - by [@​Pduhard](https://github.com/Pduhard), **Pduhard** and **Claude Opus 5 (1M context)** in [#​10520](https://github.com/vitest-dev/vitest/issues/10520) and [#​10521](https://github.com/vitest-dev/vitest/issues/10521) [<samp>(c8bf1)</samp>](https://github.com/vitest-dev/vitest/commit/c8bf19f66)
- Always derive a positive locator action timeout - by [@​sheremet-va](https://github.com/sheremet-va) in [#​10626](https://github.com/vitest-dev/vitest/issues/10626) [<samp>(5b864)</samp>](https://github.com/vitest-dev/vitest/commit/5b8642120)
- Resize the browser ui only if it's not headless - by [@​sheremet-va](https://github.com/sheremet-va) in [#​10662](https://github.com/vitest-dev/vitest/issues/10662) [<samp>(b5c61)</samp>](https://github.com/vitest-dev/vitest/commit/b5c613051)
- Check fs access in builtin commands - by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#​10674](https://github.com/vitest-dev/vitest/issues/10674) [<samp>(33f96)</samp>](https://github.com/vitest-dev/vitest/commit/33f96a145)
- Preserve pre-transform request defaults - by [@​sheremet-va](https://github.com/sheremet-va) in [#​10748](https://github.com/vitest-dev/vitest/issues/10748) [<samp>(b6060)</samp>](https://github.com/vitest-dev/vitest/commit/b60605ca7)
- Fix error stacktrace location off-by-one - by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#​10724](https://github.com/vitest-dev/vitest/issues/10724) [<samp>(62b8d)</samp>](https://github.com/vitest-dev/vitest/commit/62b8d3b36)
- Inlined awaited import should not trigger syntax error after transform - by [@​smeng9](https://github.com/smeng9), **Shaoyu Meng** and **Claude Opus 5 (1M context)** in [#​10784](https://github.com/vitest-dev/vitest/issues/10784) [<samp>(51acd)</samp>](https://github.com/vitest-dev/vitest/commit/51acd5778)
- Mock window\.print to avoid hanging - by [@​aaravjaichand](https://github.com/aaravjaichand) in [#​7375](https://github.com/vitest-dev/vitest/issues/7375) and [#​10798](https://github.com/vitest-dev/vitest/issues/10798) [<samp>(66d95)</samp>](https://github.com/vitest-dev/vitest/commit/66d95af84)
- Ignore channel events in a tester opened as a top-level window - by [@​simshanith](https://github.com/simshanith) in [#​9379](https://github.com/vitest-dev/vitest/issues/9379) and [#​9381](https://github.com/vitest-dev/vitest/issues/9381) [<samp>(46a3c)</samp>](https://github.com/vitest-dev/vitest/commit/46a3cf750)
- Resolve `connectTimeout` from the project config - by [@​lazerg](https://github.com/lazerg) in [#​10879](https://github.com/vitest-dev/vitest/issues/10879) and [#​10880](https://github.com/vitest-dev/vitest/issues/10880) [<samp>(62c79)</samp>](https://github.com/vitest-dev/vitest/commit/62c795d63)
- Prebundle vite module runner with vitest - by [@​lebovvskii](https://github.com/lebovvskii) and [@​sheremet-va](https://github.com/sheremet-va) in [#​10836](https://github.com/vitest-dev/vitest/issues/10836) and [#​10856](https://github.com/vitest-dev/vitest/issues/10856) [<samp>(37c24)</samp>](https://github.com/vitest-dev/vitest/commit/37c240158)
- Restore dependency reload warning - by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#​10913](https://github.com/vitest-dev/vitest/issues/10913) [<samp>(90d69)</samp>](https://github.com/vitest-dev/vitest/commit/90d696d44)
- Configure internal optimizer dependencies - by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#​10915](https://github.com/vitest-dev/vitest/issues/10915) [<samp>(a72f4)</samp>](https://github.com/vitest-dev/vitest/commit/a72f46eac)
- Trigger playwright/chromium gc on lower disk availability - by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#​10912](https://github.com/vitest-dev/vitest/issues/10912) [<samp>(032d3)</samp>](https://github.com/vitest-dev/vitest/commit/032d31892)
- Disallow filter-only options in getBy\* locators - by **Arjun** in [#​10295](https://github.com/vitest-dev/vitest/issues/10295) and [#​10933](https://github.com/vitest-dev/vitest/issues/10933) [<samp>(9b4df)</samp>](https://github.com/vitest-dev/vitest/commit/9b4df4b05)
- Fail instead of hanging when the browser stops responding - by [@​sheremet-va](https://github.com/sheremet-va) in [#​10956](https://github.com/vitest-dev/vitest/issues/10956) [<samp>(c496c)</samp>](https://github.com/vitest-dev/vitest/commit/c496c2e33)
- Exit gracefully when the browser disconnects during cancellation - by [@​sheremet-va](https://github.com/sheremet-va) in [#​10962](https://github.com/vitest-dev/vitest/issues/10962) [<samp>(67e84)</samp>](https://github.com/vitest-dev/vitest/commit/67e848564)
- Don't redirect vitest in client environment - by [@​sheremet-va](https://github.com/sheremet-va) in [#​10975](https://github.com/vitest-dev/vitest/issues/10975) [<samp>(aeb67)</samp>](https://github.com/vitest-dev/vitest/commit/aeb672095)
- Don't hang when `ui: true` in projects - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​10994](https://github.com/vitest-dev/vitest/issues/10994) [<samp>(9f710)</samp>](https://github.com/vitest-dev/vitest/commit/9f710d304)
- Preserve trace popover state - by [@​liuluochen6-af](https://github.com/liuluochen6-af), **Hiroshi Ogawa**, **OpenCode (gpt-5.6-sol)** and [@​hi-ogawa](https://github.com/hi-ogawa) in [#​10906](https://github.com/vitest-dev/vitest/issues/10906) and [#​11021](https://github.com/vitest-dev/vitest/issues/11021) [<samp>(1bbc2)</samp>](https://github.com/vitest-dev/vitest/commit/1bbc278c2)
- Report the action error when a task times out - by [@​sheremet-va](https://github.com/sheremet-va) in [#​11101](https://github.com/vitest-dev/vitest/issues/11101) [<samp>(dc10f)</samp>](https://github.com/vitest-dev/vitest/commit/dc10f5f8f)
- **cache**:
- Improve `fsModuleCache` resiliency during external modifications - by [@​jszumski](https://github.com/jszumski) in [#​10869](https://github.com/vitest-dev/vitest/issues/10869) [<samp>(5eb35)</samp>](https://github.com/vitest-dev/vitest/commit/5eb3570e8)
- **cli**:
- Respect `FORCE_COLOR` over agent detection - by [@​dokson](https://github.com/dokson) in [#​10272](https://github.com/vitest-dev/vitest/issues/10272) [<samp>(7e66b)</samp>](https://github.com/vitest-dev/vitest/commit/7e66bc726)
- Exit on `CTRL+c` even when `globalSetup` runs blocked code - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​10863](https://github.com/vitest-dev/vitest/issues/10863) [<samp>(d568f)</samp>](https://github.com/vitest-dev/vitest/commit/d568f8ce3)
- **coverage**:
- `exclude` to not inherit negation globs from `test.include` - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​10299](https://github.com/vitest-dev/vitest/issues/10299) [<samp>(28685)</samp>](https://github.com/vitest-dev/vitest/commit/286851ea2)
- Avoid matching sibling project roots - by [@​innoprej](https://github.com/innoprej), **Shin JaeHee** and [@​AriPerkkio](https://github.com/AriPerkkio) in [#​10311](https://github.com/vitest-dev/vitest/issues/10311) [<samp>(e30dd)</samp>](https://github.com/vitest-dev/vitest/commit/e30dd9cf6)
- Non-awaited module imports cause wrong offsets - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​10643](https://github.com/vitest-dev/vitest/issues/10643) [<samp>(c4090)</samp>](https://github.com/vitest-dev/vitest/commit/c40901479)
- Fail fast when `coverage.reportsDirectory` conflicts between concurrent runs - by [@​jgamaraalv](https://github.com/jgamaraalv) and [@​AriPerkkio](https://github.com/AriPerkkio) in [#​10466](https://github.com/vitest-dev/vitest/issues/10466) [<samp>(833f0)</samp>](https://github.com/vitest-dev/vitest/commit/833f0936c)
- V8 to ignore Vite SSR's generated import bindings - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​11023](https://github.com/vitest-dev/vitest/issues/11023) [<samp>(c6174)</samp>](https://github.com/vitest-dev/vitest/commit/c6174a6cf)
- Prevent crash on `/@fs/` prepended virtual files - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​11119](https://github.com/vitest-dev/vitest/issues/11119) [<samp>(c4473)</samp>](https://github.com/vitest-dev/vitest/commit/c4473e48e)
- **deps**:
- Update ivya to fix empty aria tree snapshot - by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​10218](https://github.com/vitest-dev/vitest/issues/10218) [<samp>(f7822)</samp>](https://github.com/vitest-dev/vitest/commit/f7822ebf6)
- Update fake-timers to 15.3.2. support `toNotFake` - by [@​BPScott](https://github.com/BPScott), [@​hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#​10043](https://github.com/vitest-dev/vitest/issues/10043) [<samp>(bbf2f)</samp>](https://github.com/vitest-dev/vitest/commit/bbf2f0df3)
- Update all non-major dependencies - by [@​sheremet-va](https://github.com/sheremet-va) in [#​9958](https://github.com/vitest-dev/vitest/issues/9958) [<samp>(7faa7)</samp>](https://github.com/vitest-dev/vitest/commit/7faa7b04a)
- Update all non-major dependencies - by [@​sheremet-va](https://github.com/sheremet-va) in [#​10861](https://github.com/vitest-dev/vitest/issues/10861) [<samp>(0188c)</samp>](https://github.com/vitest-dev/vitest/commit/0188c8135)
- Update all non-major dependencies - by [@​sheremet-va](https://github.com/sheremet-va) in [#​10898](https://github.com/vitest-dev/vitest/issues/10898) [<samp>(61c4b)</samp>](https://github.com/vitest-dev/vitest/commit/61c4b8024)
- Update all non-major dependencies - in [#​10966](https://github.com/vitest-dev/vitest/issues/10966) [<samp>(65263)</samp>](https://github.com/vitest-dev/vitest/commit/65263d74e)
- Update all non-major dependencies - in [#​11043](https://github.com/vitest-dev/vitest/issues/11043) [<samp>(732df)</samp>](https://github.com/vitest-dev/vitest/commit/732df2c2b)
- **expect**:
- Allow readonly arrays and sets in toBeOneOf - by [@​YBJ0000](https://github.com/YBJ0000) in [#​10264](https://github.com/vitest-dev/vitest/issues/10264) and [#​10374](https://github.com/vitest-dev/vitest/issues/10374) [<samp>(fed11)</samp>](https://github.com/vitest-dev/vitest/commit/fed1125b0)
- Handle nullish toHaveProperty values - by [@​liyimil](https://github.com/liyimil) in [#​10735](https://github.com/vitest-dev/vitest/issues/10735) and [#​10811](https://github.com/vitest-dev/vitest/issues/10811) [<samp>(99e59)</samp>](https://github.com/vitest-dev/vitest/commit/99e596d33)
- **junit**:
- Include unhandled errors in JUnit XML report - by [@​gbleu](https://github.com/gbleu) and **Claude Opus 5 (1M context)** in [#​10244](https://github.com/vitest-dev/vitest/issues/10244) [<samp>(6f74e)</samp>](https://github.com/vitest-dev/vitest/commit/6f74e5e9d)
- **mocker**:
- Skip hoist transform without ast mock calls - by [@​hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#​10410](https://github.com/vitest-dev/vitest/issues/10410) [<samp>(0468e)</samp>](https://github.com/vitest-dev/vitest/commit/0468e1572)
- Hoist vi.mock() for vite-plus/test imports - by [@​Brooooooklyn](https://github.com/Brooooooklyn) and **Claude Opus 5 (1M context)** in [#​10489](https://github.com/vitest-dev/vitest/issues/10489) [<samp>(88376)</samp>](https://github.com/vitest-dev/vitest/commit/8837664a4)
- Restrict redirect mocks to the fs allowlist - by [@​sheremet-va](https://github.com/sheremet-va) in [#​10972](https://github.com/vitest-dev/vitest/issues/10972) [<samp>(8ff9b)</samp>](https://github.com/vitest-dev/vitest/commit/8ff9b9a9e)
- **pool**:
- Prevent test run hang on worker crash - by [@​jaxalo](https://github.com/jaxalo) and [@​AriPerkkio](https://github.com/AriPerkkio) in [#​10543](https://github.com/vitest-dev/vitest/issues/10543) [<samp>(40878)</samp>](https://github.com/vitest-dev/vitest/commit/4087802b5)
- Improve error message when worker exits unexpectedly - by [@​filmaj](https://github.com/filmaj) and [@​AriPerkkio](https://github.com/AriPerkkio) in [#​10587](https://github.com/vitest-dev/vitest/issues/10587) [<samp>(76139)</samp>](https://github.com/vitest-dev/vitest/commit/76139c5a0)
- Vm pools to respect cgroupsv2 memory limit - by [@​milas](https://github.com/milas) in [#​10721](https://github.com/vitest-dev/vitest/issues/10721) [<samp>(3923c)</samp>](https://github.com/vitest-dev/vitest/commit/3923cab3d)
- Worker init to handle queued synchronous messages - by [@​lazerg](https://github.com/lazerg) and [@​AriPerkkio](https://github.com/AriPerkkio) in [#​10932](https://github.com/vitest-dev/vitest/issues/10932) [<samp>(76096)</samp>](https://github.com/vitest-dev/vitest/commit/76096c769)
- Report the worker exit instead of a pipe error that raced it - by [@​sheremet-va](https://github.com/sheremet-va) in [#​10964](https://github.com/vitest-dev/vitest/issues/10964) [<samp>(59a03)</samp>](https://github.com/vitest-dev/vitest/commit/59a037354)
- **reporter**:
- Guard against non-finite slowTestThreshold in summary reporter - by [@​OfekDanny](https://github.com/OfekDanny), **Ofek Danny**, **Claude Opus 5 (1M context)** and [@​AriPerkkio](https://github.com/AriPerkkio) in [#​10202](https://github.com/vitest-dev/vitest/issues/10202) [<samp>(f362f)</samp>](https://github.com/vitest-dev/vitest/commit/f362f96db)
- Fix non-existing import subpath module blob serialization - by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​10318](https://github.com/vitest-dev/vitest/issues/10318) [<samp>(29cb0)</samp>](https://github.com/vitest-dev/vitest/commit/29cb06b35)
- **reporters**:
- Fix blob file name with label - by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​10346](https://github.com/vitest-dev/vitest/issues/10346) [<samp>(c5e2e)</samp>](https://github.com/vitest-dev/vitest/commit/c5e2e7530)
- `summary` to intercept logger's streams even when they are not `process.std*` streams - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​10340](https://github.com/vitest-dev/vitest/issues/10340) [<samp>(f79e7)</samp>](https://github.com/vitest-dev/vitest/commit/f79e7db90)
- Fix missing `testModules` in `onTestRunEnd` when merging blobs from different root directory test runs - by [@​hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#​10348](https://github.com/vitest-dev/vitest/issues/10348) [<samp>(745b3)</samp>](https://github.com/vitest-dev/vitest/commit/745b30b64)
- Print parent describe suites when the passed-test list is hidden - by [@​ChihebBENCHEIKH1](https://github.com/ChihebBENCHEIKH1), **Chiheb Bencheikh** and [@​sheremet-va](https://github.com/sheremet-va) in [#​10606](https://github.com/vitest-dev/vitest/issues/10606) and [#​10768](https://github.com/vitest-dev/vitest/issues/10768) [<samp>(658af)</samp>](https://github.com/vitest-dev/vitest/commit/658affeb3)
- Display `test.name` in GitHub Actions reporter summary header - by [@​macarie](https://github.com/macarie) in [#​10887](https://github.com/vitest-dev/vitest/issues/10887) [<samp>(49e24)</samp>](https://github.com/vitest-dev/vitest/commit/49e24fa38)
- **runner**:
- Propagate chainable flags in describe.for - by [@​DoriAlagem](https://github.com/DoriAlagem), **Dor Alagem** and [@​hi-ogawa](https://github.com/hi-ogawa) in [#​10187](https://github.com/vitest-dev/vitest/issues/10187) [<samp>(db678)</samp>](https://github.com/vitest-dev/vitest/commit/db67831d7)
- Limit concurrency per task branch in addition to per leaf callbacks - by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​10179](https://github.com/vitest-dev/vitest/issues/10179) [<samp>(3112a)</samp>](https://github.com/vitest-dev/vitest/commit/3112abea2)
- Remove AbortSignal listener leak in withCancel - by [@​tomohiro86](https://github.com/tomohiro86) and [@​AriPerkkio](https://github.com/AriPerkkio) in [#​10265](https://github.com/vitest-dev/vitest/issues/10265) [<samp>(ab098)</samp>](https://github.com/vitest-dev/vitest/commit/ab09822a4)
- Don't fail collection when accessing `error.stack` throws - by [@​sheremet-va](https://github.com/sheremet-va) in [#​10839](https://github.com/vitest-dev/vitest/issues/10839) [<samp>(202e2)</samp>](https://github.com/vitest-dev/vitest/commit/202e27f3d)
- **snapshot**:
- Fail test when snapshot assertion is used with `test.fails` - by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​10090](https://github.com/vitest-dev/vitest/issues/10090) [<samp>(e1aa7)</samp>](https://github.com/vitest-dev/vitest/commit/e1aa7a60a)
- Treat empty string as valid snapshot - by [@​mayrang](https://github.com/mayrang) and [@​hi-ogawa](https://github.com/hi-ogawa) in [#​10188](https://github.com/vitest-dev/vitest/issues/10188) [<samp>(e145d)</samp>](https://github.com/vitest-dev/vitest/commit/e145d5756)
- Support no-unsafe-eval CSP by evaluating snapshot files on server - by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​10665](https://github.com/vitest-dev/vitest/issues/10665) [<samp>(667c1)</samp>](https://github.com/vitest-dev/vitest/commit/667c13954)
- Reject when `toMatchFileSnapshot` uses same snapshot file as `toMatchSnapshot` - by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa**, **OpenCode (gpt-5.6-sol)** and [@​sheremet-va](https://github.com/sheremet-va) in [#​10978](https://github.com/vitest-dev/vitest/issues/10978) [<samp>(17646)</samp>](https://github.com/vitest-dev/vitest/commit/17646ac72)
- **spy**:
- Support private method spy types - by [@​cyphercodes](https://github.com/cyphercodes) in [#​10172](https://github.com/vitest-dev/vitest/issues/10172) and [#​10213](https://github.com/vitest-dev/vitest/issues/10213) [<samp>(628ab)</samp>](https://github.com/vitest-dev/vitest/commit/628ab32f1)
- Point ESM namespace spy error to module mocking docs - by [@​ryandiginomad](https://github.com/ryandiginomad) and **Ryan Tang** in [#​10707](https://github.com/vitest-dev/vitest/issues/10707) [<samp>(d6cec)</samp>](https://github.com/vitest-dev/vitest/commit/d6ceca9d7)
- **typecheck**:
- Report a checker crash on Windows instead of a spawn failure - by [@​sheremet-va](https://github.com/sheremet-va) in [#​10907](https://github.com/vitest-dev/vitest/issues/10907) [<samp>(77aac)</samp>](https://github.com/vitest-dev/vitest/commit/77aac87dd)
- **types**:
- Allow `changed` in configuration options - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​10651](https://github.com/vitest-dev/vitest/issues/10651) [<samp>(0da12)</samp>](https://github.com/vitest-dev/vitest/commit/0da12aad4)
- **ui**:
- Fix duplicate colored error message - by [@​hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#​10258](https://github.com/vitest-dev/vitest/issues/10258) [<samp>(035e3)</samp>](https://github.com/vitest-dev/vitest/commit/035e3bb70)
- Fix missing source code in html reporter metadata when merging blobs with different root directory test runs - by [@​hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#​10338](https://github.com/vitest-dev/vitest/issues/10338) [<samp>(4f7c2)</samp>](https://github.com/vitest-dev/vitest/commit/4f7c2670c)
- Fix module graph in browser mode with --ui - by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​10386](https://github.com/vitest-dev/vitest/issues/10386) [<samp>(3003c)</samp>](https://github.com/vitest-dev/vitest/commit/3003c4327)
- Render ANSI color codes in editor panel inline error widget - by [@​Copilot](https://github.com/Copilot), **Hiroshi Ogawa** and [@​hi-ogawa](https://github.com/hi-ogawa) in [#​10418](https://github.com/vitest-dev/vitest/issues/10418) [<samp>(766b8)</samp>](https://github.com/vitest-dev/vitest/commit/766b8d2fa)
- Fix code editor error and annotations gadgets layout shifts - by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#​10969](https://github.com/vitest-dev/vitest/issues/10969) [<samp>(438ed)</samp>](https://github.com/vitest-dev/vitest/commit/438eda13f)
- Synchronize watch-run UI state on file removal - by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#​10941](https://github.com/vitest-dev/vitest/issues/10941) [<samp>(30c21)</samp>](https://github.com/vitest-dev/vitest/commit/30c21e668)
- Require auth for coverage report and all UI subtree requests - by [@​sheremet-va](https://github.com/sheremet-va) in [#​10971](https://github.com/vitest-dev/vitest/issues/10971) [<samp>(5622f)</samp>](https://github.com/vitest-dev/vitest/commit/5622f0959)
- Improve suite interaction and layout in explorer tree - by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#​10970](https://github.com/vitest-dev/vitest/issues/10970) [<samp>(91231)</samp>](https://github.com/vitest-dev/vitest/commit/9123111b3)
- Reveal explorer virtual scroller on resize - by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#​10998](https://github.com/vitest-dev/vitest/issues/10998) [<samp>(1f4fc)</samp>](https://github.com/vitest-dev/vitest/commit/1f4fcd363)
- Persist trace step-iframe split pane sizes - by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#​11027](https://github.com/vitest-dev/vitest/issues/11027) [<samp>(3cd01)</samp>](https://github.com/vitest-dev/vitest/commit/3cd019a0a)
- Add suite level report view - by [@​dvmhmdsd](https://github.com/dvmhmdsd), **Hiroshi Ogawa**, **OpenCode (gpt-5.6-sol)** and [@​hi-ogawa](https://github.com/hi-ogawa) in [#​11038](https://github.com/vitest-dev/vitest/issues/11038) [<samp>(602d2)</samp>](https://github.com/vitest-dev/vitest/commit/602d215ae)
- Hide running count in static reports - by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#​11123](https://github.com/vitest-dev/vitest/issues/11123) [<samp>(73d72)</samp>](https://github.com/vitest-dev/vitest/commit/73d729484)
- **utils**:
- Don't crash on a malformed inline source map - by [@​lazerg](https://github.com/lazerg), **Hiroshi Ogawa**, **OpenCode (gpt-5.6-sol)** and [@​hi-ogawa](https://github.com/hi-ogawa) in [#​10892](https://github.com/vitest-dev/vitest/issues/10892) and [#​10893](https://github.com/vitest-dev/vitest/issues/10893) [<samp>(fe790)</samp>](https://github.com/vitest-dev/vitest/commit/fe7906275)
- **vitest**:
- Strip non-serializable functions from inline diff config - by [@​DucMinhNe](https://github.com/DucMinhNe) in [#​10573](https://github.com/vitest-dev/vitest/issues/10573) [<samp>(5b81a)</samp>](https://github.com/vitest-dev/vitest/commit/5b81a63ff)
- Remove broken "./src/\*" export from package.json - by [@​sheremet-va](https://github.com/sheremet-va) in [#​10918](https://github.com/vitest-dev/vitest/issues/10918) [<samp>(2e5df)</samp>](https://github.com/vitest-dev/vitest/commit/2e5df7543)
- Render non-Error causes from env setup so the actual diagnostic is not dropped - by [@​spokodev](https://github.com/spokodev) in [#​10567](https://github.com/vitest-dev/vitest/issues/10567) [<samp>(b298d)</samp>](https://github.com/vitest-dev/vitest/commit/b298df609)
- **vm**:
- Fix external module resolve error with deps optimizer query for encoded URI - by [@​SveLil](https://github.com/SveLil) in [#​10658](https://github.com/vitest-dev/vitest/issues/10658) [<samp>(90c4e)</samp>](https://github.com/vitest-dev/vitest/commit/90c4ed4cd)
- Stop retaining every finished test file in vm pool workers - by [@​sheremet-va](https://github.com/sheremet-va) in [#​10854](https://github.com/vitest-dev/vitest/issues/10854) [<samp>(38503)</samp>](https://github.com/vitest-dev/vitest/commit/3850323e2)
- Fall back to compiling from source when a module's code cache is rejected - by [@​MarshallOfSound](https://github.com/MarshallOfSound) in [#​11031](https://github.com/vitest-dev/vitest/issues/11031) [<samp>(c3ba1)</samp>](https://github.com/vitest-dev/vitest/commit/c3ba16b35)
- Link module graphs one at a time - by [@​sheremet-va](https://github.com/sheremet-va) in [#​11096]…
renovate Bot
added a commit
to cigaleapp/cigale
that referenced
this pull request
Sep 11, 2026
##### [v5.0.0](https://github.com/vitest-dev/vitest/releases/tag/v5.0.0)
##### 🚨 Breaking Changes
- Replace `loupe.inspect` with pretty-format - by [@hi-ogawa](https://github.com/hi-ogawa), **Claude Opus 5 (1M context)** and **OpenAI Codex** in [#9609](https://github.com/vitest-dev/vitest/issues/9609) [<samp>(3f802)</samp>](https://github.com/vitest-dev/vitest/commit/3f802da4b)
- Remove quotes from string values in `test.for/each` title `$` variable (take 2) - by [@hi-ogawa](https://github.com/hi-ogawa) in [#10170](https://github.com/vitest-dev/vitest/issues/10170) [<samp>(04d37)</samp>](https://github.com/vitest-dev/vitest/commit/04d37e9d7)
- Default `attachmentsDir` from `.vitest-attachements/` to `.vitest/attachments/` - by [@MdSadiqMd](https://github.com/MdSadiqMd) in [#10186](https://github.com/vitest-dev/vitest/issues/10186) [<samp>(1ba73)</samp>](https://github.com/vitest-dev/vitest/commit/1ba7338c3)
- Remove `sequential` test/suite options in favor of `concurrent` - by [@hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#10198](https://github.com/vitest-dev/vitest/issues/10198) [<samp>(9229f)</samp>](https://github.com/vitest-dev/vitest/commit/9229f2edc)
- Represent locator as an object instead of a string - by [@sheremet-va](https://github.com/sheremet-va) in [#10212](https://github.com/vitest-dev/vitest/issues/10212) [<samp>(80f07)</samp>](https://github.com/vitest-dev/vitest/commit/80f07edf6)
- Inline `expect` package - by [@sheremet-va](https://github.com/sheremet-va) in [#10221](https://github.com/vitest-dev/vitest/issues/10221) [<samp>(ad162)</samp>](https://github.com/vitest-dev/vitest/commit/ad16223e7)
- Remove deprecated entry points - by [@sheremet-va](https://github.com/sheremet-va) in [#10222](https://github.com/vitest-dev/vitest/issues/10222) [<samp>(994c6)</samp>](https://github.com/vitest-dev/vitest/commit/994c6ddb9)
- Require Node.js 22 and Vite 6.4 - by [@sheremet-va](https://github.com/sheremet-va) in [#10178](https://github.com/vitest-dev/vitest/issues/10178) [<samp>(38762)</samp>](https://github.com/vitest-dev/vitest/commit/3876283e8)
- Fail `expect.poll` when function didn't resolve in time - by [@hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#10233](https://github.com/vitest-dev/vitest/issues/10233) [<samp>(4df04)</samp>](https://github.com/vitest-dev/vitest/commit/4df048c11)
- Throw an error if hoistable methods are outside the top level scope - by [@sheremet-va](https://github.com/sheremet-va) in [#10460](https://github.com/vitest-dev/vitest/issues/10460) [<samp>(d0b4f)</samp>](https://github.com/vitest-dev/vitest/commit/d0b4fddcb)
- `toHaveTextContent` is strict, add `toMatchTextContent` as alternative - by [@sheremet-va](https://github.com/sheremet-va) in [#10473](https://github.com/vitest-dev/vitest/issues/10473) [<samp>(18f30)</samp>](https://github.com/vitest-dev/vitest/commit/18f303079)
- Don't lookup config file from ancestor directories - by [@hi-ogawa](https://github.com/hi-ogawa), **OpenAI Codex** and **Hiroshi Ogawa** in [#10428](https://github.com/vitest-dev/vitest/issues/10428) [<samp>(945d9)</samp>](https://github.com/vitest-dev/vitest/commit/945d9090e)
- Inline `@vitest/runner` package, do not publish it anymore - by [@sheremet-va](https://github.com/sheremet-va) in [#10511](https://github.com/vitest-dev/vitest/issues/10511) [<samp>(6d6e4)</samp>](https://github.com/vitest-dev/vitest/commit/6d6e46b1e)
- Allow mutating happy-dom/jsdom window object - by [@hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenAI Codex** in [#10373](https://github.com/vitest-dev/vitest/issues/10373) [<samp>(206e8)</samp>](https://github.com/vitest-dev/vitest/commit/206e8cff8)
- Expose `concurrencyId`/`workerId` on TestModule's diagnostics, make id 1-based - by [@sheremet-va](https://github.com/sheremet-va) in [#10516](https://github.com/vitest-dev/vitest/issues/10516) [<samp>(bdd98)</samp>](https://github.com/vitest-dev/vitest/commit/bdd985433)
- Add `screenshotDirectory` config to `browser.expect.toMatchScreenshot` - by [@macarie](https://github.com/macarie) in [#10592](https://github.com/vitest-dev/vitest/issues/10592) [<samp>(a60de)</samp>](https://github.com/vitest-dev/vitest/commit/a60ded0fb)
- Update `@sinonjs/fake-timers` and support mocking `Temporal` - by [@hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#10654](https://github.com/vitest-dev/vitest/issues/10654) [<samp>(f8b15)</samp>](https://github.com/vitest-dev/vitest/commit/f8b1532fe)
- Remove webdriverio package - by [@sheremet-va](https://github.com/sheremet-va) in [#10675](https://github.com/vitest-dev/vitest/issues/10675) [<samp>(5fed6)</samp>](https://github.com/vitest-dev/vitest/commit/5fed68f72)
- Clear mocks by default before each test - by [@sheremet-va](https://github.com/sheremet-va) in [#10613](https://github.com/vitest-dev/vitest/issues/10613) [<samp>(0f646)</samp>](https://github.com/vitest-dev/vitest/commit/0f6463bf2)
- Don't emit localStorage warnings on Node 26, fail gracefully when worker fails to start - by [@sheremet-va](https://github.com/sheremet-va) in [#10293](https://github.com/vitest-dev/vitest/issues/10293) [<samp>(334ed)</samp>](https://github.com/vitest-dev/vitest/commit/334edef92)
- Separate config resolution from the server creation - by [@sheremet-va](https://github.com/sheremet-va) in [#10554](https://github.com/vitest-dev/vitest/issues/10554) [<samp>(1c0ec)</samp>](https://github.com/vitest-dev/vitest/commit/1c0ec3444)
- Inline projects extend the root config by default - by [@sheremet-va](https://github.com/sheremet-va) in [#10750](https://github.com/vitest-dev/vitest/issues/10750) [<samp>(fec00)</samp>](https://github.com/vitest-dev/vitest/commit/fec001ad3)
- Enable mocking Temporal without fake timers - by [@fabon-f](https://github.com/fabon-f), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#10757](https://github.com/vitest-dev/vitest/issues/10757) [<samp>(ac2d4)</samp>](https://github.com/vitest-dev/vitest/commit/ac2d46b42)
- Support nested projects - by [@sheremet-va](https://github.com/sheremet-va) in [#10846](https://github.com/vitest-dev/vitest/issues/10846) [<samp>(ec367)</samp>](https://github.com/vitest-dev/vitest/commit/ec367cf2a)
- Use `>` as separator in `-t`, calculate `only` once - by [@sheremet-va](https://github.com/sheremet-va) in [#10686](https://github.com/vitest-dev/vitest/issues/10686) [<samp>(a0b20)</samp>](https://github.com/vitest-dev/vitest/commit/a0b20bc86)
- Fail the test when an asynchronous assertion is not awaited - by [@sheremet-va](https://github.com/sheremet-va) in [#10868](https://github.com/vitest-dev/vitest/issues/10868) [<samp>(86d4a)</samp>](https://github.com/vitest-dev/vitest/commit/86d4a9da9)
- Share the Vite server between inline projects - by [@sheremet-va](https://github.com/sheremet-va) in [#10848](https://github.com/vitest-dev/vitest/issues/10848) [<samp>(d87c9)</samp>](https://github.com/vitest-dev/vitest/commit/d87c96ee4)
- Parse files statically in vitest list by default - by [@sheremet-va](https://github.com/sheremet-va) in [#11088](https://github.com/vitest-dev/vitest/issues/11088) [<samp>(51e94)</samp>](https://github.com/vitest-dev/vitest/commit/51e949416)
- **benchmark**:
- Rewrite the public API - by [@sheremet-va](https://github.com/sheremet-va) in [#10113](https://github.com/vitest-dev/vitest/issues/10113) [<samp>(19f6e)</samp>](https://github.com/vitest-dev/vitest/commit/19f6e8947)
- **browser**:
- Iframe scale - by [@macarie](https://github.com/macarie) in [#9745](https://github.com/vitest-dev/vitest/issues/9745) [<samp>(b6398)</samp>](https://github.com/vitest-dev/vitest/commit/b639852cc)
- Enable `locators.exact` by default - by [@sheremet-va](https://github.com/sheremet-va) in [#10430](https://github.com/vitest-dev/vitest/issues/10430) [<samp>(e2032)</samp>](https://github.com/vitest-dev/vitest/commit/e203202f9)
- Require `sessionId` for orchestrator html request - by [@hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenAI Codex** in [#10522](https://github.com/vitest-dev/vitest/issues/10522) [<samp>(79b7d)</samp>](https://github.com/vitest-dev/vitest/commit/79b7d8fcc)
- Save failure screenshots in `attachmentsDir` - by [@macarie](https://github.com/macarie) in [#10917](https://github.com/vitest-dev/vitest/issues/10917) [<samp>(3b5bb)</samp>](https://github.com/vitest-dev/vitest/commit/3b5bbd8b4)
- **coverage**:
- `include/exclude` globs too eager - by [@AriPerkkio](https://github.com/AriPerkkio) in [#9818](https://github.com/vitest-dev/vitest/issues/9818) [<samp>(edacb)</samp>](https://github.com/vitest-dev/vitest/commit/edacb0fd4)
- Allow `thresholds.perFile` to accept an object - by [@vladlenskiy](https://github.com/vladlenskiy) and [@AriPerkkio](https://github.com/AriPerkkio) in [#10190](https://github.com/vitest-dev/vitest/issues/10190) [<samp>(13b78)</samp>](https://github.com/vitest-dev/vitest/commit/13b78d98b)
- **expect**:
- Fix `toThrow("")` behavior by reverting [#6710](https://github.com/vitest-dev/vitest/issues/6710) - by [@hi-ogawa](https://github.com/hi-ogawa) in [#9643](https://github.com/vitest-dev/vitest/issues/9643) and [#6710](https://github.com/vitest-dev/vitest/issues/6710) [<samp>(6c3e4)</samp>](https://github.com/vitest-dev/vitest/commit/6c3e4bdbf)
- **mocker**:
- Deserialize automock as automock - by [@nami8824](https://github.com/nami8824) in [#10192](https://github.com/vitest-dev/vitest/issues/10192) [<samp>(2f892)</samp>](https://github.com/vitest-dev/vitest/commit/2f892712d)
- **reporters**:
- `blob` reporter and `--merge-reports` default to `.vitest/blob/` - by [@AriPerkkio](https://github.com/AriPerkkio) in [#10232](https://github.com/vitest-dev/vitest/issues/10232) [<samp>(d22b0)</samp>](https://github.com/vitest-dev/vitest/commit/d22b029ae)
- Write json and junit reporter output files to `.vitest` by default - by [@hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa**, **OpenCode (gpt-5.6-sol)** and [@AriPerkkio](https://github.com/AriPerkkio) in [#10621](https://github.com/vitest-dev/vitest/issues/10621) [<samp>(58577)</samp>](https://github.com/vitest-dev/vitest/commit/58577290a)
- **spy**:
- Preserve class mock prototype methods on instances - by [@sheremet-va](https://github.com/sheremet-va) in [#10910](https://github.com/vitest-dev/vitest/issues/10910) [<samp>(6093d)</samp>](https://github.com/vitest-dev/vitest/commit/6093d764a)
- **types**:
- Add better promise support in expects and matchers - by [@samchungy](https://github.com/samchungy) and [@sheremet-va](https://github.com/sheremet-va) in [#8266](https://github.com/vitest-dev/vitest/issues/8266) [<samp>(41f55)</samp>](https://github.com/vitest-dev/vitest/commit/41f551bce)
- **ui**:
- Harden UI API access - by [@hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenAI Codex** in [#10583](https://github.com/vitest-dev/vitest/issues/10583) [<samp>(4c26d)</samp>](https://github.com/vitest-dev/vitest/commit/4c26d7675)
- Change html reporter default output to `.vitest` - by [@hi-ogawa](https://github.com/hi-ogawa) and **Hiroshi Ogawa** in [#10620](https://github.com/vitest-dev/vitest/issues/10620) [<samp>(29c36)</samp>](https://github.com/vitest-dev/vitest/commit/29c364d50)
##### 🚀 Features
- Add `createReport` and `.vitest` report directory convention - by [@AriPerkkio](https://github.com/AriPerkkio) in [#9993](https://github.com/vitest-dev/vitest/issues/9993) [<samp>(72a6d)</samp>](https://github.com/vitest-dev/vitest/commit/72a6dc257)
- Expose default reporters through `configDefaults.reporters` - by [@hi-ogawa](https://github.com/hi-ogawa) and **Claude Opus 5 (1M context)** in [#10219](https://github.com/vitest-dev/vitest/issues/10219) [<samp>(083f6)</samp>](https://github.com/vitest-dev/vitest/commit/083f6bdd6)
- Support merge reports for non-sharded multi-environment runs (take 2) - by [@hi-ogawa](https://github.com/hi-ogawa), **Claude Opus 5 (1M context)**, **OpenAI Codex** and [@AriPerkkio](https://github.com/AriPerkkio) in [#10031](https://github.com/vitest-dev/vitest/issues/10031) [<samp>(e60b2)</samp>](https://github.com/vitest-dev/vitest/commit/e60b2f49e)
- Add `logger.formatError` - by [@hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#10268](https://github.com/vitest-dev/vitest/issues/10268) [<samp>(2c5f3)</samp>](https://github.com/vitest-dev/vitest/commit/2c5f3ee2f)
- Support typescript build mode - by [@lishaduck](https://github.com/lishaduck) in [#9870](https://github.com/vitest-dev/vitest/issues/9870) [<samp>(106da)</samp>](https://github.com/vitest-dev/vitest/commit/106da5896)
- Add toggable `injectCjsGlobals` option - by [@sheremet-va](https://github.com/sheremet-va) in [#10709](https://github.com/vitest-dev/vitest/issues/10709) [<samp>(82671)</samp>](https://github.com/vitest-dev/vitest/commit/826714ece)
- Promote fsModuleCache to a top-level option - by [@sheremet-va](https://github.com/sheremet-va) in [#10734](https://github.com/vitest-dev/vitest/issues/10734) [<samp>(78ed7)</samp>](https://github.com/vitest-dev/vitest/commit/78ed73afd)
- Support non-ascii characters in `for/each` title placeholders - by [@k-yle](https://github.com/k-yle) in [#10773](https://github.com/vitest-dev/vitest/issues/10773) [<samp>(15e0a)</samp>](https://github.com/vitest-dev/vitest/commit/15e0af953)
- Report the duration breakdown as percentages - by [@sheremet-va](https://github.com/sheremet-va) and [@AriPerkkio](https://github.com/AriPerkkio) in [#10820](https://github.com/vitest-dev/vitest/issues/10820) [<samp>(c67d2)</samp>](https://github.com/vitest-dev/vitest/commit/c67d296f4)
- Promote parseSpecifications out of experimental - by [@sheremet-va](https://github.com/sheremet-va) in [#11087](https://github.com/vitest-dev/vitest/issues/11087) [<samp>(b628c)</samp>](https://github.com/vitest-dev/vitest/commit/b628cb680)
- Promote clearCache out of experimental - by [@sheremet-va](https://github.com/sheremet-va) in [#11086](https://github.com/vitest-dev/vitest/issues/11086) [<samp>(d4fe1)</samp>](https://github.com/vitest-dev/vitest/commit/d4fe1986f)
- **api**:
- Expose logs recorded during the test - by [@sheremet-va](https://github.com/sheremet-va) in [#10277](https://github.com/vitest-dev/vitest/issues/10277) [<samp>(cba20)</samp>](https://github.com/vitest-dev/vitest/commit/cba2036a1)
- **benchmark**:
- Add pluggable benchmark provider API - by [@GuillaumeLagrange](https://github.com/GuillaumeLagrange) and [@sheremet-va](https://github.com/sheremet-va) in [#10799](https://github.com/vitest-dev/vitest/issues/10799) [<samp>(86c70)</samp>](https://github.com/vitest-dev/vitest/commit/86c700ed8)
- **browser**:
- Export aria tree utils - by [@hi-ogawa](https://github.com/hi-ogawa) in [#10171](https://github.com/vitest-dev/vitest/issues/10171) [<samp>(c3423)</samp>](https://github.com/vitest-dev/vitest/commit/c3423014c)
- Support dom snapshot trace view - by [@hi-ogawa](https://github.com/hi-ogawa), **Claude Opus 5 (1M context)** and **OpenAI Codex** in [#10102](https://github.com/vitest-dev/vitest/issues/10102) [<samp>(7eddd)</samp>](https://github.com/vitest-dev/vitest/commit/7eddd273d)
- Provide project reference in `ToMatchScreenshotResolvePath` - by [@macarie](https://github.com/macarie) and [@sheremet-va](https://github.com/sheremet-va) in [#10138](https://github.com/vitest-dev/vitest/issues/10138) [<samp>(16654)</samp>](https://github.com/vitest-dev/vitest/commit/166544e39)
- Show aria tree on locator element error - by [@hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#10257](https://github.com/vitest-dev/vitest/issues/10257) [<samp>(04f04)</samp>](https://github.com/vitest-dev/vitest/commit/04f04cdd1)
- Support custom `kind` in `page.mark` - by [@AriPerkkio](https://github.com/AriPerkkio) in [#10302](https://github.com/vitest-dev/vitest/issues/10302) [<samp>(053e8)</samp>](https://github.com/vitest-dev/vitest/commit/053e8b0d1)
- Live update trace view on watch UI - by [@hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#10296](https://github.com/vitest-dev/vitest/issues/10296) [<samp>(78c11)</samp>](https://github.com/vitest-dev/vitest/commit/78c1169cf)
- Add `context.mark` for custom command tracing - by [@AriPerkkio](https://github.com/AriPerkkio) in [#10329](https://github.com/vitest-dev/vitest/issues/10329) [<samp>(aa514)</samp>](https://github.com/vitest-dev/vitest/commit/aa5140e76)
- Show trace view steps in editor panel - by [@hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#10404](https://github.com/vitest-dev/vitest/issues/10404) [<samp>(8c4b6)</samp>](https://github.com/vitest-dev/vitest/commit/8c4b6da02)
- Display nested mark trace in UI - by [@hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenAI Codex** in [#10437](https://github.com/vitest-dev/vitest/issues/10437) [<samp>(86ffc)</samp>](https://github.com/vitest-dev/vitest/commit/86ffc8ac6)
- **cli**:
- Add `--repeats` CLI option - by [@todor-a](https://github.com/todor-a) in [#10504](https://github.com/vitest-dev/vitest/issues/10504) [<samp>(ee48b)</samp>](https://github.com/vitest-dev/vitest/commit/ee48b959e)
- Support -p shorthand for --project - by [@sheremet-va](https://github.com/sheremet-va) in [#10826](https://github.com/vitest-dev/vitest/issues/10826) [<samp>(1addd)</samp>](https://github.com/vitest-dev/vitest/commit/1adddde12)
- **coverage**:
- V8 to track `node:child_process` and `node:worker_threads` contexts - by [@AriPerkkio](https://github.com/AriPerkkio) in [#9976](https://github.com/vitest-dev/vitest/issues/9976) [<samp>(9baa5)</samp>](https://github.com/vitest-dev/vitest/commit/9baa5faba)
- `thresholds.autoUpdate` to receive previous threshold as argument - by [@wouterkroes](https://github.com/wouterkroes) in [#10495](https://github.com/vitest-dev/vitest/issues/10495) [<samp>(04f81)</samp>](https://github.com/vitest-dev/vitest/commit/04f81854f)
- Switch to `@vitest/istanbuljs` packages - by [@AriPerkkio](https://github.com/AriPerkkio) in [#11053](https://github.com/vitest-dev/vitest/issues/11053) [<samp>(5f6a5)</samp>](https://github.com/vitest-dev/vitest/commit/5f6a5e84a)
- **junit-reporter**:
- Add jest-junit-compatible naming options - by [@neumaennl](https://github.com/neumaennl), **neumaennl**, **Martin Neumann** and **Copilot** in [#10189](https://github.com/vitest-dev/vitest/issues/10189) [<samp>(27393)</samp>](https://github.com/vitest-dev/vitest/commit/273933440)
- **reporter**:
- Support html reporter single file output - by [@hi-ogawa](https://github.com/hi-ogawa), **OpenAI Codex** and **Claude Opus 5 (1M context)** in [#10235](https://github.com/vitest-dev/vitest/issues/10235) [<samp>(f757e)</samp>](https://github.com/vitest-dev/vitest/commit/f757ec5e6)
- Add custom GitHub Actions summary title - by [@heyJonBray](https://github.com/heyJonBray) and [@macarie](https://github.com/macarie) in [#10891](https://github.com/vitest-dev/vitest/issues/10891) [<samp>(4363c)</samp>](https://github.com/vitest-dev/vitest/commit/4363cdb49)
- **ui**:
- Highlight editor source locations - by [@sheremet-va](https://github.com/sheremet-va), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#11004](https://github.com/vitest-dev/vitest/issues/11004) [<samp>(bce2d)</samp>](https://github.com/vitest-dev/vitest/commit/bce2d3c2f)
- Navigate trace steps with keyboard and remove indirect editor focus - by [@sheremet-va](https://github.com/sheremet-va), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#11005](https://github.com/vitest-dev/vitest/issues/11005) [<samp>(6816f)</samp>](https://github.com/vitest-dev/vitest/commit/6816f3b17)
- Persist trace view selection in URL - by [@hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#10981](https://github.com/vitest-dev/vitest/issues/10981) [<samp>(3069e)</samp>](https://github.com/vitest-dev/vitest/commit/3069e5927)
- Toggle trace target highlight - by [@hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#11049](https://github.com/vitest-dev/vitest/issues/11049) [<samp>(cd63e)</samp>](https://github.com/vitest-dev/vitest/commit/cd63e9e43)
- Add link to open playwright trace - by [@hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#11059](https://github.com/vitest-dev/vitest/issues/11059) [<samp>(58f02)</samp>](https://github.com/vitest-dev/vitest/commit/58f02ae36)
- **vitest**:
- Create `vi.when()` - by [@macarie](https://github.com/macarie) in [#10174](https://github.com/vitest-dev/vitest/issues/10174) [<samp>(3900e)</samp>](https://github.com/vitest-dev/vitest/commit/3900e6349)
- **vm**:
- Support `require(esm)` in vm pools - by [@sheremet-va](https://github.com/sheremet-va) in [#10829](https://github.com/vitest-dev/vitest/issues/10829) [<samp>(01298)</samp>](https://github.com/vitest-dev/vitest/commit/01298e5b3)
##### 🐞 Bug Fixes
- Global `sequence.concurrent: true` with top-level `test(..., { concurrent: false })` + depreacte `sequential` test API and options - by [@hi-ogawa](https://github.com/hi-ogawa), **OpenAI Codex** and [@sheremet-va](https://github.com/sheremet-va) in [#10194](https://github.com/vitest-dev/vitest/issues/10194) [<samp>(9387f)</samp>](https://github.com/vitest-dev/vitest/commit/9387f57cf)
- Test `tags` options should overwrite inherited suite options + inherit suite options in `task` API - by [@hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#10216](https://github.com/vitest-dev/vitest/issues/10216) [<samp>(457db)</samp>](https://github.com/vitest-dev/vitest/commit/457db297b)
- Udpate optimize deps config - by [@sheremet-va](https://github.com/sheremet-va) in [#10223](https://github.com/vitest-dev/vitest/issues/10223) [<samp>(95dc6)</samp>](https://github.com/vitest-dev/vitest/commit/95dc6e3f1)
- Shell injection safety via github.ref\_name in publish workflow - by [@lloyd-c137](https://github.com/lloyd-c137) and **lloyd-c137** in [#10327](https://github.com/vitest-dev/vitest/issues/10327) [<samp>(dd020)</samp>](https://github.com/vitest-dev/vitest/commit/dd0207f4d)
- Make `attachmentsDir` root only config - by [@hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#10334](https://github.com/vitest-dev/vitest/issues/10334) [<samp>(fab1b)</samp>](https://github.com/vitest-dev/vitest/commit/fab1b6020)
- Apply cjs interop for truthy `__esModule` - by [@hi-ogawa](https://github.com/hi-ogawa) in [#10363](https://github.com/vitest-dev/vitest/issues/10363) [<samp>(2b135)</samp>](https://github.com/vitest-dev/vitest/commit/2b13547a5)
- Preserve `vi.defineHelper` callsite for async error stack - by [@macayu17](https://github.com/macayu17) and [@hi-ogawa](https://github.com/hi-ogawa) in [#10415](https://github.com/vitest-dev/vitest/issues/10415) [<samp>(ac697)</samp>](https://github.com/vitest-dev/vitest/commit/ac6971ca2)
- Respect `disableConsoleIntercept` in browser mode - by [@Copilot](https://github.com/Copilot), **Hiroshi Ogawa**, [@hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#10391](https://github.com/vitest-dev/vitest/issues/10391) [<samp>(66110)</samp>](https://github.com/vitest-dev/vitest/commit/66110d271)
- ForceRerunTriggers uses directory globs against files - by [@Patrick-Clausen](https://github.com/Patrick-Clausen) and **Patrick Clausen** in [#10421](https://github.com/vitest-dev/vitest/issues/10421) and [#10420](https://github.com/vitest-dev/vitest/issues/10420) [<samp>(4fee2)</samp>](https://github.com/vitest-dev/vitest/commit/4fee2e303)
- Unify typechecking and ast collection - by [@sheremet-va](https://github.com/sheremet-va) in [#10449](https://github.com/vitest-dev/vitest/issues/10449) [<samp>(af993)</samp>](https://github.com/vitest-dev/vitest/commit/af993b66b)
- Don't print typecheck warning more than once - by [@sheremet-va](https://github.com/sheremet-va) in [#10461](https://github.com/vitest-dev/vitest/issues/10461) [<samp>(15275)</samp>](https://github.com/vitest-dev/vitest/commit/152750ec0)
- Correct collumn when parsing tests - by [@sheremet-va](https://github.com/sheremet-va) in [#10467](https://github.com/vitest-dev/vitest/issues/10467) [<samp>(7c2fc)</samp>](https://github.com/vitest-dev/vitest/commit/7c2fc133e)
- Fix mixed stdout/stderr log timestamps in `onUserConsoleLog` - by [@Copilot](https://github.com/Copilot), **Hiroshi Ogawa**, [@hi-ogawa](https://github.com/hi-ogawa) and [@sheremet-va](https://github.com/sheremet-va) in [#10308](https://github.com/vitest-dev/vitest/issues/10308) [<samp>(62756)</samp>](https://github.com/vitest-dev/vitest/commit/627565475)
- Fix `importOriginal` with optimizer and query import - by [@davidxharris](https://github.com/davidxharris), **David Harris**, [@hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenAI Codex** in [#10469](https://github.com/vitest-dev/vitest/issues/10469) [<samp>(6a3bb)</samp>](https://github.com/vitest-dev/vitest/commit/6a3bb02e0)
- Correct transform time calculation in merged report - by [@potatomatoooo](https://github.com/potatomatoooo) and [@hi-ogawa](https://github.com/hi-ogawa) in [#10570](https://github.com/vitest-dev/vitest/issues/10570) and [#10578](https://github.com/vitest-dev/vitest/issues/10578) [<samp>(b7897)</samp>](https://github.com/vitest-dev/vitest/commit/b78972892)
- Fix `setImmediate` await in detect-async-leak - by [@hi-ogawa](https://github.com/hi-ogawa) and **Hiroshi Ogawa** in [#10608](https://github.com/vitest-dev/vitest/issues/10608) [<samp>(dd62b)</samp>](https://github.com/vitest-dev/vitest/commit/dd62b84e0)
- Fix per-project `sequence` config - by [@hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#10659](https://github.com/vitest-dev/vitest/issues/10659) [<samp>(40cdc)</samp>](https://github.com/vitest-dev/vitest/commit/40cdc7fd6)
- Add handshake timeout to iframe communication - by [@sheremet-va](https://github.com/sheremet-va) in [#10656](https://github.com/vitest-dev/vitest/issues/10656) [<samp>(3545f)</samp>](https://github.com/vitest-dev/vitest/commit/3545fe78f)
- Don't print column in test names when `includeTaskLocation` is enabled - by [@sheremet-va](https://github.com/sheremet-va) in [#10681](https://github.com/vitest-dev/vitest/issues/10681) [<samp>(bd9cc)</samp>](https://github.com/vitest-dev/vitest/commit/bd9cc9d8d)
- Disable server HMR before plugins read it in their config hook - by [@sheremet-va](https://github.com/sheremet-va) in [#10731](https://github.com/vitest-dev/vitest/issues/10731) [<samp>(e060b)</samp>](https://github.com/vitest-dev/vitest/commit/e060b8fa9)
- Close the pool before the Vite servers - by [@sheremet-va](https://github.com/sheremet-va) in [#10725](https://github.com/vitest-dev/vitest/issues/10725) [<samp>(96fa6)</samp>](https://github.com/vitest-dev/vitest/commit/96fa6d73d)
- Remove listeners in the typecheck worker's `off` - by [@sheremet-va](https://github.com/sheremet-va) in [#10741](https://github.com/vitest-dev/vitest/issues/10741) [<samp>(d758b)</samp>](https://github.com/vitest-dev/vitest/commit/d758b4755)
- Keep per-file isolation in vm pools when maxWorkers is 1 - by [@sheremet-va](https://github.com/sheremet-va) in [#10743](https://github.com/vitest-dev/vitest/issues/10743) [<samp>(83ab9)</samp>](https://github.com/vitest-dev/vitest/commit/83ab9a44f)
- Node.js 20 deprecation warning for `ci.yml` - by [@hirehamir](https://github.com/hirehamir) in [#10759](https://github.com/vitest-dev/vitest/issues/10759) [<samp>(2127f)</samp>](https://github.com/vitest-dev/vitest/commit/2127fa6ce)
- Prevent node builtins double prefix - by [@malobre](https://github.com/malobre) in [#10630](https://github.com/vitest-dev/vitest/issues/10630) and [#10767](https://github.com/vitest-dev/vitest/issues/10767) [<samp>(22d35)</samp>](https://github.com/vitest-dev/vitest/commit/22d353a80)
- Set non-zero exit code when teardown throws during close - by [@zakcutner](https://github.com/zakcutner) and [@AriPerkkio](https://github.com/AriPerkkio) in [#10794](https://github.com/vitest-dev/vitest/issues/10794) [<samp>(22116)</samp>](https://github.com/vitest-dev/vitest/commit/22116feb7)
- Don't race the typechecker spawn grace period on windows - by [@xevrion](https://github.com/xevrion) in [#10814](https://github.com/vitest-dev/vitest/issues/10814) [<samp>(b19e5)</samp>](https://github.com/vitest-dev/vitest/commit/b19e5ece9)
- Coalesce concurrent watch-mode restarts, deflake the pool stderr fixture - by [@sheremet-va](https://github.com/sheremet-va) in [#10822](https://github.com/vitest-dev/vitest/issues/10822) [<samp>(a31f8)</samp>](https://github.com/vitest-dev/vitest/commit/a31f86af7)
- Prevent `vitest --typecheck` from reporting a false success when the `tsc` process crashes - by [@hitenkalda](https://github.com/hitenkalda) and **Hiten Kalda** in [#10705](https://github.com/vitest-dev/vitest/issues/10705) [<samp>(a1b05)</samp>](https://github.com/vitest-dev/vitest/commit/a1b0565c9)
- Collect in-source tests when the module is cached - by [@koutaro-masaki](https://github.com/koutaro-masaki) in [#10577](https://github.com/vitest-dev/vitest/issues/10577) and [#10589](https://github.com/vitest-dev/vitest/issues/10589) [<samp>(a7bf2)</samp>](https://github.com/vitest-dev/vitest/commit/a7bf2b2c8)
- Swap replace() arguments so timeout error stack shows the real message - by [@lazerg](https://github.com/lazerg) in [#10875](https://github.com/vitest-dev/vitest/issues/10875) [<samp>(aba0f)</samp>](https://github.com/vitest-dev/vitest/commit/aba0f9b7b)
- Stale mock metadata breaks automocking with isolate:false - by [@kade-robertson](https://github.com/kade-robertson) in [#10145](https://github.com/vitest-dev/vitest/issues/10145) and [#10541](https://github.com/vitest-dev/vitest/issues/10541) [<samp>(8e210)</samp>](https://github.com/vitest-dev/vitest/commit/8e2108dda)
- Don't lose worker output on teardown, deflake timing-sensitive tests - by [@sheremet-va](https://github.com/sheremet-va) in [#10842](https://github.com/vitest-dev/vitest/issues/10842) [<samp>(1216b)</samp>](https://github.com/vitest-dev/vitest/commit/1216b5af9)
- Revive global concurrency limit for test lifecycle - by [@hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa**, **OpenCode (gpt-5.6-sol)** and [@sheremet-va](https://github.com/sheremet-va) in [#10928](https://github.com/vitest-dev/vitest/issues/10928) [<samp>(cf917)</samp>](https://github.com/vitest-dev/vitest/commit/cf9176bfc)
- Own the post-restart rerun, keep `process.exit` disabled in workers - by [@sheremet-va](https://github.com/sheremet-va) in [#10963](https://github.com/vitest-dev/vitest/issues/10963) [<samp>(5e69a)</samp>](https://github.com/vitest-dev/vitest/commit/5e69aba65)
- Preserve correct root during resolve config - by [@AriPerkkio](https://github.com/AriPerkkio) and [@sheremet-va](https://github.com/sheremet-va) in [#10909](https://github.com/vitest-dev/vitest/issues/10909) [<samp>(210ba)</samp>](https://github.com/vitest-dev/vitest/commit/210ba00cb)
- Combine multiple --project filters correctly - by [@sheremet-va](https://github.com/sheremet-va) in [#10988](https://github.com/vitest-dev/vitest/issues/10988) [<samp>(66c1c)</samp>](https://github.com/vitest-dev/vitest/commit/66c1cbb53)
- Fix `recordArtifact` location with `vi.defineHelper` - by [@hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#11047](https://github.com/vitest-dev/vitest/issues/11047) [<samp>(c2186)</samp>](https://github.com/vitest-dev/vitest/commit/c21865dfd)
- Invalidate resolved setup files - by [@sheremet-va](https://github.com/sheremet-va) in [#11073](https://github.com/vitest-dev/vitest/issues/11073) and [#11081](https://github.com/vitest-dev/vitest/issues/11081) [<samp>(488c0)</samp>](https://github.com/vitest-dev/vitest/commit/488c04680)
- Accept awaited value in vi.when thenResolve - by [@sheremet-va](https://github.com/sheremet-va) in [#11084](https://github.com/vitest-dev/vitest/issues/11084) [<samp>(c10a1)</samp>](https://github.com/vitest-dev/vitest/commit/c10a12900)
- Ignore computed member calls in static collection - by [@sheremet-va](https://github.com/sheremet-va) in [#11085](https://github.com/vitest-dev/vitest/issues/11085) [<samp>(130f7)</samp>](https://github.com/vitest-dev/vitest/commit/130f79b8b)
- Don't duplicte `oxc.target` if user provides a custom array - by [@sheremet-va](https://github.com/sheremet-va) in [#11095](https://github.com/vitest-dev/vitest/issues/11095) [<samp>(848d7)</samp>](https://github.com/vitest-dev/vitest/commit/848d7243e)
- Propagate --maxWorkers to projects - by [@Gaurav1112](https://github.com/Gaurav1112) in [#11102](https://github.com/vitest-dev/vitest/issues/11102) [<samp>(2122f)</samp>](https://github.com/vitest-dev/vitest/commit/2122ffdfb)
- Apply queued mocks from doMock() in queue order - by [@juliandescottes](https://github.com/juliandescottes) and **Claude Opus 5 (1M context)** in [#10706](https://github.com/vitest-dev/vitest/issues/10706) and [#11127](https://github.com/vitest-dev/vitest/issues/11127) [<samp>(f08ce)</samp>](https://github.com/vitest-dev/vitest/commit/f08ce4b71)
- Add a warning if inline project has duplicate plugins due to unexpected `extends: true` - by [@sheremet-va](https://github.com/sheremet-va) in [#11120](https://github.com/vitest-dev/vitest/issues/11120) [<samp>(584cf)</samp>](https://github.com/vitest-dev/vitest/commit/584cf3084)
- Treat test.describe as a suite during static collection - by [@sheremet-va](https://github.com/sheremet-va) in [#11128](https://github.com/vitest-dev/vitest/issues/11128) [<samp>(d46a7)</samp>](https://github.com/vitest-dev/vitest/commit/d46a74722)
- **browser**:
- Fix trace highlight of shadow dom on webdriverio - by [@hi-ogawa](https://github.com/hi-ogawa) in [#10227](https://github.com/vitest-dev/vitest/issues/10227) [<samp>(b01af)</samp>](https://github.com/vitest-dev/vitest/commit/b01afd26c)
- Simplify orchestrator otel carrier - by [@hi-ogawa](https://github.com/hi-ogawa) in [#10283](https://github.com/vitest-dev/vitest/issues/10283) [<samp>(3514f)</samp>](https://github.com/vitest-dev/vitest/commit/3514f9fa1)
- Remove orphaned Playwright route when same module is mocked via multiple ids - by [@Zelys-DFKH](https://github.com/Zelys-DFKH) in [#9957](https://github.com/vitest-dev/vitest/issues/9957) and [#10267](https://github.com/vitest-dev/vitest/issues/10267) [<samp>(41db6)</samp>](https://github.com/vitest-dev/vitest/commit/41db6ce28)
- Skip `wrapDynamicImport` transform on ssr environment - by [@hi-ogawa](https://github.com/hi-ogawa) in [#10355](https://github.com/vitest-dev/vitest/issues/10355) [<samp>(d3c96)</samp>](https://github.com/vitest-dev/vitest/commit/d3c964bfc)
- Fix stale source map on watch mode - by [@hi-ogawa](https://github.com/hi-ogawa) in [#10389](https://github.com/vitest-dev/vitest/issues/10389) [<samp>(6d772)</samp>](https://github.com/vitest-dev/vitest/commit/6d772c800)
- Escape inline orchestrator scripts - by [@hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#10412](https://github.com/vitest-dev/vitest/issues/10412) [<samp>(c22cf)</samp>](https://github.com/vitest-dev/vitest/commit/c22cfb656)
- Disable client `cdp` API when `allowWrite/allowExec: false` - by [@hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#10444](https://github.com/vitest-dev/vitest/issues/10444) [<samp>(63e3b)</samp>](https://github.com/vitest-dev/vitest/commit/63e3b2eee)
- Wait for orchestrator readiness before resolving browser sessions - by [@soconnor-seeq](https://github.com/soconnor-seeq) in [#10397](https://github.com/vitest-dev/vitest/issues/10397) [<samp>(fe5ed)</samp>](https://github.com/vitest-dev/vitest/commit/fe5ed6bc7)
- Wait for iframe tester readiness before preparing - by [@soconnor-seeq](https://github.com/soconnor-seeq) in [#10497](https://github.com/vitest-dev/vitest/issues/10497) [<samp>(f2655)</samp>](https://github.com/vitest-dev/vitest/commit/f26552c63)
- Encode iframeId in tester iframe URL - by [@Pduhard](https://github.com/Pduhard), **Pduhard** and **Claude Opus 5 (1M context)** in [#10520](https://github.com/vitest-dev/vitest/issues/10520) and [#10521](https://github.com/vitest-dev/vitest/issues/10521) [<samp>(c8bf1)</samp>](https://github.com/vitest-dev/vitest/commit/c8bf19f66)
- Always derive a positive locator action timeout - by [@sheremet-va](https://github.com/sheremet-va) in [#10626](https://github.com/vitest-dev/vitest/issues/10626) [<samp>(5b864)</samp>](https://github.com/vitest-dev/vitest/commit/5b8642120)
- Resize the browser ui only if it's not headless - by [@sheremet-va](https://github.com/sheremet-va) in [#10662](https://github.com/vitest-dev/vitest/issues/10662) [<samp>(b5c61)</samp>](https://github.com/vitest-dev/vitest/commit/b5c613051)
- Check fs access in builtin commands - by [@hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#10674](https://github.com/vitest-dev/vitest/issues/10674) [<samp>(33f96)</samp>](https://github.com/vitest-dev/vitest/commit/33f96a145)
- Preserve pre-transform request defaults - by [@sheremet-va](https://github.com/sheremet-va) in [#10748](https://github.com/vitest-dev/vitest/issues/10748) [<samp>(b6060)</samp>](https://github.com/vitest-dev/vitest/commit/b60605ca7)
- Fix error stacktrace location off-by-one - by [@hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#10724](https://github.com/vitest-dev/vitest/issues/10724) [<samp>(62b8d)</samp>](https://github.com/vitest-dev/vitest/commit/62b8d3b36)
- Inlined awaited import should not trigger syntax error after transform - by [@smeng9](https://github.com/smeng9), **Shaoyu Meng** and **Claude Opus 5 (1M context)** in [#10784](https://github.com/vitest-dev/vitest/issues/10784) [<samp>(51acd)</samp>](https://github.com/vitest-dev/vitest/commit/51acd5778)
- Mock window\.print to avoid hanging - by [@aaravjaichand](https://github.com/aaravjaichand) in [#7375](https://github.com/vitest-dev/vitest/issues/7375) and [#10798](https://github.com/vitest-dev/vitest/issues/10798) [<samp>(66d95)</samp>](https://github.com/vitest-dev/vitest/commit/66d95af84)
- Ignore channel events in a tester opened as a top-level window - by [@simshanith](https://github.com/simshanith) in [#9379](https://github.com/vitest-dev/vitest/issues/9379) and [#9381](https://github.com/vitest-dev/vitest/issues/9381) [<samp>(46a3c)</samp>](https://github.com/vitest-dev/vitest/commit/46a3cf750)
- Resolve `connectTimeout` from the project config - by [@lazerg](https://github.com/lazerg) in [#10879](https://github.com/vitest-dev/vitest/issues/10879) and [#10880](https://github.com/vitest-dev/vitest/issues/10880) [<samp>(62c79)</samp>](https://github.com/vitest-dev/vitest/commit/62c795d63)
- Prebundle vite module runner with vitest - by [@lebovvskii](https://github.com/lebovvskii) and [@sheremet-va](https://github.com/sheremet-va) in [#10836](https://github.com/vitest-dev/vitest/issues/10836) and [#10856](https://github.com/vitest-dev/vitest/issues/10856) [<samp>(37c24)</samp>](https://github.com/vitest-dev/vitest/commit/37c240158)
- Restore dependency reload warning - by [@hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#10913](https://github.com/vitest-dev/vitest/issues/10913) [<samp>(90d69)</samp>](https://github.com/vitest-dev/vitest/commit/90d696d44)
- Configure internal optimizer dependencies - by [@hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#10915](https://github.com/vitest-dev/vitest/issues/10915) [<samp>(a72f4)</samp>](https://github.com/vitest-dev/vitest/commit/a72f46eac)
- Trigger playwright/chromium gc on lower disk availability - by [@hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#10912](https://github.com/vitest-dev/vitest/issues/10912) [<samp>(032d3)</samp>](https://github.com/vitest-dev/vitest/commit/032d31892)
- Disallow filter-only options in getBy\* locators - by **Arjun** in [#10295](https://github.com/vitest-dev/vitest/issues/10295) and [#10933](https://github.com/vitest-dev/vitest/issues/10933) [<samp>(9b4df)</samp>](https://github.com/vitest-dev/vitest/commit/9b4df4b05)
- Fail instead of hanging when the browser stops responding - by [@sheremet-va](https://github.com/sheremet-va) in [#10956](https://github.com/vitest-dev/vitest/issues/10956) [<samp>(c496c)</samp>](https://github.com/vitest-dev/vitest/commit/c496c2e33)
- Exit gracefully when the browser disconnects during cancellation - by [@sheremet-va](https://github.com/sheremet-va) in [#10962](https://github.com/vitest-dev/vitest/issues/10962) [<samp>(67e84)</samp>](https://github.com/vitest-dev/vitest/commit/67e848564)
- Don't redirect vitest in client environment - by [@sheremet-va](https://github.com/sheremet-va) in [#10975](https://github.com/vitest-dev/vitest/issues/10975) [<samp>(aeb67)</samp>](https://github.com/vitest-dev/vitest/commit/aeb672095)
- Don't hang when `ui: true` in projects - by [@AriPerkkio](https://github.com/AriPerkkio) in [#10994](https://github.com/vitest-dev/vitest/issues/10994) [<samp>(9f710)</samp>](https://github.com/vitest-dev/vitest/commit/9f710d304)
- Preserve trace popover state - by [@liuluochen6-af](https://github.com/liuluochen6-af), **Hiroshi Ogawa**, **OpenCode (gpt-5.6-sol)** and [@hi-ogawa](https://github.com/hi-ogawa) in [#10906](https://github.com/vitest-dev/vitest/issues/10906) and [#11021](https://github.com/vitest-dev/vitest/issues/11021) [<samp>(1bbc2)</samp>](https://github.com/vitest-dev/vitest/commit/1bbc278c2)
- Report the action error when a task times out - by [@sheremet-va](https://github.com/sheremet-va) in [#11101](https://github.com/vitest-dev/vitest/issues/11101) [<samp>(dc10f)</samp>](https://github.com/vitest-dev/vitest/commit/dc10f5f8f)
- **cache**:
- Improve `fsModuleCache` resiliency during external modifications - by [@jszumski](https://github.com/jszumski) in [#10869](https://github.com/vitest-dev/vitest/issues/10869) [<samp>(5eb35)</samp>](https://github.com/vitest-dev/vitest/commit/5eb3570e8)
- **cli**:
- Respect `FORCE_COLOR` over agent detection - by [@dokson](https://github.com/dokson) in [#10272](https://github.com/vitest-dev/vitest/issues/10272) [<samp>(7e66b)</samp>](https://github.com/vitest-dev/vitest/commit/7e66bc726)
- Exit on `CTRL+c` even when `globalSetup` runs blocked code - by [@AriPerkkio](https://github.com/AriPerkkio) in [#10863](https://github.com/vitest-dev/vitest/issues/10863) [<samp>(d568f)</samp>](https://github.com/vitest-dev/vitest/commit/d568f8ce3)
- **coverage**:
- `exclude` to not inherit negation globs from `test.include` - by [@AriPerkkio](https://github.com/AriPerkkio) in [#10299](https://github.com/vitest-dev/vitest/issues/10299) [<samp>(28685)</samp>](https://github.com/vitest-dev/vitest/commit/286851ea2)
- Avoid matching sibling project roots - by [@innoprej](https://github.com/innoprej), **Shin JaeHee** and [@AriPerkkio](https://github.com/AriPerkkio) in [#10311](https://github.com/vitest-dev/vitest/issues/10311) [<samp>(e30dd)</samp>](https://github.com/vitest-dev/vitest/commit/e30dd9cf6)
- Non-awaited module imports cause wrong offsets - by [@AriPerkkio](https://github.com/AriPerkkio) in [#10643](https://github.com/vitest-dev/vitest/issues/10643) [<samp>(c4090)</samp>](https://github.com/vitest-dev/vitest/commit/c40901479)
- Fail fast when `coverage.reportsDirectory` conflicts between concurrent runs - by [@jgamaraalv](https://github.com/jgamaraalv) and [@AriPerkkio](https://github.com/AriPerkkio) in [#10466](https://github.com/vitest-dev/vitest/issues/10466) [<samp>(833f0)</samp>](https://github.com/vitest-dev/vitest/commit/833f0936c)
- V8 to ignore Vite SSR's generated import bindings - by [@AriPerkkio](https://github.com/AriPerkkio) in [#11023](https://github.com/vitest-dev/vitest/issues/11023) [<samp>(c6174)</samp>](https://github.com/vitest-dev/vitest/commit/c6174a6cf)
- Prevent crash on `/@fs/` prepended virtual files - by [@AriPerkkio](https://github.com/AriPerkkio) in [#11119](https://github.com/vitest-dev/vitest/issues/11119) [<samp>(c4473)</samp>](https://github.com/vitest-dev/vitest/commit/c4473e48e)
- **deps**:
- Update ivya to fix empty aria tree snapshot - by [@hi-ogawa](https://github.com/hi-ogawa) in [#10218](https://github.com/vitest-dev/vitest/issues/10218) [<samp>(f7822)</samp>](https://github.com/vitest-dev/vitest/commit/f7822ebf6)
- Update fake-timers to 15.3.2. support `toNotFake` - by [@BPScott](https://github.com/BPScott), [@hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#10043](https://github.com/vitest-dev/vitest/issues/10043) [<samp>(bbf2f)</samp>](https://github.com/vitest-dev/vitest/commit/bbf2f0df3)
- Update all non-major dependencies - by [@sheremet-va](https://github.com/sheremet-va) in [#9958](https://github.com/vitest-dev/vitest/issues/9958) [<samp>(7faa7)</samp>](https://github.com/vitest-dev/vitest/commit/7faa7b04a)
- Update all non-major dependencies - by [@sheremet-va](https://github.com/sheremet-va) in [#10861](https://github.com/vitest-dev/vitest/issues/10861) [<samp>(0188c)</samp>](https://github.com/vitest-dev/vitest/commit/0188c8135)
- Update all non-major dependencies - by [@sheremet-va](https://github.com/sheremet-va) in [#10898](https://github.com/vitest-dev/vitest/issues/10898) [<samp>(61c4b)</samp>](https://github.com/vitest-dev/vitest/commit/61c4b8024)
- Update all non-major dependencies - in [#10966](https://github.com/vitest-dev/vitest/issues/10966) [<samp>(65263)</samp>](https://github.com/vitest-dev/vitest/commit/65263d74e)
- Update all non-major dependencies - in [#11043](https://github.com/vitest-dev/vitest/issues/11043) [<samp>(732df)</samp>](https://github.com/vitest-dev/vitest/commit/732df2c2b)
- **expect**:
- Allow readonly arrays and sets in toBeOneOf - by [@YBJ0000](https://github.com/YBJ0000) in [#10264](https://github.com/vitest-dev/vitest/issues/10264) and [#10374](https://github.com/vitest-dev/vitest/issues/10374) [<samp>(fed11)</samp>](https://github.com/vitest-dev/vitest/commit/fed1125b0)
- Handle nullish toHaveProperty values - by [@liyimil](https://github.com/liyimil) in [#10735](https://github.com/vitest-dev/vitest/issues/10735) and [#10811](https://github.com/vitest-dev/vitest/issues/10811) [<samp>(99e59)</samp>](https://github.com/vitest-dev/vitest/commit/99e596d33)
- **junit**:
- Include unhandled errors in JUnit XML report - by [@gbleu](https://github.com/gbleu) and **Claude Opus 5 (1M context)** in [#10244](https://github.com/vitest-dev/vitest/issues/10244) [<samp>(6f74e)</samp>](https://github.com/vitest-dev/vitest/commit/6f74e5e9d)
- **mocker**:
- Skip hoist transform without ast mock calls - by [@hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#10410](https://github.com/vitest-dev/vitest/issues/10410) [<samp>(0468e)</samp>](https://github.com/vitest-dev/vitest/commit/0468e1572)
- Hoist vi.mock() for vite-plus/test imports - by [@Brooooooklyn](https://github.com/Brooooooklyn) and **Claude Opus 5 (1M context)** in [#10489](https://github.com/vitest-dev/vitest/issues/10489) [<samp>(88376)</samp>](https://github.com/vitest-dev/vitest/commit/8837664a4)
- Restrict redirect mocks to the fs allowlist - by [@sheremet-va](https://github.com/sheremet-va) in [#10972](https://github.com/vitest-dev/vitest/issues/10972) [<samp>(8ff9b)</samp>](https://github.com/vitest-dev/vitest/commit/8ff9b9a9e)
- **pool**:
- Prevent test run hang on worker crash - by [@jaxalo](https://github.com/jaxalo) and [@AriPerkkio](https://github.com/AriPerkkio) in [#10543](https://github.com/vitest-dev/vitest/issues/10543) [<samp>(40878)</samp>](https://github.com/vitest-dev/vitest/commit/4087802b5)
- Improve error message when worker exits unexpectedly - by [@filmaj](https://github.com/filmaj) and [@AriPerkkio](https://github.com/AriPerkkio) in [#10587](https://github.com/vitest-dev/vitest/issues/10587) [<samp>(76139)</samp>](https://github.com/vitest-dev/vitest/commit/76139c5a0)
- Vm pools to respect cgroupsv2 memory limit - by [@milas](https://github.com/milas) in [#10721](https://github.com/vitest-dev/vitest/issues/10721) [<samp>(3923c)</samp>](https://github.com/vitest-dev/vitest/commit/3923cab3d)
- Worker init to handle queued synchronous messages - by [@lazerg](https://github.com/lazerg) and [@AriPerkkio](https://github.com/AriPerkkio) in [#10932](https://github.com/vitest-dev/vitest/issues/10932) [<samp>(76096)</samp>](https://github.com/vitest-dev/vitest/commit/76096c769)
- Report the worker exit instead of a pipe error that raced it - by [@sheremet-va](https://github.com/sheremet-va) in [#10964](https://github.com/vitest-dev/vitest/issues/10964) [<samp>(59a03)</samp>](https://github.com/vitest-dev/vitest/commit/59a037354)
- **reporter**:
- Guard against non-finite slowTestThreshold in summary reporter - by [@OfekDanny](https://github.com/OfekDanny), **Ofek Danny**, **Claude Opus 5 (1M context)** and [@AriPerkkio](https://github.com/AriPerkkio) in [#10202](https://github.com/vitest-dev/vitest/issues/10202) [<samp>(f362f)</samp>](https://github.com/vitest-dev/vitest/commit/f362f96db)
- Fix non-existing import subpath module blob serialization - by [@hi-ogawa](https://github.com/hi-ogawa) in [#10318](https://github.com/vitest-dev/vitest/issues/10318) [<samp>(29cb0)</samp>](https://github.com/vitest-dev/vitest/commit/29cb06b35)
- **reporters**:
- Fix blob file name with label - by [@hi-ogawa](https://github.com/hi-ogawa) in [#10346](https://github.com/vitest-dev/vitest/issues/10346) [<samp>(c5e2e)</samp>](https://github.com/vitest-dev/vitest/commit/c5e2e7530)
- `summary` to intercept logger's streams even when they are not `process.std*` streams - by [@AriPerkkio](https://github.com/AriPerkkio) in [#10340](https://github.com/vitest-dev/vitest/issues/10340) [<samp>(f79e7)</samp>](https://github.com/vitest-dev/vitest/commit/f79e7db90)
- Fix missing `testModules` in `onTestRunEnd` when merging blobs from different root directory test runs - by [@hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#10348](https://github.com/vitest-dev/vitest/issues/10348) [<samp>(745b3)</samp>](https://github.com/vitest-dev/vitest/commit/745b30b64)
- Print parent describe suites when the passed-test list is hidden - by [@ChihebBENCHEIKH1](https://github.com/ChihebBENCHEIKH1), **Chiheb Bencheikh** and [@sheremet-va](https://github.com/sheremet-va) in [#10606](https://github.com/vitest-dev/vitest/issues/10606) and [#10768](https://github.com/vitest-dev/vitest/issues/10768) [<samp>(658af)</samp>](https://github.com/vitest-dev/vitest/commit/658affeb3)
- Display `test.name` in GitHub Actions reporter summary header - by [@macarie](https://github.com/macarie) in [#10887](https://github.com/vitest-dev/vitest/issues/10887) [<samp>(49e24)</samp>](https://github.com/vitest-dev/vitest/commit/49e24fa38)
- **runner**:
- Propagate chainable flags in describe.for - by [@DoriAlagem](https://github.com/DoriAlagem), **Dor Alagem** and [@hi-ogawa](https://github.com/hi-ogawa) in [#10187](https://github.com/vitest-dev/vitest/issues/10187) [<samp>(db678)</samp>](https://github.com/vitest-dev/vitest/commit/db67831d7)
- Limit concurrency per task branch in addition to per leaf callbacks - by [@hi-ogawa](https://github.com/hi-ogawa) in [#10179](https://github.com/vitest-dev/vitest/issues/10179) [<samp>(3112a)</samp>](https://github.com/vitest-dev/vitest/commit/3112abea2)
- Remove AbortSignal listener leak in withCancel - by [@tomohiro86](https://github.com/tomohiro86) and [@AriPerkkio](https://github.com/AriPerkkio) in [#10265](https://github.com/vitest-dev/vitest/issues/10265) [<samp>(ab098)</samp>](https://github.com/vitest-dev/vitest/commit/ab09822a4)
- Don't fail collection when accessing `error.stack` throws - by [@sheremet-va](https://github.com/sheremet-va) in [#10839](https://github.com/vitest-dev/vitest/issues/10839) [<samp>(202e2)</samp>](https://github.com/vitest-dev/vitest/commit/202e27f3d)
- **snapshot**:
- Fail test when snapshot assertion is used with `test.fails` - by [@hi-ogawa](https://github.com/hi-ogawa) in [#10090](https://github.com/vitest-dev/vitest/issues/10090) [<samp>(e1aa7)</samp>](https://github.com/vitest-dev/vitest/commit/e1aa7a60a)
- Treat empty string as valid snapshot - by [@mayrang](https://github.com/mayrang) and [@hi-ogawa](https://github.com/hi-ogawa) in [#10188](https://github.com/vitest-dev/vitest/issues/10188) [<samp>(e145d)</samp>](https://github.com/vitest-dev/vitest/commit/e145d5756)
- Support no-unsafe-eval CSP by evaluating snapshot files on server - by [@hi-ogawa](https://github.com/hi-ogawa) in [#10665](https://github.com/vitest-dev/vitest/issues/10665) [<samp>(667c1)</samp>](https://github.com/vitest-dev/vitest/commit/667c13954)
- Reject when `toMatchFileSnapshot` uses same snapshot file as `toMatchSnapshot` - by [@hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa**, **OpenCode (gpt-5.6-sol)** and [@sheremet-va](https://github.com/sheremet-va) in [#10978](https://github.com/vitest-dev/vitest/issues/10978) [<samp>(17646)</samp>](https://github.com/vitest-dev/vitest/commit/17646ac72)
- **spy**:
- Support private method spy types - by [@cyphercodes](https://github.com/cyphercodes) in [#10172](https://github.com/vitest-dev/vitest/issues/10172) and [#10213](https://github.com/vitest-dev/vitest/issues/10213) [<samp>(628ab)</samp>](https://github.com/vitest-dev/vitest/commit/628ab32f1)
- Point ESM namespace spy error to module mocking docs - by [@ryandiginomad](https://github.com/ryandiginomad) and **Ryan Tang** in [#10707](https://github.com/vitest-dev/vitest/issues/10707) [<samp>(d6cec)</samp>](https://github.com/vitest-dev/vitest/commit/d6ceca9d7)
- **typecheck**:
- Report a checker crash on Windows instead of a spawn failure - by [@sheremet-va](https://github.com/sheremet-va) in [#10907](https://github.com/vitest-dev/vitest/issues/10907) [<samp>(77aac)</samp>](https://github.com/vitest-dev/vitest/commit/77aac87dd)
- **types**:
- Allow `changed` in configuration options - by [@AriPerkkio](https://github.com/AriPerkkio) in [#10651](https://github.com/vitest-dev/vitest/issues/10651) [<samp>(0da12)</samp>](https://github.com/vitest-dev/vitest/commit/0da12aad4)
- **ui**:
- Fix duplicate colored error message - by [@hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#10258](https://github.com/vitest-dev/vitest/issues/10258) [<samp>(035e3)</samp>](https://github.com/vitest-dev/vitest/commit/035e3bb70)
- Fix missing source code in html reporter metadata when merging blobs with different root directory test runs - by [@hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#10338](https://github.com/vitest-dev/vitest/issues/10338) [<samp>(4f7c2)</samp>](https://github.com/vitest-dev/vitest/commit/4f7c2670c)
- Fix module graph in browser mode with --ui - by [@hi-ogawa](https://github.com/hi-ogawa) in [#10386](https://github.com/vitest-dev/vitest/issues/10386) [<samp>(3003c)</samp>](https://github.com/vitest-dev/vitest/commit/3003c4327)
- Render ANSI color codes in editor panel inline error widget - by [@Copilot](https://github.com/Copilot), **Hiroshi Ogawa** and [@hi-ogawa](https://github.com/hi-ogawa) in [#10418](https://github.com/vitest-dev/vitest/issues/10418) [<samp>(766b8)</samp>](https://github.com/vitest-dev/vitest/commit/766b8d2fa)
- Fix code editor error and annotations gadgets layout shifts - by [@hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#10969](https://github.com/vitest-dev/vitest/issues/10969) [<samp>(438ed)</samp>](https://github.com/vitest-dev/vitest/commit/438eda13f)
- Synchronize watch-run UI state on file removal - by [@hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#10941](https://github.com/vitest-dev/vitest/issues/10941) [<samp>(30c21)</samp>](https://github.com/vitest-dev/vitest/commit/30c21e668)
- Require auth for coverage report and all UI subtree requests - by [@sheremet-va](https://github.com/sheremet-va) in [#10971](https://github.com/vitest-dev/vitest/issues/10971) [<samp>(5622f)</samp>](https://github.com/vitest-dev/vitest/commit/5622f0959)
- Improve suite interaction and layout in explorer tree - by [@hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#10970](https://github.com/vitest-dev/vitest/issues/10970) [<samp>(91231)</samp>](https://github.com/vitest-dev/vitest/commit/9123111b3)
- Reveal explorer virtual scroller on resize - by [@hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#10998](https://github.com/vitest-dev/vitest/issues/10998) [<samp>(1f4fc)</samp>](https://github.com/vitest-dev/vitest/commit/1f4fcd363)
- Persist trace step-iframe split pane sizes - by [@hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#11027](https://github.com/vitest-dev/vitest/issues/11027) [<samp>(3cd01)</samp>](https://github.com/vitest-dev/vitest/commit/3cd019a0a)
- Add suite level report view - by [@dvmhmdsd](https://github.com/dvmhmdsd), **Hiroshi Ogawa**, **OpenCode (gpt-5.6-sol)** and [@hi-ogawa](https://github.com/hi-ogawa) in [#11038](https://github.com/vitest-dev/vitest/issues/11038) [<samp>(602d2)</samp>](https://github.com/vitest-dev/vitest/commit/602d215ae)
- Hide running count in static reports - by [@hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#11123](https://github.com/vitest-dev/vitest/issues/11123) [<samp>(73d72)</samp>](https://github.com/vitest-dev/vitest/commit/73d729484)
- **utils**:
- Don't crash on a malformed inline source map - by [@lazerg](https://github.com/lazerg), **Hiroshi Ogawa**, **OpenCode (gpt-5.6-sol)** and [@hi-ogawa](https://github.com/hi-ogawa) in [#10892](https://github.com/vitest-dev/vitest/issues/10892) and [#10893](https://github.com/vitest-dev/vitest/issues/10893) [<samp>(fe790)</samp>](https://github.com/vitest-dev/vitest/commit/fe7906275)
- **vitest**:
- Strip non-serializable functions from inline diff config - by [@DucMinhNe](https://github.com/DucMinhNe) in [#10573](https://github.com/vitest-dev/vitest/issues/10573) [<samp>(5b81a)</samp>](https://github.com/vitest-dev/vitest/commit/5b81a63ff)
- Remove broken "./src/\*" export from package.json - by [@sheremet-va](https://github.com/sheremet-va) in [#10918](https://github.com/vitest-dev/vitest/issues/10918) [<samp>(2e5df)</samp>](https://github.com/vitest-dev/vitest/commit/2e5df7543)
- Render non-Error causes from env setup so the actual diagnostic is not dropped - by [@spokodev](https://github.com/spokodev) in [#10567](https://github.com/vitest-dev/vitest/issues/10567) [<samp>(b298d)</samp>](https://github.com/vitest-dev/vitest/commit/b298df609)
- **vm**:
- Fix external module resolve error with deps optimizer query for encoded URI - by [@SveLil](https://github.com/SveLil) in [#10658](https://github.com/vitest-dev/vitest/issues/10658) [<samp>(90c4e)</samp>](https://github.com/vitest-dev/vitest/commit/90c4ed4cd)
- Stop retaining every finished test file in vm pool workers - by [@sheremet-va](https://github.com/sheremet-va) in [#10854](https://github.com/vitest-dev/vitest/issues/10854) [<samp>(38503)</samp>](https://github.com/vitest-dev/vitest/commit/3850323e2)
- Fall back to compiling from source when a module's code cache is rejected - by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#11031](https://github.com/vitest-dev/vitest/issues/11031) [<samp>(c3ba1)</samp>](https://github.com/vitest-dev/vitest/commit/c3ba16b35)
- Link module graphs one at a time - by [@sheremet-va](https://github.com/sheremet-va) in [#11096](https://github.com/vitest-dev/vitest/issues/11096) [<samp>(3f2dd)</samp>](https://github.com/vitest-dev/vitest/commit/3f2ddc21a)
- **webdriverio**:
- Allow gpu in headless chrome - by [@rotempasharel1](https://github.com/rotempasharel1) in [#10376](https://github.com/vitest-dev/vitest/issues/10376) [<samp>(f310a)</samp>](https://github.com/vitest-dev/vitest/commit/f310abe4e)
- **worker**:
- Bind stdio's early in case overriden - by [@AriPerkkio](https://github.com/AriPerkkio) in [#11020](https://github.com/vitest-dev/vitest/issues/11020) [<samp>(67ef7)</samp>](https://github.com/vitest-dev/vitest/commit/67ef7a19b)
##### 🏎 Performance
- Stringify diff objects only once - by [@sheremet-va](https://github.com/sheremet-va) in [#10276](https://github.com/vitest-dev/vitest/issues/10276) [<samp>(d006a)</samp>](https://github.com/vitest-dev/vitest/commit/d006a6869)
- Improve performance in hot paths - by [@sheremet-va](https://github.com/sheremet-va) in [#10446](https://github.com/vitest-dev/vitest/issues/10446) [<samp>(03faf)</samp>](https://github.com/vitest-dev/vitest/commit/03faf6db6)
- Serve warm modules to workers in one round-trip, enable the node compile cache - by [@sheremet-va](https://github.com/sheremet-va) in [#10708](https://github.com/vitest-dev/vitest/issues/10708) [<samp>(b144a)</samp>](https://github.com/vitest-dev/vitest/commit/b144ab56e)
- Make the Node compile cache opt-in, persist worker caches on teardown - by [@sheremet-va](https://github.com/sheremet-va) in [#10742](https://github.com/vitest-dev/vitest/issues/10742) [<samp>(941bc)</samp>](https://github.com/vitest-dev/vitest/commit/941bc8361)
- Reuse compiled code across vm pool contexts and prewarm the module graph - by [@sheremet-va](https://github.com/sheremet-va) in [#10744](https://github.com/vitest-dev/vitest/issues/10744) [<samp>(d8b04)</samp>](https://github.com/vitest-dev/vitest/commit/d8b040c63)
- Bundle vitest's own dependencies - by [@sheremet-va](https://github.com/sheremet-va) in [#10685](https://github.com/vitest-dev/vitest/issues/10685) [<samp>(c0508)</samp>](https://github.com/vitest-dev/vitest/commit/c050842b6)
- Lowers peak memory usage when using `--changed` on a large graph - by [@jszumski](https://github.com/jszumski) in [#10866](https://github.com/vitest-dev/vitest/issues/10866) [<samp>(9f23f)</samp>](https://github.com/vitest-dev/vitest/commit/9f23f8ec3)
- Initialize trace view in the orchestrator once per worker - by [@sheremet-va](https://github.com/sheremet-va) in [#10984](https://github.com/vitest-dev/vitest/issues/10984) [<samp>(fad26)</samp>](https://github.com/vitest-dev/vitest/commit/fad263fe8)
- **browser**:
- Reduce matching screenshot overhead - by [@kasperpeulen](https://github.com/kasperpeulen) in [#10278](https://github.com/vitest-dev/vitest/issues/10278) [<samp>(511c0)</samp>](https://github.com/vitest-dev/vitest/commit/511c09269)
- Open browser sessions adaptively instead of maxWorkers upfront - by [@sheremet-va](https://github.com/sheremet-va) in [#10726](https://github.com/vitest-dev/vitest/issues/10726) [<samp>(6db8d)</samp>](https://github.com/vitest-dev/vitest/commit/6db8de2e2)
- Cut per-file round trips - by [@sheremet-va](https://github.com/sheremet-va) in [#10730](https://github.com/vitest-dev/vitest/issues/10730) [<samp>(3feef)</samp>](https://github.com/vitest-dev/vitest/commit/3feefd9e2)
- Stop serving framework sourcemaps in headless runs - by [@sheremet-va](https://github.com/sheremet-va) in [#10728](https://github.com/vitest-dev/vitest/issues/10728) [<samp>(6aefb)</samp>](https://github.com/vitest-dev/vitest/commit/6aefb3d91)
- Prewarm the browser while the Vite server starts - by [@sheremet-va](https://github.com/sheremet-va) in [#10727](https://github.com/vitest-dev/vitest/issues/10727) [<samp>(c1767)</samp>](https://github.com/vitest-dev/vitest/commit/c17677a83)
- Pre-bundle the vitest runtime in optimizeDeps - by [@sheremet-va](https://github.com/sheremet-va) in [#10713](https://github.com/vitest-dev/vitest/issues/10713) [<samp>(de631)</samp>](https://github.com/vitest-dev/vitest/commit/de63174f5)
- Serve framework assets as immutable - by [@sheremet-va](https://github.com/sheremet-va) in [#10729](https://github.com/vitest-dev/vitest/issues/10729) [<samp>(7af87)</samp>](https://github.com/vitest-dev/vitest/commit/7af8755ae)
- **cache**:
- Hash the env…
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Un-awaited
resolves/rejects/toMatchFileSnapshotassertions now fail the test with an error pointing at the assertion, instead of printing a warning. The error follows the same format asexpect.poll. Vitest still settles the recorded promises at the end of the test, so a failing un-awaited assertion also reports its own error and doesn't leak an unhandled rejection.Resolves #9089