chore(deps): update vitest (major) #88

Open
renovate wants to merge 1 commit from renovate/major-vitest into develop
Collaborator

This PR contains the following updates:

Package Change Age Confidence
jsdom ^29.1.1 → ^30.1.2 age confidence
vitest (source) ^2.1.9 → ^5.0.3 age confidence

Release Notes

jsdom/jsdom (jsdom)

v30.1.2

Compare Source

  • Updated URLs to support Unicode v18.0.0 in internationalized domain names.
  • Reduced package size and memory use for CSS property definitions. (@​scttcper)
  • Fixed severe slowdowns when building large DOM trees, including SVG charts with D3, which regressed in v30.1.0. (@​cmdcolin)
  • Fixed exponentially slow reads of empty inherited CSS custom properties in deeply nested documents, and custom properties incorrectly inheriting past an initial reset. (@​scttcper)
  • Fixed getComputedStyle() returning stale results after editing stylesheet declarations, selectors, or media queries, including in imported stylesheets.
  • Fixed selector matching and computed styles after changes to form control checkedness, indeterminacy, selection, values, and validity, including during form resets and canceled clicks.
  • Fixed computed styles for :focus, :focus-visible, :focus-within, and selectors containing them after focus changes, including inside focus and blur listeners. (@​asamuzaK)
  • Fixed element.focus() incorrectly focusing elements hidden by 'display', including through shadow hosts and slots, and elements excluded by shadow DOM slot assignment. (@​asamuzaK)
  • Fixed getComputedStyle() throwing for elements without inline-style support, including XML and MathML elements.
  • Fixed a memory leak where stylesheet parsing retained the last parsed stylesheet's window after window.close().
  • Fixed memory growth from long-lived MutationObserver instances retaining bookkeeping for garbage-collected nodes. (@​scttcper)
  • Fixed retained select.selectedOptions collections becoming stale after selection changes and form resets.
  • Fixed rejection of negative CSS sizing values, including for 'min-width', 'min-height', 'max-width', and 'max-height', which regressed in v30.1.0.
  • Fixed handling of deeply nested color-mix() expressions, including exceptions during color resolution. (@​asamuzaK)

v30.1.1

Compare Source

  • Fixed spurious window blur and focusout events and incorrect event.relatedTarget values when focusing an element after removing the previously focused element, which regressed in v30.1.0. (@​asamuzaK)
  • Fixed focus and blur behavior across frames, and focusing the document's viewport through document.documentElement.focus(). (@​asamuzaK)
  • Fixed focus targets removed or disabled by blur listeners becoming active, and text selections made by focus and blur listeners being overwritten. (@​asamuzaK)
  • Fixed element.focus() incorrectly focusing disabled form controls and <input type="hidden"> elements with tabindex="". (@​scttcper)
  • Fixed invalid style.setProperty() calls changing existing !important priorities, serialized styles, or mutation records. (@​FedgeNo)
  • Fixed !important handling when updating CSS longhands after shorthands, using variables or CSS-wide keywords, and assigning style properties directly. (@​FedgeNo)
  • Fixed <noscript> parsing with includeNodeLocations: true or inside frames to honor the runScripts option.
  • Fixed the storageQuota option being ignored by frames.
  • Fixed encoding detection of HTML and XML byte input to honor XML encoding declarations and detect UTF-16 without a byte order mark.
  • Fixed exceptions caused by truncated charset parameters in <meta> elements, and encoding detection incorrectly using incomplete <meta> tags. (@​FedgeNo)
  • Fixed XML serialization errors for namespaces named constructor, toString, __proto__, or "null", and incorrect reuse of namespace prefixes declared on sibling elements.
  • Fixed element.innerHTML and element.outerHTML in XML documents to reject invalid characters in attribute values and avoid stack overflows on large strings.
  • Fixed selector matching for :lang(), :nth-child(... of ...) after mutations, and :has() with duplicate IDs or nested logical pseudo-classes. (@​asamuzaK)

v30.1.0

Compare Source

jsdom is feeling the AGI!

This release is dedicated to @​scttcper, who unleashed @​codex upon jsdom and found tons of performance improvements. Along the way, he found and fixed many correctness issues as well.

We really appreciate his thoughtful PRs, which did a great job following the project's contribution guidelines, and were clearly human-curated, with their PR descriptions edited to be brief and respectful of the maintainers' time.

Thanks to @​scttcper, as well as all the other contributors of this release (most of whom were AI-assisted).

  • Added named access to elements on document, such as document.myForm for <form name="myForm">. (@​vojtisprime11)
  • Added QuotaExceededError, including its use for storage quota errors and oversized crypto.getRandomValues() requests.
  • Added support for the relaxed DOM naming rules when creating elements, attributes, and document types.
  • Improved performance of DOM construction, tree mutations, range operations, and live collection access, especially on large documents. (@​scttcper, @​erezrokah)
  • Improved performance of getComputedStyle(), style changes, and CSS serialization. (@​scttcper, @​jhult)
  • Improved performance of event dispatch, form control and label lookups, and updates to <select> elements and radio button groups. (@​scttcper)
  • Reduced memory use when creating and working with DOM nodes, attributes, event listeners, and mutation observers. (@​scttcper)
  • Changed window.close() to preserve access to the document and its DOM through retained references.
  • Fixed element.querySelectorAll() returning no matches when the first part of the selector matches the element itself, which regressed in v30.0.0. (@​asamuzaK)
  • Fixed case sensitivity in CSS attribute selectors, including selectors matching data-state="", title="", and other case-sensitive values. (@​asamuzaK)
  • Fixed document.querySelector() failing to find a matching element when an earlier element has the same ID but does not match the rest of the selector. (@​vojtisprime11)
  • Fixed :focus matching in shadow trees. (@​asamuzaK)
  • Fixed DOM insertion and replacement, including valid document.replaceChildren() calls, invalid document element and doctype placements, and mutations during element.replaceWith().
  • Fixed the ordering of script execution, custom element callbacks, iframe loading, and mutation observer notifications during DOM insertion, including in shadow trees.
  • Fixed queued events and navigation continuing after window.close() or iframe removal, and prevented new scripts, resource loads, timers, and animation frames from starting in destroyed documents. (@​scttcper)
  • Fixed parent documents waiting indefinitely for loading to finish when a child iframe removes itself during loading.
  • Fixed request cancellation across redirects, during pending requestInterceptor() callbacks, and when reusing an XMLHttpRequest after aborting it.
  • Fixed resource loading and JSDOM.fromURL() potentially hanging when response handling throws and response stream cleanup does not finish.
  • Fixed successful cached resource loads being treated as aborted.
  • Fixed getComputedStyle() and document.styleSheets using the wrong stylesheet order after inserting or updating <style> elements.
  • Fixed getComputedStyle() ignoring nested @import and @media rules in imported stylesheets, and returning stale results after imports finish loading.
  • Fixed style invalidation, stylesheet removal, and frame source updates in shadow trees.
  • Fixed repeated getComputedStyle() calls changing case-sensitive background URLs, and inconsistent resolution of border shorthands containing system colors. (@​scttcper)
  • Fixed computed border widths, including borderless elements incorrectly reporting 16px, which regressed in v30.0.0. (@​Alberto-BaseNet)
  • Fixed getComputedStyle() to resolve 'font-weight' keywords to numeric values. (@​tianrking)
  • Fixed getComputedStyle() to convert lengths to pixels inside CSS math functions containing percentages, and to resolve percentages in 'font-size' math functions. (@​soroushm)
  • Fixed serialization of min() and max() containing nested calc(), which regressed in v30.0.0. (@​asamuzaK)
  • Fixed CSS values mixing lengths or percentages with math functions, such as 'grid-template-columns' values containing both 100px and calc(). (@​rome-xi)
  • Fixed parsing of 'background' and 'border' shorthands with adjacent components, such as url(a.png)no-repeat, including a crash when parsing inline styles. Also fixed handling of invalid shorthand assignments and escaped or unusual characters in CSS declarations. (@​asamuzaK)
  • Fixed parsing of unitless zero values in 'flex' shorthands, such as 35 1 0, and rejection of negative 'flex-basis' lengths and percentages. (@​asamuzaK)
  • Fixed shorthand style assignments producing extra mutation records and custom element callbacks for intermediate values. (@​scttcper)
  • Fixed Range and Selection handling of CDATA sections, including boundary offsets and range cloning, extraction, deletion, insertion, and stringification. (@​scttcper)
  • Fixed text.normalize() incorrectly removing the text node or merging its siblings. (@​scttcper)
  • Fixed cloning and importing CDATA sections and processing instructions whose contents have been modified, and serialization of CDATA sections adopted into HTML documents.
  • Fixed stale named-property collections on window, and incorrect named access from empty or namespaced id="" and name="" values. (@​scttcper)
  • Fixed elements in documents created with DOMParser or document.implementation.createHTMLDocument() appearing as named properties on window and being retained in memory. (@​Iaotle)
  • Fixed memory leaks from mutation observers retaining observed nodes, abort signals retaining removed event listeners, and storage event tracking retaining closed windows. (@​scttcper)
  • Fixed storage events being sent to windows created after the storage change, and ensured surviving recipients still receive events when the source document is destroyed.
  • Fixed attribute lookups after namespace prefix changes, and namespaced attributes incorrectly affecting ID lookups and element behavior. (@​scttcper)
  • Fixed input.list in detached element trees. (@​scttcper)
  • Fixed attr.ownerDocument after setting an attribute node on an element in another document or adopting its element. (@​Kjubikstronk)
  • Fixed fresh element.getElementsByTagName() calls using the previous document's case-sensitivity rules after adoption between HTML and XML documents. (@​Kjubikstronk)
  • Fixed element.tagName returning stale casing after adoption between HTML and XML documents.
  • Fixed radio button grouping and checkedness updates for controls with different form owners, controls outside their form, unnamed controls, and canceled clicks.
  • Fixed <select> selection updates when moving options, and unintended selection resets when moving a whole <select> or changing unrelated descendants.
  • Fixed cloning <input> elements to preserve input.indeterminate.
  • Fixed focus state after removing a focused element or its ancestor, including inside shadow trees.
  • Fixed script execution when inserting children into a connected, empty <script>. (@​Kjubikstronk)
  • Fixed incorrect script execution after changes to src="", and handling of type="", for="", and event="".
  • Fixed document.currentScript during nested script execution and scripts in shadow trees.
  • Fixed event dispatch, window.event, and default passive listener handling for non-node event targets, and event dispatch when user code modifies window.constructor.
  • Fixed volumechange and ratechange events to fire asynchronously. (@​christianaurichzm)
  • Fixed DOM APIs accepting user-created proxies around DOM objects where genuine DOM objects are required.
  • Fixed XPath iterator invalidation after DOM mutations and errors for invalid result types.
  • Fixed NodeIterator traversal when its filter removes nodes.
  • Fixed fileReader.readAsText() to honor the blob's MIME type charset when no supported explicit encoding is supplied.
  • Fixed fractional seconds in time input parsing and serialization. (@​Jaybhade)
  • Fixed large input.valueAsNumber assignments for time and local date/time inputs.
  • Fixed hard wrapping of <textarea> values to use the numeric textarea.cols value.
  • Fixed document.readyState to be "complete" for documents created with document.implementation.createDocument() and document.implementation.createHTMLDocument().
  • Fixed element.translate for empty translate="" values and elements without a parent.
  • Fixed XML parsing of lone surrogates to replace them with the Unicode replacement character.
  • Fixed node.lookupNamespaceURI() for the xml and xmlns prefixes. (@​vojtisprime11)
  • Fixed <base> elements to ignore data: and javascript: URLs. (@​vojtisprime11)
  • Fixed svgElement.viewportElement inside <symbol> elements.
  • Fixed the default blobEvent.timecode to be NaN.
  • Fixed the object shape and property descriptors of CSS.

v30.0.1

Compare Source

  • Fixed getComputedStyle() with calc() and other functions throwing an exception, which regressed in v30.0.0. (@​asamuzaK)
  • Sped up up range operations on large documents (@​leonidaz)

v30.0.0

Compare Source

Breaking changes:

  • Node.js minimum version raised to ^22.22.2 || ^24.15.0 || >=26.0.0.

Other changes:

  • Added CSS.escape() and CSS.supports() functions. (@​asamuzaK)
  • Added 'background-position-x' and 'background-position-y' CSS properties. (@​olagokemills)
  • Fixed getComputedStyle() to convert length values into pixels. (@​asamuzaK)
  • Fixed CSS function serialization, e.g., in the return value of getPropertyValue(). (@​asamuzaK)
  • Fixed the type of error thrown by document.evaluate() (@​dokson)
vitest-dev/vitest (vitest)

v5.0.3

Compare Source

   🐞 Bug Fixes
    View changes on GitHub

v5.0.2

Compare Source

   🐞 Bug Fixes
    View changes on GitHub

v5.0.1

Compare Source

   🚀 Features
   🐞 Bug Fixes
    View changes on GitHub

v5.0.0

Compare Source

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 for the official announcement.

   🚨 Breaking Changes
   🚀 Features
   🐞 Bug Fixes
   🏎 Performance
    View changes on GitHub

v4.1.11

Compare Source

   🐞 Bug Fixes
    View changes on GitHub

v4.1.10

Compare Source

   🐞 Bug Fixes
    View changes on GitHub

v4.1.9

Compare Source

🐞 Bug Fixes
  • Fix importOriginal with optimizer and query import [backport to v4] - by Hiroshi Ogawa, David Harris, Codexand Vladimir in #​10546 (a5180)
  • browser:
    • Wait for orchestrator readiness before resolving browser sessions [backport to v4] - by Vladimir and Séamus O'Connor in #​10555 (7fb29)
    • Wait for iframe tester readiness before preparing [backport to v4] - by Vladimir and Séamus O'Connor in #​10497 and #​10556 (fbc62)
  • mocker:
    • Hoist vi.mock() for vite-plus/test imports [backport to v4] - by Hiroshi Ogawa, LongYinan, Claude Opus 4.8 and Vladimir in #​10548 (2c955)
  • pool:
    • Prevent test run hang on worker crash [backport to v4] - by Ari Perkkiö and Jattioui Ismail in #​10543 and #​10564 (934b0)
View changes on GitHub

v4.1.8

Compare Source

   🐞 Bug Fixes
    View changes on GitHub

v4.1.7

Compare Source

   🐞 Bug Fixes
    View changes on GitHub

v4.1.6

Compare Source

   🐞 Bug Fixes
   🏎 Performance
    View changes on GitHub

v4.1.5

Compare Source

   🚀 Experimental Features
   🐞 Bug Fixes
    View changes on GitHub

v4.1.4

Compare Source

   🚀 Experimental Features
   🐞 Bug Fixes
    View changes on GitHub

v4.1.3

Compare Source

   🚀 Experimental Features
   🐞 Bug Fixes
    View changes on GitHub

v4.1.2

Compare Source

This release bumps Vitest's flatted version and removes version pinning to resolve flatted's CVE related issues (#​9975).

   🐞 Bug Fixes
    View changes on GitHub

v4.1.1

Compare Source

   🚀 Features
   🐞 Bug Fixes
    View changes on GitHub

v4.1.0

Compare Source

Vitest 4.1 is out!

This release page lists all changes made to the project during the 4.1 beta. To get a review of all the new features, read our blog post.

   🚀 Features
   🐞 Bug Fixes
   🏎 Performance
    View changes on GitHub

v4.0.18

Compare Source

   🚀 Experimental Features
   🐞 Bug Fixes
    View changes on GitHub

v4.0.17

Compare Source

   🚀 Experimental Features
   🐞 Bug Fixes
    View changes on GitHub

v4.0.16

Compare Source

   🐞 Bug Fixes
    View changes on GitHub

v4.0.15

Compare Source

   🚀 Experimental Features
   🐞 Bug Fixes
    View changes on GitHub

v4.0.14

Compare Source

   🚀 Experimental Features
   🐞 Bug Fixes
   🏎 Performance
    View changes on GitHub

v4.0.13

Compare Source

   🐞 Bug Fixes
   🏎 Performance
    View changes on GitHub

v4.0.12

Compare Source

   🐞 Bug Fixes
    View changes on GitHub

v4.0.11

Compare Source

   🚀 Experimental Features
   🏎 Performance
    View changes on GitHub

v4.0.10

Compare Source

   🐞 Bug Fixes
    View changes on GitHub

v4.0.9

Compare Source

   🚀 Experimental Features
   🐞 Bug Fixes
    View changes on GitHub

v4.0.8

Compare Source

   🐞 Bug Fixes
    View changes on GitHub

v4.0.7

Compare Source

   🐞 Bug Fixes
   🏎 Performance
    View changes on GitHub

v4.0.6

Compare Source

   🐞 Bug Fixes
    View changes on GitHub

v4.0.5

Compare Source

   🐞 Bug Fixes
   🏎 Performance
    View changes on GitHub

v4.0.4

Compare Source

   🐞 Bug Fixes
   🏎 Performance
    View changes on GitHub

v4.0.3

Compare Source

   🐞 Bug Fixes
    View changes on GitHub

v4.0.2

Compare Source

   🐞 Bug Fixes
    View changes on GitHub

v4.0.1

Compare Source

   🐞 Bug Fixes
    View changes on GitHub

v4.0.0

Compare Source

Vitest 4.0 is out!

To stay updated, read our blog post and check the migration guide.

   🚨 Breaking Changes
   🚀 Features
   🐞 Bug Fixes
   🏎 Performance
    View changes on GitHub

v3.2.7

Compare Source

   🐞 Bug Fixes
  • browser: Check fs access in builtin commands [backport to v3]  -  by @​hi-ogawa, Hiroshi Ogawa and OpenCode (claude-opus-4-8) in #​10679 (b795e)
    View changes on GitHub

v3.2.6

Compare Source

   🐞 Bug Fixes
    View changes on GitHub

v3.2.5

Compare Source

   🚀 Features
   🐞 Bug Fixes
    View changes on GitHub

v3.2.4

Compare Source

   🐞 Bug Fixes
    View changes on GitHub

v3.2.3

Compare Source

   🚀 Features
   🐞 Bug Fixes
    View changes on GitHub

v3.2.2

Compare Source

   🚀 Features
   🐞 Bug Fixes
    View changes on GitHub

v3.2.1

Compare Source

   🐞 Bug Fixes
    View changes on GitHub

v3.2.0

Compare Source

   🚀 Features
   🐞 Bug Fixes
    View changes on GitHub

v3.1.4

Compare Source

   🐞 Bug Fixes
    View changes on GitHub

v3.1.3

Compare Source

   🐞 Bug Fixes
    View changes on GitHub

v3.1.2

Compare Source

   🐞 Bug Fixes
   🏎 Performance
    View changes on GitHub

v3.1.1

Compare Source

   🐞 Bug Fixes
    View changes on GitHub

v3.1.0

Compare Source

🚀 Features
🐞 Bug Fixes
🏎 Performance
View changes on GitHub

v3.0.9

Compare Source

   🐞 Bug Fixes
    View changes on GitHub

v3.0.8

Compare Source

   🐞 Bug Fixes
    View changes on GitHub

v3.0.7

Compare Source

   🐞 Bug Fixes
   🏎 Performance
    View changes on GitHub

v3.0.6

Compare Source

   🐞 Bug Fixes
    View changes on GitHub

v3.0.5

Compare Source

This release includes security patches for:

🚀 Features
🐞 Bug Fixes
View changes on GitHub

v3.0.4

Compare Source

This release includes security patches for:

   🐞 Bug Fixes
    View changes on GitHub

v3.0.3

Compare Source

   🐞 Bug Fixes
   🏎 Performance
    View changes on GitHub

v3.0.2

Compare Source

   🐞 Bug Fixes
    View changes on GitHub

v3.0.1

Compare Source

   🐞 Bug Fixes
    View changes on GitHub

v3.0.0

Compare Source

Vitest 3 is here! There are a few breaking changes, but we expect the migration to be smooth. This release page lists all changes made to the project during the beta. For the migration guide, please refer to the documentation.

   🚨 Breaking Changes
   🚀 Features
   🐞 Bug Fixes
    View changes on GitHub

Configuration

📅 Schedule: (in timezone Europe/Amsterdam)

  • Branch creation
    • "before 6am on Saturday"
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate.

This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [jsdom](https://github.com/jsdom/jsdom) | [`^29.1.1` → `^30.1.2`](https://renovatebot.com/diffs/npm/jsdom/29.1.1/30.1.2) | ![age](https://developer.mend.io/api/mc/badges/age/npm/jsdom/30.1.2?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/jsdom/29.1.1/30.1.2?slim=true) | | [vitest](https://vitest.dev) ([source](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest)) | [`^2.1.9` → `^5.0.3`](https://renovatebot.com/diffs/npm/vitest/2.1.9/5.0.3) | ![age](https://developer.mend.io/api/mc/badges/age/npm/vitest/5.0.3?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vitest/2.1.9/5.0.3?slim=true) | --- ### Release Notes <details> <summary>jsdom/jsdom (jsdom)</summary> ### [`v30.1.2`](https://github.com/jsdom/jsdom/releases/tag/v30.1.2) [Compare Source](https://github.com/jsdom/jsdom/compare/v30.1.1...v30.1.2) - Updated URLs to support Unicode v18.0.0 in internationalized domain names. - Reduced package size and memory use for CSS property definitions. ([@&#8203;scttcper](https://github.com/scttcper)) - Fixed severe slowdowns when building large DOM trees, including SVG charts with D3, which regressed in v30.1.0. ([@&#8203;cmdcolin](https://github.com/cmdcolin)) - Fixed exponentially slow reads of empty inherited CSS custom properties in deeply nested documents, and custom properties incorrectly inheriting past an `initial` reset. ([@&#8203;scttcper](https://github.com/scttcper)) - Fixed `getComputedStyle()` returning stale results after editing stylesheet declarations, selectors, or media queries, including in imported stylesheets. - Fixed selector matching and computed styles after changes to form control checkedness, indeterminacy, selection, values, and validity, including during form resets and canceled clicks. - Fixed computed styles for `:focus`, `:focus-visible`, `:focus-within`, and selectors containing them after focus changes, including inside focus and blur listeners. ([@&#8203;asamuzaK](https://github.com/asamuzaK)) - Fixed `element.focus()` incorrectly focusing elements hidden by 'display', including through shadow hosts and slots, and elements excluded by shadow DOM slot assignment. ([@&#8203;asamuzaK](https://github.com/asamuzaK)) - Fixed `getComputedStyle()` throwing for elements without inline-style support, including XML and MathML elements. - Fixed a memory leak where stylesheet parsing retained the last parsed stylesheet's window after `window.close()`. - Fixed memory growth from long-lived `MutationObserver` instances retaining bookkeeping for garbage-collected nodes. ([@&#8203;scttcper](https://github.com/scttcper)) - Fixed retained `select.selectedOptions` collections becoming stale after selection changes and form resets. - Fixed rejection of negative CSS sizing values, including for 'min-width', 'min-height', 'max-width', and 'max-height', which regressed in v30.1.0. - Fixed handling of deeply nested `color-mix()` expressions, including exceptions during color resolution. ([@&#8203;asamuzaK](https://github.com/asamuzaK)) ### [`v30.1.1`](https://github.com/jsdom/jsdom/releases/tag/v30.1.1) [Compare Source](https://github.com/jsdom/jsdom/compare/v30.1.0...v30.1.1) - Fixed spurious window `blur` and `focusout` events and incorrect `event.relatedTarget` values when focusing an element after removing the previously focused element, which regressed in v30.1.0. ([@&#8203;asamuzaK](https://github.com/asamuzaK)) - Fixed focus and blur behavior across frames, and focusing the document's viewport through `document.documentElement.focus()`. ([@&#8203;asamuzaK](https://github.com/asamuzaK)) - Fixed focus targets removed or disabled by `blur` listeners becoming active, and text selections made by focus and blur listeners being overwritten. ([@&#8203;asamuzaK](https://github.com/asamuzaK)) - Fixed `element.focus()` incorrectly focusing disabled form controls and `<input type="hidden">` elements with `tabindex=""`. ([@&#8203;scttcper](https://github.com/scttcper)) - Fixed invalid `style.setProperty()` calls changing existing `!important` priorities, serialized styles, or mutation records. ([@&#8203;FedgeNo](https://github.com/FedgeNo)) - Fixed `!important` handling when updating CSS longhands after shorthands, using variables or CSS-wide keywords, and assigning style properties directly. ([@&#8203;FedgeNo](https://github.com/FedgeNo)) - Fixed `<noscript>` parsing with `includeNodeLocations: true` or inside frames to honor the `runScripts` option. - Fixed the `storageQuota` option being ignored by frames. - Fixed encoding detection of HTML and XML byte input to honor XML encoding declarations and detect UTF-16 without a byte order mark. - Fixed exceptions caused by truncated `charset` parameters in `<meta>` elements, and encoding detection incorrectly using incomplete `<meta>` tags. ([@&#8203;FedgeNo](https://github.com/FedgeNo)) - Fixed XML serialization errors for namespaces named `constructor`, `toString`, `__proto__`, or `"null"`, and incorrect reuse of namespace prefixes declared on sibling elements. - Fixed `element.innerHTML` and `element.outerHTML` in XML documents to reject invalid characters in attribute values and avoid stack overflows on large strings. - Fixed selector matching for `:lang()`, `:nth-child(... of ...)` after mutations, and `:has()` with duplicate IDs or nested logical pseudo-classes. ([@&#8203;asamuzaK](https://github.com/asamuzaK)) ### [`v30.1.0`](https://github.com/jsdom/jsdom/releases/tag/v30.1.0) [Compare Source](https://github.com/jsdom/jsdom/compare/v30.0.1...v30.1.0) jsdom is feeling the AGI! This release is dedicated to [@&#8203;scttcper](https://github.com/scttcper), who unleashed [@&#8203;codex](https://github.com/codex) upon jsdom and found tons of performance improvements. Along the way, he found and fixed many correctness issues as well. We really appreciate his thoughtful PRs, which did a great job following the project's contribution guidelines, and were clearly human-curated, with their PR descriptions edited to be brief and respectful of the maintainers' time. Thanks to [@&#8203;scttcper](https://github.com/scttcper), as well as all the other contributors of this release (most of whom were AI-assisted). - Added named access to elements on `document`, such as `document.myForm` for `<form name="myForm">`. ([@&#8203;vojtisprime11](https://github.com/vojtisprime11)) - Added `QuotaExceededError`, including its use for storage quota errors and oversized `crypto.getRandomValues()` requests. - Added support for the relaxed DOM naming rules when creating elements, attributes, and document types. - Improved performance of DOM construction, tree mutations, range operations, and live collection access, especially on large documents. ([@&#8203;scttcper](https://github.com/scttcper), [@&#8203;erezrokah](https://github.com/erezrokah)) - Improved performance of `getComputedStyle()`, style changes, and CSS serialization. ([@&#8203;scttcper](https://github.com/scttcper), [@&#8203;jhult](https://github.com/jhult)) - Improved performance of event dispatch, form control and label lookups, and updates to `<select>` elements and radio button groups. ([@&#8203;scttcper](https://github.com/scttcper)) - Reduced memory use when creating and working with DOM nodes, attributes, event listeners, and mutation observers. ([@&#8203;scttcper](https://github.com/scttcper)) - Changed `window.close()` to preserve access to the document and its DOM through retained references. - Fixed `element.querySelectorAll()` returning no matches when the first part of the selector matches the element itself, which regressed in v30.0.0. ([@&#8203;asamuzaK](https://github.com/asamuzaK)) - Fixed case sensitivity in CSS attribute selectors, including selectors matching `data-state=""`, `title=""`, and other case-sensitive values. ([@&#8203;asamuzaK](https://github.com/asamuzaK)) - Fixed `document.querySelector()` failing to find a matching element when an earlier element has the same ID but does not match the rest of the selector. ([@&#8203;vojtisprime11](https://github.com/vojtisprime11)) - Fixed `:focus` matching in shadow trees. ([@&#8203;asamuzaK](https://github.com/asamuzaK)) - Fixed DOM insertion and replacement, including valid `document.replaceChildren()` calls, invalid document element and doctype placements, and mutations during `element.replaceWith()`. - Fixed the ordering of script execution, custom element callbacks, iframe loading, and mutation observer notifications during DOM insertion, including in shadow trees. - Fixed queued events and navigation continuing after `window.close()` or iframe removal, and prevented new scripts, resource loads, timers, and animation frames from starting in destroyed documents. ([@&#8203;scttcper](https://github.com/scttcper)) - Fixed parent documents waiting indefinitely for loading to finish when a child iframe removes itself during loading. - Fixed request cancellation across redirects, during pending `requestInterceptor()` callbacks, and when reusing an `XMLHttpRequest` after aborting it. - Fixed resource loading and `JSDOM.fromURL()` potentially hanging when response handling throws and response stream cleanup does not finish. - Fixed successful cached resource loads being treated as aborted. - Fixed `getComputedStyle()` and `document.styleSheets` using the wrong stylesheet order after inserting or updating `<style>` elements. - Fixed `getComputedStyle()` ignoring nested `@import` and `@media` rules in imported stylesheets, and returning stale results after imports finish loading. - Fixed style invalidation, stylesheet removal, and frame source updates in shadow trees. - Fixed repeated `getComputedStyle()` calls changing case-sensitive background URLs, and inconsistent resolution of border shorthands containing system colors. ([@&#8203;scttcper](https://github.com/scttcper)) - Fixed computed border widths, including borderless elements incorrectly reporting `16px`, which regressed in v30.0.0. ([@&#8203;Alberto-BaseNet](https://github.com/Alberto-BaseNet)) - Fixed `getComputedStyle()` to resolve `'font-weight'` keywords to numeric values. ([@&#8203;tianrking](https://github.com/tianrking)) - Fixed `getComputedStyle()` to convert lengths to pixels inside CSS math functions containing percentages, and to resolve percentages in `'font-size'` math functions. ([@&#8203;soroushm](https://github.com/soroushm)) - Fixed serialization of `min()` and `max()` containing nested `calc()`, which regressed in v30.0.0. ([@&#8203;asamuzaK](https://github.com/asamuzaK)) - Fixed CSS values mixing lengths or percentages with math functions, such as `'grid-template-columns'` values containing both `100px` and `calc()`. ([@&#8203;rome-xi](https://github.com/rome-xi)) - Fixed parsing of `'background'` and `'border'` shorthands with adjacent components, such as `url(a.png)no-repeat`, including a crash when parsing inline styles. Also fixed handling of invalid shorthand assignments and escaped or unusual characters in CSS declarations. ([@&#8203;asamuzaK](https://github.com/asamuzaK)) - Fixed parsing of unitless zero values in `'flex'` shorthands, such as `35 1 0`, and rejection of negative `'flex-basis'` lengths and percentages. ([@&#8203;asamuzaK](https://github.com/asamuzaK)) - Fixed shorthand style assignments producing extra mutation records and custom element callbacks for intermediate values. ([@&#8203;scttcper](https://github.com/scttcper)) - Fixed `Range` and `Selection` handling of CDATA sections, including boundary offsets and range cloning, extraction, deletion, insertion, and stringification. ([@&#8203;scttcper](https://github.com/scttcper)) - Fixed `text.normalize()` incorrectly removing the text node or merging its siblings. ([@&#8203;scttcper](https://github.com/scttcper)) - Fixed cloning and importing CDATA sections and processing instructions whose contents have been modified, and serialization of CDATA sections adopted into HTML documents. - Fixed stale named-property collections on `window`, and incorrect named access from empty or namespaced `id=""` and `name=""` values. ([@&#8203;scttcper](https://github.com/scttcper)) - Fixed elements in documents created with `DOMParser` or `document.implementation.createHTMLDocument()` appearing as named properties on `window` and being retained in memory. ([@&#8203;Iaotle](https://github.com/Iaotle)) - Fixed memory leaks from mutation observers retaining observed nodes, abort signals retaining removed event listeners, and storage event tracking retaining closed windows. ([@&#8203;scttcper](https://github.com/scttcper)) - Fixed `storage` events being sent to windows created after the storage change, and ensured surviving recipients still receive events when the source document is destroyed. - Fixed attribute lookups after namespace prefix changes, and namespaced attributes incorrectly affecting ID lookups and element behavior. ([@&#8203;scttcper](https://github.com/scttcper)) - Fixed `input.list` in detached element trees. ([@&#8203;scttcper](https://github.com/scttcper)) - Fixed `attr.ownerDocument` after setting an attribute node on an element in another document or adopting its element. ([@&#8203;Kjubikstronk](https://github.com/Kjubikstronk)) - Fixed fresh `element.getElementsByTagName()` calls using the previous document's case-sensitivity rules after adoption between HTML and XML documents. ([@&#8203;Kjubikstronk](https://github.com/Kjubikstronk)) - Fixed `element.tagName` returning stale casing after adoption between HTML and XML documents. - Fixed radio button grouping and checkedness updates for controls with different form owners, controls outside their form, unnamed controls, and canceled clicks. - Fixed `<select>` selection updates when moving options, and unintended selection resets when moving a whole `<select>` or changing unrelated descendants. - Fixed cloning `<input>` elements to preserve `input.indeterminate`. - Fixed focus state after removing a focused element or its ancestor, including inside shadow trees. - Fixed script execution when inserting children into a connected, empty `<script>`. ([@&#8203;Kjubikstronk](https://github.com/Kjubikstronk)) - Fixed incorrect script execution after changes to `src=""`, and handling of `type=""`, `for=""`, and `event=""`. - Fixed `document.currentScript` during nested script execution and scripts in shadow trees. - Fixed event dispatch, `window.event`, and default passive listener handling for non-node event targets, and event dispatch when user code modifies `window.constructor`. - Fixed `volumechange` and `ratechange` events to fire asynchronously. ([@&#8203;christianaurichzm](https://github.com/christianaurichzm)) - Fixed DOM APIs accepting user-created proxies around DOM objects where genuine DOM objects are required. - Fixed XPath iterator invalidation after DOM mutations and errors for invalid result types. - Fixed `NodeIterator` traversal when its filter removes nodes. - Fixed `fileReader.readAsText()` to honor the blob's MIME type charset when no supported explicit encoding is supplied. - Fixed fractional seconds in time input parsing and serialization. ([@&#8203;Jaybhade](https://github.com/Jaybhade)) - Fixed large `input.valueAsNumber` assignments for time and local date/time inputs. - Fixed hard wrapping of `<textarea>` values to use the numeric `textarea.cols` value. - Fixed `document.readyState` to be `"complete"` for documents created with `document.implementation.createDocument()` and `document.implementation.createHTMLDocument()`. - Fixed `element.translate` for empty `translate=""` values and elements without a parent. - Fixed XML parsing of lone surrogates to replace them with the Unicode replacement character. - Fixed `node.lookupNamespaceURI()` for the `xml` and `xmlns` prefixes. ([@&#8203;vojtisprime11](https://github.com/vojtisprime11)) - Fixed `<base>` elements to ignore `data:` and `javascript:` URLs. ([@&#8203;vojtisprime11](https://github.com/vojtisprime11)) - Fixed `svgElement.viewportElement` inside `<symbol>` elements. - Fixed the default `blobEvent.timecode` to be `NaN`. - Fixed the object shape and property descriptors of `CSS`. ### [`v30.0.1`](https://github.com/jsdom/jsdom/releases/tag/v30.0.1) [Compare Source](https://github.com/jsdom/jsdom/compare/v30.0.0...v30.0.1) - Fixed `getComputedStyle()` with `calc()` and other functions throwing an exception, which regressed in v30.0.0. ([@&#8203;asamuzaK](https://github.com/asamuzaK)) - Sped up up range operations on large documents ([@&#8203;leonidaz](https://github.com/leonidaz)) ### [`v30.0.0`](https://github.com/jsdom/jsdom/releases/tag/v30.0.0) [Compare Source](https://github.com/jsdom/jsdom/compare/v29.1.1...v30.0.0) Breaking changes: - Node.js minimum version raised to `^22.22.2 || ^24.15.0 || >=26.0.0`. Other changes: - Added `CSS.escape()` and `CSS.supports()` functions. ([@&#8203;asamuzaK](https://github.com/asamuzaK)) - Added `'background-position-x'` and `'background-position-y'` CSS properties. ([@&#8203;olagokemills](https://github.com/olagokemills)) - Fixed `getComputedStyle()` to convert length values into pixels. ([@&#8203;asamuzaK](https://github.com/asamuzaK)) - Fixed CSS function serialization, e.g., in the return value of `getPropertyValue()`. ([@&#8203;asamuzaK](https://github.com/asamuzaK)) - Fixed the type of error thrown by `document.evaluate()` ([@&#8203;dokson](https://github.com/dokson)) </details> <details> <summary>vitest-dev/vitest (vitest)</summary> ### [`v5.0.3`](https://github.com/vitest-dev/vitest/releases/tag/v5.0.3) [Compare Source](https://github.com/vitest-dev/vitest/compare/v5.0.2...v5.0.3) #####    🐞 Bug Fixes - Isolate `result.status` between `repeats` runs  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **Codex (GPT-6)** in [#&#8203;11218](https://github.com/vitest-dev/vitest/issues/11218) [<samp>(5dbeb)</samp>](https://github.com/vitest-dev/vitest/commit/5dbebe9e3) - Don't print an interceptor warning in browser mode  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;11377](https://github.com/vitest-dev/vitest/issues/11377) [<samp>(15cc0)</samp>](https://github.com/vitest-dev/vitest/commit/15cc006aa) - Don't retry when `test.fails` expectedly failed  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **Codex (GPT-6)** in [#&#8203;11219](https://github.com/vitest-dev/vitest/issues/11219) [<samp>(b2458)</samp>](https://github.com/vitest-dev/vitest/commit/b24585f08) - Scope cache key generators to projects  -  by [@&#8203;ecoyoung](https://github.com/ecoyoung) in [#&#8203;11281](https://github.com/vitest-dev/vitest/issues/11281) and [#&#8203;11301](https://github.com/vitest-dev/vitest/issues/11301) [<samp>(92ba7)</samp>](https://github.com/vitest-dev/vitest/commit/92ba7fc1d) - **browser**: - Delay server `listen` until tests start running  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;11366](https://github.com/vitest-dev/vitest/issues/11366) [<samp>(7d8ed)</samp>](https://github.com/vitest-dev/vitest/commit/7d8ed3e9b) - Check mock path boundaries  -  by [@&#8203;saryn17](https://github.com/saryn17), **Ryosei Sato** and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;11361](https://github.com/vitest-dev/vitest/issues/11361) and [#&#8203;11362](https://github.com/vitest-dev/vitest/issues/11362) [<samp>(1c388)</samp>](https://github.com/vitest-dev/vitest/commit/1c3888bce) - Keep config of browser-consumed environments  -  by [@&#8203;kasperpeulen](https://github.com/kasperpeulen) and **Claude** in [#&#8203;11378](https://github.com/vitest-dev/vitest/issues/11378) [<samp>(aafc0)</samp>](https://github.com/vitest-dev/vitest/commit/aafc0996f) - Ignore page crash while cancelling  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;11386](https://github.com/vitest-dev/vitest/issues/11386) [<samp>(7c367)</samp>](https://github.com/vitest-dev/vitest/commit/7c36748fa) - `toMatchScreenshot` uses wrong reference on retried tests  -  by [@&#8203;macarie](https://github.com/macarie) in [#&#8203;11393](https://github.com/vitest-dev/vitest/issues/11393) [<samp>(c22ab)</samp>](https://github.com/vitest-dev/vitest/commit/c22aba992) - **cache**: - Revalidate imports of cached modules  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;11381](https://github.com/vitest-dev/vitest/issues/11381) [<samp>(38f98)</samp>](https://github.com/vitest-dev/vitest/commit/38f98855f) - **deps**: - Pin `why-is-node-running` to `3.2.1` to avoid users running into `ERR_PNPM_TRUST_DOWNGRADE`  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;11403](https://github.com/vitest-dev/vitest/issues/11403) [<samp>(f6c9a)</samp>](https://github.com/vitest-dev/vitest/commit/f6c9a4977) - **expect**: - Pass current equality testers to `expect.extend` asymmetric matchers  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **Claude** in [#&#8203;11401](https://github.com/vitest-dev/vitest/issues/11401) [<samp>(3e794)</samp>](https://github.com/vitest-dev/vitest/commit/3e794a96b) - **jsdom**: - Support Blob on jsdom 30.1  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;11379](https://github.com/vitest-dev/vitest/issues/11379) [<samp>(6c49b)</samp>](https://github.com/vitest-dev/vitest/commit/6c49b7197) - **pool**: - Preserve unique pool ids when `groupOrder` is set  -  by [@&#8203;mtorp](https://github.com/mtorp) in [#&#8203;11392](https://github.com/vitest-dev/vitest/issues/11392) [<samp>(50312)</samp>](https://github.com/vitest-dev/vitest/commit/50312ebb4) - **ui**: - Split-pane handle overlapping iframe  -  by [@&#8203;macarie](https://github.com/macarie) in [#&#8203;11221](https://github.com/vitest-dev/vitest/issues/11221) [<samp>(f91db)</samp>](https://github.com/vitest-dev/vitest/commit/f91db0dfd) - **vitest**: - Remove root temp dir on close  -  by [@&#8203;abhinav-phi](https://github.com/abhinav-phi) in [#&#8203;11248](https://github.com/vitest-dev/vitest/issues/11248) [<samp>(7c711)</samp>](https://github.com/vitest-dev/vitest/commit/7c7119cf7) - **vm**: - Do not optimize deps from index.html  -  by [@&#8203;ezefernandezyf](https://github.com/ezefernandezyf), **Hiroshi Ogawa** and **Codex (GPT-6)** in [#&#8203;11329](https://github.com/vitest-dev/vitest/issues/11329) and [#&#8203;11360](https://github.com/vitest-dev/vitest/issues/11360) [<samp>(caf28)</samp>](https://github.com/vitest-dev/vitest/commit/caf2887de) - Don't reuse scripts across vite environments  -  by [@&#8203;MO2k4](https://github.com/MO2k4), **Martin Oehlert** and **Claude** in [#&#8203;11395](https://github.com/vitest-dev/vitest/issues/11395) [<samp>(346d3)</samp>](https://github.com/vitest-dev/vitest/commit/346d3896b) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v5.0.2...v5.0.3) ### [`v5.0.2`](https://github.com/vitest-dev/vitest/releases/tag/v5.0.2) [Compare Source](https://github.com/vitest-dev/vitest/compare/v5.0.1...v5.0.2) #####    🐞 Bug Fixes - Bind `process` in case global is overwritten  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;11343](https://github.com/vitest-dev/vitest/issues/11343) [<samp>(0b792)</samp>](https://github.com/vitest-dev/vitest/commit/0b79231ad) - **detect-async-leaks**: - Ignore `process.stdio` handles  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;11333](https://github.com/vitest-dev/vitest/issues/11333) [<samp>(0fd6b)</samp>](https://github.com/vitest-dev/vitest/commit/0fd6b9790) - **expect**: - Fix `toMatchObject` with asymmetric matchers  -  by [@&#8203;ShreeBohara](https://github.com/ShreeBohara), **Claude Opus 5**, [@&#8203;hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **Codex (GPT-5)** in [#&#8203;11100](https://github.com/vitest-dev/vitest/issues/11100) [<samp>(42523)</samp>](https://github.com/vitest-dev/vitest/commit/42523289e) - **jsdom**: - Fix `Request` with `Blob` body on jsdom 28+  -  by [@&#8203;harshit-d3v](https://github.com/harshit-d3v) in [#&#8203;11295](https://github.com/vitest-dev/vitest/issues/11295) [<samp>(d1c3e)</samp>](https://github.com/vitest-dev/vitest/commit/d1c3ecc93) - **reporter**: - `agent` to respect `--silent`  -  by [@&#8203;Raj4478](https://github.com/Raj4478) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;11271](https://github.com/vitest-dev/vitest/issues/11271) [<samp>(5b95e)</samp>](https://github.com/vitest-dev/vitest/commit/5b95efb6d) - **reporters**: - Handle concurrent `createReport` calls  -  by [@&#8203;7rulnik](https://github.com/7rulnik) in [#&#8203;11278](https://github.com/vitest-dev/vitest/issues/11278) [<samp>(e8e55)</samp>](https://github.com/vitest-dev/vitest/commit/e8e556ff7) - `hanging-process` to use ESM entrypoint  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;11316](https://github.com/vitest-dev/vitest/issues/11316) [<samp>(4e91e)</samp>](https://github.com/vitest-dev/vitest/commit/4e91e5668) - **spy**: - Fix stack overflow when spying `Set.prototype.add`  -  by [@&#8203;fengmk2](https://github.com/fengmk2) in [#&#8203;11299](https://github.com/vitest-dev/vitest/issues/11299) [<samp>(a0a93)</samp>](https://github.com/vitest-dev/vitest/commit/a0a939653) - **ui**: - Persist authentication cookie beyond current browser session  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#&#8203;11066](https://github.com/vitest-dev/vitest/issues/11066) [<samp>(f8819)</samp>](https://github.com/vitest-dev/vitest/commit/f88195e16) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v5.0.1...v5.0.2) ### [`v5.0.1`](https://github.com/vitest-dev/vitest/releases/tag/v5.0.1) [Compare Source](https://github.com/vitest-dev/vitest/compare/v5.0.0...v5.0.1) #####    🚀 Features - **ui**: - Move trace attempts selector to viewer header  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **Codex** in [#&#8203;11189](https://github.com/vitest-dev/vitest/issues/11189) [<samp>(5dc4b)</samp>](https://github.com/vitest-dev/vitest/commit/5dc4b5c92) - Add focused trace view layout mode  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa**, **OpenCode (gpt-5.6-sol)** and **Codex** in [#&#8203;11190](https://github.com/vitest-dev/vitest/issues/11190) [<samp>(376dc)</samp>](https://github.com/vitest-dev/vitest/commit/376dc3bc1) #####    🐞 Bug Fixes - Exit 1 when vitest list fails collection  -  by [@&#8203;hamed-bavar](https://github.com/hamed-bavar) in [#&#8203;11145](https://github.com/vitest-dev/vitest/issues/11145) and [#&#8203;11146](https://github.com/vitest-dev/vitest/issues/11146) [<samp>(6108b)</samp>](https://github.com/vitest-dev/vitest/commit/6108b8197) - Keep parse error details in static collection  -  by [@&#8203;hamed-bavar](https://github.com/hamed-bavar) in [#&#8203;11150](https://github.com/vitest-dev/vitest/issues/11150) and [#&#8203;11151](https://github.com/vitest-dev/vitest/issues/11151) [<samp>(7c818)</samp>](https://github.com/vitest-dev/vitest/commit/7c818153a) - Avoid recursive prototype in automocking  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;11195](https://github.com/vitest-dev/vitest/issues/11195) [<samp>(99fc5)</samp>](https://github.com/vitest-dev/vitest/commit/99fc52591) - Prevent false Vitest import resolution  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;11196](https://github.com/vitest-dev/vitest/issues/11196) [<samp>(b426c)</samp>](https://github.com/vitest-dev/vitest/commit/b426c1976) - Keep metadata file when clearing the cache  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;11199](https://github.com/vitest-dev/vitest/issues/11199) [<samp>(73614)</samp>](https://github.com/vitest-dev/vitest/commit/73614654a) - Correct typos in error message and comments  -  by [@&#8203;shinji00222](https://github.com/shinji00222) and **Shinji** in [#&#8203;11187](https://github.com/vitest-dev/vitest/issues/11187) [<samp>(115c3)</samp>](https://github.com/vitest-dev/vitest/commit/115c3f6d2) - Resolve ResolvedConfig exactOptionalPropertyTypes errors  -  by [@&#8203;LukeAbby](https://github.com/LukeAbby) in [#&#8203;11175](https://github.com/vitest-dev/vitest/issues/11175) [<samp>(498fb)</samp>](https://github.com/vitest-dev/vitest/commit/498fbe922) - Share the server on self-referencing `extends`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;11034](https://github.com/vitest-dev/vitest/issues/11034) [<samp>(23dda)</samp>](https://github.com/vitest-dev/vitest/commit/23dda738c) - Warn when deprecated `deps.optimizer.web` is used  -  by [@&#8203;im10furry](https://github.com/im10furry) in [#&#8203;11214](https://github.com/vitest-dev/vitest/issues/11214) [<samp>(2ce29)</samp>](https://github.com/vitest-dev/vitest/commit/2ce29d5fa) - **browser**: - Avoid double quotes in `config.define`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;11198](https://github.com/vitest-dev/vitest/issues/11198) [<samp>(972e2)</samp>](https://github.com/vitest-dev/vitest/commit/972e24bab) - **doctor**: - Measure vm pools for custom environments  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;11212](https://github.com/vitest-dev/vitest/issues/11212) [<samp>(91ab1)</samp>](https://github.com/vitest-dev/vitest/commit/91ab1588c) - **expect**: - Correct return value in `toMatchAriaSnapshot`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;11208](https://github.com/vitest-dev/vitest/issues/11208) [<samp>(c119b)</samp>](https://github.com/vitest-dev/vitest/commit/c119be016) - **fakeTimers**: - Force `queueMicrotask` and `nextTick` in `toNotFake`  -  by [@&#8203;kingmakeruix](https://github.com/kingmakeruix), **kingmakeruix**, **Hiroshi Ogawa**, **Codex** and [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;11261](https://github.com/vitest-dev/vitest/issues/11261) [<samp>(a47d7)</samp>](https://github.com/vitest-dev/vitest/commit/a47d7908f) - **snapshot**: - Report obsolete keys next to skipped tests  -  by [@&#8203;hamed-bavar](https://github.com/hamed-bavar), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#&#8203;11157](https://github.com/vitest-dev/vitest/issues/11157) and [#&#8203;11158](https://github.com/vitest-dev/vitest/issues/11158) [<samp>(17e2b)</samp>](https://github.com/vitest-dev/vitest/commit/17e2b22dd) - **types**: - Make public declarations self-contained  -  by [@&#8203;ZoeySigel](https://github.com/ZoeySigel) in [#&#8203;11141](https://github.com/vitest-dev/vitest/issues/11141) [<samp>(45546)</samp>](https://github.com/vitest-dev/vitest/commit/455466c16) - **ui**: - Fix collapse/expand suite with file name search  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **Codex** in [#&#8203;11260](https://github.com/vitest-dev/vitest/issues/11260) [<samp>(0a712)</samp>](https://github.com/vitest-dev/vitest/commit/0a7122daa) - Fix explorer file summary count  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa**, **OpenCode (gpt-5.6-sol)** and **Codex** in [#&#8203;11125](https://github.com/vitest-dev/vitest/issues/11125) [<samp>(05982)</samp>](https://github.com/vitest-dev/vitest/commit/05982297d) - **utils**: - Fix `deepMerge` to handle prototype  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **Codex** in [#&#8203;11215](https://github.com/vitest-dev/vitest/issues/11215) [<samp>(4944c)</samp>](https://github.com/vitest-dev/vitest/commit/4944cf498) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v5.0.0...v5.0.1) ### [`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 [@&#8203;hi-ogawa](https://github.com/hi-ogawa), **Claude Opus 5 (1M context)** and **OpenAI Codex** in [#&#8203;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 [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;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 [@&#8203;MdSadiqMd](https://github.com/MdSadiqMd) in [#&#8203;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 [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;10212](https://github.com/vitest-dev/vitest/issues/10212) [<samp>(80f07)</samp>](https://github.com/vitest-dev/vitest/commit/80f07edf6) - Inline `expect` package  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;hi-ogawa](https://github.com/hi-ogawa), **OpenAI Codex** and **Hiroshi Ogawa** in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenAI Codex** in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;macarie](https://github.com/macarie) in [#&#8203;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 [@&#8203;hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#&#8203;10654](https://github.com/vitest-dev/vitest/issues/10654) [<samp>(f8b15)</samp>](https://github.com/vitest-dev/vitest/commit/f8b1532fe) - Remove webdriverio package  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;fabon-f](https://github.com/fabon-f), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#&#8203;10757](https://github.com/vitest-dev/vitest/issues/10757) [<samp>(ac2d4)</samp>](https://github.com/vitest-dev/vitest/commit/ac2d46b42) - Support nested projects  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;10113](https://github.com/vitest-dev/vitest/issues/10113) [<samp>(19f6e)</samp>](https://github.com/vitest-dev/vitest/commit/19f6e8947) - **browser**: - Iframe scale  -  by [@&#8203;macarie](https://github.com/macarie) in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenAI Codex** in [#&#8203;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 [@&#8203;macarie](https://github.com/macarie) in [#&#8203;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 [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;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 [@&#8203;vladlenskiy](https://github.com/vladlenskiy) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;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 [#&#8203;6710](https://github.com/vitest-dev/vitest/issues/6710)  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9643](https://github.com/vitest-dev/vitest/issues/9643) and [#&#8203;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 [@&#8203;nami8824](https://github.com/nami8824) in [#&#8203;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 [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;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 [@&#8203;hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa**, **OpenCode (gpt-5.6-sol)** and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;samchungy](https://github.com/samchungy) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenAI Codex** in [#&#8203;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 [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **Hiroshi Ogawa** in [#&#8203;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 [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;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 [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **Claude Opus 5 (1M context)** in [#&#8203;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 [@&#8203;hi-ogawa](https://github.com/hi-ogawa), **Claude Opus 5 (1M context)**, **OpenAI Codex** and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;10031](https://github.com/vitest-dev/vitest/issues/10031) [<samp>(e60b2)</samp>](https://github.com/vitest-dev/vitest/commit/e60b2f49e) - Add `logger.formatError`  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#&#8203;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 [@&#8203;lishaduck](https://github.com/lishaduck) in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;k-yle](https://github.com/k-yle) in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;GuillaumeLagrange](https://github.com/GuillaumeLagrange) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;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 [@&#8203;hi-ogawa](https://github.com/hi-ogawa), **Claude Opus 5 (1M context)** and **OpenAI Codex** in [#&#8203;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 [@&#8203;macarie](https://github.com/macarie) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#&#8203;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 [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;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 [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#&#8203;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 [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;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 [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#&#8203;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 [@&#8203;hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenAI Codex** in [#&#8203;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 [@&#8203;todor-a](https://github.com/todor-a) in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;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 [@&#8203;wouterkroes](https://github.com/wouterkroes) in [#&#8203;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 [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;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 [@&#8203;neumaennl](https://github.com/neumaennl), **neumaennl**, **Martin Neumann** and **Copilot** in [#&#8203;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 [@&#8203;hi-ogawa](https://github.com/hi-ogawa), **OpenAI Codex** and **Claude Opus 5 (1M context)** in [#&#8203;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 [@&#8203;heyJonBray](https://github.com/heyJonBray) and [@&#8203;macarie](https://github.com/macarie) in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#&#8203;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 [@&#8203;hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#&#8203;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 [@&#8203;hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#&#8203;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 [@&#8203;hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#&#8203;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 [@&#8203;macarie](https://github.com/macarie) in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;hi-ogawa](https://github.com/hi-ogawa), **OpenAI Codex** and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;lloyd-c137](https://github.com/lloyd-c137) and **lloyd-c137** in [#&#8203;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 [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#&#8203;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 [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;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 [@&#8203;macayu17](https://github.com/macayu17) and [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;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 [@&#8203;Copilot](https://github.com/Copilot), **Hiroshi Ogawa**, [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#&#8203;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 [@&#8203;Patrick-Clausen](https://github.com/Patrick-Clausen) and **Patrick Clausen** in [#&#8203;10421](https://github.com/vitest-dev/vitest/issues/10421) and [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;Copilot](https://github.com/Copilot), **Hiroshi Ogawa**, [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;davidxharris](https://github.com/davidxharris), **David Harris**, [@&#8203;hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenAI Codex** in [#&#8203;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 [@&#8203;potatomatoooo](https://github.com/potatomatoooo) and [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;10570](https://github.com/vitest-dev/vitest/issues/10570) and [#&#8203;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 [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **Hiroshi Ogawa** in [#&#8203;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 [@&#8203;hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;hirehamir](https://github.com/hirehamir) in [#&#8203;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 [@&#8203;malobre](https://github.com/malobre) in [#&#8203;10630](https://github.com/vitest-dev/vitest/issues/10630) and [#&#8203;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 [@&#8203;zakcutner](https://github.com/zakcutner) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;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 [@&#8203;xevrion](https://github.com/xevrion) in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;hitenkalda](https://github.com/hitenkalda) and **Hiten Kalda** in [#&#8203;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 [@&#8203;koutaro-masaki](https://github.com/koutaro-masaki) in [#&#8203;10577](https://github.com/vitest-dev/vitest/issues/10577) and [#&#8203;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 [@&#8203;lazerg](https://github.com/lazerg) in [#&#8203;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 [@&#8203;kade-robertson](https://github.com/kade-robertson) in [#&#8203;10145](https://github.com/vitest-dev/vitest/issues/10145) and [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa**, **OpenCode (gpt-5.6-sol)** and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;AriPerkkio](https://github.com/AriPerkkio) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;11073](https://github.com/vitest-dev/vitest/issues/11073) and [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;Gaurav1112](https://github.com/Gaurav1112) in [#&#8203;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 [@&#8203;juliandescottes](https://github.com/juliandescottes) and **Claude Opus 5 (1M context)** in [#&#8203;10706](https://github.com/vitest-dev/vitest/issues/10706) and [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;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 [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;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 [@&#8203;Zelys-DFKH](https://github.com/Zelys-DFKH) in [#&#8203;9957](https://github.com/vitest-dev/vitest/issues/9957) and [#&#8203;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 [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;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 [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;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 [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#&#8203;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 [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#&#8203;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 [@&#8203;soconnor-seeq](https://github.com/soconnor-seeq) in [#&#8203;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 [@&#8203;soconnor-seeq](https://github.com/soconnor-seeq) in [#&#8203;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 [@&#8203;Pduhard](https://github.com/Pduhard), **Pduhard** and **Claude Opus 5 (1M context)** in [#&#8203;10520](https://github.com/vitest-dev/vitest/issues/10520) and [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#&#8203;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 [@&#8203;smeng9](https://github.com/smeng9), **Shaoyu Meng** and **Claude Opus 5 (1M context)** in [#&#8203;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 [@&#8203;aaravjaichand](https://github.com/aaravjaichand) in [#&#8203;7375](https://github.com/vitest-dev/vitest/issues/7375) and [#&#8203;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 [@&#8203;simshanith](https://github.com/simshanith) in [#&#8203;9379](https://github.com/vitest-dev/vitest/issues/9379) and [#&#8203;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 [@&#8203;lazerg](https://github.com/lazerg) in [#&#8203;10879](https://github.com/vitest-dev/vitest/issues/10879) and [#&#8203;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 [@&#8203;lebovvskii](https://github.com/lebovvskii) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;10836](https://github.com/vitest-dev/vitest/issues/10836) and [#&#8203;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 [@&#8203;hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#&#8203;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 [@&#8203;hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#&#8203;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 [@&#8203;hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#&#8203;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 [#&#8203;10295](https://github.com/vitest-dev/vitest/issues/10295) and [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;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 [@&#8203;liuluochen6-af](https://github.com/liuluochen6-af), **Hiroshi Ogawa**, **OpenCode (gpt-5.6-sol)** and [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;10906](https://github.com/vitest-dev/vitest/issues/10906) and [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;jszumski](https://github.com/jszumski) in [#&#8203;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 [@&#8203;dokson](https://github.com/dokson) in [#&#8203;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 [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;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 [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;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 [@&#8203;innoprej](https://github.com/innoprej), **Shin JaeHee** and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;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 [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;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 [@&#8203;jgamaraalv](https://github.com/jgamaraalv) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;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 [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;11023](https://github.com/vitest-dev/vitest/issues/11023) [<samp>(c6174)</samp>](https://github.com/vitest-dev/vitest/commit/c6174a6cf) - Prevent crash on `/@&#8203;fs/` prepended virtual files  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;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 [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;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 [@&#8203;BPScott](https://github.com/BPScott), [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [#&#8203;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 [#&#8203;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 [@&#8203;YBJ0000](https://github.com/YBJ0000) in [#&#8203;10264](https://github.com/vitest-dev/vitest/issues/10264) and [#&#8203;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 [@&#8203;liyimil](https://github.com/liyimil) in [#&#8203;10735](https://github.com/vitest-dev/vitest/issues/10735) and [#&#8203;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 [@&#8203;gbleu](https://github.com/gbleu) and **Claude Opus 5 (1M context)** in [#&#8203;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 [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#&#8203;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 [@&#8203;Brooooooklyn](https://github.com/Brooooooklyn) and **Claude Opus 5 (1M context)** in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;jaxalo](https://github.com/jaxalo) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;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 [@&#8203;filmaj](https://github.com/filmaj) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;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 [@&#8203;milas](https://github.com/milas) in [#&#8203;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 [@&#8203;lazerg](https://github.com/lazerg) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;OfekDanny](https://github.com/OfekDanny), **Ofek Danny**, **Claude Opus 5 (1M context)** and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;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 [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;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 [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;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 [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;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 [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#&#8203;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 [@&#8203;ChihebBENCHEIKH1](https://github.com/ChihebBENCHEIKH1), **Chiheb Bencheikh** and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;10606](https://github.com/vitest-dev/vitest/issues/10606) and [#&#8203;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 [@&#8203;macarie](https://github.com/macarie) in [#&#8203;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 [@&#8203;DoriAlagem](https://github.com/DoriAlagem), **Dor Alagem** and [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;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 [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;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 [@&#8203;tomohiro86](https://github.com/tomohiro86) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;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 [@&#8203;mayrang](https://github.com/mayrang) and [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;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 [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;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 [@&#8203;hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa**, **OpenCode (gpt-5.6-sol)** and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;cyphercodes](https://github.com/cyphercodes) in [#&#8203;10172](https://github.com/vitest-dev/vitest/issues/10172) and [#&#8203;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 [@&#8203;ryandiginomad](https://github.com/ryandiginomad) and **Ryan Tang** in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;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 [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#&#8203;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 [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#&#8203;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 [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;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 [@&#8203;Copilot](https://github.com/Copilot), **Hiroshi Ogawa** and [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;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 [@&#8203;hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#&#8203;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 [@&#8203;hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#&#8203;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 [@&#8203;hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#&#8203;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 [@&#8203;hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#&#8203;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 [@&#8203;dvmhmdsd](https://github.com/dvmhmdsd), **Hiroshi Ogawa**, **OpenCode (gpt-5.6-sol)** and [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;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 [@&#8203;hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#&#8203;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 [@&#8203;lazerg](https://github.com/lazerg), **Hiroshi Ogawa**, **OpenCode (gpt-5.6-sol)** and [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;10892](https://github.com/vitest-dev/vitest/issues/10892) and [#&#8203;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 [@&#8203;DucMinhNe](https://github.com/DucMinhNe) in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;spokodev](https://github.com/spokodev) in [#&#8203;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 [@&#8203;SveLil](https://github.com/SveLil) in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;MarshallOfSound](https://github.com/MarshallOfSound) in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;rotempasharel1](https://github.com/rotempasharel1) in [#&#8203;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 [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;jszumski](https://github.com/jszumski) in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;kasperpeulen](https://github.com/kasperpeulen) in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;10729](https://github.com/vitest-dev/vitest/issues/10729) [<samp>(7af87)</samp>](https://github.com/vitest-dev/vitest/commit/7af8755ae) - **cache**: - Hash the environment-invariant part of the fs module cache key once  -  by [@&#8203;MarshallOfSound](https://github.com/MarshallOfSound) in [#&#8203;11029](https://github.com/vitest-dev/vitest/issues/11029) [<samp>(1d365)</samp>](https://github.com/vitest-dev/vitest/commit/1d365db15) - **coverage**: - Speed up v8 report generation (bounded-memory merge + precompiled globs)  -  by [@&#8203;toxik](https://github.com/toxik), **Claude Opus 5 (1M context)** and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;10506](https://github.com/vitest-dev/vitest/issues/10506) [<samp>(b05e5)</samp>](https://github.com/vitest-dev/vitest/commit/b05e5d634) - Reduce RPC data and unnecessary serializations  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;10781](https://github.com/vitest-dev/vitest/issues/10781) [<samp>(7e7e3)</samp>](https://github.com/vitest-dev/vitest/commit/7e7e35cb4) - **expect**: - Avoid redefining matcher state  -  by [@&#8203;scttcper](https://github.com/scttcper) and **OpenAI Codex** in [#&#8203;11048](https://github.com/vitest-dev/vitest/issues/11048) [<samp>(58e71)</samp>](https://github.com/vitest-dev/vitest/commit/58e71306b) - Lazily format spy matcher failures  -  by [@&#8203;scttcper](https://github.com/scttcper) and **OpenAI Codex** in [#&#8203;11090](https://github.com/vitest-dev/vitest/issues/11090) [<samp>(e08c4)</samp>](https://github.com/vitest-dev/vitest/commit/e08c45c39) - **spy**: - Avoid scanning cleared mocks  -  by [@&#8203;scttcper](https://github.com/scttcper) and **OpenAI Codex** in [#&#8203;11092](https://github.com/vitest-dev/vitest/issues/11092) [<samp>(2451e)</samp>](https://github.com/vitest-dev/vitest/commit/2451e34c4) - **vm**: - Don't prewarm modules the worker never requests  -  by [@&#8203;MarshallOfSound](https://github.com/MarshallOfSound) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;11033](https://github.com/vitest-dev/vitest/issues/11033) [<samp>(1e9f8)</samp>](https://github.com/vitest-dev/vitest/commit/1e9f80ec1) - Let environments opt out of the module graph prewarm  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;11078](https://github.com/vitest-dev/vitest/issues/11078) [<samp>(a6d5e)</samp>](https://github.com/vitest-dev/vitest/commit/a6d5ea2d8) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.1.5...v5.0.0) ### [`v4.1.11`](https://github.com/vitest-dev/vitest/releases/tag/v4.1.11) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.1.10...v4.1.11) #####    🐞 Bug Fixes - Revive global concurrency limit for test lifecycle \[backport to v4]  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) and [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;10992](https://github.com/vitest-dev/vitest/issues/10992) [<samp>(5146d)</samp>](https://github.com/vitest-dev/vitest/commit/5146df80b) - **browser**: - Encode iframeId in tester iframe URL \[backport to v4]  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va), **Pduhard** and **Claude Opus 4.8** in [#&#8203;10955](https://github.com/vitest-dev/vitest/issues/10955) [<samp>(10b2c)</samp>](https://github.com/vitest-dev/vitest/commit/10b2cd201) - Trigger playwright/chromium gc on lower disk availability \[backport to v4]  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode** in [#&#8203;10951](https://github.com/vitest-dev/vitest/issues/10951) [<samp>(9851d)</samp>](https://github.com/vitest-dev/vitest/commit/9851dbc41) - **mocker**: - Restrict redirect mocks to the fs allowlist \[backport to v4]  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;10974](https://github.com/vitest-dev/vitest/issues/10974) [<samp>(fe5a1)</samp>](https://github.com/vitest-dev/vitest/commit/fe5a11d3c) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.1.10...v4.1.11) ### [`v4.1.10`](https://github.com/vitest-dev/vitest/releases/tag/v4.1.10) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.1.9...v4.1.10) #####    🐞 Bug Fixes - **browser**: Check fs access in builtin commands \[backport to v4]  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (claude-opus-4-8)** in [#&#8203;10680](https://github.com/vitest-dev/vitest/issues/10680) [<samp>(5c18d)</samp>](https://github.com/vitest-dev/vitest/commit/5c18dd267) - **vm**: Fix external module resolve error with deps optimizer query for encoded URI \[backport to v4]  -  by [@&#8203;SveLil](https://github.com/SveLil) and [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;10661](https://github.com/vitest-dev/vitest/issues/10661) [<samp>(bae52)</samp>](https://github.com/vitest-dev/vitest/commit/bae52b511) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.1.9...v4.1.10) ### [`v4.1.9`](https://github.com/vitest-dev/vitest/releases/tag/v4.1.9) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.1.8...v4.1.9) ##### 🐞 Bug Fixes - Fix `importOriginal` with optimizer and query import \[backport to v4] - by **Hiroshi Ogawa**, **David Harris**, **Codex**and **Vladimir** in [#&#8203;10546](https://github.com/vitest-dev/vitest/issues/10546) [<samp>(a5180)</samp>](https://github.com/vitest-dev/vitest/commit/a5180190c) - **browser**: - Wait for orchestrator readiness before resolving browser sessions \[backport to v4] - by **Vladimir** and **Séamus O'Connor** in [#&#8203;10555](https://github.com/vitest-dev/vitest/issues/10555) [<samp>(7fb29)</samp>](https://github.com/vitest-dev/vitest/commit/7fb29651a) - Wait for iframe tester readiness before preparing \[backport to v4] - by **Vladimir** and **Séamus O'Connor** in [#&#8203;10497](https://github.com/vitest-dev/vitest/issues/10497) and [#&#8203;10556](https://github.com/vitest-dev/vitest/issues/10556) [<samp>(fbc62)</samp>](https://github.com/vitest-dev/vitest/commit/fbc626c40) - **mocker**: - Hoist vi.mock() for vite-plus/test imports \[backport to v4] - by **Hiroshi Ogawa**, **LongYinan**, **Claude Opus 4.8** and **Vladimir** in [#&#8203;10548](https://github.com/vitest-dev/vitest/issues/10548) [<samp>(2c955)</samp>](https://github.com/vitest-dev/vitest/commit/2c9559c02) - **pool**: - Prevent test run hang on worker crash \[backport to v4] - by **Ari Perkkiö** and **Jattioui Ismail** in [#&#8203;10543](https://github.com/vitest-dev/vitest/issues/10543) and [#&#8203;10564](https://github.com/vitest-dev/vitest/issues/10564) [<samp>(934b0)</samp>](https://github.com/vitest-dev/vitest/commit/934b0f587) ##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.1.8...v4.1.9) ### [`v4.1.8`](https://github.com/vitest-dev/vitest/releases/tag/v4.1.8) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.1.7...v4.1.8) #####    🐞 Bug Fixes - **browser**: - Disable client `cdp` API when `allowWrite/allowExec: false` \[backport to v4]  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **Codex** in [#&#8203;10450](https://github.com/vitest-dev/vitest/issues/10450) [<samp>(e4067)</samp>](https://github.com/vitest-dev/vitest/commit/e4067b3b1) - Remove orphaned Playwright route when same module is mocked via multiple ids \[backport to v4]  -  by [@&#8203;toxik](https://github.com/toxik) and [@&#8203;Zelys-DFKH](https://github.com/Zelys-DFKH) in [#&#8203;10474](https://github.com/vitest-dev/vitest/issues/10474) [<samp>(675b4)</samp>](https://github.com/vitest-dev/vitest/commit/675b4343f) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.1.7...v4.1.8) ### [`v4.1.7`](https://github.com/vitest-dev/vitest/releases/tag/v4.1.7) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.1.6...v4.1.7) #####    🐞 Bug Fixes - **runner**: Limit concurrency per task branch in addition to per leaf callbacks (backport)  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;10384](https://github.com/vitest-dev/vitest/issues/10384) [<samp>(4f0f2)</samp>](https://github.com/vitest-dev/vitest/commit/4f0f2a1ee) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.1.6...v4.1.7) ### [`v4.1.6`](https://github.com/vitest-dev/vitest/releases/tag/v4.1.6) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.1.5...v4.1.6) #####    🐞 Bug Fixes - **browser**: Provide project reference in `ToMatchScreenshotResolvePath`  -  by [@&#8203;macarie](https://github.com/macarie) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;10138](https://github.com/vitest-dev/vitest/issues/10138) [<samp>(31882)</samp>](https://github.com/vitest-dev/vitest/commit/31882607c) - Global `sequence.concurrent: true` with top-level `test(..., { concurrent: false })` + depreacte `sequential` test API and options  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa), **Codex** and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;10196](https://github.com/vitest-dev/vitest/issues/10196) [<samp>(2847d)</samp>](https://github.com/vitest-dev/vitest/commit/2847dfa2a) - **browser**: Simplify orchestrator otel carrier  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;10285](https://github.com/vitest-dev/vitest/issues/10285) [<samp>(18af9)</samp>](https://github.com/vitest-dev/vitest/commit/18af98cee) #####    🏎 Performance - Stringify diff objects only once  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;10276](https://github.com/vitest-dev/vitest/issues/10276) [<samp>(9f7b1)</samp>](https://github.com/vitest-dev/vitest/commit/9f7b1528c) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.1.5...v4.1.6) ### [`v4.1.5`](https://github.com/vitest-dev/vitest/releases/tag/v4.1.5) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.1.4...v4.1.5) #####    🚀 Experimental Features - **coverage**: Istanbul to support `instrumenter` option  -  by [@&#8203;BartWaardenburg](https://github.com/BartWaardenburg) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;10119](https://github.com/vitest-dev/vitest/issues/10119) [<samp>(0e0ff)</samp>](https://github.com/vitest-dev/vitest/commit/0e0ff41c7) #####    🐞 Bug Fixes - \--project negation excludes browser instances  -  by [@&#8203;felamaslen](https://github.com/felamaslen) in [#&#8203;10131](https://github.com/vitest-dev/vitest/issues/10131) [<samp>(9423d)</samp>](https://github.com/vitest-dev/vitest/commit/9423dc084) - Project color label on html reporter  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;10142](https://github.com/vitest-dev/vitest/issues/10142) [<samp>(596f7)</samp>](https://github.com/vitest-dev/vitest/commit/596f73986) - Fix `vi.defineHelper` called as object method  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;10163](https://github.com/vitest-dev/vitest/issues/10163) [<samp>(122c2)</samp>](https://github.com/vitest-dev/vitest/commit/122c25b5b) - Alias `agent` reporter to `minimal`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;10157](https://github.com/vitest-dev/vitest/issues/10157) [<samp>(663b9)</samp>](https://github.com/vitest-dev/vitest/commit/663b99fe3) - Respect diff config options in soft assertions  -  by [@&#8203;Copilot](https://github.com/Copilot), **sheremet-va** and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8696](https://github.com/vitest-dev/vitest/issues/8696) [<samp>(9787d)</samp>](https://github.com/vitest-dev/vitest/commit/9787dedad) - Respect diff config options in soft assertions "  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8696](https://github.com/vitest-dev/vitest/issues/8696) [<samp>(7dc6d)</samp>](https://github.com/vitest-dev/vitest/commit/7dc6d54fd) - **ast-collect**: Recognize \_*vi\_import* prefix in static test discovery  -  by [@&#8203;Yejneshwar](https://github.com/Yejneshwar) in [#&#8203;10129](https://github.com/vitest-dev/vitest/issues/10129) [<samp>(32546)</samp>](https://github.com/vitest-dev/vitest/commit/325463ab2) - **coverage**: Descriptive error message when reports directory is removed during test run  -  by [@&#8203;DaveT1991](https://github.com/DaveT1991) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;10117](https://github.com/vitest-dev/vitest/issues/10117) [<samp>(14133)</samp>](https://github.com/vitest-dev/vitest/commit/1413382e1) - **snapshot**: Increase default snapshot max output length  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **Codex** in [#&#8203;10150](https://github.com/vitest-dev/vitest/issues/10150) [<samp>(21e66)</samp>](https://github.com/vitest-dev/vitest/commit/21e66ff63) - **ui**: Fix jsx/tsx syntax highlight  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;10152](https://github.com/vitest-dev/vitest/issues/10152) [<samp>(f1b1f)</samp>](https://github.com/vitest-dev/vitest/commit/f1b1f6c7b) - **web-worker**: Support MessagePort objects referenced inside postMessage data  -  by [@&#8203;whitphx](https://github.com/whitphx) and **Claude Opus 4.6 (1M context)** in [#&#8203;9927](https://github.com/vitest-dev/vitest/issues/9927) and [#&#8203;10124](https://github.com/vitest-dev/vitest/issues/10124) [<samp>(7ad7d)</samp>](https://github.com/vitest-dev/vitest/commit/7ad7d39af) - **api**: Make test-specification options writable  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;10154](https://github.com/vitest-dev/vitest/issues/10154) [<samp>(6abd5)</samp>](https://github.com/vitest-dev/vitest/commit/6abd557b7) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.1.4...v4.1.5) ### [`v4.1.4`](https://github.com/vitest-dev/vitest/releases/tag/v4.1.4) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.1.3...v4.1.4) #####    🚀 Experimental Features - **coverage**: - Default to text reporter `skipFull` if agent detected  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;10018](https://github.com/vitest-dev/vitest/issues/10018) [<samp>(53757)</samp>](https://github.com/vitest-dev/vitest/commit/53757804c) - **experimental**: - Expose `assertion` as a public field  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;10095](https://github.com/vitest-dev/vitest/issues/10095) [<samp>(a120e)</samp>](https://github.com/vitest-dev/vitest/commit/a120e3ab8) - Support aria snapshot  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa), **Claude Opus 4.6 (1M context)**, [@&#8203;AriPerkkio](https://github.com/AriPerkkio), **Codex** and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9668](https://github.com/vitest-dev/vitest/issues/9668) [<samp>(d4fbb)</samp>](https://github.com/vitest-dev/vitest/commit/d4fbb5cc9) - **reporter**: - Add filterMeta option to json reporter  -  by [@&#8203;nami8824](https://github.com/nami8824) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;10078](https://github.com/vitest-dev/vitest/issues/10078) [<samp>(b77de)</samp>](https://github.com/vitest-dev/vitest/commit/b77de968e) #####    🐞 Bug Fixes - Use "black" foreground for labeled terminal message to ensure contrast  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;10076](https://github.com/vitest-dev/vitest/issues/10076) [<samp>(203f0)</samp>](https://github.com/vitest-dev/vitest/commit/203f07af7) - Make `expect(..., message)` consistent as error message prefix  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **Codex** in [#&#8203;10068](https://github.com/vitest-dev/vitest/issues/10068) [<samp>(a1b5f)</samp>](https://github.com/vitest-dev/vitest/commit/a1b5f0f4f) - Do not hoist imports whose names match class properties .  -  by [@&#8203;SunsetFi](https://github.com/SunsetFi) in [#&#8203;10093](https://github.com/vitest-dev/vitest/issues/10093) and [#&#8203;10094](https://github.com/vitest-dev/vitest/issues/10094) [<samp>(0fc4b)</samp>](https://github.com/vitest-dev/vitest/commit/0fc4b47e0) - **browser**: Spread user server options into browser Vite server in project  -  by [@&#8203;GoldStrikeArch](https://github.com/GoldStrikeArch) in [#&#8203;10049](https://github.com/vitest-dev/vitest/issues/10049) [<samp>(65c9d)</samp>](https://github.com/vitest-dev/vitest/commit/65c9d55eb) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.1.3...v4.1.4) ### [`v4.1.3`](https://github.com/vitest-dev/vitest/releases/tag/v4.1.3) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.1.2...v4.1.3) #####    🚀 Experimental Features - Add `experimental.preParse` flag  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;10070](https://github.com/vitest-dev/vitest/issues/10070) [<samp>(78273)</samp>](https://github.com/vitest-dev/vitest/commit/7827363bd) - Support `browser.locators.exact` option  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;10013](https://github.com/vitest-dev/vitest/issues/10013) [<samp>(48799)</samp>](https://github.com/vitest-dev/vitest/commit/487990a19) - Add `TestAttachment.bodyEncoding`  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9969](https://github.com/vitest-dev/vitest/issues/9969) [<samp>(89ca0)</samp>](https://github.com/vitest-dev/vitest/commit/89ca0e254) - Support custom snapshot matcher  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa), **Claude Sonnet 4.6** and **Codex** in [#&#8203;9973](https://github.com/vitest-dev/vitest/issues/9973) [<samp>(59b0e)</samp>](https://github.com/vitest-dev/vitest/commit/59b0e6411) #####    🐞 Bug Fixes - Advance fake timers with `expect.poll` interval  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **Claude Sonnet 4.6** in [#&#8203;10022](https://github.com/vitest-dev/vitest/issues/10022) [<samp>(3f5bf)</samp>](https://github.com/vitest-dev/vitest/commit/3f5bfa365) - Add `@vitest/coverage-v8` and `@vitest/coverage-istanbul` as optional dependency  -  by [@&#8203;alan-agius4](https://github.com/alan-agius4) in [#&#8203;10025](https://github.com/vitest-dev/vitest/issues/10025) [<samp>(146d4)</samp>](https://github.com/vitest-dev/vitest/commit/146d4f0a0) - Fix `defineHelper` for webkit async stack trace + update playwright 1.59.0  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;10036](https://github.com/vitest-dev/vitest/issues/10036) [<samp>(5a5fa)</samp>](https://github.com/vitest-dev/vitest/commit/5a5fa49fe) - Fix suite hook throwing errors for unused auto test-scoped fixture  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **Claude Sonnet 4.6** in [#&#8203;10035](https://github.com/vitest-dev/vitest/issues/10035) [<samp>(39865)</samp>](https://github.com/vitest-dev/vitest/commit/398657e8d) - **expect**: - Remove `JestExtendError.context` from verbose error reporting  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9983](https://github.com/vitest-dev/vitest/issues/9983) [<samp>(66751)</samp>](https://github.com/vitest-dev/vitest/commit/66751c9e8) - Don't leak "runner" types  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;10004](https://github.com/vitest-dev/vitest/issues/10004) [<samp>(ec204)</samp>](https://github.com/vitest-dev/vitest/commit/ec2045543) - **snapshot**: - Fix flagging obsolete snapshots for snapshot properties mismatch  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **Claude Sonnet 4.6** in [#&#8203;9986](https://github.com/vitest-dev/vitest/issues/9986) [<samp>(6b869)</samp>](https://github.com/vitest-dev/vitest/commit/6b869156b) - Export custom snapshot matcher helper from `vitest`  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **Codex** in [#&#8203;10042](https://github.com/vitest-dev/vitest/issues/10042) [<samp>(691d3)</samp>](https://github.com/vitest-dev/vitest/commit/691d341fd) - **ui**: - Don't leak vite types  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;10005](https://github.com/vitest-dev/vitest/issues/10005) [<samp>(fdff1)</samp>](https://github.com/vitest-dev/vitest/commit/fdff1bf9a) - **vm**: - Fix external module resolve error with deps optimizer query  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **Claude Sonnet 4.6** in [#&#8203;10024](https://github.com/vitest-dev/vitest/issues/10024) [<samp>(9dbf4)</samp>](https://github.com/vitest-dev/vitest/commit/9dbf47786) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.1.2...v4.1.3) ### [`v4.1.2`](https://github.com/vitest-dev/vitest/releases/tag/v4.1.2) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.1.1...v4.1.2) This release bumps Vitest's `flatted` version and removes version pinning to resolve `flatted`'s CVE related issues ([#&#8203;9975](https://github.com/vitest-dev/vitest/issues/9975)). #####    🐞 Bug Fixes - Don't resolve `setupFiles` from parent directory  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9960](https://github.com/vitest-dev/vitest/issues/9960) [<samp>(7aa93)</samp>](https://github.com/vitest-dev/vitest/commit/7aa937776) - Ensure sequential mock/unmock resolution  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **Claude Opus 4.6** in [#&#8203;9830](https://github.com/vitest-dev/vitest/issues/9830) [<samp>(7c065)</samp>](https://github.com/vitest-dev/vitest/commit/7c06598db) - **browser**: Take failure screenshot if `toMatchScreenshot` can't capture a stable screenshot  -  by [@&#8203;macarie](https://github.com/macarie) in [#&#8203;9847](https://github.com/vitest-dev/vitest/issues/9847) [<samp>(faace)</samp>](https://github.com/vitest-dev/vitest/commit/faace1fbe) - **coverage**: Correct `coverageConfigDefaults` values and types  -  by [@&#8203;Arthie](https://github.com/Arthie) in [#&#8203;9940](https://github.com/vitest-dev/vitest/issues/9940) [<samp>(b3c99)</samp>](https://github.com/vitest-dev/vitest/commit/b3c992cb2) - **pretty-format**: Fix output limit over counting  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9965](https://github.com/vitest-dev/vitest/issues/9965) [<samp>(d3b7a)</samp>](https://github.com/vitest-dev/vitest/commit/d3b7a40fa) - Disable colors if agent is detected  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;9851](https://github.com/vitest-dev/vitest/issues/9851) [<samp>(6f97b)</samp>](https://github.com/vitest-dev/vitest/commit/6f97b55dd) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.1.1...v4.1.2) ### [`v4.1.1`](https://github.com/vitest-dev/vitest/releases/tag/v4.1.1) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.1.0...v4.1.1) #####    🚀 Features - **experimental**: - Expose `matchesTags` to test if the current filter matches tags  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9913](https://github.com/vitest-dev/vitest/issues/9913) [<samp>(eec53)</samp>](https://github.com/vitest-dev/vitest/commit/eec53d9f5) - Introduce `experimental.vcsProvider`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9928](https://github.com/vitest-dev/vitest/issues/9928) [<samp>(56115)</samp>](https://github.com/vitest-dev/vitest/commit/561150036) #####    🐞 Bug Fixes - Mark `TestProject.testFilesList` internal properly  -  by [@&#8203;sapphi-red](https://github.com/sapphi-red) in [#&#8203;9867](https://github.com/vitest-dev/vitest/issues/9867) [<samp>(54f26)</samp>](https://github.com/vitest-dev/vitest/commit/54f2660f5) - Detect fixture that returns without calling `use`  -  by [@&#8203;oilater](https://github.com/oilater) in [#&#8203;9831](https://github.com/vitest-dev/vitest/issues/9831) and [#&#8203;9861](https://github.com/vitest-dev/vitest/issues/9861) [<samp>(633ae)</samp>](https://github.com/vitest-dev/vitest/commit/633ae2303) - Drop vite 8.beta support  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;9862](https://github.com/vitest-dev/vitest/issues/9862) [<samp>(b78f5)</samp>](https://github.com/vitest-dev/vitest/commit/b78f5389d) - Type regression in vi.mocked() static class methods  -  by [@&#8203;purepear](https://github.com/purepear) and [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9857](https://github.com/vitest-dev/vitest/issues/9857) [<samp>(90926)</samp>](https://github.com/vitest-dev/vitest/commit/90926641b) - Properly re-evaluate actual modules of mocked external  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9898](https://github.com/vitest-dev/vitest/issues/9898) [<samp>(ae5ec)</samp>](https://github.com/vitest-dev/vitest/commit/ae5ec03ef) - Preserve coverage report when html reporter overlaps  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9889](https://github.com/vitest-dev/vitest/issues/9889) [<samp>(2d81a)</samp>](https://github.com/vitest-dev/vitest/commit/2d81ad897) - Provide `vi.advanceTimers` to the preview provider  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9891](https://github.com/vitest-dev/vitest/issues/9891) [<samp>(1bc3e)</samp>](https://github.com/vitest-dev/vitest/commit/1bc3e63be) - Don't leak event listener in playwright provider  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9910](https://github.com/vitest-dev/vitest/issues/9910) [<samp>(d9355)</samp>](https://github.com/vitest-dev/vitest/commit/d93550ff7) - Open browser in `--standalone` mode without running tests  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9911](https://github.com/vitest-dev/vitest/issues/9911) [<samp>(e78ad)</samp>](https://github.com/vitest-dev/vitest/commit/e78adcf97) - Guard disposable and optional `body`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9912](https://github.com/vitest-dev/vitest/issues/9912) [<samp>(6fdb2)</samp>](https://github.com/vitest-dev/vitest/commit/6fdb2ba61) - Resolve `retry.condition` RegExp serialization issue  -  by [@&#8203;nstepien](https://github.com/nstepien) and [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9942](https://github.com/vitest-dev/vitest/issues/9942) [<samp>(7b605)</samp>](https://github.com/vitest-dev/vitest/commit/7b6054328) - **collect**: - Don't treat extra props on `test` return as tests  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9871](https://github.com/vitest-dev/vitest/issues/9871) [<samp>(141e7)</samp>](https://github.com/vitest-dev/vitest/commit/141e72aa1) - **coverage**: - Simplify provider types  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;9931](https://github.com/vitest-dev/vitest/issues/9931) [<samp>(aaf9f)</samp>](https://github.com/vitest-dev/vitest/commit/aaf9f18ae) - Load built-in provider without module runner  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;9939](https://github.com/vitest-dev/vitest/issues/9939) [<samp>(bf892)</samp>](https://github.com/vitest-dev/vitest/commit/bf8920817) - **expect**: - Soft assertions continue after .resolves/.rejects promise errors  -  by [@&#8203;mixelburg](https://github.com/mixelburg), **Maks Pikov**, **Claude Opus 4.6 (1M context)** and [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9843](https://github.com/vitest-dev/vitest/issues/9843) [<samp>(6d74b)</samp>](https://github.com/vitest-dev/vitest/commit/6d74b4948) - Fix sinon-chai style API  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9943](https://github.com/vitest-dev/vitest/issues/9943) [<samp>(0f08d)</samp>](https://github.com/vitest-dev/vitest/commit/0f08dda2c) - **pretty-format**: - Limit output for large object  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **Claude Opus 4.6 (1M context)** in [#&#8203;9949](https://github.com/vitest-dev/vitest/issues/9949) [<samp>(0d5f9)</samp>](https://github.com/vitest-dev/vitest/commit/0d5f9d6ef) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.1.0...v4.1.1) ### [`v4.1.0`](https://github.com/vitest-dev/vitest/releases/tag/v4.1.0) [Compare Source](https://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-1). #####    🚀 Features - Return a disposable from doMock()  -  by [@&#8203;kirkwaiblinger](https://github.com/kirkwaiblinger) in [#&#8203;9332](https://github.com/vitest-dev/vitest/issues/9332) [<samp>(e3e65)</samp>](https://github.com/vitest-dev/vitest/commit/e3e659a96) - Added chai style assertions  -  by [@&#8203;ronnakamoto](https://github.com/ronnakamoto) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8842](https://github.com/vitest-dev/vitest/issues/8842) [<samp>(841df)</samp>](https://github.com/vitest-dev/vitest/commit/841df9ac5) - Update to sinon/fake-timers v15 and add `setTickMode` to timer controls  -  by [@&#8203;atscott](https://github.com/atscott) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8726](https://github.com/vitest-dev/vitest/issues/8726) [<samp>(4b480)</samp>](https://github.com/vitest-dev/vitest/commit/4b480aaed) - Expose matcher types  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9448](https://github.com/vitest-dev/vitest/issues/9448) [<samp>(3e4b9)</samp>](https://github.com/vitest-dev/vitest/commit/3e4b913b1) - Add `toTestSpecification` to reported tasks  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9464](https://github.com/vitest-dev/vitest/issues/9464) [<samp>(1a470)</samp>](https://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 [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9387](https://github.com/vitest-dev/vitest/issues/9387) [<samp>(5db54)</samp>](https://github.com/vitest-dev/vitest/commit/5db54a468) - Track and display expectedly failed tests (.fails) in UI and CLI  -  by [@&#8203;Copilot](https://github.com/Copilot), **sheremet-va** and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9476](https://github.com/vitest-dev/vitest/issues/9476) [<samp>(77d75)</samp>](https://github.com/vitest-dev/vitest/commit/77d75fd34) - Support tags  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9478](https://github.com/vitest-dev/vitest/issues/9478) [<samp>(de7c8)</samp>](https://github.com/vitest-dev/vitest/commit/de7c8a521) - Implement `aroundEach` and `aroundAll` hooks  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9450](https://github.com/vitest-dev/vitest/issues/9450) [<samp>(2a8cb)</samp>](https://github.com/vitest-dev/vitest/commit/2a8cb9dc2) - Stabilize experimental features  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9529](https://github.com/vitest-dev/vitest/issues/9529) [<samp>(b5fd2)</samp>](https://github.com/vitest-dev/vitest/commit/b5fd2a16a) - Accept `new` or `all` in `--update` flag  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9543](https://github.com/vitest-dev/vitest/issues/9543) [<samp>(a5acf)</samp>](https://github.com/vitest-dev/vitest/commit/a5acf28a5) - Support `meta` in test options  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9535](https://github.com/vitest-dev/vitest/issues/9535) [<samp>(7d622)</samp>](https://github.com/vitest-dev/vitest/commit/7d622e3d1) - Support type inference with a new `test.extend` syntax  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9550](https://github.com/vitest-dev/vitest/issues/9550) [<samp>(e5385)</samp>](https://github.com/vitest-dev/vitest/commit/e53854fcc) - Support vite 8 beta, fix type issues in the config with different vite versions  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9587](https://github.com/vitest-dev/vitest/issues/9587) [<samp>(99028)</samp>](https://github.com/vitest-dev/vitest/commit/990281dfd) - Add assertion helper to hide internal stack traces  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **Claude Opus 4.6** in [#&#8203;9594](https://github.com/vitest-dev/vitest/issues/9594) [<samp>(eeb0a)</samp>](https://github.com/vitest-dev/vitest/commit/eeb0ae2f8) - Store failure screenshots using artifacts API  -  by [@&#8203;macarie](https://github.com/macarie) in [#&#8203;9588](https://github.com/vitest-dev/vitest/issues/9588) [<samp>(24603)</samp>](https://github.com/vitest-dev/vitest/commit/24603e3c4) - Allow `vitest list` to statically collect tests instead of running files to collect them  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9630](https://github.com/vitest-dev/vitest/issues/9630) [<samp>(7a8e7)</samp>](https://github.com/vitest-dev/vitest/commit/7a8e7fc20) - Add `--detect-async-leaks`  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;9528](https://github.com/vitest-dev/vitest/issues/9528) [<samp>(c594d)</samp>](https://github.com/vitest-dev/vitest/commit/c594d4af3) - Implement `mockThrow` and `mockThrowOnce`  -  by [@&#8203;thor-juhasz](https://github.com/thor-juhasz) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9512](https://github.com/vitest-dev/vitest/issues/9512) [<samp>(61917)</samp>](https://github.com/vitest-dev/vitest/commit/619179fb7) - Support `update: "none"` and add docs about snapshots behavior on CI  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9700](https://github.com/vitest-dev/vitest/issues/9700) [<samp>(05f18)</samp>](https://github.com/vitest-dev/vitest/commit/05f1854e2) - Support playwright `launchOptions` with `connectOptions`  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9702](https://github.com/vitest-dev/vitest/issues/9702) [<samp>(f0ff1)</samp>](https://github.com/vitest-dev/vitest/commit/f0ff1b2a0) - Add `page/locator.mark` API to enhance playwright trace  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9652](https://github.com/vitest-dev/vitest/issues/9652) [<samp>(d0ee5)</samp>](https://github.com/vitest-dev/vitest/commit/d0ee546fe) - **api**: - Support tests starting or ending with `test` in `experimental_parseSpecification`  -  by [@&#8203;jgillick](https://github.com/jgillick) and **Jeremy Gillick** in [#&#8203;9235](https://github.com/vitest-dev/vitest/issues/9235) [<samp>(2f367)</samp>](https://github.com/vitest-dev/vitest/commit/2f367fad3) - Add filters to `createSpecification`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9336](https://github.com/vitest-dev/vitest/issues/9336) [<samp>(c8e6c)</samp>](https://github.com/vitest-dev/vitest/commit/c8e6c7fbf) - Expose `runTestFiles` as alternative to `runTestSpecifications`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9443](https://github.com/vitest-dev/vitest/issues/9443) [<samp>(43d76)</samp>](https://github.com/vitest-dev/vitest/commit/43d761821) - Add `allowWrite` and `allowExec` options to `api`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9350](https://github.com/vitest-dev/vitest/issues/9350) [<samp>(20e00)</samp>](https://github.com/vitest-dev/vitest/commit/20e00ef78) - Allow passing down test cases to `toTestSpecification`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9627](https://github.com/vitest-dev/vitest/issues/9627) [<samp>(6f17d)</samp>](https://github.com/vitest-dev/vitest/commit/6f17d5ddf) - **browser**: - Add `userEvent.wheel` API  -  by [@&#8203;macarie](https://github.com/macarie) in [#&#8203;9188](https://github.com/vitest-dev/vitest/issues/9188) [<samp>(66080)</samp>](https://github.com/vitest-dev/vitest/commit/660801979) - Add `filterNode` option to prettyDOM for filtering browser assertion error output  -  by [@&#8203;Copilot](https://github.com/Copilot), **sheremet-va** and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9475](https://github.com/vitest-dev/vitest/issues/9475) [<samp>(d3220)</samp>](https://github.com/vitest-dev/vitest/commit/d3220fcd8) - Support playwright persistent context  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa), **Claude Opus 4.6** and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9229](https://github.com/vitest-dev/vitest/issues/9229) [<samp>(f865d)</samp>](https://github.com/vitest-dev/vitest/commit/f865d2ba4) - Added `detailsPanelPosition` option and button  -  by [@&#8203;shairez](https://github.com/shairez) in [#&#8203;9525](https://github.com/vitest-dev/vitest/issues/9525) [<samp>(c8a31)</samp>](https://github.com/vitest-dev/vitest/commit/c8a31147c) - Use BlazeDiff instead of pixelmatch  -  by [@&#8203;macarie](https://github.com/macarie) in [#&#8203;9514](https://github.com/vitest-dev/vitest/issues/9514) [<samp>(30936)</samp>](https://github.com/vitest-dev/vitest/commit/309362089) - Add `findElement` and enable strict mode in webdriverio and preview  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9677](https://github.com/vitest-dev/vitest/issues/9677) [<samp>(c3f37)</samp>](https://github.com/vitest-dev/vitest/commit/c3f37721c) - **cli**: - Add [@&#8203;bomb](https://github.com/bomb).sh/tab completions  -  by [@&#8203;AmirSa12](https://github.com/AmirSa12) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8639](https://github.com/vitest-dev/vitest/issues/8639) [<samp>(200f3)</samp>](https://github.com/vitest-dev/vitest/commit/200f31704) - **coverage**: - Support `ignore start/stop` ignore hints  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;9204](https://github.com/vitest-dev/vitest/issues/9204) [<samp>(e59c9)</samp>](https://github.com/vitest-dev/vitest/commit/e59c94ba6) - Add `coverage.changed` option to report only changed files  -  by [@&#8203;kykim00](https://github.com/kykim00) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;9521](https://github.com/vitest-dev/vitest/issues/9521) [<samp>(1d939)</samp>](https://github.com/vitest-dev/vitest/commit/1d9392c67) - **experimental**: - Add `onModuleRunner` hook to `worker.init`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9286](https://github.com/vitest-dev/vitest/issues/9286) [<samp>(e977f)</samp>](https://github.com/vitest-dev/vitest/commit/e977f3deb) - Option to disable the module runner  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;9210](https://github.com/vitest-dev/vitest/issues/9210) [<samp>(9be61)</samp>](https://github.com/vitest-dev/vitest/commit/9be6121ee) - Add `importDurations: { limit, print }` options  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa), **Claude Opus 4.6** and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9401](https://github.com/vitest-dev/vitest/issues/9401) [<samp>(7e10f)</samp>](https://github.com/vitest-dev/vitest/commit/7e10fb356) - Add print and fail thresholds for `importDurations`  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **Claude Opus 4.6** in [#&#8203;9533](https://github.com/vitest-dev/vitest/issues/9533) [<samp>(3f7a5)</samp>](https://github.com/vitest-dev/vitest/commit/3f7a5f8f8) - **fixtures**: - Pass down file context to `beforeAll`/`afterAll`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9572](https://github.com/vitest-dev/vitest/issues/9572) [<samp>(c8339)</samp>](https://github.com/vitest-dev/vitest/commit/c83395f2c) - **reporters**: - Add `agent` reporter to reduce ai agent token usage  -  by [@&#8203;cpojer](https://github.com/cpojer) in [#&#8203;9779](https://github.com/vitest-dev/vitest/issues/9779) [<samp>(3e9e0)</samp>](https://github.com/vitest-dev/vitest/commit/3e9e096a2) - **runner**: - Enhance `retry` options  -  by [@&#8203;MazenSamehR](https://github.com/MazenSamehR), **Matan Shavit**, [@&#8203;AriPerkkio](https://github.com/AriPerkkio) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9370](https://github.com/vitest-dev/vitest/issues/9370) [<samp>(9e4cf)</samp>](https://github.com/vitest-dev/vitest/commit/9e4cfd295) - **ui**: - Allow run individual test/suites  -  by [@&#8203;userquin](https://github.com/userquin) in [#&#8203;9465](https://github.com/vitest-dev/vitest/issues/9465) [<samp>(73b10)</samp>](https://github.com/vitest-dev/vitest/commit/73b10f1b9) - Add project filter/sort support  -  by [@&#8203;userquin](https://github.com/userquin) in [#&#8203;8689](https://github.com/vitest-dev/vitest/issues/8689) [<samp>(0c7ea)</samp>](https://github.com/vitest-dev/vitest/commit/0c7eaac16) - Add duration sorting to explorer  -  by [@&#8203;julianhahn](https://github.com/julianhahn) and [@&#8203;cursoragent](https://github.com/cursoragent) in [#&#8203;9603](https://github.com/vitest-dev/vitest/issues/9603) [<samp>(209b1)</samp>](https://github.com/vitest-dev/vitest/commit/209b1b0e1) - Implement filter for slow tests  -  by [@&#8203;DerYeger](https://github.com/DerYeger) and [@&#8203;userquin](https://github.com/userquin) in [#&#8203;9705](https://github.com/vitest-dev/vitest/issues/9705) [<samp>(8880c)</samp>](https://github.com/vitest-dev/vitest/commit/8880c907a) - **vitest**: - Add run summary in GitHub Actions Reporter  -  by [@&#8203;macarie](https://github.com/macarie) and **jhnance** in [#&#8203;9579](https://github.com/vitest-dev/vitest/issues/9579) [<samp>(96bfc)</samp>](https://github.com/vitest-dev/vitest/commit/96bfc8345) #####    🐞 Bug Fixes - Deprecate several vitest/\* entry points  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9347](https://github.com/vitest-dev/vitest/issues/9347) [<samp>(fd459)</samp>](https://github.com/vitest-dev/vitest/commit/fd45928be) - Use `meta.url` in `createRequire`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9441](https://github.com/vitest-dev/vitest/issues/9441) [<samp>(e3422)</samp>](https://github.com/vitest-dev/vitest/commit/e34225563) - Preact browser mode init example of render function not async  -  by [@&#8203;WuMingDao](https://github.com/WuMingDao) in [#&#8203;9375](https://github.com/vitest-dev/vitest/issues/9375) [<samp>(2bea5)</samp>](https://github.com/vitest-dev/vitest/commit/2bea549c7) - Deprecate unused types in matcher context  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9449](https://github.com/vitest-dev/vitest/issues/9449) [<samp>(20f87)</samp>](https://github.com/vitest-dev/vitest/commit/20f8753a2) - Handle `external/noExternal` during `configEnvironment` hook  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **Claude Opus 4.6** in [#&#8203;9508](https://github.com/vitest-dev/vitest/issues/9508) [<samp>(59ea2)</samp>](https://github.com/vitest-dev/vitest/commit/59ea27c1c) - Replace default ssr environment runner with Vitest server module runner  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **Claude Opus 4.6** in [#&#8203;9506](https://github.com/vitest-dev/vitest/issues/9506) [<samp>(cd5db)</samp>](https://github.com/vitest-dev/vitest/commit/cd5db660c) - Propagate experimental CLI options to child projects  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **Claude Opus 4.6** in [#&#8203;9531](https://github.com/vitest-dev/vitest/issues/9531) [<samp>(b624f)</samp>](https://github.com/vitest-dev/vitest/commit/b624fae53) - Show a warning when `browser.isolate` is used  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9410](https://github.com/vitest-dev/vitest/issues/9410) [<samp>(3d48e)</samp>](https://github.com/vitest-dev/vitest/commit/3d48ebcb9) - Fix `vi.mock({ spy: true })` node v8 coverage  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa), **hi-ogawa** and **Claude Opus 4.6** in [#&#8203;9541](https://github.com/vitest-dev/vitest/issues/9541) [<samp>(687b6)</samp>](https://github.com/vitest-dev/vitest/commit/687b633c1) - Don't show internal ssr handler in errors  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9547](https://github.com/vitest-dev/vitest/issues/9547) [<samp>(76c43)</samp>](https://github.com/vitest-dev/vitest/commit/76c4397b5) - Close vitest if it failed to start  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9573](https://github.com/vitest-dev/vitest/issues/9573) [<samp>(728ba)</samp>](https://github.com/vitest-dev/vitest/commit/728ba617f) - Fix ssr environment runner in project  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9584](https://github.com/vitest-dev/vitest/issues/9584) [<samp>(09006)</samp>](https://github.com/vitest-dev/vitest/commit/090064f97) - Trim trailing white spaces in code block  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9591](https://github.com/vitest-dev/vitest/issues/9591) [<samp>(f78be)</samp>](https://github.com/vitest-dev/vitest/commit/f78bea992) - Support inline snapshot inside test.for/each  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9590](https://github.com/vitest-dev/vitest/issues/9590) [<samp>(615fd)</samp>](https://github.com/vitest-dev/vitest/commit/615fd521e) - Apply source maps for external module stack trace  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9152](https://github.com/vitest-dev/vitest/issues/9152) [<samp>(79e20)</samp>](https://github.com/vitest-dev/vitest/commit/79e20d5a3) - Remove the `.name` from statically collected test  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9596](https://github.com/vitest-dev/vitest/issues/9596) [<samp>(b66ff)</samp>](https://github.com/vitest-dev/vitest/commit/b66ff691a) - Don't suppress warnings on pnp  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9602](https://github.com/vitest-dev/vitest/issues/9602) [<samp>(89cbd)</samp>](https://github.com/vitest-dev/vitest/commit/89cbdaea3) - Support snapshot with `expect.soft`  -  by [@&#8203;iumehara](https://github.com/iumehara), [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **Claude Opus 4.6** in [#&#8203;9231](https://github.com/vitest-dev/vitest/issues/9231) [<samp>(3eb2c)</samp>](https://github.com/vitest-dev/vitest/commit/3eb2cd541) - Log seed when only `sequence.shuffle.tests` is enabled  -  by [@&#8203;kaigritun](https://github.com/kaigritun), **Kai Gritun** and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9576](https://github.com/vitest-dev/vitest/issues/9576) [<samp>(8182b)</samp>](https://github.com/vitest-dev/vitest/commit/8182b77ad) - Externalize `expect/src/utils` from `vitest`  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9616](https://github.com/vitest-dev/vitest/issues/9616) [<samp>(48739)</samp>](https://github.com/vitest-dev/vitest/commit/487398422) - Ignore test.override during static collection  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9620](https://github.com/vitest-dev/vitest/issues/9620) [<samp>(09174)</samp>](https://github.com/vitest-dev/vitest/commit/0917470ce) - Increase stacktrace limit for `--detect-async-leaks`  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;9638](https://github.com/vitest-dev/vitest/issues/9638) [<samp>(9fd4c)</samp>](https://github.com/vitest-dev/vitest/commit/9fd4ce533) - Hanging-reporter link in cli  -  by [@&#8203;flx-sta](https://github.com/flx-sta) in [#&#8203;9649](https://github.com/vitest-dev/vitest/issues/9649) [<samp>(7c103)</samp>](https://github.com/vitest-dev/vitest/commit/7c103055c) - Fix teardown timeout of `aroundEach/All` when inner `aroundEach/All` throws  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9657](https://github.com/vitest-dev/vitest/issues/9657) [<samp>(4ec6c)</samp>](https://github.com/vitest-dev/vitest/commit/4ec6cb305) - Fix ui mode / html reporter and coverage integration  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **Claude Opus 4.6** in [#&#8203;9626](https://github.com/vitest-dev/vitest/issues/9626) [<samp>(86fad)</samp>](https://github.com/vitest-dev/vitest/commit/86fad4b42) - Don't continue when `aroundEach/All` setup timed out  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9670](https://github.com/vitest-dev/vitest/issues/9670) [<samp>(bb013)</samp>](https://github.com/vitest-dev/vitest/commit/bb013d54b) - Align `VitestRunnerConfig` optional fields with `SerializedConfig`  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9661](https://github.com/vitest-dev/vitest/issues/9661) [<samp>(79520)</samp>](https://github.com/vitest-dev/vitest/commit/79520d82d) - Handle Symbol values in format utility  -  by [@&#8203;nami8824](https://github.com/nami8824) in [#&#8203;9658](https://github.com/vitest-dev/vitest/issues/9658) [<samp>(0583f)</samp>](https://github.com/vitest-dev/vitest/commit/0583f067e) - Deprecate `toBe*` spy assertions in favor of `toHaveBeen*` (and `toThrowError`)  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9665](https://github.com/vitest-dev/vitest/issues/9665) [<samp>(4d390)</samp>](https://github.com/vitest-dev/vitest/commit/4d390dfe9) - Don't propagate nested `aroundEach/All` errors but aggregate them on runner  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9673](https://github.com/vitest-dev/vitest/issues/9673) [<samp>(b6365)</samp>](https://github.com/vitest-dev/vitest/commit/b63653f5a) - Show a better error if there is a pending dynamic import  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9676](https://github.com/vitest-dev/vitest/issues/9676) [<samp>(7ef5c)</samp>](https://github.com/vitest-dev/vitest/commit/7ef5cf4b7) - Preserve stack trace of `resolves/rejects` chained assertion error  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9679](https://github.com/vitest-dev/vitest/issues/9679) [<samp>(c6151)</samp>](https://github.com/vitest-dev/vitest/commit/c61511d4a) - Handle module-sync condition in vmThreads/vmForks require  -  by [@&#8203;lesleh](https://github.com/lesleh) in [#&#8203;9650](https://github.com/vitest-dev/vitest/issues/9650) and [#&#8203;9651](https://github.com/vitest-dev/vitest/issues/9651) [<samp>(bb203)</samp>](https://github.com/vitest-dev/vitest/commit/bb20389f4) - Hooks should respect `maxConcurrency`  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9653](https://github.com/vitest-dev/vitest/issues/9653) [<samp>(16d13)</samp>](https://github.com/vitest-dev/vitest/commit/16d13d981) - Recursively autospy module object  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9687](https://github.com/vitest-dev/vitest/issues/9687) [<samp>(695a8)</samp>](https://github.com/vitest-dev/vitest/commit/695a86b41) - Remove trailing spaces from diff error log  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9680](https://github.com/vitest-dev/vitest/issues/9680) [<samp>(395d1)</samp>](https://github.com/vitest-dev/vitest/commit/395d1a29e) - Respect project `resolve.conditions` for externals  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9717](https://github.com/vitest-dev/vitest/issues/9717) [<samp>(1d498)</samp>](https://github.com/vitest-dev/vitest/commit/1d4987498) - Use object for WeakMap instead of a symbol to support webcontainers  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9731](https://github.com/vitest-dev/vitest/issues/9731) [<samp>(c5225)</samp>](https://github.com/vitest-dev/vitest/commit/c52259330) - Fix re-mocking virtual module  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9748](https://github.com/vitest-dev/vitest/issues/9748) [<samp>(3cbbb)</samp>](https://github.com/vitest-dev/vitest/commit/3cbbb17f1) - Cancelling should stop current test immediately  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;9729](https://github.com/vitest-dev/vitest/issues/9729) [<samp>(0cb2f)</samp>](https://github.com/vitest-dev/vitest/commit/0cb2f7239) - Make `mockObject` change backwards compatible  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9744](https://github.com/vitest-dev/vitest/issues/9744) [<samp>(84c69)</samp>](https://github.com/vitest-dev/vitest/commit/84c69497f) - Fix `URL.name` on jsdom  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9767](https://github.com/vitest-dev/vitest/issues/9767) [<samp>(031f3)</samp>](https://github.com/vitest-dev/vitest/commit/031f3a374) - Save and restore module graph in blob reporter  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9740](https://github.com/vitest-dev/vitest/issues/9740) [<samp>(84355)</samp>](https://github.com/vitest-dev/vitest/commit/843554bf0) - Don't silence reporter errors from test runtime events handler in normal run and --merge-reports  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9727](https://github.com/vitest-dev/vitest/issues/9727) [<samp>(4072d)</samp>](https://github.com/vitest-dev/vitest/commit/4072d0132) - Fix `vi.importActual()` for virtual modules  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **Claude Opus 4.6** in [#&#8203;9772](https://github.com/vitest-dev/vitest/issues/9772) [<samp>(1e89e)</samp>](https://github.com/vitest-dev/vitest/commit/1e89ec020) - Throw `FixtureAccessError` if suite hook accesses undefined fixture  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9786](https://github.com/vitest-dev/vitest/issues/9786) [<samp>(fc2ce)</samp>](https://github.com/vitest-dev/vitest/commit/fc2cea2b7) - Allow hyphens in project config file name pattern  -  by [@&#8203;Koutaro-Hanabusa](https://github.com/Koutaro-Hanabusa) and [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9760](https://github.com/vitest-dev/vitest/issues/9760) [<samp>(33e96)</samp>](https://github.com/vitest-dev/vitest/commit/33e96311a) - Manual and redirect mock shouldn't `load` or `transform` original module  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **Claude Opus 4.6** in [#&#8203;9774](https://github.com/vitest-dev/vitest/issues/9774) [<samp>(a8216)</samp>](https://github.com/vitest-dev/vitest/commit/a8216b001) - `hideSkippedTests` should not hide `test.todo`  -  by [@&#8203;oilater](https://github.com/oilater) in [#&#8203;9562](https://github.com/vitest-dev/vitest/issues/9562) and [#&#8203;9781](https://github.com/vitest-dev/vitest/issues/9781) [<samp>(8181e)</samp>](https://github.com/vitest-dev/vitest/commit/8181e06e7) - Allow catch/finally for async assertion  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9827](https://github.com/vitest-dev/vitest/issues/9827) [<samp>(031f0)</samp>](https://github.com/vitest-dev/vitest/commit/031f02a89) - Resolve fixture overrides from test's suite in `beforeEach` hooks  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **Claude Opus 4.6** in [#&#8203;9826](https://github.com/vitest-dev/vitest/issues/9826) [<samp>(99e52)</samp>](https://github.com/vitest-dev/vitest/commit/99e52fe58) - Use isAgent check, not just TTY, for watch mode  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9841](https://github.com/vitest-dev/vitest/issues/9841) [<samp>(c3cac)</samp>](https://github.com/vitest-dev/vitest/commit/c3cac1c1b) - Use `performance.now` to measure test timeout duration  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **Claude Opus 4.6** in [#&#8203;9795](https://github.com/vitest-dev/vitest/issues/9795) [<samp>(f48a6)</samp>](https://github.com/vitest-dev/vitest/commit/f48a60114) - Correctly identify concurrent test during static analysis  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9846](https://github.com/vitest-dev/vitest/issues/9846) [<samp>(1de0a)</samp>](https://github.com/vitest-dev/vitest/commit/1de0aa22d) - **browser**: - Avoid updating screenshots when `toMatchScreenshot` passes  -  by [@&#8203;macarie](https://github.com/macarie) in [#&#8203;9289](https://github.com/vitest-dev/vitest/issues/9289) [<samp>(46aab)</samp>](https://github.com/vitest-dev/vitest/commit/46aabaa44) - Hide injected data-testid attributes  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9503](https://github.com/vitest-dev/vitest/issues/9503) [<samp>(c8d2c)</samp>](https://github.com/vitest-dev/vitest/commit/c8d2c411c) - Throw an error if iframe was reloaded  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9516](https://github.com/vitest-dev/vitest/issues/9516) [<samp>(73a81)</samp>](https://github.com/vitest-dev/vitest/commit/73a81f880) - Encode projectName in browser client URL  -  by [@&#8203;dkkim0122](https://github.com/dkkim0122) in [#&#8203;9523](https://github.com/vitest-dev/vitest/issues/9523) [<samp>(5b164)</samp>](https://github.com/vitest-dev/vitest/commit/5b16483c3) - Don't take failure screenshot if tests have artifacts created by `toMatchScreenshot`  -  by [@&#8203;macarie](https://github.com/macarie) in [#&#8203;9552](https://github.com/vitest-dev/vitest/issues/9552) [<samp>(83ca0)</samp>](https://github.com/vitest-dev/vitest/commit/83ca02547) - Remove `--remote-debugging-address` from chrome args  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;9712](https://github.com/vitest-dev/vitest/issues/9712) [<samp>(f09bb)</samp>](https://github.com/vitest-dev/vitest/commit/f09bb5c32) - Make sure userEvent actions support `ensureAwaited`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9732](https://github.com/vitest-dev/vitest/issues/9732) [<samp>(97685)</samp>](https://github.com/vitest-dev/vitest/commit/9768517b8) - Types of `getCDPSession` and `cdp()`  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;9716](https://github.com/vitest-dev/vitest/issues/9716) [<samp>(689a2)</samp>](https://github.com/vitest-dev/vitest/commit/689a22a1b) - Skip esbuild.legalComments when using rolldown-vite  -  by [@&#8203;Copilot](https://github.com/Copilot), **hi-ogawa** and [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9803](https://github.com/vitest-dev/vitest/issues/9803) [<samp>(3505f)</samp>](https://github.com/vitest-dev/vitest/commit/3505fa5a3) - **chai**: - Don't allow `deepEqual` in the config because it's not serializable  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9666](https://github.com/vitest-dev/vitest/issues/9666) [<samp>(9ee99)</samp>](https://github.com/vitest-dev/vitest/commit/9ee999d73) - **coverage**: - Infer transform mode for uncovered files  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;9435](https://github.com/vitest-dev/vitest/issues/9435) [<samp>(f3967)</samp>](https://github.com/vitest-dev/vitest/commit/f396792d6) - `thresholds.autoUpdate` to preserve ending whitespace  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;9436](https://github.com/vitest-dev/vitest/issues/9436) [<samp>(7e534)</samp>](https://github.com/vitest-dev/vitest/commit/7e534a0b6) - **deps**: - Update all non-major dependencies  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9192](https://github.com/vitest-dev/vitest/issues/9192) [<samp>(90c30)</samp>](https://github.com/vitest-dev/vitest/commit/90c302f3b) - Update all non-major dependencies  -  in [#&#8203;9485](https://github.com/vitest-dev/vitest/issues/9485) [<samp>(c0118)</samp>](https://github.com/vitest-dev/vitest/commit/c01186022) - Update all non-major dependencies  -  in [#&#8203;9567](https://github.com/vitest-dev/vitest/issues/9567) [<samp>(13c9e)</samp>](https://github.com/vitest-dev/vitest/commit/13c9e022b) - **docs**: - Fix old `/config/#option` hash links causing hydration errors  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa), **Claude Opus 4.6** and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9610](https://github.com/vitest-dev/vitest/issues/9610) [<samp>(a603c)</samp>](https://github.com/vitest-dev/vitest/commit/a603c3a30) - **expect**: - `toMatchObject(Map/Set)` should expect `Map/Set` on left hand side  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **Claude Opus 4.6** in [#&#8203;9532](https://github.com/vitest-dev/vitest/issues/9532) [<samp>(381da)</samp>](https://github.com/vitest-dev/vitest/commit/381da4a9d) - Fix objectContaining with proxy  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **Claude Opus 4.6** in [#&#8203;9554](https://github.com/vitest-dev/vitest/issues/9554) [<samp>(7ce34)</samp>](https://github.com/vitest-dev/vitest/commit/7ce3417b1) - Support arbitrary value equality for `toThrow` and make Error detection robust  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **Claude Opus 4.6** in [#&#8203;9570](https://github.com/vitest-dev/vitest/issues/9570) [<samp>(de215)</samp>](https://github.com/vitest-dev/vitest/commit/de215c19c) - **mock**: - Inject helpers after hashbang if present  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9545](https://github.com/vitest-dev/vitest/issues/9545) [<samp>(65432)</samp>](https://github.com/vitest-dev/vitest/commit/65432a74b) - **mocker**: - Update vite's peer dependency range  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9808](https://github.com/vitest-dev/vitest/issues/9808) [<samp>(36f9a)</samp>](https://github.com/vitest-dev/vitest/commit/36f9a81a2) - **reporter**: - `dot` reporter leaves pending tests  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;9684](https://github.com/vitest-dev/vitest/issues/9684) [<samp>(4d793)</samp>](https://github.com/vitest-dev/vitest/commit/4d7938a56) - **runner**: - Mark repeated tests as finished on last run  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;9707](https://github.com/vitest-dev/vitest/issues/9707) [<samp>(cc735)</samp>](https://github.com/vitest-dev/vitest/commit/cc735970a) - **spy**: - Support deep partial in vi.mocked  -  by [@&#8203;j2h30728](https://github.com/j2h30728) in [#&#8203;8152](https://github.com/vitest-dev/vitest/issues/8152) and [#&#8203;9493](https://github.com/vitest-dev/vitest/issues/9493) [<samp>(71cb5)</samp>](https://github.com/vitest-dev/vitest/commit/71cb51ffc) - Fallback to object accessor if descriptor's value is `undefined`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9511](https://github.com/vitest-dev/vitest/issues/9511) [<samp>(6f181)</samp>](https://github.com/vitest-dev/vitest/commit/6f18103fa) - Throw correct errors when shorthand methods are used on a class  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9513](https://github.com/vitest-dev/vitest/issues/9513) [<samp>(5d0fd)</samp>](https://github.com/vitest-dev/vitest/commit/5d0fd3b62) - **types**: - `bench.reporters` no longer gives type errors when passing file name string paths  -  by [@&#8203;Bertie690](https://github.com/Bertie690) in [#&#8203;9695](https://github.com/vitest-dev/vitest/issues/9695) [<samp>(093c8)</samp>](https://github.com/vitest-dev/vitest/commit/093c8f6b5) - **ui**: - Process artifact attachments when generating HTML reporter  -  by [@&#8203;macarie](https://github.com/macarie) in [#&#8203;9472](https://github.com/vitest-dev/vitest/issues/9472) [<samp>(96eb9)</samp>](https://github.com/vitest-dev/vitest/commit/96eb92826) - Don't fail if --ui and --root are specified together  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9536](https://github.com/vitest-dev/vitest/issues/9536) [<samp>(d9305)</samp>](https://github.com/vitest-dev/vitest/commit/d93055fc7) #####    🏎 Performance - **pretty-format**: Combine DOMElement plugins  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9581](https://github.com/vitest-dev/vitest/issues/9581) [<samp>(da85a)</samp>](https://github.com/vitest-dev/vitest/commit/da85a3267) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.17...v4.1.0) ### [`v4.0.18`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.18) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.17...v4.0.18) #####    🚀 Experimental Features - **experimental**: Add `onModuleRunner` hook to `worker.init`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9286](https://github.com/vitest-dev/vitest/issues/9286) [<samp>(ea837)</samp>](https://github.com/vitest-dev/vitest/commit/ea837de7d) #####    🐞 Bug Fixes - Use `meta.url` in `createRequire`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9441](https://github.com/vitest-dev/vitest/issues/9441) [<samp>(e0572)</samp>](https://github.com/vitest-dev/vitest/commit/e057281ca) - **browser**: Hide injected data-testid attributes  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9503](https://github.com/vitest-dev/vitest/issues/9503) [<samp>(f8989)</samp>](https://github.com/vitest-dev/vitest/commit/f89899cd8) - **ui**: Process artifact attachments when generating HTML reporter  -  by [@&#8203;macarie](https://github.com/macarie) in [#&#8203;9472](https://github.com/vitest-dev/vitest/issues/9472) [<samp>(22543)</samp>](https://github.com/vitest-dev/vitest/commit/225435647) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.17...v4.0.18) ### [`v4.0.17`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.17) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.16...v4.0.17) #####    🚀 Experimental Features - Support openTelemetry for browser mode  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9180](https://github.com/vitest-dev/vitest/issues/9180) [<samp>(1ec3a)</samp>](https://github.com/vitest-dev/vitest/commit/1ec3a8b68) - Support TRACEPARENT and TRACESTATE environment variables for OpenTelemetry context propagation  -  by [@&#8203;Copilot](https://github.com/Copilot), **hi-ogawa** and [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9295](https://github.com/vitest-dev/vitest/issues/9295) [<samp>(876cb)</samp>](https://github.com/vitest-dev/vitest/commit/876cb84c2) #####    🐞 Bug Fixes - Improve asymmetric matcher diff readability by unwrapping container matchers  -  by [@&#8203;Copilot](https://github.com/Copilot), **sheremet-va**, **hi-ogawa** and [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9330](https://github.com/vitest-dev/vitest/issues/9330) [<samp>(b2ec7)</samp>](https://github.com/vitest-dev/vitest/commit/b2ec724a8) - Improve runner error when importing outside of test context  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9335](https://github.com/vitest-dev/vitest/issues/9335) [<samp>(2dd3d)</samp>](https://github.com/vitest-dev/vitest/commit/2dd3dd839) - Replace crypto.randomUUID to allow insecure environments (fix [#&#8203;9](https://github.com/vitest-dev/vitest/issues/9)…  -  by [@&#8203;plusgut](https://github.com/plusgut) in [#&#8203;9339](https://github.com/vitest-dev/vitest/issues/9339) and [#&#8203;9](https://github.com/vitest-dev/vitest/issues/9) [<samp>(e6a3f)</samp>](https://github.com/vitest-dev/vitest/commit/e6a3f8cc7) - Handle null options in `addEventHandler` [#&#8203;9371](https://github.com/vitest-dev/vitest/issues/9371)  -  by [@&#8203;ThibautMarechal](https://github.com/ThibautMarechal) in [#&#8203;9372](https://github.com/vitest-dev/vitest/issues/9372) and [#&#8203;9371](https://github.com/vitest-dev/vitest/issues/9371) [<samp>(40841)</samp>](https://github.com/vitest-dev/vitest/commit/40841ff00) - Typo in browser.provider error  -  by [@&#8203;deammer](https://github.com/deammer) in [#&#8203;9394](https://github.com/vitest-dev/vitest/issues/9394) [<samp>(4b67f)</samp>](https://github.com/vitest-dev/vitest/commit/4b67fc25a) - **browser**: - Fix `process.env` and `import.meta.env` defines in inline project  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9239](https://github.com/vitest-dev/vitest/issues/9239) [<samp>(b70c9)</samp>](https://github.com/vitest-dev/vitest/commit/b70c96121) - Fix upload File instance  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9294](https://github.com/vitest-dev/vitest/issues/9294) [<samp>(b6778)</samp>](https://github.com/vitest-dev/vitest/commit/b67788c69) - Fix invalid project token for artifacts assets  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9321](https://github.com/vitest-dev/vitest/issues/9321) [<samp>(caa7d)</samp>](https://github.com/vitest-dev/vitest/commit/caa7d73d4) - Log `ErrorEvent.message` when unhandled `ErrorEvent.error` is null  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9322](https://github.com/vitest-dev/vitest/issues/9322) [<samp>(5d84e)</samp>](https://github.com/vitest-dev/vitest/commit/5d84eeb91) - Support `fileParallelism` on an instance  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9328](https://github.com/vitest-dev/vitest/issues/9328) [<samp>(15006)</samp>](https://github.com/vitest-dev/vitest/commit/150065459) - **coverage**: - Remove unnecessary `istanbul-lib-source-maps` usage  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;9344](https://github.com/vitest-dev/vitest/issues/9344) [<samp>(b0940)</samp>](https://github.com/vitest-dev/vitest/commit/b09405375) - Apply patch from [istanbuljs/istanbuljs#837](https://github.com/istanbuljs/istanbuljs/issues/837)  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) and **sapphi-red** in [#&#8203;9413](https://github.com/vitest-dev/vitest/issues/9413) and [#&#8203;837](https://github.com/vitest-dev/vitest/issues/837) [<samp>(e05ce)</samp>](https://github.com/vitest-dev/vitest/commit/e05cedbf4) - **fsModuleCache**: - Don't store importers in cache  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9422](https://github.com/vitest-dev/vitest/issues/9422) [<samp>(75136)</samp>](https://github.com/vitest-dev/vitest/commit/751364eec) - Add importers alongside importedModules  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9423](https://github.com/vitest-dev/vitest/issues/9423) [<samp>(59f92)</samp>](https://github.com/vitest-dev/vitest/commit/59f92d403) - **mocker**: - Fix mock transform with class  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9421](https://github.com/vitest-dev/vitest/issues/9421) [<samp>(d390e)</samp>](https://github.com/vitest-dev/vitest/commit/d390eb527) - **pool**: - Validate environment options when reusing the worker  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9349](https://github.com/vitest-dev/vitest/issues/9349) [<samp>(a8a88)</samp>](https://github.com/vitest-dev/vitest/commit/a8a8836e3) - Handle worker start failures gracefully  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;9337](https://github.com/vitest-dev/vitest/issues/9337) [<samp>(200da)</samp>](https://github.com/vitest-dev/vitest/commit/200dadb32) - **reporter**: - Report test module if it failed to run  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9272](https://github.com/vitest-dev/vitest/issues/9272) [<samp>(c7888)</samp>](https://github.com/vitest-dev/vitest/commit/c78882985) - **runner**: - Respect nested test.only within describe.only  -  by [@&#8203;Ujjwaljain16](https://github.com/Ujjwaljain16) in [#&#8203;9021](https://github.com/vitest-dev/vitest/issues/9021) and [#&#8203;9213](https://github.com/vitest-dev/vitest/issues/9213) [<samp>(55d5d)</samp>](https://github.com/vitest-dev/vitest/commit/55d5dad69) - **typecheck**: - Improve error message when tsc outputs help text  -  by [@&#8203;Ujjwaljain16](https://github.com/Ujjwaljain16) in [#&#8203;9214](https://github.com/vitest-dev/vitest/issues/9214) [<samp>(7b10a)</samp>](https://github.com/vitest-dev/vitest/commit/7b10ab4cd) - **ui**: - Detect gzip by magic numbers instead of Content-Type header in html reporter  -  by [@&#8203;Copilot](https://github.com/Copilot), **hi-ogawa** and [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9278](https://github.com/vitest-dev/vitest/issues/9278) [<samp>(dd033)</samp>](https://github.com/vitest-dev/vitest/commit/dd0331632) - **webdriverio**: - Fall back to WebDriver Classic [#&#8203;9244](https://github.com/vitest-dev/vitest/issues/9244)  -  by [@&#8203;JustasMonkev](https://github.com/JustasMonkev) in [#&#8203;9373](https://github.com/vitest-dev/vitest/issues/9373) and [#&#8203;9244](https://github.com/vitest-dev/vitest/issues/9244) [<samp>(c23dd)</samp>](https://github.com/vitest-dev/vitest/commit/c23dd11bd) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.16...v4.0.17) ### [`v4.0.16`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.16) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.15...v4.0.16) #####    🐞 Bug Fixes - Fix browser mode default testTimeout back to 15 seconds  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9167](https://github.com/vitest-dev/vitest/issues/9167) [<samp>(da0ad)</samp>](https://github.com/vitest-dev/vitest/commit/da0ade249) - Avoid crashing on `process.versions` stub  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;9174](https://github.com/vitest-dev/vitest/issues/9174) [<samp>(78cfb)</samp>](https://github.com/vitest-dev/vitest/commit/78cfbf99a) - Reject calling suite function inside test  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9198](https://github.com/vitest-dev/vitest/issues/9198) [<samp>(1a259)</samp>](https://github.com/vitest-dev/vitest/commit/1a259c340) - Allow inlining fully dynamic import  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9137](https://github.com/vitest-dev/vitest/issues/9137) [<samp>(56851)</samp>](https://github.com/vitest-dev/vitest/commit/568513ca6) - Fix module graph UI on html reporter with headless browser mode  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9219](https://github.com/vitest-dev/vitest/issues/9219) [<samp>(60642)</samp>](https://github.com/vitest-dev/vitest/commit/60642b304) - Log deprecated `test.poolOptions` if it's set  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9226](https://github.com/vitest-dev/vitest/issues/9226) [<samp>(f7f6a)</samp>](https://github.com/vitest-dev/vitest/commit/f7f6aa8ba) - **browser**: - Import `recordArtifact` from the vitest package  -  by [@&#8203;macarie](https://github.com/macarie) in [#&#8203;9186](https://github.com/vitest-dev/vitest/issues/9186) [<samp>(01c56)</samp>](https://github.com/vitest-dev/vitest/commit/01c56454d) - Fix `import.meta.env` define  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9205](https://github.com/vitest-dev/vitest/issues/9205) [<samp>(01a9a)</samp>](https://github.com/vitest-dev/vitest/commit/01a9a58d9) - String formatting bug when including placeholders in console.log  -  by [@&#8203;michael-debs](https://github.com/michael-debs) and [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9030](https://github.com/vitest-dev/vitest/issues/9030) and [#&#8203;9131](https://github.com/vitest-dev/vitest/issues/9131) [<samp>(84a30)</samp>](https://github.com/vitest-dev/vitest/commit/84a306210) - **coverage**: - Istanbul untested files source maps are off  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;9208](https://github.com/vitest-dev/vitest/issues/9208) [<samp>(372e8)</samp>](https://github.com/vitest-dev/vitest/commit/372e86fde) - **experimental**: - Export `setupEnvironment` for custom pools  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;9187](https://github.com/vitest-dev/vitest/issues/9187) [<samp>(5d26b)</samp>](https://github.com/vitest-dev/vitest/commit/5d26b87b0) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.15...v4.0.16) ### [`v4.0.15`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.15) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.14...v4.0.15) #####    🚀 Experimental Features - **cache**: Add opt-out on a plugin level, fix internal root cache  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9154](https://github.com/vitest-dev/vitest/issues/9154) [<samp>(a68f7)</samp>](https://github.com/vitest-dev/vitest/commit/a68f74e5e) - **reporters**: Print import duration breakdown  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9105](https://github.com/vitest-dev/vitest/issues/9105) [<samp>(122ff)</samp>](https://github.com/vitest-dev/vitest/commit/122ff321c) #####    🐞 Bug Fixes - Keep built-in id as is in bun and deno  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9117](https://github.com/vitest-dev/vitest/issues/9117) [<samp>(075ab)</samp>](https://github.com/vitest-dev/vitest/commit/075ab3520) - Use `optimizeDeps.rolldownOptions` to fix depreated warning + fix `ssr.external: true`  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9121](https://github.com/vitest-dev/vitest/issues/9121) [<samp>(fd8bd)</samp>](https://github.com/vitest-dev/vitest/commit/fd8bd6dee) - Fix external behavior with `deps.optimizer`  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9125](https://github.com/vitest-dev/vitest/issues/9125) [<samp>(4c754)</samp>](https://github.com/vitest-dev/vitest/commit/4c75492cc) - Very minor typo in "Chrome DevTools Protocol"  -  by [@&#8203;HowToTestFrontend](https://github.com/HowToTestFrontend) in [#&#8203;9146](https://github.com/vitest-dev/vitest/issues/9146) [<samp>(20997)</samp>](https://github.com/vitest-dev/vitest/commit/209976419) - **browser**: Run `toMatchScreenshot` only once when used with `expect.element`  -  by [@&#8203;macarie](https://github.com/macarie) in [#&#8203;9132](https://github.com/vitest-dev/vitest/issues/9132) [<samp>(0d2e7)</samp>](https://github.com/vitest-dev/vitest/commit/0d2e7e3e2) - **coverage**: Istanbul provider to not break source maps  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;9040](https://github.com/vitest-dev/vitest/issues/9040) [<samp>(e4ca9)</samp>](https://github.com/vitest-dev/vitest/commit/e4ca917f1) - **deps**: Update dependency tinyexec to v1  -  in [#&#8203;9122](https://github.com/vitest-dev/vitest/issues/9122) [<samp>(fd786)</samp>](https://github.com/vitest-dev/vitest/commit/fd7860222) - **docs**: Remove `--browser.provider` from docs  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9115](https://github.com/vitest-dev/vitest/issues/9115) [<samp>(120b3)</samp>](https://github.com/vitest-dev/vitest/commit/120b3dac1) - **expect**: Preserve `currentTestName` in extended matchers  -  by [@&#8203;macarie](https://github.com/macarie) in [#&#8203;9106](https://github.com/vitest-dev/vitest/issues/9106) [<samp>(e4345)</samp>](https://github.com/vitest-dev/vitest/commit/e43458e02) - **pool**: Terminate workers on `CTRL+c` forceful exits  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;9140](https://github.com/vitest-dev/vitest/issues/9140) [<samp>(d57d8)</samp>](https://github.com/vitest-dev/vitest/commit/d57d8bf0a) - **reporters**: Show project in github reporter  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9138](https://github.com/vitest-dev/vitest/issues/9138) [<samp>(bb65e)</samp>](https://github.com/vitest-dev/vitest/commit/bb65e15c7) - **spy**: Do not mock overriden method, if parent was automocked  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9116](https://github.com/vitest-dev/vitest/issues/9116) [<samp>(1a246)</samp>](https://github.com/vitest-dev/vitest/commit/1a24607b4) - **web-worker**: MessagePort objects passed to Worker.postMessage work when clone === "native"  -  by [@&#8203;whitphx](https://github.com/whitphx) in [#&#8203;9118](https://github.com/vitest-dev/vitest/issues/9118) [<samp>(deee8)</samp>](https://github.com/vitest-dev/vitest/commit/deee83e54) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.14...v4.0.15) ### [`v4.0.14`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.14) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.13...v4.0.14) #####    🚀 Experimental Features - **browser**: Expose `utils.configurePrettyDOM`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9103](https://github.com/vitest-dev/vitest/issues/9103) [<samp>(2cc34)</samp>](https://github.com/vitest-dev/vitest/commit/2cc34e0d4) - **runner**: Add full names to tasks  -  by [@&#8203;macarie](https://github.com/macarie) in [#&#8203;9087](https://github.com/vitest-dev/vitest/issues/9087) [<samp>(821aa)</samp>](https://github.com/vitest-dev/vitest/commit/821aa2002) - **ui**: Add tabbed failure view for `toMatchScreenshot` with comparison slider  -  by [@&#8203;macarie](https://github.com/macarie) in [#&#8203;8813](https://github.com/vitest-dev/vitest/issues/8813) [<samp>(c37c2)</samp>](https://github.com/vitest-dev/vitest/commit/c37c2eb0b) #####    🐞 Bug Fixes - Externalize before caching  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9077](https://github.com/vitest-dev/vitest/issues/9077) [<samp>(e1b2e)</samp>](https://github.com/vitest-dev/vitest/commit/e1b2e086a) - Collect the duration of external imports  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9097](https://github.com/vitest-dev/vitest/issues/9097) [<samp>(3326c)</samp>](https://github.com/vitest-dev/vitest/commit/3326cc9f4) - Rename `collect` to `import`, remove `prepare`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9091](https://github.com/vitest-dev/vitest/issues/9091) [<samp>(1256b)</samp>](https://github.com/vitest-dev/vitest/commit/1256b5ca3) - **browser**: - Unsubscribe `onCancel` on rpc destroy  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;9088](https://github.com/vitest-dev/vitest/issues/9088) [<samp>(f5b72)</samp>](https://github.com/vitest-dev/vitest/commit/f5b72374b) - Revert the viewport scaling in non-ui mode [#&#8203;9018](https://github.com/vitest-dev/vitest/issues/9018)  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9072](https://github.com/vitest-dev/vitest/issues/9072) and [#&#8203;9018](https://github.com/vitest-dev/vitest/issues/9018) [<samp>(64502)</samp>](https://github.com/vitest-dev/vitest/commit/64502a2c4) - **coverage**: - Invalidate circular modules correctly on rerun with coverage  -  by [@&#8203;aicest](https://github.com/aicest) in [#&#8203;9096](https://github.com/vitest-dev/vitest/issues/9096) [<samp>(6f22c)</samp>](https://github.com/vitest-dev/vitest/commit/6f22c675f) - **expect**: - Allow function as standard schema  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;9099](https://github.com/vitest-dev/vitest/issues/9099) [<samp>(ed8a2)</samp>](https://github.com/vitest-dev/vitest/commit/ed8a2ebbd) - **jsdom**: - Reuse abort signals if possible  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9090](https://github.com/vitest-dev/vitest/issues/9090) [<samp>(2c468)</samp>](https://github.com/vitest-dev/vitest/commit/2c468ee95) - **pool**: - Init `VITEST_POOL_ID` + `VITEST_WORKER_ID` before environment setup  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;9085](https://github.com/vitest-dev/vitest/issues/9085) [<samp>(37918)</samp>](https://github.com/vitest-dev/vitest/commit/379185b40) - **web-worker**: - `postMessage` to send ports to workers  -  by [@&#8203;whitphx](https://github.com/whitphx) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;9078](https://github.com/vitest-dev/vitest/issues/9078) [<samp>(9d176)</samp>](https://github.com/vitest-dev/vitest/commit/9d1763d11) #####    🏎 Performance - Replace `debug` with `obug`  -  by [@&#8203;sxzz](https://github.com/sxzz) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;9057](https://github.com/vitest-dev/vitest/issues/9057) [<samp>(acc51)</samp>](https://github.com/vitest-dev/vitest/commit/acc5152b9) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.13...v4.0.14) ### [`v4.0.13`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.13) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.12...v4.0.13) #####    🐞 Bug Fixes - **types**: - Don't use type from Vite 7.1  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9071](https://github.com/vitest-dev/vitest/issues/9071) [<samp>(6356b)</samp>](https://github.com/vitest-dev/vitest/commit/6356b1d38) - Don't import node.js dependent types in vitest/browser  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9068](https://github.com/vitest-dev/vitest/issues/9068) [<samp>(332af)</samp>](https://github.com/vitest-dev/vitest/commit/332afa0de) #####    🏎 Performance - Avoid fetchModule roundtrip if the module is cached  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9075](https://github.com/vitest-dev/vitest/issues/9075) [<samp>(b27e0)</samp>](https://github.com/vitest-dev/vitest/commit/b27e002e5) - **experimental**: If `fsCacheModule` is enabled, read from the memory when possible  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9076](https://github.com/vitest-dev/vitest/issues/9076) [<samp>(6b9a1)</samp>](https://github.com/vitest-dev/vitest/commit/6b9a1b5b1) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.12...v4.0.13) ### [`v4.0.12`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.12) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.11...v4.0.12) #####    🐞 Bug Fixes - Inherit `fsModuleCachePath` by default  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9063](https://github.com/vitest-dev/vitest/issues/9063) [<samp>(9a8bc)</samp>](https://github.com/vitest-dev/vitest/commit/9a8bc78c5) - Don't import from `@opentelemetry/api` in public types  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9066](https://github.com/vitest-dev/vitest/issues/9066) [<samp>(e944a)</samp>](https://github.com/vitest-dev/vitest/commit/e944a37b7) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.11...v4.0.12) ### [`v4.0.11`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.11) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.10...v4.0.11) #####    🚀 Experimental Features - **api**: Add extensible test artifact API  -  by [@&#8203;macarie](https://github.com/macarie) in [#&#8203;8987](https://github.com/vitest-dev/vitest/issues/8987) [<samp>(77292)</samp>](https://github.com/vitest-dev/vitest/commit/772923645) - See more at <https://vitest.dev/api/advanced/artifacts> - **expect**: Provide `task` in `MatchState`  -  by [@&#8203;macarie](https://github.com/macarie) in [#&#8203;9022](https://github.com/vitest-dev/vitest/issues/9022) [<samp>(afd1f)</samp>](https://github.com/vitest-dev/vitest/commit/afd1f3e52) - **experimental**: Support OpenTelemetry traces  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8994](https://github.com/vitest-dev/vitest/issues/8994) [<samp>(d6d33)</samp>](https://github.com/vitest-dev/vitest/commit/d6d3359dd) - See more at <https://vitest.dev/guide/open-telemetry> #####    🏎 Performance - **experimental**: Add file system cache  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9026](https://github.com/vitest-dev/vitest/issues/9026) [<samp>(1b147)</samp>](https://github.com/vitest-dev/vitest/commit/1b1473712) - See more at <https://vitest.dev/config/experimental#experimental-fsmodulecache> #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.10...v4.0.11) ### [`v4.0.10`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.10) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.9...v4.0.10) #####    🐞 Bug Fixes - Remove `onCancel` when worker is terminated  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9033](https://github.com/vitest-dev/vitest/issues/9033) [<samp>(6d7f0)</samp>](https://github.com/vitest-dev/vitest/commit/6d7f0a99e) - **browser**: - Don't scale the iframe if UI is disabled  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9018](https://github.com/vitest-dev/vitest/issues/9018) [<samp>(5406e)</samp>](https://github.com/vitest-dev/vitest/commit/5406e8ea4) - Handle dependency stack traces with external source maps. Resolves: [#&#8203;9003](https://github.com/vitest-dev/vitest/issues/9003)  -  by [@&#8203;iclectic](https://github.com/iclectic) in [#&#8203;9016](https://github.com/vitest-dev/vitest/issues/9016) and [#&#8203;9003](https://github.com/vitest-dev/vitest/issues/9003) [<samp>(57ae5)</samp>](https://github.com/vitest-dev/vitest/commit/57ae547de) - **bun**: - Parsing of stack trace for bun runtime  -  by [@&#8203;nazarhussain](https://github.com/nazarhussain) in [#&#8203;9032](https://github.com/vitest-dev/vitest/issues/9032) [<samp>(f3ec6)</samp>](https://github.com/vitest-dev/vitest/commit/f3ec6fcb0) - **core**: - Prevent starting new run when cancelling  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8991](https://github.com/vitest-dev/vitest/issues/8991) [<samp>(eb98d)</samp>](https://github.com/vitest-dev/vitest/commit/eb98dd8fd) - **pool**: - Prevent writing to closed worker  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;9023](https://github.com/vitest-dev/vitest/issues/9023) [<samp>(042c6)</samp>](https://github.com/vitest-dev/vitest/commit/042c60c80) - **reporters**: - Report correct test run duration at the end  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8969](https://github.com/vitest-dev/vitest/issues/8969) [<samp>(bc3a6)</samp>](https://github.com/vitest-dev/vitest/commit/bc3a6921e) - **ui**: - Use execution time from ws reporter (`onFinished`)  -  by [@&#8203;userquin](https://github.com/userquin) in [#&#8203;8975](https://github.com/vitest-dev/vitest/issues/8975) [<samp>(f56dc)</samp>](https://github.com/vitest-dev/vitest/commit/f56dc0cc4) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.9...v4.0.10) ### [`v4.0.9`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.9) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.8...v4.0.9) #####    🚀 Experimental Features - **expect**: Add Set support to toBeOneOf  -  by [@&#8203;tim-we](https://github.com/tim-we) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8906](https://github.com/vitest-dev/vitest/issues/8906) [<samp>(a415d)</samp>](https://github.com/vitest-dev/vitest/commit/a415d0375) #####    🐞 Bug Fixes - **browser**: Add favicon icons to the browser mode ui  -  by [@&#8203;userquin](https://github.com/userquin) in [#&#8203;8972](https://github.com/vitest-dev/vitest/issues/8972) [<samp>(353ee)</samp>](https://github.com/vitest-dev/vitest/commit/353ee5bbc) - **forks**: Increase worker start timeout  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;9027](https://github.com/vitest-dev/vitest/issues/9027) [<samp>(5e750)</samp>](https://github.com/vitest-dev/vitest/commit/5e750f4ba) - **jsdom**: Cloned request is an instance of `Request`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8985](https://github.com/vitest-dev/vitest/issues/8985) [<samp>(506a9)</samp>](https://github.com/vitest-dev/vitest/commit/506a9fd0f) - **ui**: Collect file/suite/test duration correctly  -  by [@&#8203;userquin](https://github.com/userquin) in [#&#8203;8976](https://github.com/vitest-dev/vitest/issues/8976) [<samp>(8016d)</samp>](https://github.com/vitest-dev/vitest/commit/8016da886) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.8...v4.0.9) ### [`v4.0.8`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.8) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.7...v4.0.8) #####    🐞 Bug Fixes - Workaround `noExternal` merging bug on Vite 6  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;8950](https://github.com/vitest-dev/vitest/issues/8950) [<samp>(bcb13)</samp>](https://github.com/vitest-dev/vitest/commit/bcb132fd4) - Missed context.d.ts file  -  by [@&#8203;termorey](https://github.com/termorey) in [#&#8203;8965](https://github.com/vitest-dev/vitest/issues/8965) [<samp>(9044d)</samp>](https://github.com/vitest-dev/vitest/commit/9044d9356) - Incorrect error message for non-awaited `expect.element()`  -  by [@&#8203;StyleShit](https://github.com/StyleShit) in [#&#8203;8954](https://github.com/vitest-dev/vitest/issues/8954) [<samp>(9638d)</samp>](https://github.com/vitest-dev/vitest/commit/9638db0f3) - **browser**: Cleanup frame-ancestors from CSP header at coverage middleware  -  by [@&#8203;userquin](https://github.com/userquin) in [#&#8203;8941](https://github.com/vitest-dev/vitest/issues/8941) [<samp>(1f730)</samp>](https://github.com/vitest-dev/vitest/commit/1f7303738) - **deps**: Update all non-major dependencies  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8636](https://github.com/vitest-dev/vitest/issues/8636) [<samp>(da8b9)</samp>](https://github.com/vitest-dev/vitest/commit/da8b93aa5) - **forks**: Do not fail with Windows Defender enabled  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8967](https://github.com/vitest-dev/vitest/issues/8967) [<samp>(c79f4)</samp>](https://github.com/vitest-dev/vitest/commit/c79f47c65) - **runner**: Properly encode Uint8Array body in annotations  -  by [@&#8203;Livan-pro](https://github.com/Livan-pro) in [#&#8203;8951](https://github.com/vitest-dev/vitest/issues/8951) [<samp>(997ca)</samp>](https://github.com/vitest-dev/vitest/commit/997ca5a82) - **spy**: Copy static properties if spy is initialised with `vi.fn()`, fix types for `vi.spyOn(obj, class)`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8956](https://github.com/vitest-dev/vitest/issues/8956) [<samp>(75e7f)</samp>](https://github.com/vitest-dev/vitest/commit/75e7fcc51) - **webdriverio**: When no argument is passed to the .click interaction command, the webdriver command should also have no argument  -  by [@&#8203;julienw](https://github.com/julienw) in [#&#8203;8937](https://github.com/vitest-dev/vitest/issues/8937) [<samp>(069e6)</samp>](https://github.com/vitest-dev/vitest/commit/069e6db9b) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.7...v4.0.8) ### [`v4.0.7`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.7) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.6...v4.0.7) #####    🐞 Bug Fixes - Bind `process` in case global is overwritten  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8916](https://github.com/vitest-dev/vitest/issues/8916) [<samp>(6240d)</samp>](https://github.com/vitest-dev/vitest/commit/6240d51a6) - Create environment once per worker with `isolate: false`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8915](https://github.com/vitest-dev/vitest/issues/8915) [<samp>(c9078)</samp>](https://github.com/vitest-dev/vitest/commit/c9078a26e) - Add Locator as a possible element type in `toContainElement()` matcher  -  by [@&#8203;vitalybaev](https://github.com/vitalybaev) in [#&#8203;8910](https://github.com/vitest-dev/vitest/issues/8910) and [#&#8203;8927](https://github.com/vitest-dev/vitest/issues/8927) [<samp>(35a27)</samp>](https://github.com/vitest-dev/vitest/commit/35a27d4b3) - **browser**: Inherit `isolate` option, deprecate `browser.isolate`/`browser.fileParallelism`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8890](https://github.com/vitest-dev/vitest/issues/8890) [<samp>(9d2b4)</samp>](https://github.com/vitest-dev/vitest/commit/9d2b4d501) - **cli**: Parse `--execArgv` as array  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8924](https://github.com/vitest-dev/vitest/issues/8924) [<samp>(751c3)</samp>](https://github.com/vitest-dev/vitest/commit/751c3926f) - **jsdom**: Support `URL.createObjectURL`, `FormData.set(prop, blob)`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8935](https://github.com/vitest-dev/vitest/issues/8935) [<samp>(a1b73)</samp>](https://github.com/vitest-dev/vitest/commit/a1b7361ab) - **pool**: Avoid `--require` argument when running in deno  -  by [@&#8203;pi0](https://github.com/pi0) in [#&#8203;8897](https://github.com/vitest-dev/vitest/issues/8897) [<samp>(d41fa)</samp>](https://github.com/vitest-dev/vitest/commit/d41fa742f) - **typecheck**: Handle re-runs outside `tsc`  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8920](https://github.com/vitest-dev/vitest/issues/8920) [<samp>(fdb2e)</samp>](https://github.com/vitest-dev/vitest/commit/fdb2e7982) #####    🏎 Performance - **pool**: - Sort test files by project by default  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8914](https://github.com/vitest-dev/vitest/issues/8914) [<samp>(680a6)</samp>](https://github.com/vitest-dev/vitest/commit/680a612ea) - **reporters**: - Optimize getting the tests stats  -  by [@&#8203;Connormiha](https://github.com/Connormiha) in [#&#8203;8908](https://github.com/vitest-dev/vitest/issues/8908) [<samp>(06d62)</samp>](https://github.com/vitest-dev/vitest/commit/06d6207fb) - Remove unnecessary `Array.from` call  -  by [@&#8203;Connormiha](https://github.com/Connormiha) in [#&#8203;8907](https://github.com/vitest-dev/vitest/issues/8907) [<samp>(b6014)</samp>](https://github.com/vitest-dev/vitest/commit/b60149b27) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.6...v4.0.7) ### [`v4.0.6`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.6) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.5...v4.0.6) #####    🐞 Bug Fixes - Don't merge errors with different diffs for reporting  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;8871](https://github.com/vitest-dev/vitest/issues/8871) [<samp>(3e19f)</samp>](https://github.com/vitest-dev/vitest/commit/3e19f27d0) - Do not throw when importing a type from an external package  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8875](https://github.com/vitest-dev/vitest/issues/8875) [<samp>(7e6c3)</samp>](https://github.com/vitest-dev/vitest/commit/7e6c37ae5) - Improve spying types  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8878](https://github.com/vitest-dev/vitest/issues/8878) [<samp>(ca041)</samp>](https://github.com/vitest-dev/vitest/commit/ca041f51a) - Reuse the same environment when `isolate` and `fileParallelism` are false  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8889](https://github.com/vitest-dev/vitest/issues/8889) [<samp>(31706)</samp>](https://github.com/vitest-dev/vitest/commit/31706dfe5) - **browser**: - Support module tracking  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8877](https://github.com/vitest-dev/vitest/issues/8877) [<samp>(9e24a)</samp>](https://github.com/vitest-dev/vitest/commit/9e24a59f2) - Ensure setup files are re-evaluated on each test run  -  by [@&#8203;yjaaidi](https://github.com/yjaaidi) in [#&#8203;8883](https://github.com/vitest-dev/vitest/issues/8883) and [#&#8203;8884](https://github.com/vitest-dev/vitest/issues/8884) [<samp>(f50ea)</samp>](https://github.com/vitest-dev/vitest/commit/f50ea7a25) - **coverage**: - Prevent filtering out virtual files before remapping to sources  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8860](https://github.com/vitest-dev/vitest/issues/8860) [<samp>(e3b77)</samp>](https://github.com/vitest-dev/vitest/commit/e3b777550) - **happy-dom**: - Properly teardown additional keys  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8888](https://github.com/vitest-dev/vitest/issues/8888) [<samp>(10a06)</samp>](https://github.com/vitest-dev/vitest/commit/10a06d8c9) - **jsdom**: - Pass down Node.js `FormData` to `Request`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8880](https://github.com/vitest-dev/vitest/issues/8880) [<samp>(197ca)</samp>](https://github.com/vitest-dev/vitest/commit/197caf2f9) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.5...v4.0.6) ### [`v4.0.5`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.5) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.4...v4.0.5) #####    🐞 Bug Fixes - Respect `ssr.noExternal` when externalizing dependencies, fix Svelte and Astro  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8862](https://github.com/vitest-dev/vitest/issues/8862) [<samp>(a4f86)</samp>](https://github.com/vitest-dev/vitest/commit/a4f86f1ba) - Allow module in --config  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8864](https://github.com/vitest-dev/vitest/issues/8864) [<samp>(b9521)</samp>](https://github.com/vitest-dev/vitest/commit/b9521e0c2) - **browser**: Allow `Locator` type in selectOptions element parameter  -  by [@&#8203;rzzf](https://github.com/rzzf) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8848](https://github.com/vitest-dev/vitest/issues/8848) [<samp>(7ee28)</samp>](https://github.com/vitest-dev/vitest/commit/7ee283c96) - **module-runner**: Don't return node builtins for `getBuiltins` unconditionally  -  by [@&#8203;sapphi-red](https://github.com/sapphi-red) in [#&#8203;8863](https://github.com/vitest-dev/vitest/issues/8863) [<samp>(0e858)</samp>](https://github.com/vitest-dev/vitest/commit/0e858bab4) - **pool**: Rename `groupId` to `groupOrder` in error message  -  by [@&#8203;Yohannfra](https://github.com/Yohannfra) in [#&#8203;8856](https://github.com/vitest-dev/vitest/issues/8856) [<samp>(b9aab)</samp>](https://github.com/vitest-dev/vitest/commit/b9aabf4e6) #####    🏎 Performance - Pass testfiles at once when `--no-isolate --maxWorkers=1`  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8835](https://github.com/vitest-dev/vitest/issues/8835) [<samp>(584aa)</samp>](https://github.com/vitest-dev/vitest/commit/584aa7148) - **expect**: Optimize checking the input type  -  by [@&#8203;Connormiha](https://github.com/Connormiha) in [#&#8203;8840](https://github.com/vitest-dev/vitest/issues/8840) [<samp>(06968)</samp>](https://github.com/vitest-dev/vitest/commit/0696898b4) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.4...v4.0.5) ### [`v4.0.4`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.4) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.3...v4.0.4) #####    🐞 Bug Fixes - **browser**: - Correct typo  -  by [@&#8203;benmccann](https://github.com/benmccann) in [#&#8203;8796](https://github.com/vitest-dev/vitest/issues/8796) [<samp>(ede1f)</samp>](https://github.com/vitest-dev/vitest/commit/ede1f39d6) - Publish a missing context file for webdriverio  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8824](https://github.com/vitest-dev/vitest/issues/8824) [<samp>(7c7b6)</samp>](https://github.com/vitest-dev/vitest/commit/7c7b6f0b1) - **mocker**: - Support mocking builtins without `node:` prefix  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8829](https://github.com/vitest-dev/vitest/issues/8829) [<samp>(06208)</samp>](https://github.com/vitest-dev/vitest/commit/06208d30b) - **pool**: - Runner's error listener causing `MaxListenersExceededWarning`  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8820](https://github.com/vitest-dev/vitest/issues/8820) [<samp>(d1bff)</samp>](https://github.com/vitest-dev/vitest/commit/d1bff3bb3) - Capture workers `stdio` to logger  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8809](https://github.com/vitest-dev/vitest/issues/8809) [<samp>(fb95f)</samp>](https://github.com/vitest-dev/vitest/commit/fb95fc736) - **spy**: - Allow classes in `vi.mocked` utility  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8839](https://github.com/vitest-dev/vitest/issues/8839) [<samp>(f8756)</samp>](https://github.com/vitest-dev/vitest/commit/f87568d64) - **worker**: - Rpc listener leak when `isolate: false`  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8821](https://github.com/vitest-dev/vitest/issues/8821) [<samp>(573dc)</samp>](https://github.com/vitest-dev/vitest/commit/573dc06fe) #####    🏎 Performance - **utils**: Optimized reducer to avoid creating new objects  -  by [@&#8203;Connormiha](https://github.com/Connormiha) in [#&#8203;8818](https://github.com/vitest-dev/vitest/issues/8818) [<samp>(d19ce)</samp>](https://github.com/vitest-dev/vitest/commit/d19cece3a) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.3...v4.0.4) ### [`v4.0.3`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.3) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.2...v4.0.3) #####    🐞 Bug Fixes - Preserve reporter options from config when CLI reporters override them  -  by [@&#8203;Copilot](https://github.com/Copilot) and **sheremet-va** in [#&#8203;8794](https://github.com/vitest-dev/vitest/issues/8794) [<samp>(15552)</samp>](https://github.com/vitest-dev/vitest/commit/155521a85) - **browser**: More stable in-source testing validation  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8793](https://github.com/vitest-dev/vitest/issues/8793) [<samp>(62297)</samp>](https://github.com/vitest-dev/vitest/commit/622977e61) - **happy-dom**: Support fetch globals  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8791](https://github.com/vitest-dev/vitest/issues/8791) [<samp>(0fb74)</samp>](https://github.com/vitest-dev/vitest/commit/0fb74bd3b) - **init**: Use correct jsx/tsx extension  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8792](https://github.com/vitest-dev/vitest/issues/8792) [<samp>(abc04)</samp>](https://github.com/vitest-dev/vitest/commit/abc046f95) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.2...v4.0.3) ### [`v4.0.2`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.2) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.1...v4.0.2) #####    🐞 Bug Fixes - **browser**: - Don't print the deprecation notice in node\_modules  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8779](https://github.com/vitest-dev/vitest/issues/8779) [<samp>(588f7)</samp>](https://github.com/vitest-dev/vitest/commit/588f76858) - **pool**: - Assign envs before running tests to keep in sync with process.env  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8769](https://github.com/vitest-dev/vitest/issues/8769) [<samp>(26ce8)</samp>](https://github.com/vitest-dev/vitest/commit/26ce88db6) - **spy**: - Properly inherit implementation's `length`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8778](https://github.com/vitest-dev/vitest/issues/8778) [<samp>(d4c2b)</samp>](https://github.com/vitest-dev/vitest/commit/d4c2b280b) - Reset spies if both `restoreMocks` and `mockReset` are set in the config  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8781](https://github.com/vitest-dev/vitest/issues/8781) [<samp>(2eedb)</samp>](https://github.com/vitest-dev/vitest/commit/2eedbce76) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.1...v4.0.2) ### [`v4.0.1`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.1) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.0...v4.0.1) #####    🐞 Bug Fixes - Move the `getBuiltins` check  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8765](https://github.com/vitest-dev/vitest/issues/8765) [<samp>(81000)</samp>](https://github.com/vitest-dev/vitest/commit/81000631d) - **pool**: Don't teardown the communication channel too soon if something is running after the test  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8767](https://github.com/vitest-dev/vitest/issues/8767) [<samp>(3fae7)</samp>](https://github.com/vitest-dev/vitest/commit/3fae73e2e) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.0...v4.0.1) ### [`v4.0.0`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.0) [Compare Source](https://github.com/vitest-dev/vitest/compare/v3.2.7...v4.0.0) Vitest 4.0 is out! To stay updated, read our [blog post](https://vitest.dev/blog/vitest-4) and check the [migration guide](https://vitest.dev/guide/migration). #####    🚨 Breaking Changes - Remove `'basic'` reporter  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7884](https://github.com/vitest-dev/vitest/issues/7884) [<samp>(82fcf)</samp>](https://github.com/vitest-dev/vitest/commit/82fcf5d53) - Simplify default exclude pattern  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6287](https://github.com/vitest-dev/vitest/issues/6287) [<samp>(14c50)</samp>](https://github.com/vitest-dev/vitest/commit/14c507200) - Remove deprecated getSourceMap  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8194](https://github.com/vitest-dev/vitest/issues/8194) [<samp>(ff934)</samp>](https://github.com/vitest-dev/vitest/commit/ff93444f8) - Replace deprecated ErrorWithDiff with TestError  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8195](https://github.com/vitest-dev/vitest/issues/8195) [<samp>(da59e)</samp>](https://github.com/vitest-dev/vitest/commit/da59eb887) - Remove UserConfig type in favor of ViteUserConfig  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8196](https://github.com/vitest-dev/vitest/issues/8196) [<samp>(22f7f)</samp>](https://github.com/vitest-dev/vitest/commit/22f7f2db5) - Remove deprecated coverage options in favor of `vitest/node` exports  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8197](https://github.com/vitest-dev/vitest/issues/8197) [<samp>(dc848)</samp>](https://github.com/vitest-dev/vitest/commit/dc8486d22) - Remove deprecated internal helpers and environment exports  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8198](https://github.com/vitest-dev/vitest/issues/8198) [<samp>(4703c)</samp>](https://github.com/vitest-dev/vitest/commit/4703cf850) - Remove deprecated typecheck and runner types  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8199](https://github.com/vitest-dev/vitest/issues/8199) [<samp>(89a1c)</samp>](https://github.com/vitest-dev/vitest/commit/89a1cb626) - Remove Node types from the main entry point, use `vitest/node` instead  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8200](https://github.com/vitest-dev/vitest/issues/8200) [<samp>(1e60c)</samp>](https://github.com/vitest-dev/vitest/commit/1e60c4f44) - Remove support for Vite 5  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8202](https://github.com/vitest-dev/vitest/issues/8202) [<samp>(cb8b0)</samp>](https://github.com/vitest-dev/vitest/commit/cb8b03bac) - Remove deprecated types  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8203](https://github.com/vitest-dev/vitest/issues/8203) [<samp>(66bee)</samp>](https://github.com/vitest-dev/vitest/commit/66bee836f) - Remove deprecated environmentMatchGlobs and poolMatchGlobs  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8205](https://github.com/vitest-dev/vitest/issues/8205) [<samp>(be11d)</samp>](https://github.com/vitest-dev/vitest/commit/be11d374c) - Remove deprecated `workspace` option in favor of `projects`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8218](https://github.com/vitest-dev/vitest/issues/8218) [<samp>(76fb7)</samp>](https://github.com/vitest-dev/vitest/commit/76fb75d42) - Ignore `--standalone` when CLI filename filter is used  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8262](https://github.com/vitest-dev/vitest/issues/8262) [<samp>(013bf)</samp>](https://github.com/vitest-dev/vitest/commit/013bf2cb2) - Use module-runner instead of vite-node  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8208](https://github.com/vitest-dev/vitest/issues/8208) [<samp>(9be01)</samp>](https://github.com/vitest-dev/vitest/commit/9be01ba59) - Rewrite spying implementation to make module mocking more intuitive  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8363](https://github.com/vitest-dev/vitest/issues/8363) [<samp>(9e412)</samp>](https://github.com/vitest-dev/vitest/commit/9e412de35) - Remove deprecated APIs  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8428](https://github.com/vitest-dev/vitest/issues/8428) [<samp>(a1cb9)</samp>](https://github.com/vitest-dev/vitest/commit/a1cb9719a) - Remove `minWorkers` and set it automatically to 0 in non watch mode  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8454](https://github.com/vitest-dev/vitest/issues/8454) [<samp>(2c2d1)</samp>](https://github.com/vitest-dev/vitest/commit/2c2d1d4ce) - Verbose reporter prints tests in a list, introduce `tree` reporter  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8500](https://github.com/vitest-dev/vitest/issues/8500) [<samp>(25fd3)</samp>](https://github.com/vitest-dev/vitest/commit/25fd32bf0) - Include shadow root contents in pretty-format output  -  by [@&#8203;wkillerud](https://github.com/wkillerud) in [#&#8203;8545](https://github.com/vitest-dev/vitest/issues/8545) [<samp>(9e722)</samp>](https://github.com/vitest-dev/vitest/commit/9e722834a) - Remove deprecated order from test() API  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8594](https://github.com/vitest-dev/vitest/issues/8594) [<samp>(4d419)</samp>](https://github.com/vitest-dev/vitest/commit/4d41928c6) - Rewrite pools without `tinypool`  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8705](https://github.com/vitest-dev/vitest/issues/8705) [<samp>(4822d)</samp>](https://github.com/vitest-dev/vitest/commit/4822d047a) - **browser**: Require a provider factory instead of a string  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8445](https://github.com/vitest-dev/vitest/issues/8445) [<samp>(606cb)</samp>](https://github.com/vitest-dev/vitest/commit/606cb9e3e) - **expect**: Pass current equality testers to asymmetric matcher  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6825](https://github.com/vitest-dev/vitest/issues/6825) [<samp>(965ce)</samp>](https://github.com/vitest-dev/vitest/commit/965cefc19) - **projects**: Allow only files that have "vitest.config" or "vite.config" in the name  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8542](https://github.com/vitest-dev/vitest/issues/8542) [<samp>(304bc)</samp>](https://github.com/vitest-dev/vitest/commit/304bc20f0) - **reporter**: Remove deprecated APIs  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8223](https://github.com/vitest-dev/vitest/issues/8223) [<samp>(149f8)</samp>](https://github.com/vitest-dev/vitest/commit/149f8e509) - **runner**: Set mode to `todo` if no function is passed down to `test` or `describe`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8346](https://github.com/vitest-dev/vitest/issues/8346) [<samp>(1a81c)</samp>](https://github.com/vitest-dev/vitest/commit/1a81c21d2) - **snapshot**: Fail test with obsolete snapshot on CI  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7963](https://github.com/vitest-dev/vitest/issues/7963) [<samp>(4d84f)</samp>](https://github.com/vitest-dev/vitest/commit/4d84f0ac6) - **spy**: Support spying on classes  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6160](https://github.com/vitest-dev/vitest/issues/6160) [<samp>(abc0d)</samp>](https://github.com/vitest-dev/vitest/commit/abc0d8273) #####    🚀 Features - Provide entity to onConsoleLog  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8159](https://github.com/vitest-dev/vitest/issues/8159) [<samp>(437d4)</samp>](https://github.com/vitest-dev/vitest/commit/437d461aa) - Add `onUnhandledError` callback  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8162](https://github.com/vitest-dev/vitest/issues/8162) [<samp>(924cb)</samp>](https://github.com/vitest-dev/vitest/commit/924cb6961) - Add spy option to vi.mockObject  -  by [@&#8203;rChaoz](https://github.com/rChaoz) in [#&#8203;8285](https://github.com/vitest-dev/vitest/issues/8285) [<samp>(81d76)</samp>](https://github.com/vitest-dev/vitest/commit/81d7601e4) - Don't use vite-node in coverage packages  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) [<samp>(ffdb4)</samp>](https://github.com/vitest-dev/vitest/commit/ffdb4d5fd) - Clickable dashboard numbers  -  by [@&#8203;shairez](https://github.com/shairez) in [#&#8203;7406](https://github.com/vitest-dev/vitest/issues/7406) [<samp>(2344c)</samp>](https://github.com/vitest-dev/vitest/commit/2344c1f6e) - Display test "path" when filtering  -  by [@&#8203;userquin](https://github.com/userquin) in [#&#8203;8547](https://github.com/vitest-dev/vitest/issues/8547) [<samp>(2e491)</samp>](https://github.com/vitest-dev/vitest/commit/2e4918954) - Introduce separate packages for browser mode providers  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8629](https://github.com/vitest-dev/vitest/issues/8629) [<samp>(0dc93)</samp>](https://github.com/vitest-dev/vitest/commit/0dc93ea98) - Add hooks with type-safe extra context to TestAPI  -  by [@&#8203;ysfaran](https://github.com/ysfaran) in [#&#8203;8623](https://github.com/vitest-dev/vitest/issues/8623) [<samp>(6b21c)</samp>](https://github.com/vitest-dev/vitest/commit/6b21cfe55) - Support `expect.assert` for type narrowing  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8695](https://github.com/vitest-dev/vitest/issues/8695) [<samp>(fe589)</samp>](https://github.com/vitest-dev/vitest/commit/fe5895d2b) - Add `displayAnnotations` option to `github-options`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8706](https://github.com/vitest-dev/vitest/issues/8706) [<samp>(4a66d)</samp>](https://github.com/vitest-dev/vitest/commit/4a66df625) - Add schema validation matchers  -  by [@&#8203;zirkelc](https://github.com/zirkelc) in [#&#8203;8527](https://github.com/vitest-dev/vitest/issues/8527) [<samp>(c0b25)</samp>](https://github.com/vitest-dev/vitest/commit/c0b250e5c) - Add a way to dump transformed content  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8711](https://github.com/vitest-dev/vitest/issues/8711) [<samp>(931c0)</samp>](https://github.com/vitest-dev/vitest/commit/931c0ee63) - **api**: - Expose `experimental_parseSpecifications`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8408](https://github.com/vitest-dev/vitest/issues/8408) [<samp>(fdeb2)</samp>](https://github.com/vitest-dev/vitest/commit/fdeb2f482) - Expose Vitest watcher  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8413](https://github.com/vitest-dev/vitest/issues/8413) [<samp>(aaa6e)</samp>](https://github.com/vitest-dev/vitest/commit/aaa6e6512) - Add `enableCoverage` and `disableCoverage` methods  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8412](https://github.com/vitest-dev/vitest/issues/8412) [<samp>(61eb7)</samp>](https://github.com/vitest-dev/vitest/commit/61eb7dd9c) - Add `getGlobalTestNamePattern` method  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8438](https://github.com/vitest-dev/vitest/issues/8438) [<samp>(bdb70)</samp>](https://github.com/vitest-dev/vitest/commit/bdb7067f1) - Add `relativeModuleId` to `TestModule`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8505](https://github.com/vitest-dev/vitest/issues/8505) [<samp>(3be09)</samp>](https://github.com/vitest-dev/vitest/commit/3be0986aa) - Add `getSeed` method  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8592](https://github.com/vitest-dev/vitest/issues/8592) [<samp>(438c4)</samp>](https://github.com/vitest-dev/vitest/commit/438c44e7f) - **browser**: - Support `toBeInViewport` utility method to assert element is in viewport or not  -  by [@&#8203;Shinyaigeek](https://github.com/Shinyaigeek) in [#&#8203;8234](https://github.com/vitest-dev/vitest/issues/8234) [<samp>(ceed5)</samp>](https://github.com/vitest-dev/vitest/commit/ceed5b622) - Add qwik to the `vitest init` cli command  -  by [@&#8203;thejackshelton](https://github.com/thejackshelton) in [#&#8203;8330](https://github.com/vitest-dev/vitest/issues/8330) [<samp>(1638b)</samp>](https://github.com/vitest-dev/vitest/commit/1638b44e8) - Introduce `toMatchScreenshot` for Visual Regression Testing  -  by [@&#8203;macarie](https://github.com/macarie) in [#&#8203;8041](https://github.com/vitest-dev/vitest/issues/8041) [<samp>(d45f9)</samp>](https://github.com/vitest-dev/vitest/commit/d45f964c1) - Add `trackUnhandledErrors` option  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8386](https://github.com/vitest-dev/vitest/issues/8386) [<samp>(c0ec0)</samp>](https://github.com/vitest-dev/vitest/commit/c0ec08a90) - Support iframe locator with playwright provider  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8016](https://github.com/vitest-dev/vitest/issues/8016) [<samp>(57b2c)</samp>](https://github.com/vitest-dev/vitest/commit/57b2cca2e) - Add `length` property to locators, `toHaveLength` now accepts locators  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8512](https://github.com/vitest-dev/vitest/issues/8512) [<samp>(2308c)</samp>](https://github.com/vitest-dev/vitest/commit/2308cbf13) - Support playwright tracing  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8584](https://github.com/vitest-dev/vitest/issues/8584) [<samp>(1aac5)</samp>](https://github.com/vitest-dev/vitest/commit/1aac59cd2) - Expose `options` on `BrowserProviderOption`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8609](https://github.com/vitest-dev/vitest/issues/8609) [<samp>(0d0e5)</samp>](https://github.com/vitest-dev/vitest/commit/0d0e5cdf6) - Support `--inspect` option in webdriverio  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8613](https://github.com/vitest-dev/vitest/issues/8613) [<samp>(38adc)</samp>](https://github.com/vitest-dev/vitest/commit/38adc86cf) - Support custom screenshot comparison algorithms  -  by [@&#8203;macarie](https://github.com/macarie) in [#&#8203;8687](https://github.com/vitest-dev/vitest/issues/8687) [<samp>(e63b1)</samp>](https://github.com/vitest-dev/vitest/commit/e63b17efc) - **coverage**: - `autoUpdate` to support percentage formatting  -  by [@&#8203;Battjmo](https://github.com/Battjmo) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8456](https://github.com/vitest-dev/vitest/issues/8456) [<samp>(99e01)</samp>](https://github.com/vitest-dev/vitest/commit/99e016bec) - **expect**: - Support `toBeNullable` expect function to check provided value is nullish  -  by [@&#8203;Shinyaigeek](https://github.com/Shinyaigeek) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8294](https://github.com/vitest-dev/vitest/issues/8294) [<samp>(eeec5)</samp>](https://github.com/vitest-dev/vitest/commit/eeec501de) - **mocker**: - Add `automocker` entry  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8301](https://github.com/vitest-dev/vitest/issues/8301) [<samp>(e9c92)</samp>](https://github.com/vitest-dev/vitest/commit/e9c928252) #####    🐞 Bug Fixes - Allow overriding globals in types  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8215](https://github.com/vitest-dev/vitest/issues/8215) [<samp>(2248b)</samp>](https://github.com/vitest-dev/vitest/commit/2248b06d4) - Remove unused dependencies  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8184](https://github.com/vitest-dev/vitest/issues/8184) [<samp>(feadc)</samp>](https://github.com/vitest-dev/vitest/commit/feadc60af) - Distribute test files to shards more evenly  -  by [@&#8203;Shinyaigeek](https://github.com/Shinyaigeek) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8288](https://github.com/vitest-dev/vitest/issues/8288) [<samp>(7b489)</samp>](https://github.com/vitest-dev/vitest/commit/7b489959a) - Use suite's timeout when `test.extend`  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8278](https://github.com/vitest-dev/vitest/issues/8278) [<samp>(43977)</samp>](https://github.com/vitest-dev/vitest/commit/43977c2b8) - Support snapshot with no object key sorting  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8136](https://github.com/vitest-dev/vitest/issues/8136) [<samp>(e85e3)</samp>](https://github.com/vitest-dev/vitest/commit/e85e396f0) - Annotation location always points to the test file  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8315](https://github.com/vitest-dev/vitest/issues/8315) [<samp>(88071)</samp>](https://github.com/vitest-dev/vitest/commit/88071a8f2) - Add `--changed` flag support to `vitest list` command  -  by [@&#8203;haakonjackfloat](https://github.com/haakonjackfloat) in [#&#8203;8270](https://github.com/vitest-dev/vitest/issues/8270) and [#&#8203;8272](https://github.com/vitest-dev/vitest/issues/8272) [<samp>(e71a5)</samp>](https://github.com/vitest-dev/vitest/commit/e71a5d0ec) - Prevent rpc timeout on slow thread blocking synchronous methods  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8297](https://github.com/vitest-dev/vitest/issues/8297) [<samp>(bea87)</samp>](https://github.com/vitest-dev/vitest/commit/bea874610) - Forbid setting environment to `browser`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8334](https://github.com/vitest-dev/vitest/issues/8334) [<samp>(0417a)</samp>](https://github.com/vitest-dev/vitest/commit/0417a2c1a) - Invalidate modules in all module graphs when the file is changed  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8352](https://github.com/vitest-dev/vitest/issues/8352) [<samp>(94ab3)</samp>](https://github.com/vitest-dev/vitest/commit/94ab392b3) - Screenshot masks with Playwright provider  -  by [@&#8203;macarie](https://github.com/macarie) in [#&#8203;8357](https://github.com/vitest-dev/vitest/issues/8357) [<samp>(459ef)</samp>](https://github.com/vitest-dev/vitest/commit/459efba6b) - Configure `oxc` instead of `esbuild` on `rolldown-vite`  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;8378](https://github.com/vitest-dev/vitest/issues/8378) [<samp>(e922e)</samp>](https://github.com/vitest-dev/vitest/commit/e922e9266) - Make sure test errors always have `stacks` property in Node.js context  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8392](https://github.com/vitest-dev/vitest/issues/8392) [<samp>(b825e)</samp>](https://github.com/vitest-dev/vitest/commit/b825ef87c) - Support `import.meta.resolve` on Vite 7  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;8493](https://github.com/vitest-dev/vitest/issues/8493) [<samp>(549d3)</samp>](https://github.com/vitest-dev/vitest/commit/549d321e2) - Show the assertion error first when `expect.poll` assertion fails  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8483](https://github.com/vitest-dev/vitest/issues/8483) [<samp>(fb450)</samp>](https://github.com/vitest-dev/vitest/commit/fb4500bec) - Override fake timers when `useFakeTimers` is called multiple times  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8504](https://github.com/vitest-dev/vitest/issues/8504) [<samp>(ed7e3)</samp>](https://github.com/vitest-dev/vitest/commit/ed7e3ad5d) - Custom expect messages for `expect.extend` matchers  -  by [@&#8203;lzl0304](https://github.com/lzl0304) in [#&#8203;8520](https://github.com/vitest-dev/vitest/issues/8520) [<samp>(96945)</samp>](https://github.com/vitest-dev/vitest/commit/969456b4a) - Process sourcemaps for stack traces from `globalSetup` files  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8534](https://github.com/vitest-dev/vitest/issues/8534) [<samp>(8978a)</samp>](https://github.com/vitest-dev/vitest/commit/8978a23b7) - Resolve performance issue when throwing errors with stackTraceLimit = 0  -  by [@&#8203;Copilot](https://github.com/Copilot), **sheremet-va** and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8531](https://github.com/vitest-dev/vitest/issues/8531) [<samp>(6d5b5)</samp>](https://github.com/vitest-dev/vitest/commit/6d5b5b1a5) - Avoid recursively applying `$` and `%` formatting to `test.for/each` title  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;8557](https://github.com/vitest-dev/vitest/issues/8557) [<samp>(ea6d7)</samp>](https://github.com/vitest-dev/vitest/commit/ea6d7322e) - Replace wildcard exports `"./*"` with specific files in vitest package  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;8560](https://github.com/vitest-dev/vitest/issues/8560) [<samp>(ce746)</samp>](https://github.com/vitest-dev/vitest/commit/ce7466408) - Don't publish unused d.ts files  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8562](https://github.com/vitest-dev/vitest/issues/8562) [<samp>(42dfd)</samp>](https://github.com/vitest-dev/vitest/commit/42dfd1c43) - Remove loupe dependencies from `optimizeDeps.include` for browser mode  -  by [@&#8203;jake-danton](https://github.com/jake-danton) in [#&#8203;8570](https://github.com/vitest-dev/vitest/issues/8570) [<samp>(cdcf7)</samp>](https://github.com/vitest-dev/vitest/commit/cdcf7e854) - Update `engines` field to drop Node 18 support  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8608](https://github.com/vitest-dev/vitest/issues/8608) [<samp>(9a0bf)</samp>](https://github.com/vitest-dev/vitest/commit/9a0bf2254) - Correctly inherit test options on extended tests  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8618](https://github.com/vitest-dev/vitest/issues/8618) [<samp>(15c09)</samp>](https://github.com/vitest-dev/vitest/commit/15c091a99) - Update [@&#8203;types/node](https://github.com/types/node) peer deps  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) [<samp>(ee6b2)</samp>](https://github.com/vitest-dev/vitest/commit/ee6b27b5f) - Re-export CDP Session directly from playwright  -  by [@&#8203;mrginglymus](https://github.com/mrginglymus) in [#&#8203;8702](https://github.com/vitest-dev/vitest/issues/8702) [<samp>(9553a)</samp>](https://github.com/vitest-dev/vitest/commit/9553ab923) - Disable trackUnhandledErrors if inspector is enabled  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8732](https://github.com/vitest-dev/vitest/issues/8732) [<samp>(acac7)</samp>](https://github.com/vitest-dev/vitest/commit/acac7104d) - `base` option doesn't crash vitest  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8760](https://github.com/vitest-dev/vitest/issues/8760) [<samp>(9f0ec)</samp>](https://github.com/vitest-dev/vitest/commit/9f0ecccb8) - **browser**: - Run in-source tests only when the file itsels is a test file  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8204](https://github.com/vitest-dev/vitest/issues/8204) [<samp>(bdd2e)</samp>](https://github.com/vitest-dev/vitest/commit/bdd2e01c3) - `locator.element()` returns `HTMLElement` or `SVGElement`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8440](https://github.com/vitest-dev/vitest/issues/8440) [<samp>(c1ac1)</samp>](https://github.com/vitest-dev/vitest/commit/c1ac15c6b) - Don't import from `vite` directly  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8541](https://github.com/vitest-dev/vitest/issues/8541) [<samp>(d7fca)</samp>](https://github.com/vitest-dev/vitest/commit/d7fca0389) - Update expect.element type to match the implementation  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8597](https://github.com/vitest-dev/vitest/issues/8597) [<samp>(b2804)</samp>](https://github.com/vitest-dev/vitest/commit/b2804a1f9) - Throw an error if iframe is not accessible anymore  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8601](https://github.com/vitest-dev/vitest/issues/8601) [<samp>(6acdc)</samp>](https://github.com/vitest-dev/vitest/commit/6acdc3a5e) - Stop creating unnecessary directories when taking screenshots  -  by [@&#8203;macarie](https://github.com/macarie) in [#&#8203;8605](https://github.com/vitest-dev/vitest/issues/8605) [<samp>(b1c8f)</samp>](https://github.com/vitest-dev/vitest/commit/b1c8fdbe9) - Always define commands  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8626](https://github.com/vitest-dev/vitest/issues/8626) [<samp>(acbe0)</samp>](https://github.com/vitest-dev/vitest/commit/acbe0e973) - Exclude deprecated context import from optimization  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8658](https://github.com/vitest-dev/vitest/issues/8658) [<samp>(a96ea)</samp>](https://github.com/vitest-dev/vitest/commit/a96ea140e) - Allow importing BrowserCommand if no browser package is installed  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8666](https://github.com/vitest-dev/vitest/issues/8666) [<samp>(95c36)</samp>](https://github.com/vitest-dev/vitest/commit/95c367f5e) - Define an export for browser/utils  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8678](https://github.com/vitest-dev/vitest/issues/8678) [<samp>(529ab)</samp>](https://github.com/vitest-dev/vitest/commit/529ab46ac) - Allow service workers to mock the network in chromium without breaking vi.mock  -  by [@&#8203;Georgegriff](https://github.com/Georgegriff) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8668](https://github.com/vitest-dev/vitest/issues/8668) [<samp>(87108)</samp>](https://github.com/vitest-dev/vitest/commit/87108db33) - Support sync `not.toBeInTheDocument()`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8751](https://github.com/vitest-dev/vitest/issues/8751) [<samp>(f5d06)</samp>](https://github.com/vitest-dev/vitest/commit/f5d06434f) - **core**: - Fix `objectContaining` expect utility to have more compatibility to jest's one  -  by [@&#8203;Shinyaigeek](https://github.com/Shinyaigeek) in [#&#8203;8241](https://github.com/vitest-dev/vitest/issues/8241) [<samp>(480be)</samp>](https://github.com/vitest-dev/vitest/commit/480be1a78) - **coverage**: - Include files based on `--project` filter  -  by [@&#8203;gtbuchanan](https://github.com/gtbuchanan) in [#&#8203;7885](https://github.com/vitest-dev/vitest/issues/7885) [<samp>(761be)</samp>](https://github.com/vitest-dev/vitest/commit/761beeeea) - Prevent encoding filenames of uncovered files  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8239](https://github.com/vitest-dev/vitest/issues/8239) [<samp>(8a998)</samp>](https://github.com/vitest-dev/vitest/commit/8a9988043) - Handle query param based transforms correctly  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8418](https://github.com/vitest-dev/vitest/issues/8418) [<samp>(a400a)</samp>](https://github.com/vitest-dev/vitest/commit/a400a9d2a) - Enforce order of `vitest:coverage-transform` plugin  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8477](https://github.com/vitest-dev/vitest/issues/8477) [<samp>(ff517)</samp>](https://github.com/vitest-dev/vitest/commit/ff5170cff) - V8 to ignore Vite's generated cjs import helpers  -  by [@&#8203;mrginglymus](https://github.com/mrginglymus) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8718](https://github.com/vitest-dev/vitest/issues/8718) [<samp>(35816)</samp>](https://github.com/vitest-dev/vitest/commit/35816fe8d) - Keep only strings in `coverage.exclude`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8731](https://github.com/vitest-dev/vitest/issues/8731) [<samp>(c9c30)</samp>](https://github.com/vitest-dev/vitest/commit/c9c303178) - **deps**: - Update all non-major dependencies  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8235](https://github.com/vitest-dev/vitest/issues/8235) [<samp>(a1e57)</samp>](https://github.com/vitest-dev/vitest/commit/a1e576ae0) - Update all non-major dependencies  -  in [#&#8203;8328](https://github.com/vitest-dev/vitest/issues/8328) [<samp>(aa79e)</samp>](https://github.com/vitest-dev/vitest/commit/aa79e2733) - Update all non-major dependencies  -  in [#&#8203;8348](https://github.com/vitest-dev/vitest/issues/8348) [<samp>(13f94)</samp>](https://github.com/vitest-dev/vitest/commit/13f946229) - Update all non-major dependencies  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8382](https://github.com/vitest-dev/vitest/issues/8382) [<samp>(704eb)</samp>](https://github.com/vitest-dev/vitest/commit/704eba24b) - Update all non-major dependencies  -  in [#&#8203;8550](https://github.com/vitest-dev/vitest/issues/8550) [<samp>(048f7)</samp>](https://github.com/vitest-dev/vitest/commit/048f7a1ca) - **jsdom**: - Override globals that Fetch API relies on  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8390](https://github.com/vitest-dev/vitest/issues/8390) [<samp>(05b41)</samp>](https://github.com/vitest-dev/vitest/commit/05b4178e8) - Support AbortSignal API  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8704](https://github.com/vitest-dev/vitest/issues/8704) [<samp>(f6690)</samp>](https://github.com/vitest-dev/vitest/commit/f6690ed46) - **mocker**: - Fix `regexpHoistable` to allow whitespace before parentheses  -  by [@&#8203;cszhjh](https://github.com/cszhjh) in [#&#8203;8231](https://github.com/vitest-dev/vitest/issues/8231) [<samp>(a0f9a)</samp>](https://github.com/vitest-dev/vitest/commit/a0f9ae3f0) - **module-runner**: - Resolve `resolvedSources` correctly  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8736](https://github.com/vitest-dev/vitest/issues/8736) [<samp>(8fc52)</samp>](https://github.com/vitest-dev/vitest/commit/8fc52974f) - Support getBuiltins  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8746](https://github.com/vitest-dev/vitest/issues/8746) [<samp>(87bb8)</samp>](https://github.com/vitest-dev/vitest/commit/87bb8f49c) - **pool**: - Properly reuse the vm pool  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8758](https://github.com/vitest-dev/vitest/issues/8758) [<samp>(08498)</samp>](https://github.com/vitest-dev/vitest/commit/08498f0e9) - **reporter**: - Invisible CLI menus when `vitest --standalone`  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8248](https://github.com/vitest-dev/vitest/issues/8248) [<samp>(37cc2)</samp>](https://github.com/vitest-dev/vitest/commit/37cc26994) - **rolldown-vite**: - Properly disable minifier in the browser client  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8306](https://github.com/vitest-dev/vitest/issues/8306) [<samp>(f55bb)</samp>](https://github.com/vitest-dev/vitest/commit/f55bb81e6) - **runner**: - Don't bundle runner with utils  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8496](https://github.com/vitest-dev/vitest/issues/8496) [<samp>(2b4b0)</samp>](https://github.com/vitest-dev/vitest/commit/2b4b05823) - **spy**: - Fix spyOn types with optional method  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8499](https://github.com/vitest-dev/vitest/issues/8499) [<samp>(d3afa)</samp>](https://github.com/vitest-dev/vitest/commit/d3afa601a) - Can respy on an exported method  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8521](https://github.com/vitest-dev/vitest/issues/8521) [<samp>(bf450)</samp>](https://github.com/vitest-dev/vitest/commit/bf450b433) - Don't fail when spying on static getters  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8589](https://github.com/vitest-dev/vitest/issues/8589) [<samp>(ac1d9)</samp>](https://github.com/vitest-dev/vitest/commit/ac1d92f14) - **types**: - Ensure Chai declaration merge works with TS-Go  -  by [@&#8203;LukeAbby](https://github.com/LukeAbby) in [#&#8203;8188](https://github.com/vitest-dev/vitest/issues/8188) [<samp>(5261d)</samp>](https://github.com/vitest-dev/vitest/commit/5261df0b9) - Allow returning a promise from defineConfig  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8651](https://github.com/vitest-dev/vitest/issues/8651) [<samp>(c3474)</samp>](https://github.com/vitest-dev/vitest/commit/c347487e6) - **ui**: - Keep the same tab open when clicking on different tests  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8599](https://github.com/vitest-dev/vitest/issues/8599) [<samp>(3e535)</samp>](https://github.com/vitest-dev/vitest/commit/3e535f78b) - **utils**: - Remove ast export  -  by [@&#8203;bluwy](https://github.com/bluwy) in [#&#8203;8435](https://github.com/vitest-dev/vitest/issues/8435) [<samp>(21622)</samp>](https://github.com/vitest-dev/vitest/commit/21622b5ae) - **vitest**: - Override `config.include` option with `config.browser.instances[].include` option if it is specified  -  by [@&#8203;Shinyaigeek](https://github.com/Shinyaigeek) in [#&#8203;8260](https://github.com/vitest-dev/vitest/issues/8260) [<samp>(010fc)</samp>](https://github.com/vitest-dev/vitest/commit/010fc55b5) - **watch**: - Filename filter runs duplicate tests in workspaces  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8250](https://github.com/vitest-dev/vitest/issues/8250) [<samp>(932d8)</samp>](https://github.com/vitest-dev/vitest/commit/932d837c6) - **wdio**: - Wait for the driver to be properly closed  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8305](https://github.com/vitest-dev/vitest/issues/8305) [<samp>(c16ab)</samp>](https://github.com/vitest-dev/vitest/commit/c16abe71e) - Properly construct the shadow root selector if there are multiple elements  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8354](https://github.com/vitest-dev/vitest/issues/8354) [<samp>(28765)</samp>](https://github.com/vitest-dev/vitest/commit/28765b4bb) #####    🏎 Performance - Avoid spawning extra workers if no tests will run there  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8446](https://github.com/vitest-dev/vitest/issues/8446) [<samp>(3fb3e)</samp>](https://github.com/vitest-dev/vitest/commit/3fb3e8036) - Don't set `process.title`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8453](https://github.com/vitest-dev/vitest/issues/8453) [<samp>(0a766)</samp>](https://github.com/vitest-dev/vitest/commit/0a7666323) - Remove chai as a direct dependency, keep it in `@vitest/expect`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8461](https://github.com/vitest-dev/vitest/issues/8461) [<samp>(cc98c)</samp>](https://github.com/vitest-dev/vitest/commit/cc98c611f) - Reduce the amount of dynamic imports  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8465](https://github.com/vitest-dev/vitest/issues/8465) [<samp>(db6cd)</samp>](https://github.com/vitest-dev/vitest/commit/db6cd73ba) - Use ES2022 language features  -  by [@&#8203;TrevorBurnham](https://github.com/TrevorBurnham) in [#&#8203;8492](https://github.com/vitest-dev/vitest/issues/8492) [<samp>(bb34c)</samp>](https://github.com/vitest-dev/vitest/commit/bb34c64dc) - Delay populating node-globals  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8506](https://github.com/vitest-dev/vitest/issues/8506) [<samp>(41cbc)</samp>](https://github.com/vitest-dev/vitest/commit/41cbc5328) - Get `workerId` from a global object  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8507](https://github.com/vitest-dev/vitest/issues/8507) [<samp>(46b13)</samp>](https://github.com/vitest-dev/vitest/commit/46b13f669) - Replace startsWith with strict equality  -  by [@&#8203;btea](https://github.com/btea) in [#&#8203;8546](https://github.com/vitest-dev/vitest/issues/8546) [<samp>(c42e6)</samp>](https://github.com/vitest-dev/vitest/commit/c42e64e62) - Reduce the number of unused imports  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8508](https://github.com/vitest-dev/vitest/issues/8508) [<samp>(9a79b)</samp>](https://github.com/vitest-dev/vitest/commit/9a79b90c9) - Use experimental `meta.resolve` flag instead of a custom loader  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8567](https://github.com/vitest-dev/vitest/issues/8567) [<samp>(2e063)</samp>](https://github.com/vitest-dev/vitest/commit/2e0630b76) - Create only one fetcher per project  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8762](https://github.com/vitest-dev/vitest/issues/8762) [<samp>(8e15b)</samp>](https://github.com/vitest-dev/vitest/commit/8e15bc8f9) - **pool**: Resolve all environments first  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8759](https://github.com/vitest-dev/vitest/issues/8759) [<samp>(d3ef4)</samp>](https://github.com/vitest-dev/vitest/commit/d3ef4f29c) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.2.4...v4.0.0) ### [`v3.2.7`](https://github.com/vitest-dev/vitest/releases/tag/v3.2.7) [Compare Source](https://github.com/vitest-dev/vitest/compare/v3.2.6...v3.2.7) #####    🐞 Bug Fixes - **browser**: Check fs access in builtin commands \[backport to v3]  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (claude-opus-4-8)** in [#&#8203;10679](https://github.com/vitest-dev/vitest/issues/10679) [<samp>(b795e)</samp>](https://github.com/vitest-dev/vitest/commit/b795e36b3) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.2.6...v3.2.7) ### [`v3.2.6`](https://github.com/vitest-dev/vitest/releases/tag/v3.2.6) [Compare Source](https://github.com/vitest-dev/vitest/compare/v3.2.5...v3.2.6) #####    🐞 Bug Fixes - Pin last supported vite-node version  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) [<samp>(16f12)</samp>](https://github.com/vitest-dev/vitest/commit/16f120d05) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.2.5...v3.2.6) ### [`v3.2.5`](https://github.com/vitest-dev/vitest/releases/tag/v3.2.5) [Compare Source](https://github.com/vitest-dev/vitest/compare/v3.2.4...v3.2.5) #####    🚀 Features - **api**: Add `allowWrite` and `allowExec` options to `api` \[backport to v3]  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **Codex** in [#&#8203;10445](https://github.com/vitest-dev/vitest/issues/10445) [<samp>(af88b)</samp>](https://github.com/vitest-dev/vitest/commit/af88b1f5d) #####    🐞 Bug Fixes - **browser**: Disable client `cdp` API when `allowWrite/allowExec: false` \[backport to v3]  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and **Codex** in [#&#8203;10456](https://github.com/vitest-dev/vitest/issues/10456) [<samp>(385a1)</samp>](https://github.com/vitest-dev/vitest/commit/385a1aefd) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.2.4...v3.2.5) ### [`v3.2.4`](https://github.com/vitest-dev/vitest/releases/tag/v3.2.4) [Compare Source](https://github.com/vitest-dev/vitest/compare/v3.2.3...v3.2.4) #####    🐞 Bug Fixes - Use correct path for optimisation of strip-literal  -  by [@&#8203;mrginglymus](https://github.com/mrginglymus) in [#&#8203;8139](https://github.com/vitest-dev/vitest/issues/8139) [<samp>(44940)</samp>](https://github.com/vitest-dev/vitest/commit/44940d9dd) - Print uint and buffer as a simple string  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8141](https://github.com/vitest-dev/vitest/issues/8141) [<samp>(b86bf)</samp>](https://github.com/vitest-dev/vitest/commit/b86bf0d99) - **browser**: - Show a helpful error when spying on an export  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8178](https://github.com/vitest-dev/vitest/issues/8178) [<samp>(56007)</samp>](https://github.com/vitest-dev/vitest/commit/5600772c2) - **cli**: - `vitest run --watch` should be watch-mode  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8128](https://github.com/vitest-dev/vitest/issues/8128) [<samp>(657e8)</samp>](https://github.com/vitest-dev/vitest/commit/657e83f9f) - Use absolute path environment on Windows  -  by [@&#8203;colinaaa](https://github.com/colinaaa) in [#&#8203;8105](https://github.com/vitest-dev/vitest/issues/8105) [<samp>(85dc0)</samp>](https://github.com/vitest-dev/vitest/commit/85dc0195f) - Throw error when `--shard x/<count>` exceeds count of test files  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8112](https://github.com/vitest-dev/vitest/issues/8112) [<samp>(8a18c)</samp>](https://github.com/vitest-dev/vitest/commit/8a18c8e20) - **coverage**: - Ignore SCSS in browser mode  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8161](https://github.com/vitest-dev/vitest/issues/8161) [<samp>(0c3be)</samp>](https://github.com/vitest-dev/vitest/commit/0c3be6f63) - **deps**: - Update all non-major dependencies  -  in [#&#8203;8123](https://github.com/vitest-dev/vitest/issues/8123) [<samp>(93f32)</samp>](https://github.com/vitest-dev/vitest/commit/93f3200e4) - **expect**: - Handle async errors in expect.soft  -  by [@&#8203;lzl0304](https://github.com/lzl0304) in [#&#8203;8145](https://github.com/vitest-dev/vitest/issues/8145) [<samp>(68699)</samp>](https://github.com/vitest-dev/vitest/commit/686996912) - **pool**: - Auto-adjust `minWorkers` when only `maxWorkers` specified  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8110](https://github.com/vitest-dev/vitest/issues/8110) [<samp>(14dc0)</samp>](https://github.com/vitest-dev/vitest/commit/14dc0724f) - **reporter**: - `task.meta` should be available in custom reporter's errors  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8115](https://github.com/vitest-dev/vitest/issues/8115) [<samp>(27df6)</samp>](https://github.com/vitest-dev/vitest/commit/27df68a0e) - **runner**: - Preserve handler wrapping on extend  -  by [@&#8203;pengooseDev](https://github.com/pengooseDev) in [#&#8203;8153](https://github.com/vitest-dev/vitest/issues/8153) [<samp>(a9281)</samp>](https://github.com/vitest-dev/vitest/commit/a92812b70) - **ui**: - Ensure ui config option works correctly  -  by [@&#8203;lzl0304](https://github.com/lzl0304) in [#&#8203;8147](https://github.com/vitest-dev/vitest/issues/8147) [<samp>(42eeb)</samp>](https://github.com/vitest-dev/vitest/commit/42eeb2ee6) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.2.3...v3.2.4) ### [`v3.2.3`](https://github.com/vitest-dev/vitest/releases/tag/v3.2.3) [Compare Source](https://github.com/vitest-dev/vitest/compare/v3.2.2...v3.2.3) #####    🚀 Features - **browser**: Use base url instead of **vitest**  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8126](https://github.com/vitest-dev/vitest/issues/8126) [<samp>(1d8eb)</samp>](https://github.com/vitest-dev/vitest/commit/1d8ebf9ae) - **ui**: Show test annotations and metadata in the test report tab  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8093](https://github.com/vitest-dev/vitest/issues/8093) [<samp>(c69be)</samp>](https://github.com/vitest-dev/vitest/commit/c69be1fc1) #####    🐞 Bug Fixes - Rerun tests when project's setup file is changed  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8097](https://github.com/vitest-dev/vitest/issues/8097) [<samp>(0f335)</samp>](https://github.com/vitest-dev/vitest/commit/0f3350667) - Revert `expect.any` return type  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8129](https://github.com/vitest-dev/vitest/issues/8129) [<samp>(47514)</samp>](https://github.com/vitest-dev/vitest/commit/4751436d5) - Run only the name plugin last, not all config plugins  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8130](https://github.com/vitest-dev/vitest/issues/8130) [<samp>(83862)</samp>](https://github.com/vitest-dev/vitest/commit/83862d46e) - **pool**: - Throw if user's tests use `process.send()`  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8125](https://github.com/vitest-dev/vitest/issues/8125) [<samp>(dfe81)</samp>](https://github.com/vitest-dev/vitest/commit/dfe81a67a) - **runner**: - Fast sequential task updates missing  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8121](https://github.com/vitest-dev/vitest/issues/8121) [<samp>(7bd11)</samp>](https://github.com/vitest-dev/vitest/commit/7bd11a9b3) - Comments between fixture destructures  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8127](https://github.com/vitest-dev/vitest/issues/8127) [<samp>(dc469)</samp>](https://github.com/vitest-dev/vitest/commit/dc469f260) - **vite-node**: - Unable to handle errors where sourcemap mapping empty  -  by [@&#8203;blake-newman](https://github.com/blake-newman) and [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;8071](https://github.com/vitest-dev/vitest/issues/8071) [<samp>(8aa25)</samp>](https://github.com/vitest-dev/vitest/commit/8aa252121) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.2.2...v3.2.3) ### [`v3.2.2`](https://github.com/vitest-dev/vitest/releases/tag/v3.2.2) [Compare Source](https://github.com/vitest-dev/vitest/compare/v3.2.1...v3.2.2) #####    🚀 Features - Support rolldown-vite  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) and [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7509](https://github.com/vitest-dev/vitest/issues/7509) [<samp>(c8d62)</samp>](https://github.com/vitest-dev/vitest/commit/c8d6264bf) #####    🐞 Bug Fixes - **browser**: - Calculate prepare time from `createTesters` call on the main thread  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8101](https://github.com/vitest-dev/vitest/issues/8101) [<samp>(142c7)</samp>](https://github.com/vitest-dev/vitest/commit/142c735e1) - Optimize build output and always prebundle vitest  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) [<samp>(00a39)</samp>](https://github.com/vitest-dev/vitest/commit/00a391656) - Make custom locators available in `vitest-browser-*` packages  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8103](https://github.com/vitest-dev/vitest/issues/8103) [<samp>(247ef)</samp>](https://github.com/vitest-dev/vitest/commit/247ef5822) - **expect**: - Ensure we can always self `toEqual`  -  by [@&#8203;dubzzz](https://github.com/dubzzz) in [#&#8203;8094](https://github.com/vitest-dev/vitest/issues/8094) [<samp>(02ec8)</samp>](https://github.com/vitest-dev/vitest/commit/02ec89203) - **reporter**: - Allow `dot` reporter to work in non interactive terminals  -  by [@&#8203;bstephen1](https://github.com/bstephen1) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7994](https://github.com/vitest-dev/vitest/issues/7994) [<samp>(6db9f)</samp>](https://github.com/vitest-dev/vitest/commit/6db9f5207) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.2.1...v3.2.2) ### [`v3.2.1`](https://github.com/vitest-dev/vitest/releases/tag/v3.2.1) [Compare Source](https://github.com/vitest-dev/vitest/compare/v3.2.0...v3.2.1) #####    🐞 Bug Fixes - Use sha1 instead of md5 for hashing  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) [<samp>(e4c73)</samp>](https://github.com/vitest-dev/vitest/commit/e4c73503e) - **expect**: - Fix chai import in dts  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;8077](https://github.com/vitest-dev/vitest/issues/8077) [<samp>(a7593)</samp>](https://github.com/vitest-dev/vitest/commit/a759347ff) - Export `DeeplyAllowMatchers`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8078](https://github.com/vitest-dev/vitest/issues/8078) [<samp>(30ab4)</samp>](https://github.com/vitest-dev/vitest/commit/30ab42c0f) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.2.0...v3.2.1) ### [`v3.2.0`](https://github.com/vitest-dev/vitest/releases/tag/v3.2.0) [Compare Source](https://github.com/vitest-dev/vitest/compare/v3.1.4...v3.2.0) #####    🚀 Features - Provide `ctx.signal`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7878](https://github.com/vitest-dev/vitest/issues/7878) [<samp>(e761f)</samp>](https://github.com/vitest-dev/vitest/commit/e761f27d7) - Support custom colors for `test.name`  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7809](https://github.com/vitest-dev/vitest/issues/7809) [<samp>(4af5d)</samp>](https://github.com/vitest-dev/vitest/commit/4af5df33b) - Add `vi.mockObject` to automock any object  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7761](https://github.com/vitest-dev/vitest/issues/7761) [<samp>(465bd)</samp>](https://github.com/vitest-dev/vitest/commit/465bdb3d7) - Introduce `watchTriggerPatterns` option  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7778](https://github.com/vitest-dev/vitest/issues/7778) [<samp>(a0675)</samp>](https://github.com/vitest-dev/vitest/commit/a067531ac) - Deprecate `workspace` in favor of `projects`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7923](https://github.com/vitest-dev/vitest/issues/7923) [<samp>(41beb)</samp>](https://github.com/vitest-dev/vitest/commit/41beb261e) - Explicit Resource Management support in mocked functions  -  by [@&#8203;EskiMojo14](https://github.com/EskiMojo14) in [#&#8203;7927](https://github.com/vitest-dev/vitest/issues/7927) [<samp>(b67d3)</samp>](https://github.com/vitest-dev/vitest/commit/b67d307de) - Add `sequence.groupOrder` option  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7852](https://github.com/vitest-dev/vitest/issues/7852) [<samp>(d1a1d)</samp>](https://github.com/vitest-dev/vitest/commit/d1a1df036) - Initial support for Temporal equality  -  by [@&#8203;dirkluijk](https://github.com/dirkluijk) in [#&#8203;8007](https://github.com/vitest-dev/vitest/issues/8007) [<samp>(52bd7)</samp>](https://github.com/vitest-dev/vitest/commit/52bd78965) - Support Vite 7  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8003](https://github.com/vitest-dev/vitest/issues/8003) [<samp>(1716b)</samp>](https://github.com/vitest-dev/vitest/commit/1716b61c5) - Track module execution totalTime and selfTime  -  by [@&#8203;abrenneke](https://github.com/abrenneke) in [#&#8203;8027](https://github.com/vitest-dev/vitest/issues/8027) [<samp>(95961)</samp>](https://github.com/vitest-dev/vitest/commit/95961e40a) - Annotation API  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7953](https://github.com/vitest-dev/vitest/issues/7953) [<samp>(b03f2)</samp>](https://github.com/vitest-dev/vitest/commit/b03f2098a) - **browser**: - Implement `connect` option for `playwright` browser provider  -  by [@&#8203;egfx-notifications](https://github.com/egfx-notifications) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7915](https://github.com/vitest-dev/vitest/issues/7915) [<samp>(029c0)</samp>](https://github.com/vitest-dev/vitest/commit/029c0788c) - Add `screenshot.save` option  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7777](https://github.com/vitest-dev/vitest/issues/7777) [<samp>(d9f51)</samp>](https://github.com/vitest-dev/vitest/commit/d9f516353) - Custom locators API  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7993](https://github.com/vitest-dev/vitest/issues/7993) [<samp>(e6fbd)</samp>](https://github.com/vitest-dev/vitest/commit/e6fbd8d25) - **coverage**: - V8 experimental AST-aware remapping  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7736](https://github.com/vitest-dev/vitest/issues/7736) [<samp>(78a3d)</samp>](https://github.com/vitest-dev/vitest/commit/78a3d2787) - **reporter**: - Add `onWritePath` option to `github-actions`  -  by [@&#8203;nwalters512](https://github.com/nwalters512) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8015](https://github.com/vitest-dev/vitest/issues/8015) [<samp>(abd3b)</samp>](https://github.com/vitest-dev/vitest/commit/abd3bb76a) - **vitest**: - Allow per-file and per-worker fixtures  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7704](https://github.com/vitest-dev/vitest/issues/7704) [<samp>(9cbfc)</samp>](https://github.com/vitest-dev/vitest/commit/9cbfc231a) #####    🐞 Bug Fixes - Replace `micromatch` with `picomatch`  -  by [@&#8203;sapphi-red](https://github.com/sapphi-red) in [#&#8203;7951](https://github.com/vitest-dev/vitest/issues/7951) [<samp>(df076)</samp>](https://github.com/vitest-dev/vitest/commit/df07611f0) - Try to catch unhandled error outside of a test  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7968](https://github.com/vitest-dev/vitest/issues/7968) [<samp>(46421)</samp>](https://github.com/vitest-dev/vitest/commit/464218f42) - Generate a separate config for "vitest init browser" instead of a workspace file  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7934](https://github.com/vitest-dev/vitest/issues/7934) [<samp>(e84e2)</samp>](https://github.com/vitest-dev/vitest/commit/e84e2184e) - Switch ExpectStatic `any` types to `AsymmetricMatcher<unknown>`, with `DeeplyAllowMatchers<T>`  -  by [@&#8203;JoshuaKGoldberg](https://github.com/JoshuaKGoldberg) in [#&#8203;7016](https://github.com/vitest-dev/vitest/issues/7016) [<samp>(8ec44)</samp>](https://github.com/vitest-dev/vitest/commit/8ec448db6) - Remove unused exports  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7618](https://github.com/vitest-dev/vitest/issues/7618) [<samp>(33d05)</samp>](https://github.com/vitest-dev/vitest/commit/33d053852) - Throw an error if typechecker failed to spawn  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7990](https://github.com/vitest-dev/vitest/issues/7990) [<samp>(0e960)</samp>](https://github.com/vitest-dev/vitest/commit/0e960aa78) - Ignore non-string `stack` properties  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7995](https://github.com/vitest-dev/vitest/issues/7995) [<samp>(330f9)</samp>](https://github.com/vitest-dev/vitest/commit/330f9a40b) - Apply browser CLI options only if the project has the browser set in the config already  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7984](https://github.com/vitest-dev/vitest/issues/7984) [<samp>(70358)</samp>](https://github.com/vitest-dev/vitest/commit/703581b62) - Ensure errors keep their message and stack after `toJSON` serialisation  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8053](https://github.com/vitest-dev/vitest/issues/8053) [<samp>(3bdf0)</samp>](https://github.com/vitest-dev/vitest/commit/3bdf05d19) - **browser**: - Resolve FS commands relative to the project root  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7896](https://github.com/vitest-dev/vitest/issues/7896) [<samp>(69ac9)</samp>](https://github.com/vitest-dev/vitest/commit/69ac92cb7) - Run tests serially if provider doesn't provide a mocker  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8032](https://github.com/vitest-dev/vitest/issues/8032) [<samp>(227a9)</samp>](https://github.com/vitest-dev/vitest/commit/227a992ad) - Resolve `upload` files relative to the project root  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8042](https://github.com/vitest-dev/vitest/issues/8042) [<samp>(b9a31)</samp>](https://github.com/vitest-dev/vitest/commit/b9a312a8a) - Await mocker invalidation to avoid race condition with "mock wasn't registered"  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8021](https://github.com/vitest-dev/vitest/issues/8021) [<samp>(b34ff)</samp>](https://github.com/vitest-dev/vitest/commit/b34ffada3) - Share vite cache with the project cache  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8049](https://github.com/vitest-dev/vitest/issues/8049) [<samp>(0cbad)</samp>](https://github.com/vitest-dev/vitest/commit/0cbad1b0d) - Add `this` type to `locators.extend`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8069](https://github.com/vitest-dev/vitest/issues/8069) [<samp>(70fb0)</samp>](https://github.com/vitest-dev/vitest/commit/70fb03c38) - **cache**: - Preserve test results from previous runs  -  by [@&#8203;macko911](https://github.com/macko911) in [#&#8203;8043](https://github.com/vitest-dev/vitest/issues/8043) [<samp>(d6ef0)</samp>](https://github.com/vitest-dev/vitest/commit/d6ef0da11) - **cli**: - Add built-in reporters list to --help output  -  by [@&#8203;pengooseDev](https://github.com/pengooseDev) in [#&#8203;7955](https://github.com/vitest-dev/vitest/issues/7955) [<samp>(ef6ef)</samp>](https://github.com/vitest-dev/vitest/commit/ef6ef542b) - Parse `--silent` values properly  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;8055](https://github.com/vitest-dev/vitest/issues/8055) [<samp>(8fad7)</samp>](https://github.com/vitest-dev/vitest/commit/8fad73563) - **coverage**: - Istanbul provider to not use Vite preserved query params  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7939](https://github.com/vitest-dev/vitest/issues/7939) [<samp>(a05d4)</samp>](https://github.com/vitest-dev/vitest/commit/a05d48c25) - Browser + v8 in source tests missing  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7946](https://github.com/vitest-dev/vitest/issues/7946) [<samp>(51cd8)</samp>](https://github.com/vitest-dev/vitest/commit/51cd81444) - In-source test cases excluded  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7985](https://github.com/vitest-dev/vitest/issues/7985) [<samp>(407c0)</samp>](https://github.com/vitest-dev/vitest/commit/407c0e4d2) - **dev**: - Fix relay of custom equality testers  -  by [@&#8203;StefanLiebscher](https://github.com/StefanLiebscher) in [#&#8203;6140](https://github.com/vitest-dev/vitest/issues/6140) [<samp>(6dc1d)</samp>](https://github.com/vitest-dev/vitest/commit/6dc1d1858) - **expect**: - Unbundle `@types/chai`  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7937](https://github.com/vitest-dev/vitest/issues/7937) [<samp>(525f5)</samp>](https://github.com/vitest-dev/vitest/commit/525f524c7) - Support type-safe declaration of custom matchers  -  by [@&#8203;kettanaito](https://github.com/kettanaito) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7656](https://github.com/vitest-dev/vitest/issues/7656) [<samp>(e996b)</samp>](https://github.com/vitest-dev/vitest/commit/e996b4103) - **reporters**: - Check the test result again when tests are rerunning  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8063](https://github.com/vitest-dev/vitest/issues/8063) [<samp>(35e31)</samp>](https://github.com/vitest-dev/vitest/commit/35e313f8c) - **spy**: - Copy over static properties from the function  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7780](https://github.com/vitest-dev/vitest/issues/7780) [<samp>(9b9f0)</samp>](https://github.com/vitest-dev/vitest/commit/9b9f09bcb) - **typecheck**: - Don't panic during `vitest list` command  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7933](https://github.com/vitest-dev/vitest/issues/7933) [<samp>(ba6da)</samp>](https://github.com/vitest-dev/vitest/commit/ba6da4d07) - Avoid creating a temporary tsconfig file when typechecking  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7967](https://github.com/vitest-dev/vitest/issues/7967) [<samp>(34f43)</samp>](https://github.com/vitest-dev/vitest/commit/34f43ae68) - **vite-node**: - Add `__vite_ssr_exportName__`  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7925](https://github.com/vitest-dev/vitest/issues/7925) [<samp>(76091)</samp>](https://github.com/vitest-dev/vitest/commit/76091074a) - **vitest**: - Adjust `getWorkerMemoryLimit` priority for vmForks  -  by [@&#8203;pengooseDev](https://github.com/pengooseDev) in [#&#8203;7960](https://github.com/vitest-dev/vitest/issues/7960) [<samp>(5a91e)</samp>](https://github.com/vitest-dev/vitest/commit/5a91eca20) - **wdio**: - Don't scale browser in headless mode  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8033](https://github.com/vitest-dev/vitest/issues/8033) [<samp>(c23b0)</samp>](https://github.com/vitest-dev/vitest/commit/c23b0f78f) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.1.3...v3.2.0) ### [`v3.1.4`](https://github.com/vitest-dev/vitest/releases/tag/v3.1.4) [Compare Source](https://github.com/vitest-dev/vitest/compare/v3.1.3...v3.1.4) #####    🐞 Bug Fixes - Apply browser CLI options only if the project has the browser set in the config already  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;8002](https://github.com/vitest-dev/vitest/issues/8002) [<samp>(64f2b)</samp>](https://github.com/vitest-dev/vitest/commit/64f2b431) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.1.3...v3.1.4) ### [`v3.1.3`](https://github.com/vitest-dev/vitest/releases/tag/v3.1.3) [Compare Source](https://github.com/vitest-dev/vitest/compare/v3.1.2...v3.1.3) #####    🐞 Bug Fixes - Correctly resolve vitest import if `inline: true` is set  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7856](https://github.com/vitest-dev/vitest/issues/7856) [<samp>(a83f3)</samp>](https://github.com/vitest-dev/vitest/commit/a83f3bf6) - Fix fixture parsing with lowered async with esbuild 0.25.3  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7921](https://github.com/vitest-dev/vitest/issues/7921) [<samp>(c5c85)</samp>](https://github.com/vitest-dev/vitest/commit/c5c8502b) - Remove event-catcher code  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7898](https://github.com/vitest-dev/vitest/issues/7898) [<samp>(deb1b)</samp>](https://github.com/vitest-dev/vitest/commit/deb1bc27) - Reset mocks on test retry/repeat  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7897](https://github.com/vitest-dev/vitest/issues/7897) [<samp>(2fa76)</samp>](https://github.com/vitest-dev/vitest/commit/2fa763a6) - Ignore failures on writeToCache  -  by [@&#8203;orgads](https://github.com/orgads) in [#&#8203;7893](https://github.com/vitest-dev/vitest/issues/7893) [<samp>(8c7f7)</samp>](https://github.com/vitest-dev/vitest/commit/8c7f75a6) - **browser**: Correctly inherit CLI options  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7858](https://github.com/vitest-dev/vitest/issues/7858) [<samp>(03660)</samp>](https://github.com/vitest-dev/vitest/commit/03660f9d) - **deps**: Update all non-major dependencies  -  in [#&#8203;7867](https://github.com/vitest-dev/vitest/issues/7867) [<samp>(67ef7)</samp>](https://github.com/vitest-dev/vitest/commit/67ef74a0) - **reporters**: `--merge-reports` to show each total run times  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7877](https://github.com/vitest-dev/vitest/issues/7877) [<samp>(d613b)</samp>](https://github.com/vitest-dev/vitest/commit/d613b813) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.1.2...v3.1.3) ### [`v3.1.2`](https://github.com/vitest-dev/vitest/releases/tag/v3.1.2) [Compare Source](https://github.com/vitest-dev/vitest/compare/v3.1.1...v3.1.2) #####    🐞 Bug Fixes - Add global `chai` variable in `vitest/globals` (fix: [#&#8203;7474](https://github.com/vitest-dev/vitest/issues/7474))  -  by [@&#8203;Jay-Karia](https://github.com/Jay-Karia) in [#&#8203;7771](https://github.com/vitest-dev/vitest/issues/7771) and [#&#8203;7474](https://github.com/vitest-dev/vitest/issues/7474) [<samp>(d9297)</samp>](https://github.com/vitest-dev/vitest/commit/d9297920) - Prevent modifying `test.exclude` when same object passed in `coverage.exclude`  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7774](https://github.com/vitest-dev/vitest/issues/7774) [<samp>(c3751)</samp>](https://github.com/vitest-dev/vitest/commit/c375101d) - Fix already hoisted mock  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7815](https://github.com/vitest-dev/vitest/issues/7815) [<samp>(773b1)</samp>](https://github.com/vitest-dev/vitest/commit/773b10e0) - Fix test.scoped inheritance  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7814](https://github.com/vitest-dev/vitest/issues/7814) [<samp>(db6c3)</samp>](https://github.com/vitest-dev/vitest/commit/db6c3bcc) - Remove pointer-events-none after resizing the left panel  -  by [@&#8203;alexprudhomme](https://github.com/alexprudhomme) in [#&#8203;7811](https://github.com/vitest-dev/vitest/issues/7811) [<samp>(a7e77)</samp>](https://github.com/vitest-dev/vitest/commit/a7e773bd) - Default to run mode when stdin is not a TTY  -  by [@&#8203;kentonv](https://github.com/kentonv), [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7673](https://github.com/vitest-dev/vitest/issues/7673) [<samp>(6358f)</samp>](https://github.com/vitest-dev/vitest/commit/6358f216) - Use happy-dom/jsdom types for `envionmentOptions`  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7795](https://github.com/vitest-dev/vitest/issues/7795) [<samp>(67430)</samp>](https://github.com/vitest-dev/vitest/commit/67430083) - **browser**: - Fix transform error before browser server initialization  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7783](https://github.com/vitest-dev/vitest/issues/7783) [<samp>(5f762)</samp>](https://github.com/vitest-dev/vitest/commit/5f762ec5) - Fix mocking from outside of root  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7789](https://github.com/vitest-dev/vitest/issues/7789) [<samp>(03f55)</samp>](https://github.com/vitest-dev/vitest/commit/03f55d74) - Scale iframe for non ui case  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6512](https://github.com/vitest-dev/vitest/issues/6512) [<samp>(c3374)</samp>](https://github.com/vitest-dev/vitest/commit/c3374808) - **coverage**: - `await` profiler calls  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7763](https://github.com/vitest-dev/vitest/issues/7763) [<samp>(795a6)</samp>](https://github.com/vitest-dev/vitest/commit/795a6433) - Expose profiling timers  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7820](https://github.com/vitest-dev/vitest/issues/7820) [<samp>(5652b)</samp>](https://github.com/vitest-dev/vitest/commit/5652bf92) - **deps**: - Update all non-major dependencies  -  in [#&#8203;7765](https://github.com/vitest-dev/vitest/issues/7765) [<samp>(7c3df)</samp>](https://github.com/vitest-dev/vitest/commit/7c3dfb17) - Update all non-major dependencies  -  in [#&#8203;7831](https://github.com/vitest-dev/vitest/issues/7831) [<samp>(15701)</samp>](https://github.com/vitest-dev/vitest/commit/15701f5d) - **runner**: - Correctly call test hooks and teardown functions  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7775](https://github.com/vitest-dev/vitest/issues/7775) [<samp>(3c00c)</samp>](https://github.com/vitest-dev/vitest/commit/3c00c875) - Show stacktrace on test timeout error  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7799](https://github.com/vitest-dev/vitest/issues/7799) [<samp>(df33b)</samp>](https://github.com/vitest-dev/vitest/commit/df33bba7) - **ui**: - Load panel sizes from storage on initial load  -  by [@&#8203;userquin](https://github.com/userquin) in [#&#8203;7265](https://github.com/vitest-dev/vitest/issues/7265) [<samp>(6555d)</samp>](https://github.com/vitest-dev/vitest/commit/6555d61d) - **vite-node**: - Named export should overwrite export all  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7846](https://github.com/vitest-dev/vitest/issues/7846) [<samp>(5ba0d)</samp>](https://github.com/vitest-dev/vitest/commit/5ba0d914) - Add ERR\_MODULE\_NOT\_FOUND code error if module cannot be loaded  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7776](https://github.com/vitest-dev/vitest/issues/7776) [<samp>(f9eac)</samp>](https://github.com/vitest-dev/vitest/commit/f9eacbc5) #####    🏎 Performance - **browser**: Improve browser parallelisation  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7665](https://github.com/vitest-dev/vitest/issues/7665) [<samp>(816a5)</samp>](https://github.com/vitest-dev/vitest/commit/816a5c51) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.1.1...v3.1.2) ### [`v3.1.1`](https://github.com/vitest-dev/vitest/releases/tag/v3.1.1) [Compare Source](https://github.com/vitest-dev/vitest/compare/v3.1.0...v3.1.1) #####    🐞 Bug Fixes - **reporter**: - Report tests in correct order  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7752](https://github.com/vitest-dev/vitest/issues/7752) [<samp>(b166e)</samp>](https://github.com/vitest-dev/vitest/commit/b166efa2) - Print test only once in the verbose mode  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7738](https://github.com/vitest-dev/vitest/issues/7738) [<samp>(69ca4)</samp>](https://github.com/vitest-dev/vitest/commit/69ca425c) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.1.0...v3.1.1) ### [`v3.1.0`](https://github.com/vitest-dev/vitest/releases/tag/v3.1.0) [Compare Source](https://github.com/vitest-dev/vitest/compare/v3.0.9...v3.1.0) ##### 🚀 Features - Introduce `%$` option to add number of the test to its title - by [@&#8203;kemuridama](https://github.com/kemuridama) in [#&#8203;7412](https://github.com/vitest-dev/vitest/issues/7412) [<samp>(df347)</samp>](https://github.com/vitest-dev/vitest/commit/df3477076) - Add `diff.maxDepth` option and set non-`Infinity` value as a default to reduce crash - by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7481](https://github.com/vitest-dev/vitest/issues/7481) [<samp>(eacab)</samp>](https://github.com/vitest-dev/vitest/commit/eacab25e7) - Allow array element for `test.each/for` title formatting - by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7522](https://github.com/vitest-dev/vitest/issues/7522) [<samp>(ea3d6)</samp>](https://github.com/vitest-dev/vitest/commit/ea3d67b03) - Add "configureVitest" plugin hook - by [@&#8203;sheremet-va](https://github.com/sheremet-va) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7349](https://github.com/vitest-dev/vitest/issues/7349) [<samp>(20a5d)</samp>](https://github.com/vitest-dev/vitest/commit/20a5d4bfc) - Support `--configLoader` CLI option - by [@&#8203;Carnageous](https://github.com/Carnageous) and [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7574](https://github.com/vitest-dev/vitest/issues/7574) [<samp>(2a852)</samp>](https://github.com/vitest-dev/vitest/commit/2a8520a83) - Added `vitest-browser-lit` to `vitest init browser` and docs - by [@&#8203;EskiMojo14](https://github.com/EskiMojo14) and [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7705](https://github.com/vitest-dev/vitest/issues/7705) [<samp>(5659a)</samp>](https://github.com/vitest-dev/vitest/commit/5659a0e0c) - Use providers request interception for module mocking - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7576](https://github.com/vitest-dev/vitest/issues/7576) [<samp>(7883a)</samp>](https://github.com/vitest-dev/vitest/commit/7883acd63) - **browser**: - Introduce `and`, `or` and `filter` locators - by [@&#8203;sheremet-va](https://github.com/sheremet-va) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7463](https://github.com/vitest-dev/vitest/issues/7463) [<samp>(63949)</samp>](https://github.com/vitest-dev/vitest/commit/63949b1d7) - **reporter**: - Always render test time - by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) and [@&#8203;spamshaker](https://github.com/spamshaker) in [#&#8203;7529](https://github.com/vitest-dev/vitest/issues/7529) [<samp>(5eba6)</samp>](https://github.com/vitest-dev/vitest/commit/5eba60ae1) - `--silent=passed-only` to log failed tasks only - by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7530](https://github.com/vitest-dev/vitest/issues/7530) [<samp>(f9e1c)</samp>](https://github.com/vitest-dev/vitest/commit/f9e1cb494) - **runner**: - Add `test.scoped` to override `test.extend` fixtures per-suite - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7233](https://github.com/vitest-dev/vitest/issues/7233) [<samp>(e5851)</samp>](https://github.com/vitest-dev/vitest/commit/e5851e4b8) - **vitest**: - Allow conditional `context.skip(boolean)` - by [@&#8203;sheremet-va](https://github.com/sheremet-va) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7659](https://github.com/vitest-dev/vitest/issues/7659) [<samp>(6adec)</samp>](https://github.com/vitest-dev/vitest/commit/6adecb903) - Support rolldown-vite in NormalizeUrlPlugin - by [@&#8203;sapphi-red](https://github.com/sapphi-red) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7739](https://github.com/vitest-dev/vitest/issues/7739) [<samp>(1ef31)</samp>](https://github.com/vitest-dev/vitest/commit/1ef31a7bb) ##### 🐞 Bug Fixes - Update test stats regularly - by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7700](https://github.com/vitest-dev/vitest/issues/7700) [<samp>(b7953)</samp>](https://github.com/vitest-dev/vitest/commit/b7953487b) - Fix vm tests flakiness - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7741](https://github.com/vitest-dev/vitest/issues/7741) [<samp>(2702c)</samp>](https://github.com/vitest-dev/vitest/commit/2702cf424) - Set `diff.expand: false` as default - by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7697](https://github.com/vitest-dev/vitest/issues/7697) [<samp>(f3420)</samp>](https://github.com/vitest-dev/vitest/commit/f34206536) - **browser**: - Correctly calculate timeout in hooks when actions are performed - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7747](https://github.com/vitest-dev/vitest/issues/7747) [<samp>(a5505)</samp>](https://github.com/vitest-dev/vitest/commit/a55055180) - **deps**: - Update all non-major dependencies - by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7600](https://github.com/vitest-dev/vitest/issues/7600) [<samp>(7fc5a)</samp>](https://github.com/vitest-dev/vitest/commit/7fc5a2908) - **reporter**: - `--hideSkippedTests` should hide suites too - by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7695](https://github.com/vitest-dev/vitest/issues/7695) [<samp>(ba9b5)</samp>](https://github.com/vitest-dev/vitest/commit/ba9b51ccc) - Report tests in correct order - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7752](https://github.com/vitest-dev/vitest/issues/7752) [<samp>(b166e)</samp>](https://github.com/vitest-dev/vitest/commit/b166efa28) - Print test only once in the verbose mode - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7738](https://github.com/vitest-dev/vitest/issues/7738) [<samp>(69ca4)</samp>](https://github.com/vitest-dev/vitest/commit/69ca425c6) - **snapshot**: - Fix indent normalization - by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7400](https://github.com/vitest-dev/vitest/issues/7400) [<samp>(82997)</samp>](https://github.com/vitest-dev/vitest/commit/8299709d2) - This change can cause small amount of very old snapshots to be updated, but there will be no functional change to how they work. ##### 🏎 Performance - **browser**: Fork jest-dom instead of bundling it - by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7605](https://github.com/vitest-dev/vitest/issues/7605) [<samp>(12762)</samp>](https://github.com/vitest-dev/vitest/commit/12762ea6c) ##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.0.9...v3.1.1) ### [`v3.0.9`](https://github.com/vitest-dev/vitest/releases/tag/v3.0.9) [Compare Source](https://github.com/vitest-dev/vitest/compare/v3.0.8...v3.0.9) #####    🐞 Bug Fixes - Typings of `ctx.skip()` as `never`  -  by [@&#8203;sirlancelot](https://github.com/sirlancelot) in [#&#8203;7608](https://github.com/vitest-dev/vitest/issues/7608) [<samp>(09f35)</samp>](https://github.com/vitest-dev/vitest/commit/09f35301) - Cleanup vitest in public `resolveConfig` API  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7623](https://github.com/vitest-dev/vitest/issues/7623) [<samp>(db14a)</samp>](https://github.com/vitest-dev/vitest/commit/db14ab71) - Fix `toHaveBeenCalledWith(asymmetricMatcher)` with `undefined` arguments  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7624](https://github.com/vitest-dev/vitest/issues/7624) [<samp>(0fb21)</samp>](https://github.com/vitest-dev/vitest/commit/0fb21faa) - Race condition in RPC filesystem cache.  -  by [@&#8203;dts](https://github.com/dts) in [#&#8203;7531](https://github.com/vitest-dev/vitest/issues/7531) [<samp>(b7f55)</samp>](https://github.com/vitest-dev/vitest/commit/b7f55261) - Fix `getState().testPath` during collection with no isolation  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7640](https://github.com/vitest-dev/vitest/issues/7640) [<samp>(3fb3f)</samp>](https://github.com/vitest-dev/vitest/commit/3fb3fbf8) - Support custom toString method in %s format  -  by [@&#8203;pengooseDev](https://github.com/pengooseDev) in [#&#8203;7637](https://github.com/vitest-dev/vitest/issues/7637) [<samp>(46d93)</samp>](https://github.com/vitest-dev/vitest/commit/46d93a2e) - **browser**: - Fail playwright timeouts earlier than a test timeout  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) and [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7565](https://github.com/vitest-dev/vitest/issues/7565) [<samp>(5eb4c)</samp>](https://github.com/vitest-dev/vitest/commit/5eb4cd1f) - Remove [@&#8203;testing-library/dom](https://github.com/testing-library/dom) from dependencies [#&#8203;7555](https://github.com/vitest-dev/vitest/issues/7555))"  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7628](https://github.com/vitest-dev/vitest/issues/7628) and [#&#8203;7555](https://github.com/vitest-dev/vitest/issues/7555) [<samp>(94b27)</samp>](https://github.com/vitest-dev/vitest/commit/94b27af5) - **coverage**: - Browser mode + `coverage.all`  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7597](https://github.com/vitest-dev/vitest/issues/7597) [<samp>(422ba)</samp>](https://github.com/vitest-dev/vitest/commit/422ba66b) - **runner**: - Show stacktrace on hook timeout error  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7502](https://github.com/vitest-dev/vitest/issues/7502) [<samp>(268a1)</samp>](https://github.com/vitest-dev/vitest/commit/268a19e1) - **vite-node**: - Fix source map of inlined node\_modules  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7557](https://github.com/vitest-dev/vitest/issues/7557) [<samp>(34aa3)</samp>](https://github.com/vitest-dev/vitest/commit/34aa322b) - Fix missing `buildStart`  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7652](https://github.com/vitest-dev/vitest/issues/7652) [<samp>(29f5a)</samp>](https://github.com/vitest-dev/vitest/commit/29f5a848) - **web-worker**: - Ensure `removeEventListener` is bound to worker  -  by [@&#8203;joelgallant](https://github.com/joelgallant) in [#&#8203;7631](https://github.com/vitest-dev/vitest/issues/7631) [<samp>(ff42b)</samp>](https://github.com/vitest-dev/vitest/commit/ff42bcb3) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.0.8...v3.0.9) ### [`v3.0.8`](https://github.com/vitest-dev/vitest/releases/tag/v3.0.8) [Compare Source](https://github.com/vitest-dev/vitest/compare/v3.0.7...v3.0.8) #####    🐞 Bug Fixes - Fix fetch cache multiple writes  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7546](https://github.com/vitest-dev/vitest/issues/7546) [<samp>(1a8b4)</samp>](https://github.com/vitest-dev/vitest/commit/1a8b4337) - Use browser.isolate instead of config.isolate  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7560](https://github.com/vitest-dev/vitest/issues/7560) [<samp>(4b5ed)</samp>](https://github.com/vitest-dev/vitest/commit/4b5ed902) - Remove vestigial spy stub, import directly from `@vitest/spy`  -  by [@&#8203;mrginglymus](https://github.com/mrginglymus) in [#&#8203;7575](https://github.com/vitest-dev/vitest/issues/7575) [<samp>(7f7ff)</samp>](https://github.com/vitest-dev/vitest/commit/7f7ff11c) - Correctly split the argv string  -  by [@&#8203;btea](https://github.com/btea) in [#&#8203;7533](https://github.com/vitest-dev/vitest/issues/7533) [<samp>(4325a)</samp>](https://github.com/vitest-dev/vitest/commit/4325ac67) - **browser**: - Remove [@&#8203;testing-library/dom](https://github.com/testing-library/dom) from dependencies  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7555](https://github.com/vitest-dev/vitest/issues/7555) [<samp>(5387a)</samp>](https://github.com/vitest-dev/vitest/commit/5387a5b3) - Improve source map handling for bundled files  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7534](https://github.com/vitest-dev/vitest/issues/7534) [<samp>(e2c57)</samp>](https://github.com/vitest-dev/vitest/commit/e2c570b6) - Print related test file and potential test in unhandled errors  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7564](https://github.com/vitest-dev/vitest/issues/7564) [<samp>(fee90)</samp>](https://github.com/vitest-dev/vitest/commit/fee90d85) - **runner**: - Fix `beforeEach/All` cleanup callback timeout  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7500](https://github.com/vitest-dev/vitest/issues/7500) [<samp>(0c292)</samp>](https://github.com/vitest-dev/vitest/commit/0c2924b7) - Fix and simplify `Task.suite` initialization  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7414](https://github.com/vitest-dev/vitest/issues/7414) [<samp>(ca9ff)</samp>](https://github.com/vitest-dev/vitest/commit/ca9ffac5) - **snapshot**: - Allow inline snapshot calls on same location with same snapshot  -  by [@&#8203;jycouet](https://github.com/jycouet) and [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7464](https://github.com/vitest-dev/vitest/issues/7464) [<samp>(d5cb8)</samp>](https://github.com/vitest-dev/vitest/commit/d5cb8212) - **vite-node**: - Fix `buildStart` on Vite 6  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7480](https://github.com/vitest-dev/vitest/issues/7480) [<samp>(c0f47)</samp>](https://github.com/vitest-dev/vitest/commit/c0f47e03) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.0.7...v3.0.8) ### [`v3.0.7`](https://github.com/vitest-dev/vitest/releases/tag/v3.0.7) [Compare Source](https://github.com/vitest-dev/vitest/compare/v3.0.6...v3.0.7) #####    🐞 Bug Fixes - **browser**: Support webdriverio 9  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7553](https://github.com/vitest-dev/vitest/issues/7553) [<samp>(b1949)</samp>](https://github.com/vitest-dev/vitest/commit/b1949c97) - **deps**: Update all non-major dependencies  -  in [#&#8203;7543](https://github.com/vitest-dev/vitest/issues/7543) [<samp>(365ff)</samp>](https://github.com/vitest-dev/vitest/commit/365ffe6b) - **expect**: Correct generic MatchersObject this type in expect.extend  -  by [@&#8203;Workingstiff-s](https://github.com/Workingstiff-s) in [#&#8203;7526](https://github.com/vitest-dev/vitest/issues/7526) [<samp>(d5765)</samp>](https://github.com/vitest-dev/vitest/commit/d5765f71) - **mocker**: Include more modules to prefix-only module list  -  by [@&#8203;btea](https://github.com/btea) in [#&#8203;7524](https://github.com/vitest-dev/vitest/issues/7524) [<samp>(a12ec)</samp>](https://github.com/vitest-dev/vitest/commit/a12ec008) - **spy**: Clear/reset/restore mocks in stack order  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7499](https://github.com/vitest-dev/vitest/issues/7499) [<samp>(f7100)</samp>](https://github.com/vitest-dev/vitest/commit/f71004ff) #####    🏎 Performance - **browser**: Do wdio context switching only once per file  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7549](https://github.com/vitest-dev/vitest/issues/7549) [<samp>(aaa58)</samp>](https://github.com/vitest-dev/vitest/commit/aaa58556) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.0.6...v3.0.7) ### [`v3.0.6`](https://github.com/vitest-dev/vitest/releases/tag/v3.0.6) [Compare Source](https://github.com/vitest-dev/vitest/compare/v3.0.5...v3.0.6) #####    🐞 Bug Fixes - Fix `getMockedSystemTime` for `useFakeTimer`  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7405](https://github.com/vitest-dev/vitest/issues/7405) [<samp>(03912)</samp>](https://github.com/vitest-dev/vitest/commit/03912b43) - Compat for jest-image-snapshot  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7390](https://github.com/vitest-dev/vitest/issues/7390) [<samp>(9542b)</samp>](https://github.com/vitest-dev/vitest/commit/9542b699) - Ensure project names are readable in dark terminals  -  by [@&#8203;rgrove](https://github.com/rgrove) in [#&#8203;7371](https://github.com/vitest-dev/vitest/issues/7371) [<samp>(bb94c)</samp>](https://github.com/vitest-dev/vitest/commit/bb94c19f) - Exclude `queueMicrotask` from default fake timers to not break node fetch  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7505](https://github.com/vitest-dev/vitest/pull/7505) [<samp>(167a9)</samp>](https://github.com/vitest-dev/vitest/commit/167a98d7) - Use `tinyglobby` instead of `fast-glob`  -  by [@&#8203;benmccann](https://github.com/benmccann) in [#&#8203;7504](https://github.com/vitest-dev/vitest/issues/7504) [<samp>(b62ac)</samp>](https://github.com/vitest-dev/vitest/commit/b62ac22) - **browser**: - Fix mocking modules out of root  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7415](https://github.com/vitest-dev/vitest/issues/7415) [<samp>(d3acb)</samp>](https://github.com/vitest-dev/vitest/commit/d3acbd8b) - Fix `toHaveClass` typing  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7383](https://github.com/vitest-dev/vitest/issues/7383) [<samp>(7ef23)</samp>](https://github.com/vitest-dev/vitest/commit/7ef238c0) - Relax locator selectors methods  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7422](https://github.com/vitest-dev/vitest/issues/7422) [<samp>(1b8c5)</samp>](https://github.com/vitest-dev/vitest/commit/1b8c5c9e) - Resolve thread count from `maxWorkers`  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7483](https://github.com/vitest-dev/vitest/issues/7483) [<samp>(adbb2)</samp>](https://github.com/vitest-dev/vitest/commit/adbb25ab) - Cleanup timeout on resolve and give more information in the error  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7487](https://github.com/vitest-dev/vitest/issues/7487) [<samp>(5a45a)</samp>](https://github.com/vitest-dev/vitest/commit/5a45a7ca) - **coverage**: - `vite-node` to pass correct execution wrapper offset  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7417](https://github.com/vitest-dev/vitest/issues/7417) [<samp>(1f2e5)</samp>](https://github.com/vitest-dev/vitest/commit/1f2e5552) - Preserve moduleExecutionInfo in non-isolated runs  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7486](https://github.com/vitest-dev/vitest/issues/7486) [<samp>(f31a0)</samp>](https://github.com/vitest-dev/vitest/commit/f31a07bb) - **deps**: - Update all non-major dependencies  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7363](https://github.com/vitest-dev/vitest/issues/7363) [<samp>(e348b)</samp>](https://github.com/vitest-dev/vitest/commit/e348bd4c) - Update all non-major dependencies  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7507](https://github.com/vitest-dev/vitest/issues/7507) [<samp>(6cc40)</samp>](https://github.com/vitest-dev/vitest/commit/6cc408d6) - **init**: - Invalid browser config  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7475](https://github.com/vitest-dev/vitest/issues/7475) [<samp>(8fe64)</samp>](https://github.com/vitest-dev/vitest/commit/8fe641b4) - **reporters**: - Render tasks in tree when in TTY  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7503](https://github.com/vitest-dev/vitest/issues/7503) [<samp>(027ce)</samp>](https://github.com/vitest-dev/vitest/commit/027ce9bb) - **vite-node**: - Remove fake first line mapping on Vite 6  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7124](https://github.com/vitest-dev/vitest/issues/7124) [<samp>(b9973)</samp>](https://github.com/vitest-dev/vitest/commit/b997355b) - **watch**: - Properly remove cache after removing existing test files  -  by [@&#8203;soc221b](https://github.com/soc221b) in [#&#8203;7399](https://github.com/vitest-dev/vitest/issues/7399) [<samp>(01a59)</samp>](https://github.com/vitest-dev/vitest/commit/01a59721) - **workspace**: - Forward `inspect` related cli options  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7373](https://github.com/vitest-dev/vitest/issues/7373) [<samp>(ed15b)</samp>](https://github.com/vitest-dev/vitest/commit/ed15b5b3) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.0.5...v3.0.6) ### [`v3.0.5`](https://github.com/vitest-dev/vitest/releases/tag/v3.0.5) [Compare Source](https://github.com/vitest-dev/vitest/compare/v3.0.4...v3.0.5) This release includes security patches for: - [Remote Code Execution when accessing a malicious website while Vitest API server is listening | CVE-2025-24964](https://github.com/vitest-dev/vitest/security/advisories/GHSA-9crc-q9x8-hgqq) ##### 🚀 Features - **ui**: Insert message "no tests found" in ui - by [@&#8203;DevJoaoLopes](https://github.com/DevJoaoLopes) in [#&#8203;7366](https://github.com/vitest-dev/vitest/issues/7366) [<samp>(92da4)</samp>](https://github.com/vitest-dev/vitest/commit/92da490bd) ##### 🐞 Bug Fixes - Validate websocket request - by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7317](https://github.com/vitest-dev/vitest/issues/7317) [<samp>(191ef)</samp>](https://github.com/vitest-dev/vitest/commit/191ef9e34) - Don't toggle cli cursor on non-TTY - by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7336](https://github.com/vitest-dev/vitest/issues/7336) [<samp>(3c805)</samp>](https://github.com/vitest-dev/vitest/commit/3c8050e69) - **vite-node**: Differentiate file url with hash and query - by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7365](https://github.com/vitest-dev/vitest/issues/7365) [<samp>(926ca)</samp>](https://github.com/vitest-dev/vitest/commit/926ca9546) ##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.0.4...v3.0.5) ### [`v3.0.4`](https://github.com/vitest-dev/vitest/releases/tag/v3.0.4) [Compare Source](https://github.com/vitest-dev/vitest/compare/v3.0.3...v3.0.4) This release includes security patches for: - [Browser mode serves arbitrary files | CVE-2025-24963](https://github.com/vitest-dev/vitest/security/advisories/GHSA-8gvc-j273-4wm5) #####    🐞 Bug Fixes - Filter projects eagerly during config resolution  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7313](https://github.com/vitest-dev/vitest/issues/7313) [<samp>(dff44)</samp>](https://github.com/vitest-dev/vitest/commit/dff4406d) - Apply `development|production` condition on Vites 6 by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and [@&#8203;sheremet-va](https://github.com/sheremet-va) ([#&#8203;7301](https://github.com/vitest-dev/vitest/issues/7301)) [<samp>(ef146)</samp>](https://github.com/vitest-dev/vitest/commit/ef1464fc7b101709bfbf7b040e5bad62998c2ff9) - **browser**: Restrict served files from `/__screenshot-error`  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7340](https://github.com/vitest-dev/vitest/issues/7340) [<samp>(ed9ae)</samp>](https://github.com/vitest-dev/vitest/commit/ed9aeba2) - **deps**: Update all non-major dependencies  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7297](https://github.com/vitest-dev/vitest/issues/7297) [<samp>(38ea8)</samp>](https://github.com/vitest-dev/vitest/commit/38ea8eae) - **runner**: Timeout long sync hook  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7289](https://github.com/vitest-dev/vitest/issues/7289) [<samp>(c60ee)</samp>](https://github.com/vitest-dev/vitest/commit/c60ee27c) - **typechecking**: Support typechecking parsing with Vite 6  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7335](https://github.com/vitest-dev/vitest/issues/7335) [<samp>(bff70)</samp>](https://github.com/vitest-dev/vitest/commit/bff70be9) - **types**: Fix public types  -  by [@&#8203;mrginglymus](https://github.com/mrginglymus) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7328](https://github.com/vitest-dev/vitest/issues/7328) [<samp>(ce6af)</samp>](https://github.com/vitest-dev/vitest/commit/ce6af70c) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.0.3...v3.0.4) ### [`v3.0.3`](https://github.com/vitest-dev/vitest/releases/tag/v3.0.3) [Compare Source](https://github.com/vitest-dev/vitest/compare/v3.0.2...v3.0.3) #####    🐞 Bug Fixes - **browser**: - Don't throw a validation error if v8 coverage is used with filtered instances  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7306](https://github.com/vitest-dev/vitest/issues/7306) [<samp>(fa463)</samp>](https://github.com/vitest-dev/vitest/commit/fa4634b2) - Don't fail when running --browser.headless if the browser projest is part of the workspace  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7311](https://github.com/vitest-dev/vitest/issues/7311) [<samp>(e43a8)</samp>](https://github.com/vitest-dev/vitest/commit/e43a8f56) #####    🏎 Performance - **reporters**: Update summary only when needed  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7291](https://github.com/vitest-dev/vitest/issues/7291) [<samp>(7f36b)</samp>](https://github.com/vitest-dev/vitest/commit/7f36b6f9) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.0.2...v3.0.3) ### [`v3.0.2`](https://github.com/vitest-dev/vitest/releases/tag/v3.0.2) [Compare Source](https://github.com/vitest-dev/vitest/compare/v3.0.1...v3.0.2) #####    🐞 Bug Fixes - Don't await an empty timeout after every test  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7281](https://github.com/vitest-dev/vitest/issues/7281) [<samp>(ef1aa)</samp>](https://github.com/vitest-dev/vitest/commit/ef1aa893) - **expect**: Fix `expect().resolves/rejects` chain typings  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7273](https://github.com/vitest-dev/vitest/issues/7273) [<samp>(fa415)</samp>](https://github.com/vitest-dev/vitest/commit/fa415059) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.0.1...v3.0.2) ### [`v3.0.1`](https://github.com/vitest-dev/vitest/releases/tag/v3.0.1) [Compare Source](https://github.com/vitest-dev/vitest/compare/v3.0.0...v3.0.1) #####    🐞 Bug Fixes - Revert "fix: re-apply default conditions if using vite 6 or later ([#&#8203;7071](https://github.com/vitest-dev/vitest/issues/7071))"  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7071](https://github.com/vitest-dev/vitest/issues/7071) and [#&#8203;7271](https://github.com/vitest-dev/vitest/issues/7271) [<samp>(755ec)</samp>](https://github.com/vitest-dev/vitest/commit/755ecdfa) - **deps**: Update all non-major dependencies  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7147](https://github.com/vitest-dev/vitest/issues/7147) [<samp>(537fa)</samp>](https://github.com/vitest-dev/vitest/commit/537fa5ed) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.0.0...v3.0.1) ### [`v3.0.0`](https://github.com/vitest-dev/vitest/releases/tag/v3.0.0) [Compare Source](https://github.com/vitest-dev/vitest/compare/v2.1.9...v3.0.0) Vitest 3 is here! There are a few breaking changes, but we expect the migration to be smooth. This release page lists all changes made to the project during the beta. For the migration guide, please refer to the [documentation](https://vitest.dev/guide/migration.html#migrating-to-vitest-2-0). #####    🚨 Breaking Changes - `spy.mockReset` changes  -  by [@&#8203;Lordfirespeed](https://github.com/Lordfirespeed) in [#&#8203;6426](https://github.com/vitest-dev/vitest/issues/6426) [<samp>(db7a8)</samp>](https://github.com/vitest-dev/vitest/commit/db7a8888) - Pass down context to test hooks  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7034](https://github.com/vitest-dev/vitest/issues/7034) [<samp>(82c2e)</samp>](https://github.com/vitest-dev/vitest/commit/82c2e244) - Support Vite 6  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7026](https://github.com/vitest-dev/vitest/issues/7026) [<samp>(7abe8)</samp>](https://github.com/vitest-dev/vitest/commit/7abe854c) - **coverage**: Always exclude test files  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7254](https://github.com/vitest-dev/vitest/issues/7254) [<samp>(b5268)</samp>](https://github.com/vitest-dev/vitest/commit/b5268965) - **deps**: Update fake-timers to v14.0.0  -  by [@&#8203;xxzefgh](https://github.com/xxzefgh) and [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7097](https://github.com/vitest-dev/vitest/issues/7097) [<samp>(c98b4)</samp>](https://github.com/vitest-dev/vitest/commit/c98b4b1c) - **expect**: Check more properties for error equality  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;5876](https://github.com/vitest-dev/vitest/issues/5876) [<samp>(10023)</samp>](https://github.com/vitest-dev/vitest/commit/100230e9) - **runner**: Support `describe(..., { shuffle: boolean })` and inherit from parent suite  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6670](https://github.com/vitest-dev/vitest/issues/6670) [<samp>(aa1da)</samp>](https://github.com/vitest-dev/vitest/commit/aa1dac3d) - **snapshot**: Reset snapshot state for `retry` and `repeats`  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6817](https://github.com/vitest-dev/vitest/issues/6817) [<samp>(e8ce9)</samp>](https://github.com/vitest-dev/vitest/commit/e8ce94cf) - **spy**: SpyOn reuses mock if method is already spyed on  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) and [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6464](https://github.com/vitest-dev/vitest/issues/6464) [<samp>(b3e43)</samp>](https://github.com/vitest-dev/vitest/commit/b3e43d04) - **vitest**: Don't expose default toFake config  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6288](https://github.com/vitest-dev/vitest/issues/6288) [<samp>(e3144)</samp>](https://github.com/vitest-dev/vitest/commit/e3144fd8) #####    🚀 Features - Support inline `diff` options and support `printBasicPrototype`  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa), [@&#8203;sheremet-va](https://github.com/sheremet-va) and **Michał Grzegorzewski** in [#&#8203;6740](https://github.com/vitest-dev/vitest/issues/6740) [<samp>(39186)</samp>](https://github.com/vitest-dev/vitest/commit/391860f7) - Allow a custom note when calling `ctx.skip()` dynamically  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6805](https://github.com/vitest-dev/vitest/issues/6805) [<samp>(697c3)</samp>](https://github.com/vitest-dev/vitest/commit/697c35c5) - Allow inline workspace configuration  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6923](https://github.com/vitest-dev/vitest/issues/6923) [<samp>(562e1)</samp>](https://github.com/vitest-dev/vitest/commit/562e1b14) - Provide the current project to the global setup  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6942](https://github.com/vitest-dev/vitest/issues/6942) [<samp>(a5bbc)</samp>](https://github.com/vitest-dev/vitest/commit/a5bbc0a9) - Print project name as a label  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6925](https://github.com/vitest-dev/vitest/issues/6925) [<samp>(a3bef)</samp>](https://github.com/vitest-dev/vitest/commit/a3bef598) - Print a deprecation warning if suite or test uses object as the third argument  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7031](https://github.com/vitest-dev/vitest/issues/7031) [<samp>(407f1)</samp>](https://github.com/vitest-dev/vitest/commit/407f10e4) - Expose versions from `vitest/node` entry point and statically on Vitest  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7029](https://github.com/vitest-dev/vitest/issues/7029) [<samp>(be8d4)</samp>](https://github.com/vitest-dev/vitest/commit/be8d479b) - `diff.printBasicPrototype: false` by default  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7043](https://github.com/vitest-dev/vitest/issues/7043) [<samp>(2b5c5)</samp>](https://github.com/vitest-dev/vitest/commit/2b5c5201) - Prepare the Vitest API to be stable  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6962](https://github.com/vitest-dev/vitest/issues/6962) [<samp>(9a1b5)</samp>](https://github.com/vitest-dev/vitest/commit/9a1b5012) - Support Vite v6 in mocker package  -  by [@&#8203;cexbrayat](https://github.com/cexbrayat) in [#&#8203;7058](https://github.com/vitest-dev/vitest/issues/7058) [<samp>(96f47)</samp>](https://github.com/vitest-dev/vitest/commit/96f47d37) - Allow multi-browser configuration  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6975](https://github.com/vitest-dev/vitest/issues/6975) [<samp>(78b62)</samp>](https://github.com/vitest-dev/vitest/commit/78b62ffe) - Add resolved project names to the reporter API  -  by [@&#8203;userquin](https://github.com/userquin) in [#&#8203;7213](https://github.com/vitest-dev/vitest/issues/7213) [<samp>(91758)</samp>](https://github.com/vitest-dev/vitest/commit/91758360) - Introduce the new reporter API  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7069](https://github.com/vitest-dev/vitest/issues/7069) [<samp>(76662)</samp>](https://github.com/vitest-dev/vitest/commit/766624ab) - Add `describe.for`  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7253](https://github.com/vitest-dev/vitest/issues/7253) [<samp>(0ad28)</samp>](https://github.com/vitest-dev/vitest/commit/0ad2860b) - **api**: - Add onBrowserInit event  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7255](https://github.com/vitest-dev/vitest/issues/7255) [<samp>(80ce0)</samp>](https://github.com/vitest-dev/vitest/commit/80ce0e1c) - **browser**: - Support `actionTimeout` as playwright provider options  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6984](https://github.com/vitest-dev/vitest/issues/6984) [<samp>(e2c29)</samp>](https://github.com/vitest-dev/vitest/commit/e2c29eaf) - Support clipboard api `userEvent.copy, cut, paste`  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6769](https://github.com/vitest-dev/vitest/issues/6769) [<samp>(843a6)</samp>](https://github.com/vitest-dev/vitest/commit/843a621e) - Implement locator.nth()  -  by [@&#8203;xeger](https://github.com/xeger) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7137](https://github.com/vitest-dev/vitest/issues/7137) [<samp>(38458)</samp>](https://github.com/vitest-dev/vitest/commit/38458ea6) - **cli**: - Support excluding projects with `--project=!pattern`  -  by [@&#8203;haines](https://github.com/haines) in [#&#8203;6924](https://github.com/vitest-dev/vitest/issues/6924) [<samp>(ebfe9)</samp>](https://github.com/vitest-dev/vitest/commit/ebfe942c) - Support specifying a line number when filtering tests  -  by [@&#8203;mzhubail](https://github.com/mzhubail) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6411](https://github.com/vitest-dev/vitest/issues/6411) [<samp>(4d94b)</samp>](https://github.com/vitest-dev/vitest/commit/4d94b956) - Support location filters for suites  -  by [@&#8203;mzhubail](https://github.com/mzhubail) in [#&#8203;7048](https://github.com/vitest-dev/vitest/issues/7048) [<samp>(751e2)</samp>](https://github.com/vitest-dev/vitest/commit/751e2dce) - **coverage**: - `thresholds` to support maximum uncovered items  -  by [@&#8203;jonahkagan](https://github.com/jonahkagan) in [#&#8203;7061](https://github.com/vitest-dev/vitest/issues/7061) [<samp>(bde98)</samp>](https://github.com/vitest-dev/vitest/commit/bde98b6d) - **expect**: - Add `toHaveBeenCalledExactlyOnceWith` expect matcher  -  by [@&#8203;jacoberdman2147](https://github.com/jacoberdman2147) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6894](https://github.com/vitest-dev/vitest/issues/6894) [<samp>(ff662)</samp>](https://github.com/vitest-dev/vitest/commit/ff66206a) - Add `toHaveBeenCalledAfter` and `toHaveBeenCalledBefore` utility  -  by [@&#8203;Barbapapazes](https://github.com/Barbapapazes) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6056](https://github.com/vitest-dev/vitest/issues/6056) [<samp>(85e6f)</samp>](https://github.com/vitest-dev/vitest/commit/85e6f99f) - Add `toSatisfy` asymmetric matcher  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7022](https://github.com/vitest-dev/vitest/issues/7022) [<samp>(f691a)</samp>](https://github.com/vitest-dev/vitest/commit/f691ad76) - Add `toBeOneOf` matcher  -  by [@&#8203;zirkelc](https://github.com/zirkelc) and [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6974](https://github.com/vitest-dev/vitest/issues/6974) [<samp>(3d742)</samp>](https://github.com/vitest-dev/vitest/commit/3d742b2b) - **reporter**: - Add support for function type to classname option in the junit reporter  -  by [@&#8203;jpleclerc](https://github.com/jpleclerc), **Jean-Philippe Leclerc** and [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6839](https://github.com/vitest-dev/vitest/issues/6839) [<samp>(dc238)</samp>](https://github.com/vitest-dev/vitest/commit/dc238e92) - **reporters**: - `summary` option for `verbose` and `default` reporters  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;6893](https://github.com/vitest-dev/vitest/issues/6893) [<samp>(511b7)</samp>](https://github.com/vitest-dev/vitest/commit/511b73c7) - **runner**: - Test context can inject values from the config's `provide`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6813](https://github.com/vitest-dev/vitest/issues/6813) [<samp>(85c64)</samp>](https://github.com/vitest-dev/vitest/commit/85c64e35) - Add "queued" state  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;6931](https://github.com/vitest-dev/vitest/issues/6931) [<samp>(5f8d2)</samp>](https://github.com/vitest-dev/vitest/commit/5f8d2091) - **snapshot**: - Provide `config` to `resolveSnapshotPath`  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6800](https://github.com/vitest-dev/vitest/issues/6800) [<samp>(746d8)</samp>](https://github.com/vitest-dev/vitest/commit/746d8986) - **ui**: - Allow run individual tests/suites from the UI  -  by [@&#8203;userquin](https://github.com/userquin) in [#&#8203;6641](https://github.com/vitest-dev/vitest/issues/6641) [<samp>(d9cc8)</samp>](https://github.com/vitest-dev/vitest/commit/d9cc81dd) - Make clicking on a test in the UI open the report section and scroll to the test failure if applicable  -  by [@&#8203;jacoberdman2147](https://github.com/jacoberdman2147) in [#&#8203;6900](https://github.com/vitest-dev/vitest/issues/6900) [<samp>(1bf27)</samp>](https://github.com/vitest-dev/vitest/commit/1bf27f0d) - Allow hide/show node\_modules in module graph tab  -  by [@&#8203;userquin](https://github.com/userquin) in [#&#8203;7217](https://github.com/vitest-dev/vitest/issues/7217) [<samp>(50cf6)</samp>](https://github.com/vitest-dev/vitest/commit/50cf61b8) - **vitest**: - Include `coverageMap` in json report  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6606](https://github.com/vitest-dev/vitest/issues/6606) [<samp>(9c8f7)</samp>](https://github.com/vitest-dev/vitest/commit/9c8f7e3e) - Add `onTestsRerun` method to global setup context  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6803](https://github.com/vitest-dev/vitest/issues/6803) [<samp>(e26e0)</samp>](https://github.com/vitest-dev/vitest/commit/e26e066c) #####    🐞 Bug Fixes - Misc fix for vite 6 ecosystem ci  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6867](https://github.com/vitest-dev/vitest/issues/6867) [<samp>(80f8b)</samp>](https://github.com/vitest-dev/vitest/commit/80f8bbf4) - Respect `cacheDir` when optimizer is enabled  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6910](https://github.com/vitest-dev/vitest/issues/6910) [<samp>(0b08b)</samp>](https://github.com/vitest-dev/vitest/commit/0b08bc11) - Reset runningPromise after `finally` in case there is an error to avoid it getting stuck  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6951](https://github.com/vitest-dev/vitest/issues/6951) [<samp>(02194)</samp>](https://github.com/vitest-dev/vitest/commit/021944cd) - Revert support for Vite 6  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) [<samp>(fbe5c)</samp>](https://github.com/vitest-dev/vitest/commit/fbe5c39d) - Support Node 21  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) [<samp>(92f7a)</samp>](https://github.com/vitest-dev/vitest/commit/92f7a2ad) - Don't use `Custom` type internally  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7032](https://github.com/vitest-dev/vitest/issues/7032) [<samp>(7957f)</samp>](https://github.com/vitest-dev/vitest/commit/7957f912) - Persist cli filters as watch mode file filter  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6955](https://github.com/vitest-dev/vitest/issues/6955) [<samp>(cc703)</samp>](https://github.com/vitest-dev/vitest/commit/cc703362) - Don't use dim color for succeeded tests  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7059](https://github.com/vitest-dev/vitest/issues/7059) [<samp>(8a6f5)</samp>](https://github.com/vitest-dev/vitest/commit/8a6f5f16) - Fix missing chai types  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7149](https://github.com/vitest-dev/vitest/issues/7149) [<samp>(6a09c)</samp>](https://github.com/vitest-dev/vitest/commit/6a09cc3b) - `cancelCurrentRun` awaits `runningPromise`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7168](https://github.com/vitest-dev/vitest/issues/7168) [<samp>(1dbf5)</samp>](https://github.com/vitest-dev/vitest/commit/1dbf5140) - Add Locator typings for nth, first and last.  -  by [@&#8203;xeger](https://github.com/xeger) in [#&#8203;7176](https://github.com/vitest-dev/vitest/issues/7176) [<samp>(d262e)</samp>](https://github.com/vitest-dev/vitest/commit/d262e059) - Batch console logs by microtask  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7183](https://github.com/vitest-dev/vitest/issues/7183) [<samp>(53d1d)</samp>](https://github.com/vitest-dev/vitest/commit/53d1d5f5) - Allow `getMockImplementation` to return "once" implementation  -  by [@&#8203;chaptergy](https://github.com/chaptergy) in [#&#8203;7033](https://github.com/vitest-dev/vitest/issues/7033) [<samp>(39125)</samp>](https://github.com/vitest-dev/vitest/commit/3912554b) - `capturePrintError` logger duplicate event handlers  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7197](https://github.com/vitest-dev/vitest/issues/7197) [<samp>(e89c3)</samp>](https://github.com/vitest-dev/vitest/commit/e89c3693) - Allow slots in vitest-browser-vue  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7120](https://github.com/vitest-dev/vitest/issues/7120) [<samp>(2319f)</samp>](https://github.com/vitest-dev/vitest/commit/2319f849) - Reset root workspace project on restart  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7238](https://github.com/vitest-dev/vitest/issues/7238) [<samp>(6e518)</samp>](https://github.com/vitest-dev/vitest/commit/6e51843a) - Cleanup `vitest/reporters` entrypoint  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7241](https://github.com/vitest-dev/vitest/issues/7241) [<samp>(aec0b)</samp>](https://github.com/vitest-dev/vitest/commit/aec0b530) - Colors on `forks` pool  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7090](https://github.com/vitest-dev/vitest/issues/7090) [<samp>(8cab9)</samp>](https://github.com/vitest-dev/vitest/commit/8cab9601) - Export `VitestRunner` type from `vitest/runners`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7240](https://github.com/vitest-dev/vitest/issues/7240) [<samp>(9b218)</samp>](https://github.com/vitest-dev/vitest/commit/9b218854) - Return test fn result to runner  -  by [@&#8203;wmertens](https://github.com/wmertens) in [#&#8203;7239](https://github.com/vitest-dev/vitest/issues/7239) [<samp>(48645)</samp>](https://github.com/vitest-dev/vitest/commit/48645bf4) - Re-apply default conditions if using vite 6 or later  -  by [@&#8203;thebanjomatic](https://github.com/thebanjomatic), **thebanjomatic** and [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7071](https://github.com/vitest-dev/vitest/issues/7071) [<samp>(84287)</samp>](https://github.com/vitest-dev/vitest/commit/84287fc2) - Prevent infinite loop on prettyDOM calls  -  by [@&#8203;tsirlucas](https://github.com/tsirlucas) in [#&#8203;7250](https://github.com/vitest-dev/vitest/issues/7250) [<samp>(a3a46)</samp>](https://github.com/vitest-dev/vitest/commit/a3a46a53) - **api**: - Don't report events during `vitest list`  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7257](https://github.com/vitest-dev/vitest/issues/7257) [<samp>(1c2b2)</samp>](https://github.com/vitest-dev/vitest/commit/1c2b210d) - **benchmark**: - Disable type testing while benchmarking  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7068](https://github.com/vitest-dev/vitest/issues/7068) [<samp>(4e603)</samp>](https://github.com/vitest-dev/vitest/commit/4e60333d) - Rewrite reporter without `log-update`  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7019](https://github.com/vitest-dev/vitest/issues/7019) [<samp>(6d23f)</samp>](https://github.com/vitest-dev/vitest/commit/6d23f4b1) - **browser**: - Improve source maps when `vi.mock` is present  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6810](https://github.com/vitest-dev/vitest/issues/6810) [<samp>(8d179)</samp>](https://github.com/vitest-dev/vitest/commit/8d179afc) - Explain TypeScript support in docs and add asymmetric matchers to types  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;6934](https://github.com/vitest-dev/vitest/issues/6934) [<samp>(ac1a7)</samp>](https://github.com/vitest-dev/vitest/commit/ac1a7fdc) - Fix matchers.d.ts  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6995](https://github.com/vitest-dev/vitest/issues/6995) [<samp>(a485b)</samp>](https://github.com/vitest-dev/vitest/commit/a485b32b) - Fix user event state on preview provider  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7041](https://github.com/vitest-dev/vitest/issues/7041) [<samp>(8e944)</samp>](https://github.com/vitest-dev/vitest/commit/8e94427e) - Fix provider options types  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7115](https://github.com/vitest-dev/vitest/issues/7115) [<samp>(579bd)</samp>](https://github.com/vitest-dev/vitest/commit/579bda97) - Only use locator.element on last expect.element attempt  -  by [@&#8203;tsirlucas](https://github.com/tsirlucas) in [#&#8203;7139](https://github.com/vitest-dev/vitest/issues/7139) and [#&#8203;7152](https://github.com/vitest-dev/vitest/issues/7152) [<samp>(847d3)</samp>](https://github.com/vitest-dev/vitest/commit/847d3221) - Use correct project when filtering `entries` in the browser mode  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7167](https://github.com/vitest-dev/vitest/issues/7167) [<samp>(423d6)</samp>](https://github.com/vitest-dev/vitest/commit/423d6345) - Fix `console.time` with fake timers  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7207](https://github.com/vitest-dev/vitest/issues/7207) [<samp>(903f3)</samp>](https://github.com/vitest-dev/vitest/commit/903f3b9b) - Add instance validation to resolve coverage error  -  by [@&#8203;DevJoaoLopes](https://github.com/DevJoaoLopes) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7231](https://github.com/vitest-dev/vitest/issues/7231) [<samp>(1e791)</samp>](https://github.com/vitest-dev/vitest/commit/1e7915b5) - **coverage**: - Exclude browser mode iframe results  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;6905](https://github.com/vitest-dev/vitest/issues/6905) [<samp>(e04a1)</samp>](https://github.com/vitest-dev/vitest/commit/e04a1368) - Correct coverage when `isolate: false` is used  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;6957](https://github.com/vitest-dev/vitest/issues/6957) [<samp>(426ce)</samp>](https://github.com/vitest-dev/vitest/commit/426ce6d8) - Prevent crash when v8 incorrectly merges static\_initializer's  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7150](https://github.com/vitest-dev/vitest/issues/7150) [<samp>(cb6db)</samp>](https://github.com/vitest-dev/vitest/commit/cb6db13e) - **deps**: - Update all non-major dependencies  -  in [#&#8203;7085](https://github.com/vitest-dev/vitest/issues/7085) [<samp>(8cc92)</samp>](https://github.com/vitest-dev/vitest/commit/8cc92c2f) - Update all non-major dependencies  -  in [#&#8203;7116](https://github.com/vitest-dev/vitest/issues/7116) [<samp>(de5ce)</samp>](https://github.com/vitest-dev/vitest/commit/de5ce3d9) - Update dependency pathe to v2  -  in [#&#8203;7181](https://github.com/vitest-dev/vitest/issues/7181) [<samp>(74dbe)</samp>](https://github.com/vitest-dev/vitest/commit/74dbe03f) - **diff**: - Truncate to avoid crash on diff large objects  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7133](https://github.com/vitest-dev/vitest/issues/7133) [<samp>(2a9d6)</samp>](https://github.com/vitest-dev/vitest/commit/2a9d67a2) - **junit**: - Fix testsuites time to be sum of all testsuite items  -  by [@&#8203;saitonakamura](https://github.com/saitonakamura) in [#&#8203;6985](https://github.com/vitest-dev/vitest/issues/6985) [<samp>(ca37a)</samp>](https://github.com/vitest-dev/vitest/commit/ca37a06a) - **pretty-format**: - Support react 19  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6909](https://github.com/vitest-dev/vitest/issues/6909) [<samp>(bd29b)</samp>](https://github.com/vitest-dev/vitest/commit/bd29bcc7) - **reporters**: - Write buffered stdout/stderr on process exit  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;6932](https://github.com/vitest-dev/vitest/issues/6932) [<samp>(80cde)</samp>](https://github.com/vitest-dev/vitest/commit/80cde2a0) - Rewrite `dot` reporter without `log-update`  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;6943](https://github.com/vitest-dev/vitest/issues/6943) [<samp>(be969)</samp>](https://github.com/vitest-dev/vitest/commit/be969cfb) - Check `--hideSkippedTests` in base reporter  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;6988](https://github.com/vitest-dev/vitest/issues/6988) [<samp>(721a5)</samp>](https://github.com/vitest-dev/vitest/commit/721a5b84) - Show `retry` and `repeats` counts  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) and [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7004](https://github.com/vitest-dev/vitest/issues/7004) [<samp>(3496a)</samp>](https://github.com/vitest-dev/vitest/commit/3496a015) - **runner**: - Long synchronous tasks does not time out  -  by [@&#8203;ferdodo](https://github.com/ferdodo) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;2920](https://github.com/vitest-dev/vitest/issues/2920) and [#&#8203;6944](https://github.com/vitest-dev/vitest/issues/6944) [<samp>(2fb58)</samp>](https://github.com/vitest-dev/vitest/commit/2fb585ae) - Mark tests of `describe.todo` as `'todo'`  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7171](https://github.com/vitest-dev/vitest/issues/7171) [<samp>(1d458)</samp>](https://github.com/vitest-dev/vitest/commit/1d458955) - **snapshot**: - Fix "obsolete" message on snapshot update re-run  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7129](https://github.com/vitest-dev/vitest/issues/7129) [<samp>(c2beb)</samp>](https://github.com/vitest-dev/vitest/commit/c2beb8ca) - Preserve white space of `toMatchFileSnapshot`  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7156](https://github.com/vitest-dev/vitest/issues/7156) [<samp>(a437b)</samp>](https://github.com/vitest-dev/vitest/commit/a437b656) - Fix obsoleteness check of `toMatchSnapshot("...")`  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7126](https://github.com/vitest-dev/vitest/issues/7126) [<samp>(ac9ba)</samp>](https://github.com/vitest-dev/vitest/commit/ac9ba151) - **typecheck**: - Fix typecheck collect on Vite 6  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6972](https://github.com/vitest-dev/vitest/issues/6972) [<samp>(7b35d)</samp>](https://github.com/vitest-dev/vitest/commit/7b35d13a) - Use unique temp and tsbuildinfo file for each tsconfig file  -  by [@&#8203;masnormen](https://github.com/masnormen) in [#&#8203;7107](https://github.com/vitest-dev/vitest/issues/7107) and [#&#8203;7112](https://github.com/vitest-dev/vitest/issues/7112) [<samp>(61b30)</samp>](https://github.com/vitest-dev/vitest/commit/61b30162) - Fix error test case mapping for `@ts-expect-error`  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7125](https://github.com/vitest-dev/vitest/issues/7125) [<samp>(27d34)</samp>](https://github.com/vitest-dev/vitest/commit/27d340aa) - **types**: - Make parameters non-nullable for Playwright options  -  by [@&#8203;apple-yagi](https://github.com/apple-yagi) in [#&#8203;6989](https://github.com/vitest-dev/vitest/issues/6989) [<samp>(fe2a1)</samp>](https://github.com/vitest-dev/vitest/commit/fe2a187f) - **ui**: - Wrong module graph when generating html.meta.json.gz in browser mode  -  by [@&#8203;userquin](https://github.com/userquin) in [#&#8203;7214](https://github.com/vitest-dev/vitest/issues/7214) [<samp>(dccdd)</samp>](https://github.com/vitest-dev/vitest/commit/dccdd550) - Add errors and draft state (\*) to the code editor  -  by [@&#8203;userquin](https://github.com/userquin) in [#&#8203;7044](https://github.com/vitest-dev/vitest/issues/7044) [<samp>(faca4)</samp>](https://github.com/vitest-dev/vitest/commit/faca4de8) - **vite-node**: - Fix error stack on Windows  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;6786](https://github.com/vitest-dev/vitest/issues/6786) [<samp>(bf7b3)</samp>](https://github.com/vitest-dev/vitest/commit/bf7b36ac) - Properly normalize file url import  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7087](https://github.com/vitest-dev/vitest/issues/7087) [<samp>(31675)</samp>](https://github.com/vitest-dev/vitest/commit/31675e3b) - Fix mandatory node prefix  -  by [@&#8203;hi-ogawa](https://github.com/hi-ogawa) in [#&#8203;7179](https://github.com/vitest-dev/vitest/issues/7179) [<samp>(b6284)</samp>](https://github.com/vitest-dev/vitest/commit/b6284642) - **watch**: - Don't indicate exit when no matching files  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [#&#8203;7246](https://github.com/vitest-dev/vitest/issues/7246) [<samp>(003c0)</samp>](https://github.com/vitest-dev/vitest/commit/003c0bef) - **workspace**: - `extends: true` correctly inherits all root config properties  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [#&#8203;7232](https://github.com/vitest-dev/vitest/issues/7232) [<samp>(798c0)</samp>](https://github.com/vitest-dev/vitest/commit/798c0da2) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v2.1.8...v3.0.0) </details> --- ### Configuration 📅 **Schedule**: (in timezone Europe/Amsterdam) - Branch creation - "before 6am on Saturday" - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yODUuMyIsInVwZGF0ZWRJblZlciI6IjQzLjI4NS4zIiwidGFyZ2V0QnJhbmNoIjoiZGV2ZWxvcCIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->
renovate force-pushed renovate/major-vitest from df9029b86e to a59b44111c 2026-09-16 00:05:45 +02:00 Compare
renovate force-pushed renovate/major-vitest from a59b44111c to d61a7d44d1 2026-09-18 00:03:46 +02:00 Compare
renovate force-pushed renovate/major-vitest from d61a7d44d1 to 0c27819652 2026-09-23 00:03:28 +02:00 Compare
renovate force-pushed renovate/major-vitest from 0c27819652 to 4747cfb6cb 2026-09-26 00:03:35 +02:00 Compare
renovate force-pushed renovate/major-vitest from 4747cfb6cb to 3d77cdf2f2 2026-10-01 00:04:11 +02:00 Compare
renovate force-pushed renovate/major-vitest from 3d77cdf2f2 to 40320edc0e 2026-10-05 00:04:40 +02:00 Compare
This pull request can be merged automatically.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin renovate/major-vitest:renovate/major-vitest
git switch renovate/major-vitest

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch develop
git merge --no-ff renovate/major-vitest
git switch renovate/major-vitest
git rebase develop
git switch develop
git merge --ff-only renovate/major-vitest
git switch renovate/major-vitest
git rebase develop
git switch develop
git merge --no-ff renovate/major-vitest
git switch develop
git merge --squash renovate/major-vitest
git switch develop
git merge --ff-only renovate/major-vitest
git switch develop
git merge renovate/major-vitest
git push origin develop
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
midas/gptier!88
No description provided.