Repository navigation
Releases
Releases ยท vitest-dev/vitest
v5.1.0
Immutable
release. Only release title and notes can be modified.
ย ย ย ๐ Features
- Add
--last-failedto run only failed tests ย -ย by @sheremet-va in #11558 (82f63) - Support
Temporal.InstantandTemporal.ZonedDateTimeinvi.setSystemTime()ย -ย by @Prajwal2246, Prajwal2246, Claude Opus 5.5 (1M context), @hi-ogawa and Codex (GPT-6) in #11321 (f150f) - Introduce
--since-last-runflag ย -ย by @sheremet-va in #11516 (08bd9) - Expose per-retry/repeat attempt result ย -ย by @hi-ogawa, Codex (GPT-6) and Claude Opus 5.5 (1M context) in #11232 (21be4)
- Support fake timers for
node:timersandnode:timers/promiseย -ย by @hi-ogawa, OpenCode and Codex (GPT-6) in #10899 (fbe97) - Allow coverage providers to store data in fs module cache ย -ย by @AriPerkkio in #11747 (54a2b)
- Interactively review failed snapshots ย -ย by @macarie and @hi-ogawa in #11325 (54e5b)
- browser:
- Mock modules through an import map ย -ย by @sheremet-va in #11534 (707f8)
- Drop experimental label from trace view ย -ย by @hi-ogawa and Claude Opus 5.5 (1M context) in #11518 (44c3c)
- Introduce experimental
pointerAPI ย -ย by @macarie in #10780 (5dc09) - Capture aria snapshot in trace view ย -ย by @hi-ogawa and Claude Opus 5.5 (1M context) in #11492 (0cc39)
- Show trace steps timeline on terminal on test failure ย -ย by @hi-ogawa and Claude Opus 5.5 (1M context) in #11594 (973dc)
- Add failure-only trace view mode ย -ย by @hi-ogawa and Claude Opus 5.5 (1M context) in #11612 (d5d7d)
- Enable failure-only trace view by default ย -ย by @hi-ogawa and Claude Opus 5.5 (1M context) in #11766 (f37b6)
- coverage:
- V8 to support
ignoreNodeoption ย -ย by @erickserra and @AriPerkkio in #11688 (e02db)
- V8 to support
- experimental:
ย ย ย ๐ Bug Fixes
- Rerun setup files after
--changedfiltering ย -ย by @sheremet-va in #11621 (3a39c) - Return the mock to concurrent imports ย -ย by @sheremet-va in #11623 (1453b)
- Don't fail on console log pending at teardown ย -ย by @sheremet-va in #11619 (a60b8)
- Reference chai types in every d.ts chunk ย -ย by @sheremet-va in #11618 (fb150)
- Detect mock factory cycles that form later ย -ย by @sheremet-va in #11642 (e9554)
- Skip fs module cache for typed import.meta.glob ย -ย by @sheremet-va in #11666 (79501)
- Run tests that import a deleted file ย -ย by @sheremet-va in #11669 (80aa1)
- Keep syntax highlighting in code frames ย -ย by @sheremet-va in #11705 (d39f5)
- Respect CLI filters when prewarming browsers ย -ย by @sheremet-va and Benjamin Tang in #11706 (10947)
- Read cached source as utf-8 ย -ย by @juan-fernandez in #11682 and #11709 (867a5)
- Inherit
watchfrom the root config in projects ย -ย by @nstepien and Claude Opus 5.5 (1M context) in #11724 (77c12) - Prefix expect.poll message to all errors ย -ย by @hi-ogawa and Claude Opus 5.5 (1M context) in #11756 (cab58)
- Support api.port 0 ย -ย by @hi-ogawa and Claude Opus 5.5 (1M context) in #11641 (3667c)
- Show attempts in test error logs of retried tests ย -ย by @hi-ogawa and Claude Opus 5.5 (1M context) in #11696 (77a94)
- Preserve rootDir in project paths ย -ย by @btea in #11816 (bf96d)
- browser:
- Change default port to 23315 ย -ย by @hi-ogawa and Claude Opus 5.5 (1M context) in #11640 (a2ec4)
- Advance fake timers in actions and expect.element ย -ย by @julienw, @hi-ogawa and Claude Opus 5.5 (1M context) in #11242 (68190)
- Drop trace view warning without html reporter ย -ย by @hi-ogawa and Claude Opus 5.5 (1M context) in #11665 (e6407)
- Detect shared chunks via the optimizer ย -ย by @sheremet-va in #11661 (e2e9c)
- Clear screenshot stability timeout ย -ย by @sheremet-va in #11659 (fbe37)
- Measure prepare duration with one clock ย -ย by @sheremet-va in #11667 (a3ed4)
- Keep failure screenshot per attempt ย -ย by @hi-ogawa and Claude Opus 5.5 (1M context) in #11694 (a5022)
- Print trace timeline of each attempt ย -ย by @hi-ogawa and Claude Opus 5.5 (1M context) in #11695 (27229)
- Don't hang in
page.viewport()ย -ย by @sheremet-va in #11738 (49ff4) - Skip trace entries after their attempt ended ย -ย by @hi-ogawa and Claude Opus 5.5 (1M context) in #11771 (7a56f)
- Focus the iframe before clicking in playwright ย -ย by @sheremet-va in #11798 (eb20a)
- Fail the run when a tester cannot connect ย -ย by @sheremet-va in #11802 [(605bf)](https://gith...
v5.1.0-beta.1
Immutable
release. Only release title and notes can be modified.
ย ย ย ๐ Features
- Add
--last-failedto run only failed tests ย -ย by @sheremet-va in #11558 (82f63) - Support
Temporal.InstantandTemporal.ZonedDateTimeinvi.setSystemTime()ย -ย by @Prajwal2246, Prajwal2246, Claude Opus 5.5, Hiroshi Ogawa and Codex (GPT-6) in #11321 (f150f) - Introduce
--since-last-runflag ย -ย by @sheremet-va in #11516 (08bd9) - Expose per-retry/repeat attempt result ย -ย by @hi-ogawa, Hiroshi Ogawa, Codex (GPT-6) and Claude Opus 5.5 in #11232 (21be4)
- Support fake timers for
node:timersandnode:timers/promiseย -ย by @hi-ogawa, Hiroshi Ogawa, OpenCode and Codex (GPT-6) in #10899 (fbe97) - browser:
- Mock modules through an import map ย -ย by @sheremet-va in #11534 (707f8)
- Drop experimental label from trace view ย -ย by @hi-ogawa, Hiroshi Ogawa and Claude Opus 5.5 in #11518 (44c3c)
- Introduce experimental
pointerAPI ย -ย by @macarie in #10780 (5dc09) - Capture aria snapshot in trace view ย -ย by @hi-ogawa, Hiroshi Ogawa and Claude Opus 5.5 in #11492 (0cc39)
ย ย ย ๐ Bug Fixes
- Rerun setup files after
--changedfiltering ย -ย by @sheremet-va in #11621 (3a39c) - Return the mock to concurrent imports ย -ย by @sheremet-va in #11623 (1453b)
- Don't fail on console log pending at teardown ย -ย by @sheremet-va in #11619 (a60b8)
- Reference chai types in every d.ts chunk ย -ย by @sheremet-va in #11618 (fb150)
- browser:
- coverage:
- V8
autoAttachSubprocessto use.tmpdirectory ย -ย by @AriPerkkio in #11632 (de5af)
- V8
- deps:
- Update all non-major dependencies ย -ย by @sheremet-va in #11637 (2b18e)
ย ย ย ๐ Performance
- Reuse fsModuleCache in static collection ย -ย by @sheremet-va in #11622 (1766c)
- browser: Map only first frame for trace locations ย -ย by @hi-ogawa, Hiroshi Ogawa and Claude Opus 5.5 in #11613 (a967d)
ย ย ย ย View changes on GitHub
v5.0.5
Immutable
release. Only release title and notes can be modified.
ย ย ย ๐ Bug Fixes
- Keep vite default
fs.denywith api token file ย -ย by @hi-ogawa, Hiroshi Ogawa and Claude Opus 5.5 in #11578 (28dc1) - Handle quoted file names in
--changedย -ย by @sheremet-va in #11583 (14921) - Add
datato theimport.meta.hotstub ย -ย by @sheremet-va in #11590 (3a828) - Set
skipinskipIf, ignoreundefinedoptions ย -ย by @sheremet-va in #11591 (d523a) - Skip builtin loading in async leak detector ย -ย by @sheremet-va in #11598 (fe86a)
- Keep the import frame in native loader errors ย -ย by @sheremet-va in #11599 (9697b)
- Run hook cleanups when a later hook fails ย -ย by @sheremet-va in #11605 (6c5a4)
- Release mocks of finished test files ย -ย by @sheremet-va in #11607 (e9c3d)
- Abort all running tests on cancel ย -ย by @sheremet-va in #11606 (6621a)
- browser:
- Ignore synthetic pagehide events ย -ย by @sheremet-va in #11582 (ca081)
- Run plugin buildStart on server creation ย -ย by @sheremet-va in #11593 (ea611)
- Drop late connections of closed sessions ย -ย by @sheremet-va in #11600 (f161e)
- Wait 30s for the browser to close ย -ย by @sheremet-va in #11601 (6498b)
- Run global setup once with instances ย -ย by @sheremet-va in #11596 (8dd67)
- reporter:
- End reason
'failed'on worker crash ย -ย by @AriPerkkio in #11568 (6ae8e)
- End reason
ย ย ย ย View changes on GitHub
v4.1.12
Immutable
release. Only release title and notes can be modified.
ย ย ย ๐ Bug Fixes
- mocker: Harden manual and redirect mocks [backport to v4] ย -ย by @sheremet-va in #11580 (b8253)
ย ย ย ย View changes on GitHub
v5.0.4
Immutable
release. Only release title and notes can be modified.
ย ย ย ๐ Features
- experimental:
- Tag cache directories with CACHEDIR.TAG ย -ย by @lifeiscontent in #11461 (a8ea3)
- Support
test.ui.themeoption ย -ย by @sheremet-va in #11499 (1da66) - Highlight selector multiple matches in trace view ย -ย by @hi-ogawa, Hiroshi Ogawa and Claude Opus 5.5 in #11489 (5abba)
- Print how many tests were affected and a total when running
--changedย -ย by @sheremet-va in #11424 (a2336) - Add an option to cache dependencies instead of statically parsing them ย -ย by @sheremet-va in #11515 (c0601)
- Add fit and zoom controls to trace viewer ย -ย by @hi-ogawa, Hiroshi Ogawa and Claude Opus 5.5 in #11490 (f5dd9)
ย ย ย ๐ Bug Fixes
- Fail the run on git and location filter errors ย -ย by @sheremet-va in #11430 (30d03)
- Enable fsModuleCache by default ย -ย by @sheremet-va in #11435 (ad208)
- Track project files and mocks with --changed ย -ย by @sheremet-va in #11432 (b0f2b)
- Refactor caching, fix
:in project and change the shape ofresultscache ย -ย by @sheremet-va in #11453 (9673c) - Keep full
$string values whentaskTitleValueFormatTruncateis 0 ย -ย by @hi-ogawa, Hiroshi Ogawa and Claude Opus 5.5 in #11485 (4f7e1) - Resolve node builtins in client environments ย -ย by @sheremet-va in #11417 (56b31)
- Fix module graph builtin externals after #11421 ย -ย by @hi-ogawa, Hiroshi Ogawa and Claude Opus 5.5 in #11491 and #11421 (008e1)
- Wrap module mocks during in-source testing ย -ย by @sheremet-va in #11505 (36d19)
- Handle line endings in snapshot ย -ย by @sheremet-va in #11522 (4c468)
- Respect root in projects ย -ย by @sheremet-va in #11521 (26642)
- Resolve mocks in directories with spaces ย -ย by @sheremet-va in #11539 (caaef)
- api:
- Publish the api token atomically ย -ย by @umairnawaz333 in #11323 (6f990)
- browser:
- Close the mock route interception race ย -ย by @cplieger and @sheremet-va in #8339 and #11083 (d6620)
- Allow toHaveTextContent without arguments ย -ย by @nomadical in #11425 (8ebcf)
- Apply API options without browser config ย -ย by @sheremet-va in #10852 (ad055)
- Preserve undefined command arguments ย -ย by @sheremet-va and @AriPerkkio in #11497 (1576d)
- Wait for setup mocks before importing a test file ย -ย by @kasperpeulen in #11520 (b61d1)
- Avoid extra scroll outside the iframe ย -ย by @sheremet-va in #11523 (662e8)
- Run browser instances as workers ย -ย by @sheremet-va in #11525 (bf04b)
โ ๏ธ This can degrade performance if you have a custommaxWorkerssetting. Previously, it was applied incorrectly and could lead to Vitest using too many resources. For example, a lower number would still open too many browsers. Fixing it means Vitest opens less instances by default now.
- Open one cdp session per tester ย -ย by @sheremet-va in #11542 (69e63)
- Clean up unmocked and pending mocks ย -ย by @sheremet-va in #11537 (5c955)
- coverage:
- V8 browser memory leak between test files ย -ย by @AriPerkkio in #11466 (2297d)
allowExternalfails to include uncovered files ย -ย by @AriPerkkio in #11513 (4ef00)- Filenames containing brackets incorrectly showing as uncovered ย -ย by @AriPerkkio in #11531 (0fa80)
- Istanbul coverage wrong when module transform warmups ย -ย by @AriPerkkio in #11529 (9f61d)
- deps:
- Update all non-major dependencies ย -ย by @sheremet-va in #11167 (c74e0)
- expect:
- mocker:
- Fix native loader mocking edge cases ย -ย by @sheremet-va in #11540 (cd423)
- pretty-format:
- reporters:
- Junit to strip ANSI sequences from all XML attributes ย -ย by @meganemura and Claude Opus 5.5 in #11407 (e1a73)
- runner:
- Don't cache failed fixture setups ย -ย by @hamed-bavar in #11237 and #11238 (4ee66)
- typecheck:
- Use typescript pool in toTestSpecification ย -ย by @sheremet-va in #11451 (5f273)
- ui:
- Remove duplicate browser-open call opening two tabs ย -ย by @feastyr69 in #11356 and #11358 (d7e13)
- Simplify explorer filtering + fix nested tests when search matches a suite ย -ย by @hi-ogawa, Hiroshi Ogawa, Codex and Claude Opus 5.5 in #11262 (a627b)
- Store module graph once per environment ย -ย by @hi-ogawa, Hiroshi Ogawa and Claude Opus 5.5 in #11421 [(af903)](af903c65e...
v5.0.3
Immutable
release. Only release title and notes can be modified.
ย ย ย ๐ Bug Fixes
- Isolate
result.statusbetweenrepeatsruns ย -ย by @hi-ogawa, Hiroshi Ogawa and Codex (GPT-6) in #11218 (5dbeb) - Don't print an interceptor warning in browser mode ย -ย by @sheremet-va in #11377 (15cc0)
- Don't retry when
test.failsexpectedly failed ย -ย by @hi-ogawa, Hiroshi Ogawa and Codex (GPT-6) in #11219 (b2458) - Scope cache key generators to projects ย -ย by @ecoyoung in #11281 and #11301 (92ba7)
- browser:
- Delay server
listenuntil tests start running ย -ย by @sheremet-va in #11366 (7d8ed) - Check mock path boundaries ย -ย by @saryn17, Ryosei Sato and @sheremet-va in #11361 and #11362 (1c388)
- Keep config of browser-consumed environments ย -ย by @kasperpeulen and Claude in #11378 (aafc0)
- Ignore page crash while cancelling ย -ย by @sheremet-va in #11386 (7c367)
toMatchScreenshotuses wrong reference on retried tests ย -ย by @macarie in #11393 (c22ab)
- Delay server
- cache:
- Revalidate imports of cached modules ย -ย by @sheremet-va in #11381 (38f98)
- deps:
- Pin
why-is-node-runningto3.2.1to avoid users running intoERR_PNPM_TRUST_DOWNGRADEย -ย by @AriPerkkio in #11403 (f6c9a)
- Pin
- expect:
- jsdom:
- Support Blob on jsdom 30.1 ย -ย by @sheremet-va in #11379 (6c49b)
- pool:
- ui:
- vitest:
- Remove root temp dir on close ย -ย by @abhinav-phi in #11248 (7c711)
- vm:
ย ย ย ย View changes on GitHub
v5.0.2
Immutable
release. Only release title and notes can be modified.
ย ย ย ๐ Bug Fixes
- Bind
processin case global is overwritten ย -ย by @AriPerkkio in #11343 (0b792) - detect-async-leaks:
- Ignore
process.stdiohandles ย -ย by @AriPerkkio in #11333 (0fd6b)
- Ignore
- expect:
- Fix
toMatchObjectwith asymmetric matchers ย -ย by @ShreeBohara, Claude Opus 5, @hi-ogawa, Hiroshi Ogawa and Codex (GPT-5) in #11100 (42523)
- Fix
- jsdom:
- Fix
RequestwithBlobbody on jsdom 28+ ย -ย by @harshit-d3v in #11295 (d1c3e)
- Fix
- reporter:
agentto respect--silentย -ย by @Raj4478 and @AriPerkkio in #11271 (5b95e)
- reporters:
- spy:
- ui:
ย ย ย ย View changes on GitHub
v5.0.1
Immutable
release. Only release title and notes can be modified.
ย ย ย ๐ Features
- ui:
ย ย ย ๐ Bug Fixes
- Exit 1 when vitest list fails collection ย -ย by @hamed-bavar in #11145 and #11146 (6108b)
- Keep parse error details in static collection ย -ย by @hamed-bavar in #11150 and #11151 (7c818)
- Avoid recursive prototype in automocking ย -ย by @sheremet-va in #11195 (99fc5)
- Prevent false Vitest import resolution ย -ย by @sheremet-va in #11196 (b426c)
- Keep metadata file when clearing the cache ย -ย by @sheremet-va in #11199 (73614)
- Correct typos in error message and comments ย -ย by @shinji00222 and Shinji in #11187 (115c3)
- Resolve ResolvedConfig exactOptionalPropertyTypes errors ย -ย by @LukeAbby in #11175 (498fb)
- Share the server on self-referencing
extendsย -ย by @sheremet-va in #11034 (23dda) - Warn when deprecated
deps.optimizer.webis used ย -ย by @im10furry in #11214 (2ce29) - browser:
- Avoid double quotes in
config.defineย -ย by @sheremet-va in #11198 (972e2)
- Avoid double quotes in
- doctor:
- Measure vm pools for custom environments ย -ย by @sheremet-va in #11212 (91ab1)
- expect:
- Correct return value in
toMatchAriaSnapshotย -ย by @sheremet-va in #11208 (c119b)
- Correct return value in
- fakeTimers:
- snapshot:
- Report obsolete keys next to skipped tests ย -ย by @hamed-bavar, Hiroshi Ogawa and OpenCode (gpt-5.6-sol) in #11157 and #11158 (17e2b)
- types:
- Make public declarations self-contained ย -ย by @ZoeySigel in #11141 (45546)
- ui:
- utils:
ย ย ย ย View changes on GitHub
v5.0.0
Immutable
release. Only release title and notes can be modified.
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
- Replace
loupe.inspectwith pretty-format ย -ย by @hi-ogawa, Claude Opus 5 (1M context) and OpenAI Codex in #9609 (3f802) - Remove quotes from string values in
test.for/eachtitle$variable (take 2) ย -ย by @hi-ogawa in #10170 (04d37) - Default
attachmentsDirfrom.vitest-attachements/to.vitest/attachments/ย -ย by @MdSadiqMd in #10186 (1ba73) - Remove
sequentialtest/suite options in favor ofconcurrentย -ย by @hi-ogawa and OpenAI Codex in #10198 (9229f) - Represent locator as an object instead of a string ย -ย by @sheremet-va in #10212 (80f07)
- Inline
expectpackage ย -ย by @sheremet-va in #10221 (ad162) - Remove deprecated entry points ย -ย by @sheremet-va in #10222 (994c6)
- Require Node.js 22 and Vite 6.4 ย -ย by @sheremet-va in #10178 (38762)
- Fail
expect.pollwhen function didn't resolve in time ย -ย by @hi-ogawa and OpenAI Codex in #10233 (4df04) - Throw an error if hoistable methods are outside the top level scope ย -ย by @sheremet-va in #10460 (d0b4f)
toHaveTextContentis strict, addtoMatchTextContentas alternative ย -ย by @sheremet-va in #10473 (18f30)- Don't lookup config file from ancestor directories ย -ย by @hi-ogawa, OpenAI Codex and Hiroshi Ogawa in #10428 (945d9)
- Inline
@vitest/runnerpackage, do not publish it anymore ย -ย by @sheremet-va in #10511 (6d6e4) - Allow mutating happy-dom/jsdom window object ย -ย by @hi-ogawa, Hiroshi Ogawa and OpenAI Codex in #10373 (206e8)
- Expose
concurrencyId/workerIdon TestModule's diagnostics, make id 1-based ย -ย by @sheremet-va in #10516 (bdd98) - Add
screenshotDirectoryconfig tobrowser.expect.toMatchScreenshotย -ย by @macarie in #10592 (a60de) - Update
@sinonjs/fake-timersand support mockingTemporalย -ย by @hi-ogawa, Hiroshi Ogawa and OpenCode (gpt-5.6-sol) in #10654 (f8b15) - Remove webdriverio package ย -ย by @sheremet-va in #10675 (5fed6)
- Clear mocks by default before each test ย -ย by @sheremet-va in #10613 (0f646)
- Don't emit localStorage warnings on Node 26, fail gracefully when worker fails to start ย -ย by @sheremet-va in #10293 (334ed)
- Separate config resolution from the server creation ย -ย by @sheremet-va in #10554 (1c0ec)
- Inline projects extend the root config by default ย -ย by @sheremet-va in #10750 (fec00)
- Enable mocking Temporal without fake timers ย -ย by @fabon-f, Hiroshi Ogawa and OpenCode (gpt-5.6-sol) in #10757 (ac2d4)
- Support nested projects ย -ย by @sheremet-va in #10846 (ec367)
- Use
>as separator in-t, calculateonlyonce ย -ย by @sheremet-va in #10686 (a0b20) - Fail the test when an asynchronous assertion is not awaited ย -ย by @sheremet-va in #10868 (86d4a)
- Share the Vite server between inline projects ย -ย by @sheremet-va in #10848 (d87c9)
- Parse files statically in vitest list by default ย -ย by @sheremet-va in #11088 (51e94)
- benchmark:
- Rewrite the public API ย -ย by @sheremet-va in #10113 (19f6e)
- browser:
- Iframe scale ย -ย by @macarie in #9745 (b6398)
- Enable
locators.exactby default ย -ย by @sheremet-va in #10430 (e2032) - Require
sessionIdfor orchestrator html request ย -ย by @hi-ogawa, Hiroshi Ogawa and OpenAI Codex in #10522 (79b7d) - Save failure screenshots in
attachmentsDirย -ย by @macarie in #10917 (3b5bb)
- coverage:
include/excludeglobs too eager ย -ย by @AriPerkkio in #9818 (edacb)- Allow
thresholds.perFileto accept an object ย -ย by @vladlenskiy and @AriPerkkio in #10190 (13b78)
- expect:
- mocker:
- reporters:
blobreporter and--merge-reportsdefault to.vitest/blob/ย -ย by @AriPerkkio in #10232 (d22b0)- Write json and junit reporter output files to
.vitestby default ย -ย by @hi-ogawa, Hiroshi Ogawa, OpenCode (gpt-5.6-sol) and @AriPerkkio in #10621 (58577)
- spy:
- Preserve class mock prototype methods on instances ย -ย by @sheremet-va in #10910 (6093d)
- types:
- Add better promise support in expects and matchers ย -ย by @samchungy and @sheremet-va in #8266 (41f55)
- ui:
v5.0.0-rc.4
Immutable
release. Only release title and notes can be modified.
ย ย ย ๐จ Breaking Changes
- Parse files statically in vitest list by default ย -ย by @sheremet-va in #11088 (51e94)
ย ย ย ๐ Features
- Promote clearCache out of experimental ย -ย by @sheremet-va in #11086 (d4fe1)
- ui: Add link to open playwright trace ย -ย by @hi-ogawa, Hiroshi Ogawa and OpenCode (gpt-5.6-sol) in #11059 (58f02)
ย ย ย ๐ Bug Fixes
- Don't duplicte
oxc.targetif user provides a custom array ย -ย by @sheremet-va in #11095 (848d7) - Propagate --maxWorkers to projects ย -ย by @Gaurav1112 in #11102 (2122f)
- browser: Report the action error when a task times out ย -ย by @sheremet-va in #11101 (dc10f)
- ui: Add suite level report view ย -ย by @dvmhmdsd, Hiroshi Ogawa, OpenCode (gpt-5.6-sol) and @hi-ogawa in #11038 (602d2)
- vm: Link module graphs one at a time ย -ย by @sheremet-va in #11096 (3f2dd)