[pull] master from apify:master#208
Merged
Merged
Conversation
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://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/vitest))
| [`4.0.16` →
`4.1.0`](https://renovatebot.com/diffs/npm/vitest/4.0.16/4.1.0) |

|

|
---
### When Vitest UI server is listening, arbitrary file can be read and
executed
[CVE-2026-47429](https://nvd.nist.gov/vuln/detail/CVE-2026-47429) /
[GHSA-5xrq-8626-4rwp](https://redirect.github.com/advisories/GHSA-5xrq-8626-4rwp)
<details>
<summary>More information</summary>
#### Details
##### Summary
Arbitrary file can be read on Windows when Vitest UI server is
listening, especially when exposed to the network.
##### Impact
Only users that match either of the following conditions are affected:
- explicitly exposes the Vitest UI server to the network (using
`--api.host` or [`api.host` config
option](https://vitest.dev/config/api.html))
- running the Vitest UI or Browser Mode on Windows
##### Details
The API handler for `/__vitest_attachment__` uses the deprecated
`isFileServingAllowed` incorrectly.
https://github.com/vitest-dev/vitest/blob/eb1abf08573032a532015b999ad3501c5e89e3bb/packages/ui/node/index.ts#L77
The function expects the passed value to use `cleanUrl` after the check
before file system related operation.
Because of this, it is possible to bypass the check by `\\?\\..\\`. This
is not possible on Linux as Linux errors if a directory named `?` does
not exist.
A similar problem exists in other places as well.
-
https://github.com/vitest-dev/vitest/blob/eb1abf08573032a532015b999ad3501c5e89e3bb/packages/vitest/src/api/setup.ts#L103-L105
-
https://github.com/vitest-dev/vitest/blob/eb1abf08573032a532015b999ad3501c5e89e3bb/packages/vitest/src/api/setup.ts#L119-L121
-
https://github.com/vitest-dev/vitest/blob/eb1abf08573032a532015b999ad3501c5e89e3bb/packages/browser/src/node/commands/fs.ts#L10-L11
-
https://github.com/vitest-dev/vitest/blob/eb1abf08573032a532015b999ad3501c5e89e3bb/packages/browser/src/node/plugin.ts#L194-L196
-
https://github.com/vitest-dev/vitest/blob/eb1abf08573032a532015b999ad3501c5e89e3bb/packages/browser/src/node/rpc.ts#L115-L121
**That said**, this `isFileServingAllowed` check does not actually
prevent the API to be abused. Since the API has rerun feature and file
write feature, it's possible to run arbitrary script by writing a script
as a test file using `saveTestFile` and running it using `rerun`. This
means exposing the API / Vitest UI is equivalent to giving script
execution access.
On the browser mode side, there're `readFile` / `writeFile` /
`saveSnapshotFile`. So exposing the browser mode is equivalent to giving
file read / write access.
##### PoC
1. Run Vitest UI
2. Get the API token by `curl http://localhost:51204/__vitest__/`
3. Run `curl
"http://localhost:51204/__vitest_attachment__?path=C:\\path\\to\\project\\?\\..\\..\\secret.txt&contentType=text/plain&token=$TOKEN"`
(TOKEN is the API token)
4. curl shows the content of `secret.txt` that is outside the project
directory
##### Mitigations
Vitest now ships two configuration flags,
[`allowWrite`](https://vitest.dev/config/api.html#api-allowwrite) and
[`allowExec`](https://vitest.dev/config/api.html#api-allowexec), that
gate the privileged operations exploited by this vulnerability. Both are
disabled by default whenever the API server is bound to a
non-`localhost` host, ensuring that exposing the server to the network
no longer implicitly grants write or execute capabilities to remote
clients.
When these flags are disabled, the UI also enters a read-only mode:
in-browser code editing and test file execution are turned off, removing
the attack surface that allowed remote code execution. Many Browser Mode
features are also disabled, like attachments, artifacts or snapshots.
See
[`browser.api`](https://vitest.dev/config/browser/api.html#api-allowwrite).
Users who require the full interactive UI on a networked host must
explicitly opt in by setting `allowWrite` and/or `allowExec` to `true`.
#### Severity
- CVSS Score: 9.8 / 10 (Critical)
- Vector String: `CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H`
#### References
-
[https://github.com/vitest-dev/vitest/security/advisories/GHSA-5xrq-8626-4rwp](https://redirect.github.com/vitest-dev/vitest/security/advisories/GHSA-5xrq-8626-4rwp)
-
[https://github.com/vitest-dev/vitest/blob/eb1abf08573032a532015b999ad3501c5e89e3bb/packages/browser/src/node/commands/fs.ts#L10-L11](https://redirect.github.com/vitest-dev/vitest/blob/eb1abf08573032a532015b999ad3501c5e89e3bb/packages/browser/src/node/commands/fs.ts#L10-L11)
-
[https://github.com/vitest-dev/vitest/blob/eb1abf08573032a532015b999ad3501c5e89e3bb/packages/browser/src/node/plugin.ts#L194-L196](https://redirect.github.com/vitest-dev/vitest/blob/eb1abf08573032a532015b999ad3501c5e89e3bb/packages/browser/src/node/plugin.ts#L194-L196)
-
[https://github.com/vitest-dev/vitest/blob/eb1abf08573032a532015b999ad3501c5e89e3bb/packages/browser/src/node/rpc.ts#L115-L121](https://redirect.github.com/vitest-dev/vitest/blob/eb1abf08573032a532015b999ad3501c5e89e3bb/packages/browser/src/node/rpc.ts#L115-L121)
-
[https://github.com/vitest-dev/vitest/blob/eb1abf08573032a532015b999ad3501c5e89e3bb/packages/ui/node/index.ts#L77](https://redirect.github.com/vitest-dev/vitest/blob/eb1abf08573032a532015b999ad3501c5e89e3bb/packages/ui/node/index.ts#L77)
-
[https://github.com/vitest-dev/vitest/blob/eb1abf08573032a532015b999ad3501c5e89e3bb/packages/vitest/src/api/setup.ts#L103-L105](https://redirect.github.com/vitest-dev/vitest/blob/eb1abf08573032a532015b999ad3501c5e89e3bb/packages/vitest/src/api/setup.ts#L103-L105)
-
[https://github.com/vitest-dev/vitest/blob/eb1abf08573032a532015b999ad3501c5e89e3bb/packages/vitest/src/api/setup.ts#L119-L121](https://redirect.github.com/vitest-dev/vitest/blob/eb1abf08573032a532015b999ad3501c5e89e3bb/packages/vitest/src/api/setup.ts#L119-L121)
-
[https://github.com/advisories/GHSA-5xrq-8626-4rwp](https://redirect.github.com/advisories/GHSA-5xrq-8626-4rwp)
This data is provided by the [GitHub Advisory
Database](https://redirect.github.com/advisories/GHSA-5xrq-8626-4rwp)
([CC-BY
4.0](https://redirect.github.com/github/advisory-database/blob/main/LICENSE.md)).
</details>
---
### Release Notes
<details>
<summary>vitest-dev/vitest (vitest)</summary>
###
[`v4.1.0`](https://redirect.github.com/vitest-dev/vitest/releases/tag/v4.1.0)
[Compare
Source](https://redirect.github.com/vitest-dev/vitest/compare/v4.0.18...v4.1.0)
Vitest 4.1 is out!
This release page lists all changes made to the project during the 4.1
beta. To get a review of all the new features, read our [blog
post](https://vitest.dev/blog/vitest-4).
##### 🚀 Features
- Return a disposable from doMock() - by
[@​kirkwaiblinger](https://redirect.github.com/kirkwaiblinger) in
[#​9332](https://redirect.github.com/vitest-dev/vitest/issues/9332)
[<samp>(e3e65)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/e3e659a96)
- Added chai style assertions - by
[@​ronnakamoto](https://redirect.github.com/ronnakamoto) and
[@​sheremet-va](https://redirect.github.com/sheremet-va) in
[#​8842](https://redirect.github.com/vitest-dev/vitest/issues/8842)
[<samp>(841df)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/841df9ac5)
- Update to sinon/fake-timers v15 and add `setTickMode` to timer
controls - by [@​atscott](https://redirect.github.com/atscott)
and [@​sheremet-va](https://redirect.github.com/sheremet-va) in
[#​8726](https://redirect.github.com/vitest-dev/vitest/issues/8726)
[<samp>(4b480)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/4b480aaed)
- Expose matcher types - by
[@​sheremet-va](https://redirect.github.com/sheremet-va) in
[#​9448](https://redirect.github.com/vitest-dev/vitest/issues/9448)
[<samp>(3e4b9)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/3e4b913b1)
- Add `toTestSpecification` to reported tasks - by
[@​sheremet-va](https://redirect.github.com/sheremet-va) in
[#​9464](https://redirect.github.com/vitest-dev/vitest/issues/9464)
[<samp>(1a470)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/1a4705da9)
- Show a warning if `vi.mock` or `vi.hoisted` are declared outside of
top level of the module - by
[@​sheremet-va](https://redirect.github.com/sheremet-va) in
[#​9387](https://redirect.github.com/vitest-dev/vitest/issues/9387)
[<samp>(5db54)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/5db54a468)
- Track and display expectedly failed tests (.fails) in UI and CLI -
by [@​Copilot](https://redirect.github.com/Copilot),
**sheremet-va** and
[@​sheremet-va](https://redirect.github.com/sheremet-va) in
[#​9476](https://redirect.github.com/vitest-dev/vitest/issues/9476)
[<samp>(77d75)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/77d75fd34)
- Support tags - by
[@​sheremet-va](https://redirect.github.com/sheremet-va) in
[#​9478](https://redirect.github.com/vitest-dev/vitest/issues/9478)
[<samp>(de7c8)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/de7c8a521)
- Implement `aroundEach` and `aroundAll` hooks - by
[@​sheremet-va](https://redirect.github.com/sheremet-va) in
[#​9450](https://redirect.github.com/vitest-dev/vitest/issues/9450)
[<samp>(2a8cb)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/2a8cb9dc2)
- Stabilize experimental features - by
[@​sheremet-va](https://redirect.github.com/sheremet-va) in
[#​9529](https://redirect.github.com/vitest-dev/vitest/issues/9529)
[<samp>(b5fd2)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/b5fd2a16a)
- Accept `new` or `all` in `--update` flag - by
[@​sheremet-va](https://redirect.github.com/sheremet-va) in
[#​9543](https://redirect.github.com/vitest-dev/vitest/issues/9543)
[<samp>(a5acf)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/a5acf28a5)
- Support `meta` in test options - by
[@​sheremet-va](https://redirect.github.com/sheremet-va) in
[#​9535](https://redirect.github.com/vitest-dev/vitest/issues/9535)
[<samp>(7d622)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/7d622e3d1)
- Support type inference with a new `test.extend` syntax - by
[@​sheremet-va](https://redirect.github.com/sheremet-va) in
[#​9550](https://redirect.github.com/vitest-dev/vitest/issues/9550)
[<samp>(e5385)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/e53854fcc)
- Support vite 8 beta, fix type issues in the config with different vite
versions - by
[@​sheremet-va](https://redirect.github.com/sheremet-va) in
[#​9587](https://redirect.github.com/vitest-dev/vitest/issues/9587)
[<samp>(99028)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/990281dfd)
- Add assertion helper to hide internal stack traces - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa) and **Claude
Opus 4.6** in
[#​9594](https://redirect.github.com/vitest-dev/vitest/issues/9594)
[<samp>(eeb0a)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/eeb0ae2f8)
- Store failure screenshots using artifacts API - by
[@​macarie](https://redirect.github.com/macarie) in
[#​9588](https://redirect.github.com/vitest-dev/vitest/issues/9588)
[<samp>(24603)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/24603e3c4)
- Allow `vitest list` to statically collect tests instead of running
files to collect them - by
[@​sheremet-va](https://redirect.github.com/sheremet-va) in
[#​9630](https://redirect.github.com/vitest-dev/vitest/issues/9630)
[<samp>(7a8e7)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/7a8e7fc20)
- Add `--detect-async-leaks` - by
[@​AriPerkkio](https://redirect.github.com/AriPerkkio) in
[#​9528](https://redirect.github.com/vitest-dev/vitest/issues/9528)
[<samp>(c594d)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/c594d4af3)
- Implement `mockThrow` and `mockThrowOnce` - by
[@​thor-juhasz](https://redirect.github.com/thor-juhasz) and
[@​sheremet-va](https://redirect.github.com/sheremet-va) in
[#​9512](https://redirect.github.com/vitest-dev/vitest/issues/9512)
[<samp>(61917)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/619179fb7)
- Support `update: "none"` and add docs about snapshots behavior on CI
- by [@​hi-ogawa](https://redirect.github.com/hi-ogawa) in
[#​9700](https://redirect.github.com/vitest-dev/vitest/issues/9700)
[<samp>(05f18)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/05f1854e2)
- Support playwright `launchOptions` with `connectOptions` - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa) in
[#​9702](https://redirect.github.com/vitest-dev/vitest/issues/9702)
[<samp>(f0ff1)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/f0ff1b2a0)
- Add `page/locator.mark` API to enhance playwright trace - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa) in
[#​9652](https://redirect.github.com/vitest-dev/vitest/issues/9652)
[<samp>(d0ee5)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/d0ee546fe)
- **api**:
- Support tests starting or ending with `test` in
`experimental_parseSpecification` - by
[@​jgillick](https://redirect.github.com/jgillick) and **Jeremy
Gillick** in
[#​9235](https://redirect.github.com/vitest-dev/vitest/issues/9235)
[<samp>(2f367)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/2f367fad3)
- Add filters to `createSpecification` - by
[@​sheremet-va](https://redirect.github.com/sheremet-va) in
[#​9336](https://redirect.github.com/vitest-dev/vitest/issues/9336)
[<samp>(c8e6c)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/c8e6c7fbf)
- Expose `runTestFiles` as alternative to `runTestSpecifications` - by
[@​sheremet-va](https://redirect.github.com/sheremet-va) in
[#​9443](https://redirect.github.com/vitest-dev/vitest/issues/9443)
[<samp>(43d76)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/43d761821)
- Add `allowWrite` and `allowExec` options to `api` - by
[@​sheremet-va](https://redirect.github.com/sheremet-va) in
[#​9350](https://redirect.github.com/vitest-dev/vitest/issues/9350)
[<samp>(20e00)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/20e00ef78)
- Allow passing down test cases to `toTestSpecification` - by
[@​sheremet-va](https://redirect.github.com/sheremet-va) in
[#​9627](https://redirect.github.com/vitest-dev/vitest/issues/9627)
[<samp>(6f17d)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/6f17d5ddf)
- **browser**:
- Add `userEvent.wheel` API - by
[@​macarie](https://redirect.github.com/macarie) in
[#​9188](https://redirect.github.com/vitest-dev/vitest/issues/9188)
[<samp>(66080)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/660801979)
- Add `filterNode` option to prettyDOM for filtering browser assertion
error output - by
[@​Copilot](https://redirect.github.com/Copilot), **sheremet-va**
and [@​sheremet-va](https://redirect.github.com/sheremet-va) in
[#​9475](https://redirect.github.com/vitest-dev/vitest/issues/9475)
[<samp>(d3220)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/d3220fcd8)
- Support playwright persistent context - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa), **Claude Opus
4.6** and [@​sheremet-va](https://redirect.github.com/sheremet-va)
in
[#​9229](https://redirect.github.com/vitest-dev/vitest/issues/9229)
[<samp>(f865d)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/f865d2ba4)
- Added `detailsPanelPosition` option and button - by
[@​shairez](https://redirect.github.com/shairez) in
[#​9525](https://redirect.github.com/vitest-dev/vitest/issues/9525)
[<samp>(c8a31)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/c8a31147c)
- Use BlazeDiff instead of pixelmatch - by
[@​macarie](https://redirect.github.com/macarie) in
[#​9514](https://redirect.github.com/vitest-dev/vitest/issues/9514)
[<samp>(30936)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/309362089)
- Add `findElement` and enable strict mode in webdriverio and preview
- by [@​sheremet-va](https://redirect.github.com/sheremet-va) in
[#​9677](https://redirect.github.com/vitest-dev/vitest/issues/9677)
[<samp>(c3f37)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/c3f37721c)
- **cli**:
- Add [@​bomb](https://redirect.github.com/bomb).sh/tab
completions - by
[@​AmirSa12](https://redirect.github.com/AmirSa12) and
[@​sheremet-va](https://redirect.github.com/sheremet-va) in
[#​8639](https://redirect.github.com/vitest-dev/vitest/issues/8639)
[<samp>(200f3)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/200f31704)
- **coverage**:
- Support `ignore start/stop` ignore hints - by
[@​AriPerkkio](https://redirect.github.com/AriPerkkio) in
[#​9204](https://redirect.github.com/vitest-dev/vitest/issues/9204)
[<samp>(e59c9)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/e59c94ba6)
- Add `coverage.changed` option to report only changed files - by
[@​kykim00](https://redirect.github.com/kykim00) and
[@​AriPerkkio](https://redirect.github.com/AriPerkkio) in
[#​9521](https://redirect.github.com/vitest-dev/vitest/issues/9521)
[<samp>(1d939)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/1d9392c67)
- **experimental**:
- Add `onModuleRunner` hook to `worker.init` - by
[@​sheremet-va](https://redirect.github.com/sheremet-va) in
[#​9286](https://redirect.github.com/vitest-dev/vitest/issues/9286)
[<samp>(e977f)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/e977f3deb)
- Option to disable the module runner - by
[@​sheremet-va](https://redirect.github.com/sheremet-va) and
[@​AriPerkkio](https://redirect.github.com/AriPerkkio) in
[#​9210](https://redirect.github.com/vitest-dev/vitest/issues/9210)
[<samp>(9be61)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/9be6121ee)
- Add `importDurations: { limit, print }` options - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa), **Claude Opus
4.6** and [@​sheremet-va](https://redirect.github.com/sheremet-va)
in
[#​9401](https://redirect.github.com/vitest-dev/vitest/issues/9401)
[<samp>(7e10f)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/7e10fb356)
- Add print and fail thresholds for `importDurations` - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa) and **Claude
Opus 4.6** in
[#​9533](https://redirect.github.com/vitest-dev/vitest/issues/9533)
[<samp>(3f7a5)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/3f7a5f8f8)
- **fixtures**:
- Pass down file context to `beforeAll`/`afterAll` - by
[@​sheremet-va](https://redirect.github.com/sheremet-va) in
[#​9572](https://redirect.github.com/vitest-dev/vitest/issues/9572)
[<samp>(c8339)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/c83395f2c)
- **reporters**:
- Add `agent` reporter to reduce ai agent token usage - by
[@​cpojer](https://redirect.github.com/cpojer) in
[#​9779](https://redirect.github.com/vitest-dev/vitest/issues/9779)
[<samp>(3e9e0)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/3e9e096a2)
- **runner**:
- Enhance `retry` options - by
[@​MazenSamehR](https://redirect.github.com/MazenSamehR), **Matan
Shavit**, [@​AriPerkkio](https://redirect.github.com/AriPerkkio)
and [@​sheremet-va](https://redirect.github.com/sheremet-va) in
[#​9370](https://redirect.github.com/vitest-dev/vitest/issues/9370)
[<samp>(9e4cf)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/9e4cfd295)
- **ui**:
- Allow run individual test/suites - by
[@​userquin](https://redirect.github.com/userquin) in
[#​9465](https://redirect.github.com/vitest-dev/vitest/issues/9465)
[<samp>(73b10)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/73b10f1b9)
- Add project filter/sort support - by
[@​userquin](https://redirect.github.com/userquin) in
[#​8689](https://redirect.github.com/vitest-dev/vitest/issues/8689)
[<samp>(0c7ea)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/0c7eaac16)
- Add duration sorting to explorer - by
[@​julianhahn](https://redirect.github.com/julianhahn) and
[@​cursoragent](https://redirect.github.com/cursoragent) in
[#​9603](https://redirect.github.com/vitest-dev/vitest/issues/9603)
[<samp>(209b1)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/209b1b0e1)
- Implement filter for slow tests - by
[@​DerYeger](https://redirect.github.com/DerYeger) and
[@​userquin](https://redirect.github.com/userquin) in
[#​9705](https://redirect.github.com/vitest-dev/vitest/issues/9705)
[<samp>(8880c)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/8880c907a)
- **vitest**:
- Add run summary in GitHub Actions Reporter - by
[@​macarie](https://redirect.github.com/macarie) and **jhnance**
in
[#​9579](https://redirect.github.com/vitest-dev/vitest/issues/9579)
[<samp>(96bfc)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/96bfc8345)
##### 🐞 Bug Fixes
- Deprecate several vitest/\* entry points - by
[@​sheremet-va](https://redirect.github.com/sheremet-va) in
[#​9347](https://redirect.github.com/vitest-dev/vitest/issues/9347)
[<samp>(fd459)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/fd45928be)
- Use `meta.url` in `createRequire` - by
[@​sheremet-va](https://redirect.github.com/sheremet-va) in
[#​9441](https://redirect.github.com/vitest-dev/vitest/issues/9441)
[<samp>(e3422)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/e34225563)
- Preact browser mode init example of render function not async - by
[@​WuMingDao](https://redirect.github.com/WuMingDao) in
[#​9375](https://redirect.github.com/vitest-dev/vitest/issues/9375)
[<samp>(2bea5)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/2bea549c7)
- Deprecate unused types in matcher context - by
[@​sheremet-va](https://redirect.github.com/sheremet-va) in
[#​9449](https://redirect.github.com/vitest-dev/vitest/issues/9449)
[<samp>(20f87)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/20f8753a2)
- Handle `external/noExternal` during `configEnvironment` hook - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa) and **Claude
Opus 4.6** in
[#​9508](https://redirect.github.com/vitest-dev/vitest/issues/9508)
[<samp>(59ea2)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/59ea27c1c)
- Replace default ssr environment runner with Vitest server module
runner - by [@​hi-ogawa](https://redirect.github.com/hi-ogawa)
and **Claude Opus 4.6** in
[#​9506](https://redirect.github.com/vitest-dev/vitest/issues/9506)
[<samp>(cd5db)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/cd5db660c)
- Propagate experimental CLI options to child projects - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa) and **Claude
Opus 4.6** in
[#​9531](https://redirect.github.com/vitest-dev/vitest/issues/9531)
[<samp>(b624f)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/b624fae53)
- Show a warning when `browser.isolate` is used - by
[@​sheremet-va](https://redirect.github.com/sheremet-va) in
[#​9410](https://redirect.github.com/vitest-dev/vitest/issues/9410)
[<samp>(3d48e)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/3d48ebcb9)
- Fix `vi.mock({ spy: true })` node v8 coverage - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa), **hi-ogawa**
and **Claude Opus 4.6** in
[#​9541](https://redirect.github.com/vitest-dev/vitest/issues/9541)
[<samp>(687b6)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/687b633c1)
- Don't show internal ssr handler in errors - by
[@​sheremet-va](https://redirect.github.com/sheremet-va) in
[#​9547](https://redirect.github.com/vitest-dev/vitest/issues/9547)
[<samp>(76c43)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/76c4397b5)
- Close vitest if it failed to start - by
[@​sheremet-va](https://redirect.github.com/sheremet-va) in
[#​9573](https://redirect.github.com/vitest-dev/vitest/issues/9573)
[<samp>(728ba)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/728ba617f)
- Fix ssr environment runner in project - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa) in
[#​9584](https://redirect.github.com/vitest-dev/vitest/issues/9584)
[<samp>(09006)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/090064f97)
- Trim trailing white spaces in code block - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa) in
[#​9591](https://redirect.github.com/vitest-dev/vitest/issues/9591)
[<samp>(f78be)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/f78bea992)
- Support inline snapshot inside test.for/each - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa) in
[#​9590](https://redirect.github.com/vitest-dev/vitest/issues/9590)
[<samp>(615fd)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/615fd521e)
- Apply source maps for external module stack trace - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa) in
[#​9152](https://redirect.github.com/vitest-dev/vitest/issues/9152)
[<samp>(79e20)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/79e20d5a3)
- Remove the `.name` from statically collected test - by
[@​sheremet-va](https://redirect.github.com/sheremet-va) in
[#​9596](https://redirect.github.com/vitest-dev/vitest/issues/9596)
[<samp>(b66ff)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/b66ff691a)
- Don't suppress warnings on pnp - by
[@​sheremet-va](https://redirect.github.com/sheremet-va) in
[#​9602](https://redirect.github.com/vitest-dev/vitest/issues/9602)
[<samp>(89cbd)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/89cbdaea3)
- Support snapshot with `expect.soft` - by
[@​iumehara](https://redirect.github.com/iumehara),
[@​hi-ogawa](https://redirect.github.com/hi-ogawa) and **Claude
Opus 4.6** in
[#​9231](https://redirect.github.com/vitest-dev/vitest/issues/9231)
[<samp>(3eb2c)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/3eb2cd541)
- Log seed when only `sequence.shuffle.tests` is enabled - by
[@​kaigritun](https://redirect.github.com/kaigritun), **Kai
Gritun** and
[@​sheremet-va](https://redirect.github.com/sheremet-va) in
[#​9576](https://redirect.github.com/vitest-dev/vitest/issues/9576)
[<samp>(8182b)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/8182b77ad)
- Externalize `expect/src/utils` from `vitest` - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa) in
[#​9616](https://redirect.github.com/vitest-dev/vitest/issues/9616)
[<samp>(48739)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/487398422)
- Ignore test.override during static collection - by
[@​sheremet-va](https://redirect.github.com/sheremet-va) in
[#​9620](https://redirect.github.com/vitest-dev/vitest/issues/9620)
[<samp>(09174)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/0917470ce)
- Increase stacktrace limit for `--detect-async-leaks` - by
[@​AriPerkkio](https://redirect.github.com/AriPerkkio) in
[#​9638](https://redirect.github.com/vitest-dev/vitest/issues/9638)
[<samp>(9fd4c)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/9fd4ce533)
- Hanging-reporter link in cli - by
[@​flx-sta](https://redirect.github.com/flx-sta) in
[#​9649](https://redirect.github.com/vitest-dev/vitest/issues/9649)
[<samp>(7c103)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/7c103055c)
- Fix teardown timeout of `aroundEach/All` when inner `aroundEach/All`
throws - by [@​hi-ogawa](https://redirect.github.com/hi-ogawa)
in
[#​9657](https://redirect.github.com/vitest-dev/vitest/issues/9657)
[<samp>(4ec6c)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/4ec6cb305)
- Fix ui mode / html reporter and coverage integration - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa) and **Claude
Opus 4.6** in
[#​9626](https://redirect.github.com/vitest-dev/vitest/issues/9626)
[<samp>(86fad)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/86fad4b42)
- Don't continue when `aroundEach/All` setup timed out - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa) in
[#​9670](https://redirect.github.com/vitest-dev/vitest/issues/9670)
[<samp>(bb013)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/bb013d54b)
- Align `VitestRunnerConfig` optional fields with `SerializedConfig` -
by [@​hi-ogawa](https://redirect.github.com/hi-ogawa) in
[#​9661](https://redirect.github.com/vitest-dev/vitest/issues/9661)
[<samp>(79520)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/79520d82d)
- Handle Symbol values in format utility - by
[@​nami8824](https://redirect.github.com/nami8824) in
[#​9658](https://redirect.github.com/vitest-dev/vitest/issues/9658)
[<samp>(0583f)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/0583f067e)
- Deprecate `toBe*` spy assertions in favor of `toHaveBeen*` (and
`toThrowError`) - by
[@​sheremet-va](https://redirect.github.com/sheremet-va) in
[#​9665](https://redirect.github.com/vitest-dev/vitest/issues/9665)
[<samp>(4d390)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/4d390dfe9)
- Don't propagate nested `aroundEach/All` errors but aggregate them on
runner - by [@​hi-ogawa](https://redirect.github.com/hi-ogawa)
in
[#​9673](https://redirect.github.com/vitest-dev/vitest/issues/9673)
[<samp>(b6365)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/b63653f5a)
- Show a better error if there is a pending dynamic import - by
[@​sheremet-va](https://redirect.github.com/sheremet-va) in
[#​9676](https://redirect.github.com/vitest-dev/vitest/issues/9676)
[<samp>(7ef5c)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/7ef5cf4b7)
- Preserve stack trace of `resolves/rejects` chained assertion error -
by [@​hi-ogawa](https://redirect.github.com/hi-ogawa) in
[#​9679](https://redirect.github.com/vitest-dev/vitest/issues/9679)
[<samp>(c6151)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/c61511d4a)
- Handle module-sync condition in vmThreads/vmForks require - by
[@​lesleh](https://redirect.github.com/lesleh) in
[#​9650](https://redirect.github.com/vitest-dev/vitest/issues/9650)
and
[#​9651](https://redirect.github.com/vitest-dev/vitest/issues/9651)
[<samp>(bb203)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/bb20389f4)
- Hooks should respect `maxConcurrency` - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa) in
[#​9653](https://redirect.github.com/vitest-dev/vitest/issues/9653)
[<samp>(16d13)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/16d13d981)
- Recursively autospy module object - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa) in
[#​9687](https://redirect.github.com/vitest-dev/vitest/issues/9687)
[<samp>(695a8)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/695a86b41)
- Remove trailing spaces from diff error log - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa) and
[@​sheremet-va](https://redirect.github.com/sheremet-va) in
[#​9680](https://redirect.github.com/vitest-dev/vitest/issues/9680)
[<samp>(395d1)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/395d1a29e)
- Respect project `resolve.conditions` for externals - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa) in
[#​9717](https://redirect.github.com/vitest-dev/vitest/issues/9717)
[<samp>(1d498)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/1d4987498)
- Use object for WeakMap instead of a symbol to support webcontainers
- by [@​sheremet-va](https://redirect.github.com/sheremet-va) in
[#​9731](https://redirect.github.com/vitest-dev/vitest/issues/9731)
[<samp>(c5225)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/c52259330)
- Fix re-mocking virtual module - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa) in
[#​9748](https://redirect.github.com/vitest-dev/vitest/issues/9748)
[<samp>(3cbbb)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/3cbbb17f1)
- Cancelling should stop current test immediately - by
[@​AriPerkkio](https://redirect.github.com/AriPerkkio) in
[#​9729](https://redirect.github.com/vitest-dev/vitest/issues/9729)
[<samp>(0cb2f)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/0cb2f7239)
- Make `mockObject` change backwards compatible - by
[@​sheremet-va](https://redirect.github.com/sheremet-va) in
[#​9744](https://redirect.github.com/vitest-dev/vitest/issues/9744)
[<samp>(84c69)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/84c69497f)
- Fix `URL.name` on jsdom - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa) in
[#​9767](https://redirect.github.com/vitest-dev/vitest/issues/9767)
[<samp>(031f3)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/031f3a374)
- Save and restore module graph in blob reporter - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa) in
[#​9740](https://redirect.github.com/vitest-dev/vitest/issues/9740)
[<samp>(84355)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/843554bf0)
- Don't silence reporter errors from test runtime events handler in
normal run and --merge-reports - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa) in
[#​9727](https://redirect.github.com/vitest-dev/vitest/issues/9727)
[<samp>(4072d)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/4072d0132)
- Fix `vi.importActual()` for virtual modules - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa) and **Claude
Opus 4.6** in
[#​9772](https://redirect.github.com/vitest-dev/vitest/issues/9772)
[<samp>(1e89e)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/1e89ec020)
- Throw `FixtureAccessError` if suite hook accesses undefined fixture
- by [@​sheremet-va](https://redirect.github.com/sheremet-va) in
[#​9786](https://redirect.github.com/vitest-dev/vitest/issues/9786)
[<samp>(fc2ce)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/fc2cea2b7)
- Allow hyphens in project config file name pattern - by
[@​Koutaro-Hanabusa](https://redirect.github.com/Koutaro-Hanabusa)
and [@​hi-ogawa](https://redirect.github.com/hi-ogawa) in
[#​9760](https://redirect.github.com/vitest-dev/vitest/issues/9760)
[<samp>(33e96)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/33e96311a)
- Manual and redirect mock shouldn't `load` or `transform` original
module - by [@​hi-ogawa](https://redirect.github.com/hi-ogawa)
and **Claude Opus 4.6** in
[#​9774](https://redirect.github.com/vitest-dev/vitest/issues/9774)
[<samp>(a8216)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/a8216b001)
- `hideSkippedTests` should not hide `test.todo` - by
[@​oilater](https://redirect.github.com/oilater) in
[#​9562](https://redirect.github.com/vitest-dev/vitest/issues/9562)
and
[#​9781](https://redirect.github.com/vitest-dev/vitest/issues/9781)
[<samp>(8181e)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/8181e06e7)
- Allow catch/finally for async assertion - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa) in
[#​9827](https://redirect.github.com/vitest-dev/vitest/issues/9827)
[<samp>(031f0)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/031f02a89)
- Resolve fixture overrides from test's suite in `beforeEach` hooks -
by [@​hi-ogawa](https://redirect.github.com/hi-ogawa) and **Claude
Opus 4.6** in
[#​9826](https://redirect.github.com/vitest-dev/vitest/issues/9826)
[<samp>(99e52)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/99e52fe58)
- Use isAgent check, not just TTY, for watch mode - by
[@​sheremet-va](https://redirect.github.com/sheremet-va) in
[#​9841](https://redirect.github.com/vitest-dev/vitest/issues/9841)
[<samp>(c3cac)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/c3cac1c1b)
- Use `performance.now` to measure test timeout duration - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa) and **Claude
Opus 4.6** in
[#​9795](https://redirect.github.com/vitest-dev/vitest/issues/9795)
[<samp>(f48a6)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/f48a60114)
- Correctly identify concurrent test during static analysis - by
[@​sheremet-va](https://redirect.github.com/sheremet-va) in
[#​9846](https://redirect.github.com/vitest-dev/vitest/issues/9846)
[<samp>(1de0a)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/1de0aa22d)
- **browser**:
- Avoid updating screenshots when `toMatchScreenshot` passes - by
[@​macarie](https://redirect.github.com/macarie) in
[#​9289](https://redirect.github.com/vitest-dev/vitest/issues/9289)
[<samp>(46aab)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/46aabaa44)
- Hide injected data-testid attributes - by
[@​sheremet-va](https://redirect.github.com/sheremet-va) in
[#​9503](https://redirect.github.com/vitest-dev/vitest/issues/9503)
[<samp>(c8d2c)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/c8d2c411c)
- Throw an error if iframe was reloaded - by
[@​sheremet-va](https://redirect.github.com/sheremet-va) in
[#​9516](https://redirect.github.com/vitest-dev/vitest/issues/9516)
[<samp>(73a81)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/73a81f880)
- Encode projectName in browser client URL - by
[@​dkkim0122](https://redirect.github.com/dkkim0122) in
[#​9523](https://redirect.github.com/vitest-dev/vitest/issues/9523)
[<samp>(5b164)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/5b16483c3)
- Don't take failure screenshot if tests have artifacts created by
`toMatchScreenshot` - by
[@​macarie](https://redirect.github.com/macarie) in
[#​9552](https://redirect.github.com/vitest-dev/vitest/issues/9552)
[<samp>(83ca0)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/83ca02547)
- Remove `--remote-debugging-address` from chrome args - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa) and
[@​AriPerkkio](https://redirect.github.com/AriPerkkio) in
[#​9712](https://redirect.github.com/vitest-dev/vitest/issues/9712)
[<samp>(f09bb)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/f09bb5c32)
- Make sure userEvent actions support `ensureAwaited` - by
[@​sheremet-va](https://redirect.github.com/sheremet-va) in
[#​9732](https://redirect.github.com/vitest-dev/vitest/issues/9732)
[<samp>(97685)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/9768517b8)
- Types of `getCDPSession` and `cdp()` - by
[@​AriPerkkio](https://redirect.github.com/AriPerkkio) in
[#​9716](https://redirect.github.com/vitest-dev/vitest/issues/9716)
[<samp>(689a2)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/689a22a1b)
- Skip esbuild.legalComments when using rolldown-vite - by
[@​Copilot](https://redirect.github.com/Copilot), **hi-ogawa** and
[@​hi-ogawa](https://redirect.github.com/hi-ogawa) in
[#​9803](https://redirect.github.com/vitest-dev/vitest/issues/9803)
[<samp>(3505f)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/3505fa5a3)
- **chai**:
- Don't allow `deepEqual` in the config because it's not serializable
- by [@​sheremet-va](https://redirect.github.com/sheremet-va) in
[#​9666](https://redirect.github.com/vitest-dev/vitest/issues/9666)
[<samp>(9ee99)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/9ee999d73)
- **coverage**:
- Infer transform mode for uncovered files - by
[@​AriPerkkio](https://redirect.github.com/AriPerkkio) in
[#​9435](https://redirect.github.com/vitest-dev/vitest/issues/9435)
[<samp>(f3967)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/f396792d6)
- `thresholds.autoUpdate` to preserve ending whitespace - by
[@​AriPerkkio](https://redirect.github.com/AriPerkkio) in
[#​9436](https://redirect.github.com/vitest-dev/vitest/issues/9436)
[<samp>(7e534)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/7e534a0b6)
- **deps**:
- Update all non-major dependencies - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa) in
[#​9192](https://redirect.github.com/vitest-dev/vitest/issues/9192)
[<samp>(90c30)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/90c302f3b)
- Update all non-major dependencies - in
[#​9485](https://redirect.github.com/vitest-dev/vitest/issues/9485)
[<samp>(c0118)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/c01186022)
- Update all non-major dependencies - in
[#​9567](https://redirect.github.com/vitest-dev/vitest/issues/9567)
[<samp>(13c9e)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/13c9e022b)
- **docs**:
- Fix old `/config/#option` hash links causing hydration errors - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa), **Claude Opus
4.6** and [@​sheremet-va](https://redirect.github.com/sheremet-va)
in
[#​9610](https://redirect.github.com/vitest-dev/vitest/issues/9610)
[<samp>(a603c)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/a603c3a30)
- **expect**:
- `toMatchObject(Map/Set)` should expect `Map/Set` on left hand side -
by [@​hi-ogawa](https://redirect.github.com/hi-ogawa) and **Claude
Opus 4.6** in
[#​9532](https://redirect.github.com/vitest-dev/vitest/issues/9532)
[<samp>(381da)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/381da4a9d)
- Fix objectContaining with proxy - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa) and **Claude
Opus 4.6** in
[#​9554](https://redirect.github.com/vitest-dev/vitest/issues/9554)
[<samp>(7ce34)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/7ce3417b1)
- Support arbitrary value equality for `toThrow` and make Error
detection robust - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa) and **Claude
Opus 4.6** in
[#​9570](https://redirect.github.com/vitest-dev/vitest/issues/9570)
[<samp>(de215)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/de215c19c)
- **mock**:
- Inject helpers after hashbang if present - by
[@​sheremet-va](https://redirect.github.com/sheremet-va) in
[#​9545](https://redirect.github.com/vitest-dev/vitest/issues/9545)
[<samp>(65432)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/65432a74b)
- **mocker**:
- Update vite's peer dependency range - by
[@​sheremet-va](https://redirect.github.com/sheremet-va) in
[#​9808](https://redirect.github.com/vitest-dev/vitest/issues/9808)
[<samp>(36f9a)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/36f9a81a2)
- **reporter**:
- `dot` reporter leaves pending tests - by
[@​AriPerkkio](https://redirect.github.com/AriPerkkio) in
[#​9684](https://redirect.github.com/vitest-dev/vitest/issues/9684)
[<samp>(4d793)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/4d7938a56)
- **runner**:
- Mark repeated tests as finished on last run - by
[@​AriPerkkio](https://redirect.github.com/AriPerkkio) in
[#​9707](https://redirect.github.com/vitest-dev/vitest/issues/9707)
[<samp>(cc735)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/cc735970a)
- **spy**:
- Support deep partial in vi.mocked - by
[@​j2h30728](https://redirect.github.com/j2h30728) in
[#​8152](https://redirect.github.com/vitest-dev/vitest/issues/8152)
and
[#​9493](https://redirect.github.com/vitest-dev/vitest/issues/9493)
[<samp>(71cb5)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/71cb51ffc)
- Fallback to object accessor if descriptor's value is `undefined` -
by [@​sheremet-va](https://redirect.github.com/sheremet-va) in
[#​9511](https://redirect.github.com/vitest-dev/vitest/issues/9511)
[<samp>(6f181)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/6f18103fa)
- Throw correct errors when shorthand methods are used on a class - by
[@​sheremet-va](https://redirect.github.com/sheremet-va) in
[#​9513](https://redirect.github.com/vitest-dev/vitest/issues/9513)
[<samp>(5d0fd)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/5d0fd3b62)
- **types**:
- `bench.reporters` no longer gives type errors when passing file name
string paths - by
[@​Bertie690](https://redirect.github.com/Bertie690) in
[#​9695](https://redirect.github.com/vitest-dev/vitest/issues/9695)
[<samp>(093c8)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/093c8f6b5)
- **ui**:
- Process artifact attachments when generating HTML reporter - by
[@​macarie](https://redirect.github.com/macarie) in
[#​9472](https://redirect.github.com/vitest-dev/vitest/issues/9472)
[<samp>(96eb9)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/96eb92826)
- Don't fail if --ui and --root are specified together - by
[@​sheremet-va](https://redirect.github.com/sheremet-va) in
[#​9536](https://redirect.github.com/vitest-dev/vitest/issues/9536)
[<samp>(d9305)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/d93055fc7)
##### 🏎 Performance
- **pretty-format**: Combine DOMElement plugins - by
[@​sheremet-va](https://redirect.github.com/sheremet-va) in
[#​9581](https://redirect.github.com/vitest-dev/vitest/issues/9581)
[<samp>(da85a)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/da85a3267)
##### [View changes on
GitHub](https://redirect.github.com/vitest-dev/vitest/compare/v4.0.17...v4.1.0)
###
[`v4.0.18`](https://redirect.github.com/vitest-dev/vitest/releases/tag/v4.0.18)
[Compare
Source](https://redirect.github.com/vitest-dev/vitest/compare/v4.0.17...v4.0.18)
##### 🚀 Experimental Features
- **experimental**: Add `onModuleRunner` hook to `worker.init` - by
[@​sheremet-va](https://redirect.github.com/sheremet-va) in
[#​9286](https://redirect.github.com/vitest-dev/vitest/issues/9286)
[<samp>(ea837)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/ea837de7d)
##### 🐞 Bug Fixes
- Use `meta.url` in `createRequire` - by
[@​sheremet-va](https://redirect.github.com/sheremet-va) in
[#​9441](https://redirect.github.com/vitest-dev/vitest/issues/9441)
[<samp>(e0572)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/e057281ca)
- **browser**: Hide injected data-testid attributes - by
[@​sheremet-va](https://redirect.github.com/sheremet-va) in
[#​9503](https://redirect.github.com/vitest-dev/vitest/issues/9503)
[<samp>(f8989)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/f89899cd8)
- **ui**: Process artifact attachments when generating HTML reporter -
by [@​macarie](https://redirect.github.com/macarie) in
[#​9472](https://redirect.github.com/vitest-dev/vitest/issues/9472)
[<samp>(22543)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/225435647)
##### [View changes on
GitHub](https://redirect.github.com/vitest-dev/vitest/compare/v4.0.17...v4.0.18)
###
[`v4.0.17`](https://redirect.github.com/vitest-dev/vitest/releases/tag/v4.0.17)
[Compare
Source](https://redirect.github.com/vitest-dev/vitest/compare/v4.0.16...v4.0.17)
##### 🚀 Features
- Support openTelemetry for browser mode - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa) in
[#​9180](https://redirect.github.com/vitest-dev/vitest/issues/9180)
[<samp>(1ec3a)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/1ec3a8b68)
- Support TRACEPARENT and TRACESTATE environment variables for
OpenTelemetry context propagation - by
[@​Copilot](https://redirect.github.com/Copilot), **hi-ogawa** and
[@​hi-ogawa](https://redirect.github.com/hi-ogawa) in
[#​9295](https://redirect.github.com/vitest-dev/vitest/issues/9295)
[<samp>(876cb)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/876cb84c2)
##### 🐞 Bug Fixes
- Improve asymmetric matcher diff readability by unwrapping container
matchers - by [@​Copilot](https://redirect.github.com/Copilot),
**sheremet-va**, **hi-ogawa** and
[@​hi-ogawa](https://redirect.github.com/hi-ogawa) in
[#​9330](https://redirect.github.com/vitest-dev/vitest/issues/9330)
[<samp>(b2ec7)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/b2ec724a8)
- Improve runner error when importing outside of test context - by
[@​sheremet-va](https://redirect.github.com/sheremet-va) in
[#​9335](https://redirect.github.com/vitest-dev/vitest/issues/9335)
[<samp>(2dd3d)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/2dd3dd839)
- Replace crypto.randomUUID to allow insecure environments (fix
[#​9](https://redirect.github.com/vitest-dev/vitest/issues/9)… -
by [@​plusgut](https://redirect.github.com/plusgut) in
[#​9339](https://redirect.github.com/vitest-dev/vitest/issues/9339)
and [#​9](https://redirect.github.com/vitest-dev/vitest/issues/9)
[<samp>(e6a3f)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/e6a3f8cc7)
- Handle null options in `addEventHandler`
[#​9371](https://redirect.github.com/vitest-dev/vitest/issues/9371)
- by
[@​ThibautMarechal](https://redirect.github.com/ThibautMarechal)
in
[#​9372](https://redirect.github.com/vitest-dev/vitest/issues/9372)
and
[#​9371](https://redirect.github.com/vitest-dev/vitest/issues/9371)
[<samp>(40841)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/40841ff00)
- Typo in browser.provider error - by
[@​deammer](https://redirect.github.com/deammer) in
[#​9394](https://redirect.github.com/vitest-dev/vitest/issues/9394)
[<samp>(4b67f)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/4b67fc25a)
- **browser**:
- Fix `process.env` and `import.meta.env` defines in inline project -
by [@​hi-ogawa](https://redirect.github.com/hi-ogawa) in
[#​9239](https://redirect.github.com/vitest-dev/vitest/issues/9239)
[<samp>(b70c9)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/b70c96121)
- Fix upload File instance - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa) in
[#​9294](https://redirect.github.com/vitest-dev/vitest/issues/9294)
[<samp>(b6778)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/b67788c69)
- Fix invalid project token for artifacts assets - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa) in
[#​9321](https://redirect.github.com/vitest-dev/vitest/issues/9321)
[<samp>(caa7d)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/caa7d73d4)
- Log `ErrorEvent.message` when unhandled `ErrorEvent.error` is null -
by [@​hi-ogawa](https://redirect.github.com/hi-ogawa) in
[#​9322](https://redirect.github.com/vitest-dev/vitest/issues/9322)
[<samp>(5d84e)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/5d84eeb91)
- Support `fileParallelism` on an instance - by
[@​sheremet-va](https://redirect.github.com/sheremet-va) in
[#​9328](https://redirect.github.com/vitest-dev/vitest/issues/9328)
[<samp>(15006)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/150065459)
- **coverage**:
- Remove unnecessary `istanbul-lib-source-maps` usage - by
[@​AriPerkkio](https://redirect.github.com/AriPerkkio) in
[#​9344](https://redirect.github.com/vitest-dev/vitest/issues/9344)
[<samp>(b0940)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/b09405375)
- Apply patch from
[istanbuljs/istanbuljs#837](https://redirect.github.com/istanbuljs/istanbuljs/issues/837)
- by [@​AriPerkkio](https://redirect.github.com/AriPerkkio) and
**sapphi-red** in
[#​9413](https://redirect.github.com/vitest-dev/vitest/issues/9413)
and
[#​837](https://redirect.github.com/vitest-dev/vitest/issues/837)
[<samp>(e05ce)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/e05cedbf4)
- **fsModuleCache**:
- Don't store importers in cache - by
[@​sheremet-va](https://redirect.github.com/sheremet-va) in
[#​9422](https://redirect.github.com/vitest-dev/vitest/issues/9422)
[<samp>(75136)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/751364eec)
- Add importers alongside importedModules - by
[@​sheremet-va](https://redirect.github.com/sheremet-va) in
[#​9423](https://redirect.github.com/vitest-dev/vitest/issues/9423)
[<samp>(59f92)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/59f92d403)
- **mocker**:
- Fix mock transform with class - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa) in
[#​9421](https://redirect.github.com/vitest-dev/vitest/issues/9421)
[<samp>(d390e)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/d390eb527)
- **pool**:
- Validate environment options when reusing the worker - by
[@​sheremet-va](https://redirect.github.com/sheremet-va) in
[#​9349](https://redirect.github.com/vitest-dev/vitest/issues/9349)
[<samp>(a8a88)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/a8a8836e3)
- Handle worker start failures gracefully - by
[@​AriPerkkio](https://redirect.github.com/AriPerkkio) in
[#​9337](https://redirect.github.com/vitest-dev/vitest/issues/9337)
[<samp>(200da)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/200dadb32)
- **reporter**:
- Report test module if it failed to run - by
[@​sheremet-va](https://redirect.github.com/sheremet-va) in
[#​9272](https://redirect.github.com/vitest-dev/vitest/issues/9272)
[<samp>(c7888)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/c78882985)
- **runner**:
- Respect nested test.only within describe.only - by
[@​Ujjwaljain16](https://redirect.github.com/Ujjwaljain16) in
[#​9021](https://redirect.github.com/vitest-dev/vitest/issues/9021)
and
[#​9213](https://redirect.github.com/vitest-dev/vitest/issues/9213)
[<samp>(55d5d)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/55d5dad69)
- **typecheck**:
- Improve error message when tsc outputs help text - by
[@​Ujjwaljain16](https://redirect.github.com/Ujjwaljain16) in
[#​9214](https://redirect.github.com/vitest-dev/vitest/issues/9214)
[<samp>(7b10a)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/7b10ab4cd)
- **ui**:
- Detect gzip by magic numbers instead of Content-Type header in html
reporter - by [@​Copilot](https://redirect.github.com/Copilot),
**hi-ogawa** and
[@​hi-ogawa](https://redirect.github.com/hi-ogawa) in
[#​9278](https://redirect.github.com/vitest-dev/vitest/issues/9278)
[<samp>(dd033)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/dd0331632)
- **webdriverio**:
- Fall back to WebDriver Classic
[#​9244](https://redirect.github.com/vitest-dev/vitest/issues/9244)
- by [@​JustasMonkev](https://redirect.github.com/JustasMonkev)
in
[#​9373](https://redirect.github.com/vitest-dev/vitest/issues/9373)
and
[#​9244](https://redirect.github.com/vitest-dev/vitest/issues/9244)
[<samp>(c23dd)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/c23dd11bd)
##### [View changes on
GitHub](https://redirect.github.com/vitest-dev/vitest/compare/v4.0.16...v4.0.17)
</details>
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- ""
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/apify/crawlee).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yMDYuMSIsInVwZGF0ZWRJblZlciI6IjQzLjIwNi4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbXX0=-->
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Martin Adámek <banan23@gmail.com>
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )