Impact Score: 5/10
Vitest v5.1.0 โ Release Notes & Engineering Impact
Source available โ automated, not human-reviewed
Component: vitest ยท Channel: stable. Automated analysis, not a compatibility certification. How this works.
Analysis updated: 2026-11-02.
โก Executive Summary (TL;DR)
Vitest v5.1.0. Source highlight: ๐ Features
Who Does This Impact? (Role-Based Analysis)
๐ป Software Engineers & Devs
Check the source notes against the package and APIs you use before upgrading.
๐ Product & Engineering Leads
Use the documented changes to assess relevance to your product; release frequency alone is not a quality measure.
โ๏ธ DevOps & Security
Verify the target version, runtime requirements and rollback procedure in the official documentation.
โจ New Features & Capabilities (6)
- Add `--last-failed` to run only failed tests - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/11558 <samp>(82f63)</samp>
- Support `Temporal.Instant` and `Temporal.ZonedDateTime` in `vi.setSystemTime()` - by @Prajwal2246, **Prajwal2246**, **Claude Opus 5.5 (1M context)**, @hi-ogawa and **Codex (GPT-6)** in https://github.com/vitest-dev/vitest/issues/11321 <samp>(f150f)</samp>
- Introduce `--since-last-run` flag - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/11516 <samp>(08bd9)</samp>
- Expose per-retry/repeat attempt result - by @hi-ogawa, **Codex (GPT-6)** and **Claude Opus 5.5 (1M context)** in https://github.com/vitest-dev/vitest/issues/11232 <samp>(21be4)</samp>
- Support fake timers for `node:timers` and `node:timers/promise` - by @hi-ogawa, **OpenCode** and **Codex (GPT-6)** in https://github.com/vitest-dev/vitest/issues/10899 <samp>(fbe97)</samp>
- Allow coverage providers to store data in fs module cache - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/11747 <samp>(54a2b)</samp>
โก Performance & Enhancements (6)
- Reuse fsModuleCache in static collection - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/11622 <samp>(1766c)</samp>
- Cache setup/mock resolves in reused workers - by @hi-ogawa and **Claude Opus 5.5 (1M context)** in https://github.com/vitest-dev/vitest/issues/11760 <samp>(5de10)</samp>
- Don't refetch warm modules in reused runners - by @hi-ogawa and **Claude Opus 5.5 (1M context)** in https://github.com/vitest-dev/vitest/issues/11761 <samp>(4f135)</samp>
- Map only first frame for trace locations - by @hi-ogawa and **Claude Opus 5.5 (1M context)** in https://github.com/vitest-dev/vitest/issues/11613 <samp>(a967d)</samp>
- Disable WebSocketServer's allowSynchronousEvents - by @nstepien in https://github.com/vitest-dev/vitest/issues/11794 <samp>(d4572)</samp>
- Istanbul to use `magic-string`+`rolldown` for instrumentation - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/11648 <samp>(2470b)</samp>
๐ง Bug Fixes & Patches (6)
- Rerun setup files after `--changed` filtering - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/11621 <samp>(3a39c)</samp>
- Return the mock to concurrent imports - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/11623 <samp>(1453b)</samp>
- Don't fail on console log pending at teardown - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/11619 <samp>(a60b8)</samp>
- Reference chai types in every d.ts chunk - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/11618 <samp>(fb150)</samp>
- Detect mock factory cycles that form later - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/11642 <samp>(e9554)</samp>
- Skip fs module cache for typed import.meta.glob - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/11666 <samp>(79501)</samp>
๐ View Raw Release Notes (Original Developer Log)
### ๐ Features
- Add `--last-failed` to run only failed tests - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/11558 [<samp>(82f63)</samp>](https://github.com/vitest-dev/vitest/commit/82f634220)
- Support `Temporal.Instant` and `Temporal.ZonedDateTime` in `vi.setSystemTime()` - by @Prajwal2246, **Prajwal2246**, **Claude Opus 5.5 (1M context)**, @hi-ogawa and **Codex (GPT-6)** in https://github.com/vitest-dev/vitest/issues/11321 [<samp>(f150f)</samp>](https://github.com/vitest-dev/vitest/commit/f150f5108)
- Introduce `--since-last-run` flag - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/11516 [<samp>(08bd9)</samp>](https://github.com/vitest-dev/vitest/commit/08bd93b7e)
- Expose per-retry/repeat attempt result - by @hi-ogawa, **Codex (GPT-6)** and **Claude Opus 5.5 (1M context)** in https://github.com/vitest-dev/vitest/issues/11232 [<samp>(21be4)</samp>](https://github.com/vitest-dev/vitest/commit/21be412ed)
- Support fake timers for `node:timers` and `node:timers/promise` - by @hi-ogawa, **OpenCode** and **Codex (GPT-6)** in https://github.com/vitest-dev/vitest/issues/10899 [<samp>(fbe97)</samp>](https://github.com/vitest-dev/vitest/commit/fbe973cae)
- Allow coverage providers to store data in fs module cache - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/11747 [<samp>(54a2b)</samp>](https://github.com/vitest-dev/vitest/commit/54a2bdb81)
- Interactively review failed snapshots - by @macarie and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/11325 [<samp>(54e5b)</samp>](https://github.com/vitest-dev/vitest/commit/54e5b8a8a)
- **browser**:
- Mock modules through an import map - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/11534 [<samp>(707f8)</samp>](https://github.com/vitest-dev/vitest/commit/707f8adf4)
- Drop experimental label from trace view - by @hi-ogawa and **Claude Opus 5.5 (1M context)** in https://github.com/vitest-dev/vitest/issues/11518 [<samp>(44c3c)</samp>](https://github.com/vitest-dev/vitest/commit/44c3c2fcf)
- Introduce experimental `pointer` API - by @macarie in https://github.com/vitest-dev/vitest/issues/10780 [<samp>(5dc09)</samp>](https://github.com/vitest-dev/vitest/commit/5dc09f0ea)
- Capture aria snapshot in trace view - by @hi-ogawa and **Claude Opus 5.5 (1M context)** in https://github.com/vitest-dev/vitest/issues/11492 [<samp>(0cc39)</samp>](https://github.com/vitest-dev/vitest/commit/0cc39fb90)
- Show trace steps timeline on terminal on test failure - by @hi-ogawa and **Claude Opus 5.5 (1M context)** in https://github.com/vitest-dev/vitest/issues/11594 [<samp>(973dc)</samp>](https://github.com/vitest-dev/vitest/commit/973dc84be)
- Add failure-only trace view mode - by @hi-ogawa and **Claude Opus 5.5 (1M context)** in https://github.com/vitest-dev/vitest/issues/11612 [<samp>(d5d7d)</samp>](https://github.com/vitest-dev/vitest/commit/d5d7d2f06)
- Enable failure-only trace view by default - by @hi-ogawa and **Claude Opus 5.5 (1M context)** in https://github.com/vitest-dev/vitest/issues/11766 [<samp>(f37b6)</samp>](https://github.com/vitest-dev/vitest/commit/f37b6b707)
- **coverage**:
- V8 to support `ignoreNode` option - by @erickserra and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/11688 [<samp>(e02db)</samp>](https://github.com/vitest-dev/vitest/commit/e02db0869)
- **experimental**:
- Add trace timeline for node - by @hi-ogawa and **Claude Opus 5.5 (1M context)** in https://github.com/vitest-dev/vitest/issues/11753 [<samp>(4e985)</samp>](https://github.com/vitest-dev/vitest/commit/4e9855151)
- Add message option to vi.waitFor and vi.waitUntil - by @hi-ogawa and **Claude Opus 5.5 (1M context)** in https://github.com/vitest-dev/vitest/issues/11754 [<samp>(fd145)</samp>](https://github.com/vitest-dev/vitest/commit/fd145d8d6)
### ๐ Bug Fixes
- Rerun setup files after `--changed` filtering - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/11621 [<samp>(3a39c)</samp>](https://github.com/vitest-dev/vitest/commit/3a39cfc54)
- Return the mock to concurrent imports - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/11623 [<samp>(1453b)</samp>](https://github.com/vitest-dev/vitest/commit/1453ba690)
- Don't fail on console log pending at teardown - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/11619 [<samp>(a60b8)</samp>](https://github.com/vitest-dev/vitest/commit/a60b8e132)
- Reference chai types in every d.ts chunk - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/11618 [<samp>(fb150)</samp>](https://github.com/vitest-dev/vitest/commit/fb150158b)
- Detect mock factory cycles that form later - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/11642 [<samp>(e9554)</samp>](https://github.com/vitest-dev/vitest/commit/e95541584)
- Skip fs module cache for typed import.meta.glob - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/11666 [<samp>(79501)</samp>](https://github.com/vitest-dev/vitest/commit/79501f3a1)
- Run tests that import a deleted file - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/11669 [<samp>(80aa1)</samp>](https://github.com/vitest-dev/vitest/commit/80aa13dd6)
- Keep syntax highlighting in code frames - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/11705 [<samp>(d39f5)</samp>](https://github.com/vitest-dev/vitest/commit/d39f51548)
- Respect CLI filters when prewarming browsers - by @sheremet-va and **Benjamin Tang** in https://github.com/vitest-dev/vitest/issues/11706 [<samp>(10947)</samp>](https://github.com/vitest-dev/vitest/commit/109474892)
- Read cached source as utf-8 - by @juan-fernandez in https://github.com/vitest-dev/vitest/issues/11682 and https://github.com/vitest-dev/vitest/issues/11709 [<samp>(867a5)</samp>](https://github.com/vitest-dev/vitest/commit/867a5e41c)
- Inherit `watch` from the root config in projects - by @nstepien and **Claude Opus 5.5 (1M context)** in https://github.com/vitest-dev/vitest/issues/11724 [<samp>(77c12)</samp>](https://github.com/vitest-dev/vitest/commit/77c122c6b)
- Prefix expect.poll message to all errors - by @hi-ogawa and **Claude Opus 5.5 (1M context)** in https://github.com/vitest-dev/vitest/issues/11756 [<samp>(cab58)</samp>](https://github.com/vitest-dev/vitest/commit/cab5877db)
- Support api.port 0 - by @hi-ogawa and **Claude Opus 5.5 (1M context)** in https://github.com/vitest-dev/vitest/issues/11641 [<samp>(3667c)</samp>](https://github.com/vitest-dev/vitest/commit/3667cf8a3)
- Show attempts in test error logs of retried tests - by @hi-ogawa and **Claude Opus 5.5 (1M context)** in https://github.com/vitest-dev/vitest/issues/11696 [<samp>(77a94)</samp>](https://github.com/vitest-dev/vitest/commit/77a94328a)
- Preserve rootDir in project paths - by @btea in https://github.com/vitest-dev/vitest/issues/11816 [<samp>(bf96d)</samp>](https://github.com/vitest-dev/vitest/commit/bf96dad6a)
- **browser**:
- Change default port to 23315 - by @hi-ogawa and **Claude Opus 5.5 (1M context)** in https://github.com/vitest-dev/vitest/issues/11640 [<samp>(a2ec4)</samp>](https://github.com/vitest-dev/vitest/commit/a2ec4166d)
- Advance fake timers in actions and expect.element - by @julienw, @hi-ogawa and **Claude Opus 5.5 (1M context)** in https://github.com/vitest-dev/vitest/issues/11242 [<samp>(68190)</samp>](https://github.com/vitest-dev/vitest/commit/6819008ce)
- Drop trace view warning without html reporter - by @hi-ogawa and **Claude Opus 5.5 (1M context)** in https://github.com/vitest-dev/vitest/issues/11665 [<samp>(e6407)</samp>](https://github.com/vitest-dev/vitest/commit/e64075ef5)
- Detect shared chunks via the optimizer - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/11661 [<samp>(e2e9c)</samp>](https://github.com/vitest-dev/vitest/commit/e2e9c64b0)
- Clear screenshot stability timeout - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/11659 [<samp>(fbe37)</samp>](https://github.com/vitest-dev/vitest/commit/fbe37c083)
- Measure prepare duration with one clock - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/11667 [<samp>(a3ed4)</samp>](https://github.com/vitest-dev/vitest/commit/a3ed42a14)
- Keep failure screenshot per attempt - by @hi-ogawa and **Claude Opus 5.5 (1M context)** in https://github.com/vitest-dev/vitest/issues/11694 [<samp>(a5022)</samp>](https://github.com/vitest-dev/vitest/commit/a5022655d)
- Print trace timeline of each attempt - by @hi-ogawa and **Claude Opus 5.5 (1M context)** in https://github.com/vitest-dev/vitest/issues/11695 [<samp>(27229)</samp>](https://github.com/vitest-dev/vitest/commit/272296e5d)
- Don't hang in `page.viewport()` - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/11738 [<samp>(49ff4)</samp>](https://github.com/vitest-dev/vitest/commit/49ff4420c)
- Skip trace entries after their attempt ended - by @hi-ogawa and **Claude Opus 5.5 (1M context)** in https://github.com/vitest-dev/vitest/issues/11771 [<samp>(7a56f)</samp>](https://github.com/vitest-dev/vitest/commit/7a56fea53)
- Focus the iframe before clicking in playwright - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/11798 [<samp>(eb20a)</samp>](https://github.com/vitest-dev/vitest/commit/eb20a3af1)
- Fail the run when a tester cannot connect - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/11802 [<samp>(605bf)</samp>](https://github.com/vitest-dev/vitest/commit/605bf22b7)
- Treat edge as chromium in toHaveStyle - by @aliamanatali in https://github.com/vitest-dev/vitest/issues/11813 [<samp>(f4dd9)</samp>](https://github.com/vitest-dev/vitest/commit/f4dd97652)
- **cache**:
- Handle concurrent cache clearing - by @7rulnik in https://github.com/vitest-dev/vitest/issues/11697 [<samp>(09076)</samp>](https://github.com/vitest-dev/vitest/commit/090766a42)
- Key module cache on the deps optimizer - by @MO2k4 and **Martin Oehlert** in https://github.com/vitest-dev/vitest/issues/11775 [<samp>(52485)</samp>](https://github.com/vitest-dev/vitest/commit/524856ed0)
- Do not fail when the cache dir is unwritable - by @ezefernandezyf in https://github.com/vitest-dev/vitest/issues/11781 [<samp>(274ab)</samp>](https://github.com/vitest-dev/vitest/commit/274ab70c4)
- **cli**:
- Use camelCase for sinceLastRun help - by @fengmk2 in https://github.com/vitest-dev/vitest/issues/11707 [<samp>(5c674)</samp>](https://github.com/vitest-dev/vitest/commit/5c674859b)
- **coverage**:
- V8 `autoAttachSubprocess` to use `.tmp` directory - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/11632 [<samp>(de5af)</samp>](https://github.com/vitest-dev/vitest/commit/de5af2939)
- V8 to ignore Vite's generated CJS namespace import helper - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/11676 [<samp>(5901f)</samp>](https://github.com/vitest-dev/vitest/commit/5901fb458)
- **deps**:
- Update all non-major dependencies - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/11637 [<samp>(2b18e)</samp>](https://github.com/vitest-dev/vitest/commit/2b18e3724)
- **expect**:
- Keep soft .resolves/.rejects error location - by @hi-ogawa and **Claude Opus 5.5 (1M context)** in https://github.com/vitest-dev/vitest/issues/11792 [<samp>(42770)</samp>](https://github.com/vitest-dev/vitest/commit/42770759f)
- **mocker**:
- Don't change the original prototype chain - by @sheremet-va and **Max Schwenk** in https://github.com/vitest-dev/vitest/issues/11737 [<samp>(cca42)</samp>](https://github.com/vitest-dev/vitest/commit/cca423de9)
- Use root __mocks__ for linked packages - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7708 and https://github.com/vitest-dev/vitest/issues/11739 [<samp>(810ec)</samp>](https://github.com/vitest-dev/vitest/commit/810ec66e1)
- **runner**:
- Don't drop throttled task updates - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/11795 [<samp>(8e837)</samp>](https://github.com/vitest-dev/vitest/commit/8e837b87a)
- **ui**:
- Escape search text in explorer highlight - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/11672 [<samp>(3c6d6)</samp>](https://github.com/vitest-dev/vitest/commit/3c6d6dd24)
- Fix html reporter crash when --bail cancels files - by @hi-ogawa and **Claude Opus 5.5 (1M context)** in https://github.com/vitest-dev/vitest/issues/11693 [<samp>(36a5f)</samp>](https://github.com/vitest-dev/vitest/commit/36a5fa132)
- Fix quirks mode in trace view replay - by @hi-ogawa and **Claude Opus 5.5 (1M context)** in https://github.com/vitest-dev/vitest/issues/11744 [<samp>(b9b73)</samp>](https://github.com/vitest-dev/vitest/commit/b9b73596c)
- Let coverage report follow UI color scheme - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/11765 [<samp>(59c2d)</samp>](https://github.com/vitest-dev/vitest/commit/59c2dd3a7)
- Open trace view only for tests with a trace - by @hi-ogawa and **Claude Opus 5.5 (1M context)** in https://github.com/vitest-dev/vitest/issues/11770 [<samp>(c022d)</samp>](https://github.com/vitest-dev/vitest/commit/c022d630f)
- **vm**:
- Strip hashbang before compiling CommonJS dependencies - by @cwoebker in https://github.com/vitest-dev/vitest/issues/11731 [<samp>(1a77c)</samp>](https://github.com/vitest-dev/vitest/commit/1a77c6cbc)
- Keep node globals after teardown - by @francesco-agnoletto in https://github.com/vitest-dev/vitest/issues/11380 and https://github.com/vitest-dev/vitest/issues/11681 [<samp>(a57b4)</samp>](https://github.com/vitest-dev/vitest/commit/a57b4d8a3)
- Reset fake timers after each test file - by @francesco-agnoletto in https://github.com/vitest-dev/vitest/issues/11679 and https://github.com/vitest-dev/vitest/issues/11779 [<samp>(78c46)</samp>](https://github.com/vitest-dev/vitest/commit/78c46acdf)
- Keep assignable accessor globals writable in node environment - by @MO2k4 and **Martin Oehlert** in https://github.com/vitest-dev/vitest/issues/11834 [<samp>(a5ec3)</samp>](https://github.com/vitest-dev/vitest/commit/a5ec316f8)
### ๐ Performance
- Reuse fsModuleCache in static collection - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/11622 [<samp>(1766c)</samp>](https://github.com/vitest-dev/vitest/commit/1766c257d)
- Cache setup/mock resolves in reused workers - by @hi-ogawa and **Claude Opus 5.5 (1M context)** in https://github.com/vitest-dev/vitest/issues/11760 [<samp>(5de10)</samp>](https://github.com/vitest-dev/vitest/commit/5de103a9c)
- Don't refetch warm modules in reused runners - by @hi-ogawa and **Claude Opus 5.5 (1M context)** in https://github.com/vitest-dev/vitest/issues/11761 [<samp>(4f135)</samp>](https://github.com/vitest-dev/vitest/commit/4f135cc1d)
- **browser**:
- Map only first frame for trace locations - by @hi-ogawa and **Claude Opus 5.5 (1M context)** in https://github.com/vitest-dev/vitest/issues/11613 [<samp>(a967d)</samp>](https://github.com/vitest-dev/vitest/commit/a967d8f39)
- Disable WebSocketServer's allowSynchronousEvents - by @nstepien in https://github.com/vitest-dev/vitest/issues/11794 [<samp>(d4572)</samp>](https://github.com/vitest-dev/vitest/commit/d4572032f)
- **coverage**:
- Istanbul to use `magic-string`+`rolldown` for instrumentation - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/11648 [<samp>(2470b)</samp>](https://github.com/vitest-dev/vitest/commit/2470befec)
- Istanbul to collect uncovered files in `Promise.all` - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/11713 [<samp>(f1092)</samp>](https://github.com/vitest-dev/vitest/commit/f1092b34b)
- Istanbul to not store input source maps in coverage data - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/11686 [<samp>(2debb)</samp>](https://github.com/vitest-dev/vitest/commit/2debb4e51)
- **expect**:
- Compare typed arrays in one loop - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/11658 [<samp>(908eb)</samp>](https://github.com/vitest-dev/vitest/commit/908eb573f)
##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v5.0.5...v5.1.0)
โ Older Version
Vitest v5.1.0-beta.1
Newer Version โ
Latest Tracked Version โ