Rolldown Release Notes
59 release notes curated from 1 source by the Releasebot Team. Last updated: Oct 14, 2026
- Oct 14, 2026
- Date parsed from source:Oct 14, 2026
- First seen by Releasebot:Oct 14, 2026
[1.2.14] - 2026-10-14
Rolldown adds configurable output character encoding and improves code-splitting, tree-shaking, source maps, and module handling. The release also fixes numerous issues in renaming, CommonJS output, and development file watching.
๐ Features
- add
output.charsetoption (#11194) by @sapphi-red - code-splitting: route independent ESM re-exports per consumer (#11177) by @hyfdev
๐ Bug Fixes
- handle
output.charset: 'ascii'+output.minify: false(#11207) by @sapphi-red - tree-shaking: preserve initialization of wrapped ESM re-exports (#11167) by @hyfdev
- sourcemap: preserve boundaries when tracing has no mapping (#11170) by @sapphi-red
- strict-execution-order: account for init imports during code splitting (#11162) by @hyfdev
- strict-execution-order: avoid eager loading through mixed re-exports (#11151) by @hyfdev
- tree-shake expression statements that coerce known constants (#10825) by @IWANABETHATGUY
- shim-missing-exports: shim deep namespace reads through default imports (#11184) by @IWANABETHATGUY
- shim-missing-exports: shim missing static namespace members (#11179) by @hyfdev
- preserve-entry-signatures: keep internal bindings out of entry exports (#11094) by @hyfdev
- report ASSIGN_TO_IMPORT for writes to re-exported namespace members (#11148) by @IWANABETHATGUY
- dev: keep files loaded by the HMR stage watched when the same task rebuilds (#11154) by @Brooooooklyn
- dev: watch lazily compiled files even when a build starts first (#11152) by @Brooooooklyn
- cjs: print a CommonJS module's top-level
thisas a wrapper parameter rolldown names (#11135) by @IWANABETHATGUY - renamer: keep fixed names off the bindings that would capture them (#11134) by @IWANABETHATGUY
- renamer: keep an external
require()local in a CJS module off the top-level names (#11133) by @IWANABETHATGUY - rolldown: make a repeated
close()a no-op (#11142) by @Brooooooklyn - avoid renaming entry top-level bindings onto their nested bindings (#11122) by @IWANABETHATGUY
- renamer: keep generated top-level names off inner bindings (#11121) by @IWANABETHATGUY
๐ Refactor
- renamer: treat a CJS-wrapped module's root scope as an inner scope (#11130) by @IWANABETHATGUY
๐ Documentation
- add renaming design and implementation docs (#11131) by @IWANABETHATGUY
โก Performance
- ci: overlap independent setup, checks, and artifacts (#11169) by @hyfdev
๐งช Testing
- dev: use dunce::canonicalize so dev engine tests pass on Windows (#11192) by @shulaoda
- preserve-entry-signatures: cover nested dynamic imports (#11164) by @hyfdev
โ๏ธ Miscellaneous Tasks
- deps: upgrade oxc to 0.154.0 (#11209) by @shulaoda
- make Security Analysis pass again (security-action v1.0.10, serde_yaml -> saphyr) (#11197) by @Brooooooklyn
- deps: update rollup submodule for tests to v4.64.5 (#11190) by @rolldown-guard[bot]
- deps: update test262 submodule for tests (#11191) by @rolldown-guard[bot]
- deps: update crate-ci/typos action to v1.51.1 (#11174) by @renovate[bot]
- vite-tests: link the workspace rolldown into the Vite clone again (#11147) by @Brooooooklyn
- Oct 7, 2026
- Date parsed from source:Oct 7, 2026
- First seen by Releasebot:Oct 7, 2026
[1.2.13] - 2026-10-07
Rolldown adds stronger dev-mode hot update and file watching support, improves inline chunk deduplication, and fixes a wide range of HMR, code-splitting, export escaping, and module handling issues. It also includes performance wins and updated docs.
๐ Features
- rolldown_plugin_vite_import_glob: follow file creation and deletion via hotUpdate (#10550) by @shulaoda
- inline-common-chunks: deduplicate shared code along known loading paths (#11093) by @hyfdev
- rolldown_plugin_vite_import_glob: record a matcher per glob call in dev (#10592) by @shulaoda
- rolldown_plugin_vite_import_glob: watch the directory each glob reads (#10549) by @shulaoda
- watch: hand watch.exclude to notify as its ignore filter (#11008) by @shulaoda
- dev: add
experimental.devMode.hotUpdateoption (#11123) by @h-a-n-a
๐ Bug Fixes
- renamer: check the printed name of namespace-alias imports for captures (#11129) by @IWANABETHATGUY
- devtools: honor
devtools.sessionIdby @Brooooooklyn - renamer: keep a renamed nested binding off its module's top-level bindings (#11128) by @IWANABETHATGUY
- dev: keep
thisundefined when calling an imported function in HMR patches and lazy chunks (#11126) by @h-a-n-a - dev: read string-named imports correctly in HMR patches and lazy chunks (#11127) by @h-a-n-a
- sanitize preserveModules chunk names after resolving the relative path (#11087) by @waltuov
- keep the
withclause on bare external imports (#11100) by @IWANABETHATGUY - generator: filter DISABLE_JS_HOOK bits from generated HookUsage (#10346) by @Brooooooklyn
- dev: make the module factory async for top-level await (#11118) by @h-a-n-a
- node: give each renderChunk call its own meta object (#11115) by @Brooooooklyn
- honor
externalLiveBindingsfor imported exports (#11048) by @camc314 - dev: keep a late payload from replacing newer module code (#11030) by @h-a-n-a
- binding: use-after-free in async
transformwith aTsconfigCache(#11080) by @shulaoda - fail on chunk syntax errors and escape export names once (#11051) by @hyfdev
- dev: ship newly imported modules the client never received (#11029) by @h-a-n-a
- code-splitting: avoid cycles from redundant re-export initialization (#11073) by @hyfdev
- link: treat re-exports of the same external binding as one export (#11069) by @IWANABETHATGUY
- escape namespace properties in IIFE and UMD output (#11085) by @hyfdev
- escape dependency paths in CJS and UMD output (#11084) by @hyfdev
- use computed access for arbitrary import names (#11083) by @hyfdev
- generate valid bindings for shimmed exports (#11082) by @hyfdev
- dev: reload the page when an HMR update fails after merging its edit (#11031) by @h-a-n-a
- dev/lazy: ship the deps of a module that a patch shipped but never ran (#11028) by @h-a-n-a
- code-splitting: don't move init calls in front of unwrapped JSON modules (#11062) by @IWANABETHATGUY
- escape export names in
definePropertycalls (#11047) by @camc314
๐ Documentation
- say the CLI bundles multiple configs one after another (#11111) by @Brooooooklyn
- add
renderChunkhook filter docs (#11065) by @sapphi-red
โก Performance
- use
concat_string!instead offormat!for plain string joins (#11139) by @IWANABETHATGUY - utils: evaluate each
concat_string!argument once (#11105) by @IWANABETHATGUY - json: escape
JSON.parsestring withjson-escape-simd(#11104) by @IWANABETHATGUY - unwrap JSON modules with a non-object root (#11066) by @IWANABETHATGUY
๐งช Testing
- inline-common-chunks: fix flaky inlineCommonChunks concurrent imports (#11088) by @hyfdev
โ๏ธ Miscellaneous Tasks
- deps: upgrade oxc to 0.153.0 (#11109) by @camc314
- update pnpm to v12 (#10876) by @btea
- deps: update pnpm to v11.28.0 (#11049) by @renovate[bot]
- deps: update rollup submodule for tests to v4.64.0 (#11116) by @rolldown-guard[bot]
- deps: update napi (#11137) by @renovate[bot]
- scripts: spawn the rolldown CLI without a shell in setup-vite (#10875) by @Brooooooklyn
- deps: bump
@napi-rs/wasm-runtimeto~1.2.5(#11117) by @shulaoda - deps: update napi (#11108) by @renovate[bot]
- deps: update taiki-e/install-action action to v2.87.22 (#11096) by @renovate[bot]
- deps: update npm packages (#11095) by @renovate[bot]
- deps: update rust crates (#11097) by @renovate[bot]
- deps: update napi (#11063) by @renovate[bot]
- deps: update dependency rust to v1.99.0 (#11071) by @renovate[bot]
- deps: update dependency vite-plus to v1 (#11056) by @renovate[bot]
All of your release notes in one feed
Join Releasebot and get updates from Rolldown and hundreds of other software products.
- Sep 30, 2026
- Date parsed from source:Sep 30, 2026
- First seen by Releasebot:Sep 30, 2026
[1.2.12] - 2026-09-30
Rolldown adds experimental inlineCommonChunks support, deduplicates shared code in lazy chunks, and improves dev HMR, code-splitting, and watcher behavior with several bug fixes and performance updates.
๐ Features
- inline common chunks containing import() and deduplicate shared code in lazy chunks (#11034) by @hyfdev
- experimental
inlineCommonChunkssupport (#10899) by @hyfdev - dev: ship imported bindings for HMR partial accept (#10856) by @h-a-n-a
๐ Bug Fixes
- chunking: re-derive chunk exec orders after the runtime leaves its host chunk (#11005) by @hyfdev
- code-splitting: gate member-read init paths on the reading statement (#11039) by @hyfdev
- code-splitting: retain initialization paths through re-exported namespaces (#11037) by @hyfdev
- dev: reject non-ESM output formats in dev mode (#11038) by @h-a-n-a
- dev: align
import.meta.hot.acceptdeps with Vite (#10997) by @h-a-n-a - dev: clear the resolver cache when a file is created or deleted (#10986) by @waltuov
- error: name the resolved specifier in unresolved import diagnostics (#11014) by @linyiru
- make entries-aware chunk merging deterministic (#11002) by @hyfdev
- watch: avoid restarting macOS watcher for unchanged paths (#10992) by @sep2
๐ Refactor
- dev: ship the dev runtime entry as one file (#10998) by @h-a-n-a
- binding: remove
__internalForcePanic(#10989) by @IWANABETHATGUY
๐ Documentation
- fix cloudflare preview builds (#10996) by @sapphi-red
- fix build config loader warning (#10994) by @sapphi-red
- deps: use Vite 8 (#10993) by @sapphi-red
โก Performance
- dev: only ship rows with dynamic edges in registerGraph (#11019) by @h-a-n-a
๐งช Testing
- code-splitting: cover more re-exported namespace shapes (#11042) by @hyfdev
- webcontainer: cover the WebContainer download fallback in plain Node (#10966) by @shulaoda
- dev: pin the runtime entry file layout that Vite serves (#10983) by @h-a-n-a
โ๏ธ Miscellaneous Tasks
- pin VOID_API_URL for the docs deploy (#11041) by @shulaoda
- opt into the WebContainer smoke test for napi bumps and loader changes (#10967) by @shulaoda
- deps: upgrade oxc to 0.152.0 (#11018) by @camc314
- deps: update rust crates (#11012) by @renovate[bot]
- deps: update npm packages (#11011) by @renovate[bot]
- deps: update crate-ci/typos action to v1.50.3 (#11023) by @renovate[bot]
- deps: update test262 submodule for tests (#11022) by @rolldown-guard[bot]
- deps: update rollup submodule for tests to v4.63.5 (#11021) by @rolldown-guard[bot]
- deps: update dependency vite-plus to v1 (#11017) by @renovate[bot]
- deps: update github actions (#11010) by @renovate[bot]
- remove
CLAUDE.md(#10925) by @iiio2 - verify release debug info by matching file IDs (#10988) by @IWANABETHATGUY
- deps: update rollup submodule for tests to v4.63.4 (#10940) by @rolldown-guard[bot]
โค๏ธ New Contributors
- @waltuov made their first contribution in #10986
- @linyiru made their first contribution in #11014
- @sep2 made their first contribution in #10992
- Sep 24, 2026
- Date parsed from source:Sep 24, 2026
- First seen by Releasebot:Sep 25, 2026
[1.2.11] - 2026-09-24
Rolldown adds watch support that reports only file events, improves sourcemap name preservation, and refines FsWatcher event handling and mapping. The release also updates documentation and reverts one prior dev lazy-loading change.
๐ Features
- watch: report only file events (#10974) by @shulaoda
๐ Bug Fixes
- sourcemap: preserve names through
collapse_sourcemaps(#9486) by @eoin - watch: map metadata events by kind and missing paths as deleted (#10973) by @shulaoda
๐ Refactor
- rolldown_fs_watcher: hand the handler file events instead of notify results (#10980) by @shulaoda
- rolldown_fs_watcher: share one event handler adapter between the notify watchers (#10979) by @shulaoda
- rolldown_fs_watcher: register every path with one watch mode (#10978) by @shulaoda
- rolldown_fs_watcher: tweak the backend traits and the event mapping (#10977) by @shulaoda
- watch: translate notify events inside FsWatcher (#10972) by @shulaoda
๐ Documentation
- watch: update the fs watcher layout and the dev coordinator message (#10981) by @shulaoda
- watch: document the event translation in FsWatcher (#10975) by @shulaoda
โ๏ธ Revert
- "perf(dev/lazy): fetch a lazy route in one request" (#10789) (#10982) by @h-a-n-a
โค๏ธ New Contributors
- @eoin made their first contribution in #9486
- Sep 23, 2026
- Date parsed from source:Sep 23, 2026
- First seen by Releasebot:Sep 23, 2026
[1.2.10] - 2026-09-23
Rolldown ships watcher, code-splitting, and timing report improvements, plus tree-shaking and dev build bug fixes. It also adds bundler timing checks, batches sourcemap calls for better performance, and refreshes docs and internal refactors.
๐ Features
- rolldown_plugin_esm_external_require: prefer 'module.exports' over a namespace spread (#10901) by @isker
- watch: support directories in addWatchFile (#10944) by @shulaoda
- label code-splitting timing rows (#10896) by @IWANABETHATGUY
- separate code-splitting group timing rows (#10892) by @IWANABETHATGUY
- clarify callback owners in the timing report (#10890) by @IWANABETHATGUY
- add checks.bundlerTimings with deprecated pluginTimings alias (#10883) by @IWANABETHATGUY
๐ Bug Fixes
- code-splitting: initialize leaves behind a re-exported namespace import (#10694) by @hyfdev
- node: record the WASI target on the WebContainer binding fallback (#10952) by @shulaoda
- dev: force incremental build on in DevEngine::new (#10958) by @o-alexandrov
- tree-shaking: propagate side effects through cycles (#10893) by @IWANABETHATGUY
- deconflict CJS locals that shadow a renamed require wrapper (#10793) by @logaretm
- include group indexes in labeled
codeSplittingtiming rows (#10916) by @IWANABETHATGUY - docs: type-check Algolia
indicesoption (#10934) by @shulaoda - docs: restore Algolia search (#10929) by @isker
- tell code-splitting timing rows apart by position (#10903) by @IWANABETHATGUY
๐ Refactor
- rolldown_fs_watcher: remove the single-path API (#10950) by @shulaoda
- dev: register watch files through FsWatcher (#10949) by @shulaoda
- watch: let FsWatcher own the watched paths (#10948) by @shulaoda
- watch: identify watch files by normalized absolute path (#10943) by @shulaoda
- plugin: build a plugin-resolved
ResolvedIdin one place (#10921) by @IWANABETHATGUY
๐ Documentation
- dev: add HMR design, align dev docs and engine comments (#10271) by @h-a-n-a
โก Performance
- batch
sourcemapPathTransformcalls (#10763) by @IWANABETHATGUY - batch
sourcemapIgnoreListcalls (#10762) by @IWANABETHATGUY - hmr: drop the unused kind argument from registerFactory (#10915) by @h-a-n-a
๐งช Testing
- handle Windows paths in sourcemap callback tests (#10942) by @IWANABETHATGUY
โ๏ธ Miscellaneous Tasks
- replace custom
ban-expect-assertionsJS lint with builtinno-restricted-properties(#10933) by @isker - deps: update napi (#10959) by @renovate[bot]
- deps: upgrade oxc to 0.151.0 (#10939) by @camc314
- deps: update test262 submodule for tests (#10941) by @rolldown-guard[bot]
- deps: update npm packages (#10931) by @renovate[bot]
- deps: update napi (#10928) by @renovate[bot]
- deps: update dependency vite-plus to v0.3.3 (#10914) by @renovate[bot]
- deps: update rust crates (#10932) by @renovate[bot]
- deps: update github actions (#10930) by @renovate[bot]
- deps: update dependency rolldown-plugin-dts to v0.28.6 (#10924) by @renovate[bot]
- deps: update crate-ci/typos action to v1.50.2 (#10917) by @renovate[bot]
- deps: update dependency @napi-rs/cli to v3.10.4 (#10913) by @renovate[bot]
- deps: update napi (#10897) by @renovate[bot]
โค๏ธ New Contributors
- @o-alexandrov made their first contribution in #10958
Similar to Rolldown with recent updates:
- Smokeball release notes147 release notes ยท Latest Oct 2, 2026
- Cosmolex release notes20 release notes ยท Latest Jul 30, 2025
- PracticePanther release notes36 release notes ยท Latest Aug 11, 2026
- Salesforce release notes83 release notes ยท Latest Oct 1, 2026
- Microsoft release notes1046 release notes ยท Latest Oct 21, 2026
- Zoom release notes221 release notes ยท Latest Oct 19, 2026
- Sep 16, 2026
- Date parsed from source:Sep 16, 2026
- First seen by Releasebot:Sep 18, 2026
[1.2.9] - 2026-09-16
Rolldown adds a new MODULE_LEVEL_DIRECTIVE warning and ships bug fixes for CommonJS exports, top-level await handling, Windows CLI setup, bundle proxy output, and minification comments, while also improving performance in lazy routing, plugins, and sourcemap reporting.
๐ Features
- add
MODULE_LEVEL_DIRECTIVEwarning (#10791) by @sapphi-red
๐ Bug Fixes
- handle CommonJS exports through top-level
this(#10872) by @IWANABETHATGUY - scripts: make setup-vite CLI invocation work on Windows (#10885) by @shulaoda
- remove deleted property from output bundle proxy target (#10815) by @Vladexy88x
- treat module-scope
await usingas top-level await (#10739) by @MarshallOfSound - watch: preserve plugin attribution in warnings (#10473) by @Nic-Polumeyv
- test-dev-server: link the workspace rolldown before building vite (#10857) by @h-a-n-a
- minify: preserve annotation comments when minified (#10854) (#10855) by @justonemorenight
โก Performance
- dev/lazy: fetch a lazy route in one request (#10789) by @h-a-n-a
- plugin: reduce binding binary size (#10776) by @Boshen
- vite-reporter: reuse emitted sourcemap sizes (#10841) by @hyfdev
๐งช Testing
- dev: full-bundle-mode regression test for cyclic import binding (#9946) (#9947) by @ShMcK
- cover asset option callback timings (#10870) by @IWANABETHATGUY
โ๏ธ Miscellaneous Tasks
- wait for npm bindings before publishing rolldown (#10866) by @shulaoda
- deps: update dependency @napi-rs/cli to v3.10.1 (#10889) by @renovate[bot]
- deps: update napi (#10888) by @renovate[bot]
- compress debug info archives with zstd (#10778) by @IWANABETHATGUY
- publish split debug info for release bindings (#10777) by @IWANABETHATGUY
- rolldown_utils: simplify MIME guessing and remove UTF-8 check bypass (#10884) by @shulaoda
- add npm bugs metadata for rolldown (#9694) by @kingshuaishuai
- deps: upgrade oxc to 0.150.0 (#10877) by @camc314
- deps: update rust crates (#10869) by @renovate[bot]
- deps: update dependency vite-plus to v0.3.2 (#10878) by @renovate[bot]
- deps: update rollup submodule for tests to v4.63.3 (#10880) by @rolldown-guard[bot]
- deps: update test262 submodule for tests (#10881) by @rolldown-guard[bot]
- deps: update github actions (#10867) by @renovate[bot]
- deps: update npm packages (#10868) by @renovate[bot]
- deps: update napi to v3.12.4 (#10862) by @renovate[bot]
- deps: update napi (#10861) by @renovate[bot]
โค๏ธ New Contributors
- @Vladexy88x made their first contribution in #10815
- @MarshallOfSound made their first contribution in #10739
- @kingshuaishuai made their first contribution in #9694
- @ShMcK made their first contribution in #9947
- @justonemorenight made their first contribution in #10855
- Sep 9, 2026
- Date parsed from source:Sep 9, 2026
- First seen by Releasebot:Sep 9, 2026
[1.2.8] - 2026-09-09
Rolldown adds a hotUpdate dev option to gate the hotUpdate hook, improves partial-scan handling and chunk import accuracy, and boosts code-splitting performance with better getModuleInfo caching. It also updates documentation and dependency versions.
๐ Features
- dev: add
hotUpdatedev option to gate thehotUpdatehook (#10837) by @h-a-n-a - docs: add wrangler (#10821) by @mdong1909
๐ Bug Fixes
- dev: clean stale dynamic entry references after partial scans (#10846) by @shulaoda
- include external wildcard re-exports in
OutputChunk.imports(#10845) by @isker
๐ Documentation
- document dynamic entry cache merging after partial scans (#10848) by @shulaoda
โก Performance
- cache
getModuleInfoduring code splitting (#10838) by @hyfdev
๐งช Testing
- dev: cover stale dynamic entry references after partial scans (#10847) by @shulaoda
โ๏ธ Miscellaneous Tasks
- deps: update dependency @napi-rs/cli to v3.9.0 (#10816) by @renovate[bot]
- deps: update dependency rolldown-plugin-dts to v0.28.5 (#10827) by @renovate[bot]
- deps: update dependency vite-plus to v0.3.1 (#10842) by @renovate[bot]
- deps: upgrade oxc to 0.149.0 (#10834) by @camc314
- deps: update rust crates (#10830) by @renovate[bot]
- deps: update npm packages (#10832) by @renovate[bot]
- deps: update crate-ci/typos action to v1.50.1 (#10824) by @renovate[bot]
- deps: update test262 submodule for tests (#10836) by @rolldown-guard[bot]
- deps: update github actions (#10831) by @renovate[bot]
- deps: update dependency rust to v1.98.1 (#10819) by @renovate[bot]
โค๏ธ New Contributors
- @isker made their first contribution in #10845
- Sep 2, 2026
- Date parsed from source:Sep 2, 2026
- First seen by Releasebot:Sep 2, 2026
[1.2.7] - 2026-09-02
Rolldown fixes facade chunk handling, clarifies plugin timing warnings, and improves fold cycle checks. It also adds a circular reexport test and refreshes several dependencies and tooling updates.
๐ Bug Fixes
- rolldown_binding: make
PreRenderedChunk.facadeModuleIdnullable like Rollup (#10810) by @IWANABETHATGUY - plugin_timings: reword the warning so it does not contradict itself (#10788) by @IWANABETHATGUY
- model a facade's host import in the fold cycle check (#10743) by @ulrichstark
๐งช Testing
- dev: add circular reexport test (#10563) by @sapphi-red
โ๏ธ Miscellaneous Tasks
- deps: update npm packages (#10795) by @renovate[bot]
- deps: update rust crates (#10794) by @renovate[bot]
- deps: update dependency rolldown-plugin-dts to v0.28.3 (#10805) by @renovate[bot]
- renovate: disable oxc auto-updates (#10813) by @IWANABETHATGUY
- deps: upgrade oxc to 0.148.0 (#10809) by @camc314
- deps: update pnpm to v11.24.0 (#10803) by @renovate[bot]
- deps: update crate-ci/typos action to v1.50.0 (#10806) by @renovate[bot]
- deps: update test262 submodule for tests (#10808) by @rolldown-guard[bot]
- deps: update rollup submodule for tests to v4.63.1 (#10807) by @rolldown-guard[bot]
- deps: update crate-ci/typos action to v1.49.1 (#10796) by @renovate[bot]
- deps: update github actions (#10749) by @renovate[bot]
- Aug 26, 2026
- Date parsed from source:Aug 26, 2026
- First seen by Releasebot:Aug 26, 2026
[1.2.6] - 2026-08-26
Rolldown adds property name mangling for minify, new tsconfig options for transform and Vite plugins, and dev engine module graph queries. It also ships bug fixes, performance improvements, watcher refactors, and dependency updates.
๐ Features
- minify: support property name mangling (#10374) by @Dunqing
- add
tsconfig: stringoption totransform(#10727) by @sapphi-red - rolldown_plugin_vite_transform: add
tsconfigoption (#10725) by @sapphi-red - rolldown_plugin_vite_resolve: add top-level
tsconfigoption (#10724) by @sapphi-red - dev: expose module graph queries on the dev engine handle (#10716) by @h-a-n-a
๐ Bug Fixes
- dev: assign import bindings before initializing dependencies (#10783) by @h-a-n-a
- dev: copy star re-exports before initializing dependencies (#10761) by @h-a-n-a
- dev: register an empty exports object for a module without exports (#10772) by @h-a-n-a
- name the module when a
codeSplittinggroup callback returns a wrong type (#10753) by @IWANABETHATGUY - dev: map dev rename events like build watch (#10758) by @shulaoda
- clear resolution cache when
TsconfigCache::clearis called (#10726) by @sapphi-red - dev: resolve in-flight
ensureLatestBuildOutputwhen the engine closes (#10730) by @h-a-n-a - binding: replace undeclared BindingErrorsOr with BindingResult in hook types (#10717) by @h-a-n-a
๐ Refactor
- rolldown_fs_watcher: collapse fs-watcher backends behind a single FsWatcher (#10735) by @shulaoda
- hoist invariants out of the
codeSplittinggroup loop (#10744) by @IWANABETHATGUY
๐ Documentation
- document shared notify rename mapping (#10759) by @shulaoda
- update watch-mode internals for unified FsWatcher (#10736) by @shulaoda
โก Performance
- batch
codeSplittinggrouptest/namecalls (#10745) by @IWANABETHATGUY - deduplicate used symbol ref readers (#10742) by @Boshen
- reduce release debug formatting (#10728) by @Boshen
- enable compiler cache via
module.enableCompileCache()(#10678) by @btea - deduplicate regress codegen (#10732) by @Boshen
๐งช Testing
- define: add expected failure for default parameter scope (#10780) by @hyfdev
- use an absolute filename for transform tsconfig path (#10782) by @shulaoda
โ๏ธ Miscellaneous Tasks
- deps: upgrade oxc to 0.147.0 (#10767) by @camc314
- deps: update resolver dependencies (#10766) by @Boshen
- deps: update rollup submodule for tests to v4.62.5 (#10770) by @rolldown-guard[bot]
- deps: update dependency vite-plus to ^0.3.0 (#10757) by @renovate[bot]
- deps: update npm packages (#10750) by @renovate[bot]
- deps: update rust crates (#10748) by @renovate[bot]
- deps: update rust crate napi to v3.12.2 (#10738) by @renovate[bot]
- deps: update dependency rust to v1.98.0 (#10733) by @renovate[bot]
- wasi: cap each Node Test attempt with timeout to survive hangs (#10709) by @hyfdev
- Aug 19, 2026
- Date parsed from source:Aug 19, 2026
- First seen by Releasebot:Aug 19, 2026
[1.2.5] - 2026-08-19
Rolldown adds benchmark memory tracking, armv7 Android support, and a new NAMESPACE_CONFLICT warning for star re-exports, while improving code splitting, dev asset flushing, Yarn PnP handling, and CJS renaming fixes.
๐ Features
- bench: record per-suite peak memory in the node benchmark (#10704) by @IWANABETHATGUY
- binding: allocation-tracking global allocator behind the
tracking_allocatorfeature (#10703) by @IWANABETHATGUY - add armv7 android (armv7-linux-androideabi) support (#10691) by @shulaoda
- add
NAMESPACE_CONFLICTwarning for conflicting star re-exports (#7452) by @AliceLanniste
๐ Bug Fixes
- rolldown_plugin_vite_reporter: avoid ANSI erase-line escape in non-TTY output (#10692) by @shulaoda
- rolldown_plugin_vite_resolve: preserve Yarn PnP virtual importer (#10591) by @Freakazo
- exclude hash placeholders from case-insensitive filename deconfliction (#10590) by @Nic-Polumeyv
- code-splitting: fold already-loaded side-effectful libraries into eager entries (#10645) by @JoviDeCroock
- dev: flush re-emitted assets when their content changes (#10637) by @btea
- renamer: rename nested
require/__filename/__dirnamebindings in CJS output (#10655) by @marcoroth - silence two wasm-only warnings (#10668) by @IWANABETHATGUY
๐ Refactor
- skip case folding for filenames with hash placeholders (#10689) by @hyfdev
- code-splitting: remove redundant synthetic statement owner (#10503) by @hyfdev
- renamer: move the cjs check into
rename_bindings_shadowing_cjs_ambient_names(#10672) by @IWANABETHATGUY
๐ Documentation
- agents: point the never-edit list at the binding files that exist (#10719) by @melbinjp
๐งช Testing
- deconflict: pin renaming the external process binding away from the global (#10702) by @hyfdev
- dev: expect a hot update across a circular import (#10700) by @hyfdev
โ๏ธ Miscellaneous Tasks
- deps: upgrade oxc to 0.146.0 (#10707) by @Boshen
- deps: update rust crates (#10684) by @renovate[bot]
- deps: update npm packages (#10685) by @renovate[bot]
- build the benchmark comparison window from the JSON lines (#10701) by @IWANABETHATGUY
- wasi: retry the Node Test step to absorb the shared-dlmalloc flake (#10699) by @hyfdev
- append benchmark results to storage as JSON lines (#10682) by @IWANABETHATGUY
- deps: update github actions (#10683) by @renovate[bot]
- deps: update dependency rolldown-plugin-dts to v0.28.2 (#10679) by @renovate[bot]
- deps: update dependency rolldown-plugin-dts to v0.28.1 (#10674) by @renovate[bot]
โค๏ธ New Contributors
- @melbinjp made their first contribution in #10719
- @Freakazo made their first contribution in #10591
- @marcoroth made their first contribution in #10655
- Aug 12, 2026
- Date parsed from source:Aug 12, 2026
- First seen by Releasebot:Aug 13, 2026
[1.2.4] - 2026-08-12
Rolldown adds broader code-splitting namespace extraction, fixes Android arm64 crashes and sideEffects module retention, and improves devtools path handling. It also expands testing coverage and refreshes docs and dependencies.
๐ Features
- code-splitting: widen namespace extraction for already-loaded merges (#10594) by @IWANABETHATGUY
๐ Bug Fixes
- binding: illegal instruction crash on Android arm64 (#10638) by @shulaoda
- code-splitting: stop negated sideEffects globs retaining modules (#10660) by @JoviDeCroock
- devtools: resolve log paths against the build cwd (#10622) by @hyfdev
๐ Documentation
- plugin-api: document sourcemap differences from Rollup (#10636) by @IWANABETHATGUY
๐งช Testing
- browser: smoke test the packed
@rolldown/browserin a real browser page (#10634) by @hyfdev - node-wasi: run the full node test suite against the WASI binding (#10616) by @hyfdev
- webcontainer: smoke test the packed WASI artifacts inside a WebContainer (#10626) by @hyfdev
โ๏ธ Miscellaneous Tasks
- deps: update napi (#10649) by @renovate[bot]
- deps: update esbuild for tests to 0.28.2 (#10662) by @rolldown-guard[bot]
- deps: update test262 submodule for tests (#10663) by @rolldown-guard[bot]
- deps: update npm packages (#10653) by @renovate[bot]
- deps: update github actions (#10651) by @renovate[bot]
- deps: update crate-ci/typos action to v1.49.0 (#10642) by @renovate[bot]
- deps: update dependency vite-plus to v0.2.9 (#10627) by @renovate[bot]
- deps: update rust crates (#10652) by @renovate[bot]
- deps: upgrade oxc to 0.144.0 (#10657) by @camc314
- ignore napi-rs temp files (#10658) by @camc314
- deps: tighten
@napi-rs/wasm-runtimerange to~1.2.2(#10615) by @hyfdev - wasi: point the wasm skips at the right place (#10644) by @hyfdev
- Aug 5, 2026
- Date parsed from source:Aug 5, 2026
- First seen by Releasebot:Aug 6, 2026
[1.2.3] - 2026-08-05
Rolldown ships bug fixes, performance improvements, and cleanup updates, including safer watch handling, lower memory usage, minified name generation without extra allocations, and refreshed test and dependency versions.
๐ Bug Fixes
- dev: don't let a failed watch registration abort the batch (#10548) by @shulaoda
๐ Refactor
- remove deprecated
watch.notifyoption (#10628) by @sapphi-red
๐ Documentation
- fix the dangling spec link on
generate_minified_names(#10617) by @IWANABETHATGUY
โก Performance
- reduce finalization memory usage (#10554) by @ericclemmons
- chunk-naming: build minified export names without allocating (#10618) by @IWANABETHATGUY
๐งช Testing
- resolve-file-url: allow a reference id to start with a digit (#10623) by @jjb
- code-splitting: pin the already-loaded namespace-extraction boundaries (#10593) by @IWANABETHATGUY
โ๏ธ Miscellaneous Tasks
- deps: upgrade oxc to 0.143.0 (#10603) by @camc314
- deps: update rollup submodule for tests to v4.62.4 (#10607) by @rolldown-guard[bot]
- deps: update test262 submodule for tests (#10608) by @rolldown-guard[bot]
โค๏ธ New Contributors
- @ericclemmons made their first contribution in #10554
- @jjb made their first contribution in #10623
- Aug 3, 2026
- Date parsed from source:Aug 3, 2026
- First seen by Releasebot:Aug 5, 2026
[1.2.2] - 2026-08-03
Rolldown ships code-splitting improvements, stronger plugin timing insights, and a handful of dev and transform bug fixes. It also trims runtime overhead, updates documentation, and adds new support for inlining shared deps in dynamic entries.
๐ Features
- code-splitting: support inlining of shared deps in dynamic entries (#10526) by @nicolo-ribaudo
- plugin: time the user callbacks configured on the options (#10509) by @IWANABETHATGUY
๐ Bug Fixes
- dev: force
cleanDiroff in dev mode (#10579) by @shulaoda - dev: keep
?rolldown-lazyproxy ids out of userresolveIdhooks (#10580) by @btea - initialize re-exported wrapped ESM modules at the entry chunk (#10567) by @hyfdev
- link: resolve circular star reexports as null (#10445) by @Nic-Polumeyv
- transform: transformer gate skips newer syntax that oxc can lower (#10564) by @sekyungk
- code-splitting: materialize consumer-local barrel routing when the order-wrap plan is empty (#10544) by @hyfdev
- plugin: measure plugin hooks in JavaScript, report them from Rust (#10508) by @IWANABETHATGUY
- plugin: include external dynamic imports in chunk metadata (#10557) by @hyfdev
- plugin: report plugin timings after closeBundle has run (#10521) by @IWANABETHATGUY
- browser: avoid using node builtin modules (#10542) by @sapphi-red
๐ Refactor
- plugin: give the build's own clocks their own type (#10520) by @shulaoda
๐ Documentation
- correct stale
buildStartcomment inScanStageCache::merge(#10577) by @shulaoda - update outdated pluginutils references (#10574) by @dogledogle
โก Performance
- external: drop the runtime import from chunks that never wrap (#10517) by @IWANABETHATGUY
- plugin: clock the build only when it is being measured (#10558) by @IWANABETHATGUY
๐งช Testing
- vite-tests: drop the dead
@rolldown/pluginutilspnpm override (#10575) by @IWANABETHATGUY - transform: group the transform-target fixtures and say why each exists (#10569) by @IWANABETHATGUY
- dev: fix hmr-hot-update-hook-vite fixture on Windows (#10565) by @h-a-n-a
- dev: match Vite's renamed full-reload log (#10547) by @shulaoda
โ๏ธ Miscellaneous Tasks
- deps: update napi (#10576) by @renovate[bot]
- deps: bump
@napi-rs/wasm-runtimeto 1.2.2 (#10570) by @shulaoda - deps: update npm packages (#10583) by @renovate[bot]
- deps: update dependency rolldown-plugin-dts to ^0.28.0 (#10588) by @renovate[bot]
- deps: update taiki-e/install-action action to v2.85.5 (#10587) by @renovate[bot]
- deps: update codspeedhq/action action to v5 (#10584) by @renovate[bot]
- deps: update github actions (#10582) by @renovate[bot]
- deps: update rust crates (#10581) by @renovate[bot]
- deps: update dependency vite-plus to v0.2.7 (#10568) by @renovate[bot]
- deps: update dependency rolldown-plugin-dts to v0.27.14 (#10531) by @renovate[bot]
- deps: update pnpm to v11.17.0 (#10571) by @renovate[bot]
- deps: update @napi-rs/wasm-runtime to 1.2.1 (#10545) by @sapphi-red
โค๏ธ New Contributors
- @sekyungk made their first contribution in #10564
- @nicolo-ribaudo made their first contribution in #10526
- Jul 29, 2026
- Date parsed from source:Jul 29, 2026
- First seen by Releasebot:Jul 31, 2026
- Modified by Releasebot:Aug 6, 2026
[1.2.1] - 2026-07-29
Rolldown ships expanded dev and code-splitting capabilities, including hotUpdate support, new resolveFileUrl and import.meta.ROLLDOWN_FILE_URL handling, smarter HMR, and stricter chunk execution behavior, while also landing major bug fixes, performance gains, and refactors.
๐ Features
- dev: support
hotUpdatehook (#10305) by @h-a-n-a - dev: expose
disableWatcherthrough the dev engine bindings (#10474) by @shulaoda - plugin: surface output-option callbacks in [PLUGIN_TIMINGS] (#10411) by @IWANABETHATGUY
import.meta.ROLLDOWN_FILE_URL_<referenceId>_<urlId>support to pass context toresolveFileUrlhook (#10297) by @sapphi-red- dev: skip the HMR update when a module's rebuilt output is unchanged (#10333) by @h-a-n-a
- code-splitting: wrap strict execution order modules on demand (#10104) by @hyfdev
- support
import.meta.ROLLDOWN_FILE_URL_*(#10296) by @sapphi-red - implement
resolveFileUrlplugin hook (#10291) by @sapphi-red - magic-string: support storeName on overwrite/update (#10312) by @IWANABETHATGUY
๐ Bug Fixes
- external: keep
__toESMwhen the importing module is tree-shaken (#10516) by @IWANABETHATGUY - dev: resolve re-exports from externals through a real import (#10489) by @tbvjaos510
- code-splitting: route CJS barrel initialization per consumer (#10488) by @hyfdev
- error: align filename-pattern diagnostics with Rollup's wording (#10501) by @IWANABETHATGUY
- plugin: validate emitted prebuilt-chunk file names (#10399) by @IWANABETHATGUY
- code-splitting: point a two-argument dynamic import at the chunk that holds the module (#10479) by @hyfdev
- common: align is_path_fragment with Rollup's isPathFragment (#10398) by @IWANABETHATGUY
- code-splitting: never name an internal chunk export
then(#10480) by @hyfdev - code-splitting: avoid creating call-site-triggered entry facades (#10485) by @hyfdev
- code-splitting: collect top-level eager order reasons in every strict build (#10463) by @hyfdev
- code-splitting: let a cross-chunk dynamic importer carry the order trigger (#10456) by @hyfdev
- code-splitting: avoid the dynamic-entry facade when the same-chunk collapse carries the trigger (#10433) by @hyfdev
- binding: forward resolveId options.kind to callable builtin plugins (#10440) by @IWANABETHATGUY
- dev: keep the export name of
export * as ns from(#10476) by @tbvjaos510 - code-splitting: only split an entry facade when something else can load its chunk (#10441) by @hyfdev
- code-splitting: fold the runtime chunk back after order lowering (#10414) by @hyfdev
- runtime: don't leave default undefined for cjs that fakes __esModule (#10453) by @IWANABETHATGUY
- import-glob: escape generated string literals (#10438) by @shantanuraj
- preserve-modules: don't assume every chunk mirrors a module (#10442) by @hyfdev
- filter: treat missing hook inputs as non-matches, not panics (#10443) by @IWANABETHATGUY
- code-splitting: keep CommonJS modules wrapped under strict execution order (#10405) by @hyfdev
- code-splitting: align dynamicImports metadata with the rewritten import() specifier (#10430) by @hyfdev
- dev: skip user plugin hooks for ?rolldown-lazy proxy modules (#10426) by @unknownjedi
- treeshake: preserve side-effect-free spread arguments in manual-pure chains (#10432) by @IWANABETHATGUY
- treeshake: preserve eagerly evaluated child effects of manual pure chains (#10427) by @Nic-Polumeyv
- code-splitting: initialize pure definers behind star re-export barrels under strict execution order (#10409) by @hyfdev
- resolveId: reject string
idfilters (must be a RegExp) (#10412) by @IWANABETHATGUY - code-splitting: collect eager order reasons for on-demand wrapping (#10387) by @hyfdev
- rolldown: apply output.paths to CJS export-star of external modules (#10406) by @IWANABETHATGUY
- dev: sourcemaps of lazily compiled chunks (#10386) by @tbvjaos510
- plugin: validate emitted file names at emitFile time (#10377) by @Nic-Polumeyv
- guarantee tokio runtime release when close rejects (#10381) by @shulaoda
- code-splitting: make strict transitive init registration deterministic and constant-time (#10320) by @hyfdev
- pair tokio runtime acquire and release on wasm to prevent premature shutdown (#10363) by @shulaoda
- don't body-demand modules from simulated facade chunk includes (#10351) by @IWANABETHATGUY
- tracing: invalid RD_LOG filter and RD_LOG_OUTPUT=json no longer panic (#10343) by @Brooooooklyn
- code-splitting: treat class definition-time global reads as order-sensitive (#10322) by @hyfdev
- code-splitting: deconflict force-included runtime helper statements (#10336) by @hyfdev
- binding: forward all missing parallel JS plugin hooks (#10345) by @Brooooooklyn
- code-splitting: re-derive chunk exec order after the runtime sweep (#10334) by @hyfdev
- types: add undefined to ExistingRawSourceMap optional properties (#10355) by @ocavue
- magic-string: validate relocate ranges before rewiring (#10327) by @IWANABETHATGUY
- add EMPTY_IMPORT_META warning for non-node CJS output (#10222) by @sapphi-red
- call
resolveFileUrlin a deterministic order (#10330) by @sapphi-red - magic-string: refuse repeated sendMagicString on a consumed instance (#10331) by @IWANABETHATGUY
- magic-string: refuse to use a MagicString after sendMagicString consumed it (#10326) by @IWANABETHATGUY
- magic-string: reject non-contiguous moves before rewiring the chunk list (#10311) by @IWANABETHATGUY
- handle
./foo/barglob pattern the same asfoo/bar(#10313) by @sapphi-red - magic-string: throw instead of panicking when append/prepend splits an edited chunk (#10301) by @IWANABETHATGUY
- output: skip separator for empty hoisted functions (#10310) by @hyfdev
- magic-string: don't report a change when edits cancel out (#10299) by @IWANABETHATGUY
- sourcemap: map wrapped imported callees (#10288) by @hyfdev
- magic-string: count positional inserts at index 0 on an empty source (#10306) by @IWANABETHATGUY
- magic-string: return UTF-16 code units from length() (#10295) by @IWANABETHATGUY
- output: skip separator for empty import prelude (#10289) by @hyfdev
๐ Refactor
- dev: make it easier to customize the runtime (#10338) by @sapphi-red
- code-splitting: declare CJS carrier namespaces initializer-free (#10513) by @hyfdev
- rollup-tests: avoid relying on
NODE_PATHenv var resolution (#10496) by @sapphi-red - code-splitting: derive symbol chunk ownership as pass-local link data (#10449) by @hyfdev
- plugin: share asset emission helpers between copy_module and asset_module (#10450) by @Nic-Polumeyv
- plugin: dedupe hook binding boilerplate (#10428) by @Nic-Polumeyv
- plugin: share the oxc parse preamble between import-glob and dynamic-import-vars (#10452) by @Nic-Polumeyv
- implement
GetAstBuilderon visitor/pass types (#10424) by @overlookmotel - pass arrays to AST builder methods (#10419) by @overlookmotel
- shorten AST builder code (#10418) by @overlookmotel
- centralize final ESM init metadata (#10376) by @hyfdev
- descriptor-based parallel-plugin detection (getParallelPluginInfo) (#10349) by @Brooooooklyn
- remove AstFactory in favor of new_* construction traits (#10353) by @Boshen
- enable oxc_ast's
disable_old_builderfeature (#10316) by @Boshen
๐ Documentation
- development-guide: update config.json link line reference (#10523) by @dogledogle
- clarify slash normalization for id hook filter (#10511) by @sapphi-red
- code-splitting: record the thenable-namespace rule (#10502) by @hyfdev
- clarify that
esmExternalRequirePluginmust own its externals (#10439) by @TheAlexLichter - add troubleshooting entry for the @rolldown/binding-... resolution error (#10390) by @Nic-Polumeyv
- add Code Splitting API reference category (#10382) by @vittorioexp
โก Performance
- use VisitJsMut in JavaScript-only AST passes (#10507) by @Boshen
- cache the resolved glob matcher for Id/ImporterId filters (#10410) by @IWANABETHATGUY
- scope_hoisting: remove
allocfield fromScopeHoistingFinalizer(#10425) by @overlookmotel - reduce string allocations (#10423) by @overlookmotel
- hmr: remove unnecessary string allocations (#10422) by @overlookmotel
- avoid allocating static strings via custom builder methods (#10421) by @overlookmotel
- pass string literals to AST builder methods (#10420) by @overlookmotel
- use VisitJs in JavaScript-only AST passes (#10396) by @Boshen
- plugin: shrink erased plugin debug vtables (#10370) by @Boshen
- reuse normalized path buffers (#10315) by @hyfdev
๐งช Testing
- code-splitting: pin CJS barrel fallback triggers and flag-off equivalence (#10514) by @hyfdev
- plugin: cover chunk fileName, absolute chunk name, and Windows drive names (#10400) by @IWANABETHATGUY
- code-splitting: cover a single-chunk dynamic import of a wrapped module (#10505) by @hyfdev
- file: remove the unused .dynamic_import fixture (#10481) by @hyfdev
- treeshake: reduce manual-pure fixture to a minimal smoke test, move matrix to unit tests (#10436) by @IWANABETHATGUY
- dev: run vite playgrounds under bundled dev (test-serve-bundled) (#10434) by @h-a-n-a
- stop snapshots from silently hiding user code inside the runtime region (#10431) by @hyfdev
- wasi: add tokio runtime lifecycle regression test (#10379) by @shulaoda
- dev: expect preserved hot.data in hmr-whole-chain-dispose (#10380) by @h-a-n-a
- code-splitting: pin flag-off wrapped-esm init emission (#10324) by @hyfdev
- sourcemap: fix Windows-only failures in composition fixtures (#10368) by @shulaoda
- generated-code: mark assert external in symbols_ns2 for deterministic output (#10339) by @hyfdev
- code-splitting: cover entries-aware strict init cycle (#10307) by @hyfdev
- make
just setup-vitethe only entry point that touchesvite/(#10332) by @shulaoda - vite-tests: reuse the shared root vite checkout (#10325) by @shulaoda
- test-dev-server: drop the vite submodule, track rolldown-canary (#10319) by @shulaoda
- vite-tests: track the latest rolldown-canary rebased onto vite main (#10318) by @shulaoda
- unify Vite in vite-test and test-dev-server (#10293) by @h-a-n-a
โ๏ธ Miscellaneous Tasks
- scope the binding artifact download to
bindings-*(#10525) by @shulaoda - deps: update napi (#10506) by @renovate[bot]
- deps: update rollup submodule for tests to v4.62.3 (#10494) by @rolldown-guard[bot]
- deps: upgrade oxc to 0.142.0 (#10497) by @shulaoda
- deps: update test262 submodule for tests (#10495) by @rolldown-guard[bot]
- deps: update github actions (#10460) by @renovate[bot]
- deps: update rust crates (#10462) by @renovate[bot]
- deps: update npm packages (#10461) by @renovate[bot]
- metric: alert Discord when the metric workflow fails (#10447) by @IWANABETHATGUY
- metric: mint a short-lived GitHub App token instead of a PAT (#10446) by @IWANABETHATGUY
- repo: repair dangling CLAUDE.md symlink (#10451) by @hanayashiki
- publint/package-metadata fixes and small correctness fixes (#10344) by @Brooooooklyn
- deps: update dependency vite-plus to v0.2.6 (#10404) by @renovate[bot]
- add Semgrep scan workflow (#10395) by @Boshen
- enable Windows CI with a PR label (#10375) by @hyfdev
- deps: upgrade oxc to 0.141.0 (#10373) by @camc314
- deps: update napi (#10369) by @renovate[bot]
- deps: update test262 submodule for tests (#10367) by @rolldown-guard[bot]
- deps: update taiki-e/install-action action to v2.83.3 (#10358) by @renovate[bot]
- deps: update rust crates (#10357) by @renovate[bot]
- deps: update npm packages (#10359) by @renovate[bot]
- deps: update rust crate syn to v3 (#10362) by @renovate[bot]
- deps: update rust crate oxc_sourcemap to v8.1.2 (#10356) by @renovate[bot]
- deps: update dependency vite-plus to v0.2.5 (#10329) by @renovate[bot]
- docs: migrate Netlify redirects to Void config (#10282) by @tux-tn
- deps: update dependency rust to v1.97.1 (#10317) by @renovate[bot]
- runtime: remove unused
runtime/index.js(#10302) by @IWANABETHATGUY
โค๏ธ New Contributors
- @dogledogle made their first contribution in #10523
- @tbvjaos510 made their first contribution in #10489
- @martijnwalraven made their first contribution in #10440
- @shantanuraj made their first contribution in #10438
- @Nic-Polumeyv made their first contribution in #10450
- @hanayashiki made their first contribution in #10451
- @unknownjedi made their first contribution in #10426
- @vittorioexp made their first contribution in #10382
- Jul 15, 2026
- Date parsed from source:Jul 15, 2026
- First seen by Releasebot:Jul 16, 2026
[1.2.0] - 2026-07-15
Rolldown adds client-side HMR, smarter tsconfig change handling, and improved import.meta support, while tightening sourcemaps, tree-shaking, and code-splitting behavior. This release also brings performance gains, bug fixes, docs updates, and dependency refreshes.
๐ Features
- dev: skip shipping factories for newly imported top-level modules (#10223) by @h-a-n-a
- dev: per-client ship map for HMR patch sizing (#10208) by @h-a-n-a
- dev: client-side HMR (#10164) by @h-a-n-a
- dev: send a full-reload update to clients when a tsconfig changes (#10262) by @shulaoda
- treat
import.meta['url']andimport.meta['ROLLUP_FILE_URL_*']as side-effect free (#10267) by @sapphi-red - rewrite
import.meta['url'](#10251) by @sapphi-red - add
FILE_NOT_FOUNDerror (#10220) by @sapphi-red - treat
import.meta.ROLLUP_FILE_URL_*as side-effect free (#10217) by @sapphi-red
๐ Bug Fixes
- sourcemap: preserve unmapped boundaries during composition (#10254) by @hyfdev
[format]in*FileNamesoption for ESM format should beesinstead ofesm(#10214) by @sapphi-red- sourcemap: preserve coarse mappings during composition (#10249) by @hyfdev
- rolldown_plugin_vite_import_glob: support tsconfig paths with
import.meta.glob(#10167) by @sapphi-red - dev: clear tsconfig caches for bare full builds (#10276) by @shulaoda
- dev: force a full rebuild when a tsconfig changes (#10261) by @shulaoda
- treat rooted drive-less module ids as absolute in preserveModules naming (#10235) by @IWANABETHATGUY
- watch: rebuild when tsconfig files change (#10258) by @shulaoda
- watch: drop tsconfig-merged transform options on each rebuild (#10257) by @shulaoda
- incorrect
EMPTY_IMPORT_METAwarning forimport.meta.ROLLUP_FILE_URL_*for CJS output (#10221) by @sapphi-red - deconflict: rename CJS locals shadowing wrapped-ESM namespace objects (#9970) by @IWANABETHATGUY
- rolldown: drop the unused runtime module after entry-level external flattening (#10237) by @IWANABETHATGUY
- rolldown: re-propagate has_dynamic_exports to transitive star importers (#10239) by @IWANABETHATGUY
- tree-shaking: tree-shake destructured dynamic import namespace bindings (#10213) by @logaretm
- s390x: use json-escape-simd 3.1.1 for big-endian JSON escaping fix (#10211) by @satyamg1620
๐ Refactor
- dev: move full-reload to client side (#10207) by @h-a-n-a
- readability follow-ups to the ReplaceWith migration (#10286) by @IWANABETHATGUY
- replace take_in-then-write-back with ReplaceWith and by-value moves (#10285) by @Boshen
- share the main resolver's cache with the transformer's tsconfig lookups (#10205) by @shulaoda
- rolldown: extract the ns star-external __reExport emission rule into LinkingMetadata (#10238) by @IWANABETHATGUY
- rolldown: unify link/generate diagnostics into a Diagnostics accumulator (#10234) by @IWANABETHATGUY
- sourcemap_filenames: drop dead sourcemap-filename plumbing (#10189) by @IWANABETHATGUY
- extract external import symbol merging into a method (#10224) by @IWANABETHATGUY
- rolldown: skip CJS namespace merging under strict execution order (#10203) by @hyfdev
- resolve the manual tsconfig per file instead of once at startup (#10200) by @shulaoda
- rolldown: route interop ESM init emission through a shared init-target view (#10202) by @hyfdev
- rolldown: collapse vestigial wrap-kind state and share chunk sort helper (#10201) by @hyfdev
๐ Documentation
- show plugin kinds in JSDoc and each hook's description (#10218) by @sapphi-red
- add an explanation about removing imports from external modules without any messages (#10215) by @sapphi-red
โก Performance
- sourcemap: owned merge in SourceJoiner::join (4005->5 allocs/chunk) (#10250) by @Boshen
- avoid redundant sourcemap string copies in collapse and minify paths (#10093) by @Boshen
๐งช Testing
- code-splitting: establish strict-order review baselines (#10287) by @hyfdev
- dev: add hot API test cases (#10181) by @h-a-n-a
- code-splitting: normalize strict execution order variants (#10277) by @hyfdev
- code-splitting: harden strict execution order coverage (#10252) by @hyfdev
- code-splitting: add strict execution order regressions (#10253) by @hyfdev
โ๏ธ Miscellaneous Tasks
- deps: update github actions (#10241) by @renovate[bot]
- deps: update oxc to 0.140.0 (#10274) by @shulaoda
- update Yunfei's GitHub username (#10275) by @hyfdev
- deps: update napi (#10260) by @renovate[bot]
- deps: update test262 submodule for tests (#10266) by @rolldown-guard[bot]
- deps: update dependency vite-plus to v0.2.4 (#10256) by @renovate[bot]
- deps: update napi (#10240) by @renovate[bot]
- deps: update oxc resolver to v11.24.2 (#10245) by @renovate[bot]
- deps: update rust crates (#10244) by @renovate[bot]
- disable Renovate updates for idna_adapter (#10248) by @shulaoda
- deps: update oxc resolver to v11.24.1 (#10232) by @renovate[bot]
- deps: update rust crate oxc_sourcemap to v8.1.1 (#10233) by @renovate[bot]
- deps: update dependency rolldown-plugin-dts to ^0.27.0 (#10206) by @renovate[bot]
- deps: upgrade sugar_path to v3 (#10230) by @hyfdev
- add
dist-*to.gitignorein sourcemap-filenames/hash-final-content fixture (#10216) by @sapphi-red - deps: update dependency rust to v1.97.0 (#10209) by @renovate[bot]
โค๏ธ New Contributors
- @satyamg1620 made their first contribution in #10211
Curated by the Releasebot team
Releasebot is an aggregator of official release notes from hundreds of software vendors and thousands of sources.
Our editorial process involves the manual review and audit of release notes procured with the help of automated systems.