Skip to content

Releases: rolldown/rolldown

v1.1.1

11 Jun 09:09
Immutable release. Only release title and notes can be modified.
d7f919c

Choose a tag to compare

[1.1.1] - 2026-06-11

🚀 Features

  • ecmascript_utils: introduce AstFactory for AST construction (#9682) by @hyf0
  • drop no-op init calls for empty wrapped-ESM modules (#9678) by @IWANABETHATGUY

🐛 Bug Fixes

  • resolver: honor package.json#type for .jsx/.tsx extensions (#9690) (#9699) by @IWANABETHATGUY
  • hmr: report the full-reload reason for the invalidate-loop case (#9708) by @hyf0
  • explicit moduleSideEffects from a hook must take priority over the package.json#sideEffects (#9688) by @sapphi-red
  • keep the rolldown-runtime name for the standalone runtime chunk (#9685) by @shulaoda
  • lazy-barrel: request all exports for entry barrels on first encounter (#9672) by @shulaoda
  • finalizer: skip init_*() for tree-shaken wrapped ESM owners (#9669) by @IWANABETHATGUY
  • order chunk.imports by execution order (#9654) by @chuganzy
  • vite-resolve: preserve slash separators for Sass partial exports (#9546) by @cjc0013
  • cross-chunk CJS wrapper shadowed by author-local binding (#9648) by @IWANABETHATGUY

🚜 Refactor

  • precompute wrapped-ESM init metadata in generate stage (#9712) by @IWANABETHATGUY
  • ecmascript_utils: fold construction ext traits onto AstFactory and delete AstSnippet (#9702) by @hyf0
  • finalizer: finish ScopeHoistingFinalizer migration to AstFactory (#9701) by @hyf0
  • finalizer: migrate module_finalizers/mod.rs to AstFactory (#9700) by @hyf0
  • hmr: migrate hmr finalizer to AstFactory (#9695) by @hyf0
  • plugin: migrate vite_build_import_analysis to AstFactory (#9693) by @hyf0
  • scanner: migrate tweak_ast_for_scanning to AstFactory (#9683) by @hyf0
  • always split runtime module first (#9419) by @IWANABETHATGUY

📚 Documentation

  • tsconfig: correct auto-discovery resolution to match TypeScript (#9714) by @shulaoda
  • design: plan to unify all internal AST construction (#9673) by @hyf0
  • tsconfig: align reference resolution docs with TypeScript behavior (#9641) by @shulaoda

⚡ Performance

  • avoid per-module join Strings in scope-hoisting concatenation (#9645) by @Boshen
  • avoid intermediate Strings in the ESM export clause (#9644) by @Boshen
  • reuse a scratch buffer for facade namespace names in the scanner (#9642) by @Boshen
  • reuse the import-matching tracker stack across named imports (#9643) by @Boshen
  • avoid cloning the per-chunk export-items map in render_chunk_exports (#9639) by @Boshen
  • avoid CompactStr allocation in sorted-exports membership check (#9640) by @Boshen

🧪 Testing

⚙️ Miscellaneous Tasks

  • update react repo links (#9711) by @iiio2
  • remove outdated pnpm configurations (#9666) by @btea
  • deps: update github actions to v2.81.5 (#9665) by @renovate[bot]
  • testing: migrate test harness off deprecated inlineDynamicImports (#9710) by @IWANABETHATGUY
  • hmr: delete commented-out dead code left from old register-module codegen (#9707) by @hyf0
  • deps: update napi-rs toolchain (#9706) by @shulaoda
  • deps: update rollup submodule for tests to v4.61.1 (#9676) by @rolldown-guard[bot]
  • deps: update test262 submodule for tests (#9677) by @rolldown-guard[bot]
  • deps: update oxc to 0.135.0 (#9670) by @Boshen
  • pass ALGOLIA_APP_ID and ALGOLIA_API_KEY to void deploy (#9667) by @Boshen
  • deps: update github actions (#9662) by @renovate[bot]
  • deps: update rust crates (#9663) by @renovate[bot]
  • deps: update rolldown-plugin-dts to v0.25.2 (#9661) by @renovate[bot]
  • deps: update typos to v1.47.2 (#9660) by @renovate[bot]
  • deps: update docs dependencies (#9657) by @bddjr
  • deps: update typos to v1.47.1 (#9655) by @renovate[bot]
  • deploy website in its own workflow, only on docs output change (#9650) by @Boshen
  • publish to pkg.pr.new add pm and commentWithDev option (#9638) by @btea

❤️ New Contributors

v1.1.0

03 Jun 14:06
Immutable release. Only release title and notes can be modified.
c462c7c

Choose a tag to compare

Important

This is a minor release. Two changes alter default behavior compared to 1.0.3. Please read this section before upgrading. Everything else is additive (new features, fixes, deps).

⚠️ Notable behavior changes

1. experimental.lazyBarrel is now enabled by default (#9632)

What changed. experimental.lazyBarrel now defaults to true. When a barrel module is recognized as side-effect-free, Rolldown skips compiling the re-exported modules that are never actually used.

Impact. For codebases with large barrel files (component libraries such as Ant Design, @mui/icons-material, etc.) this is a meaningful build-time speedup, and for the vast majority of projects the emitted output is unchanged. In rare cases where a barrel is incorrectly treated as side-effect-free, the optimization could drop a module that was being relied on for its side effects.

How to opt out (backward compatible).

// rolldown.config.js
export default {
  experimental: { lazyBarrel: false },
}

Note: this opt-out flag is planned to be removed in a future release. If you have a case where you must turn it off, please open an issue so we can fix the underlying detection instead.


2. tsconfig project-reference resolution now aligns with TypeScript

Upgrading oxc_resolver (11.19.111.20.0 in #9549, then → 11.21.0 in #9634) changes how Rolldown discovers and resolves tsconfig.json, in particular for a solution-style config (one that only lists references and delegates the real settings to tsconfig.app.json / tsconfig.node.json, as Vite scaffolds), bringing it in line with how TypeScript (tsc / tsserver) itself behaves:

  • Auto-discovery walk-up (oxc-resolver #1154): in auto-discovery mode (tsconfig: true, the default), Rolldown now searches upward from the file's directory and uses the first tsconfig.json that owns the file. A tsconfig.json owns the file when the file matches its files/include/exclude, or when one of its references matches the file. A tsconfig.json that does not own the file is skipped, and the search continues in the parent directory. When no tsconfig.json up the tree owns the file, Rolldown falls back to the outermost (topmost) one found, not the nearest. Previously the nearest tsconfig.json was used unconditionally. This mirrors how TypeScript's tsserver assigns a file to a project.
  • Reference match priority (oxc-resolver #1151): when the root has references, a referenced project that includes the file now takes precedence over the root, instead of the root matching it first (this is what TypeScript already does). So that project's compilerOptions.paths now apply.
  • allowJs (oxc-resolver #1198): whether a .js/.jsx/.mjs/.cjs file is included is now decided by each referenced project's own allowJs, not the root's (again matching TypeScript). So tsconfig.app.json with allowJs: true + paths now resolves aliases for .js files even when the root doesn't set allowJs.

For most projects this is a fix (the standard Vite paths aliases now resolve, closes #8468), but it is a behavior change if you relied on the previous behavior, where the root's paths / allowJs took precedence.

If you relied on the old "root wins" behavior. There is no exact toggle back, because the old behavior was the bug being fixed. The recommended path is to align your config with TypeScript: declare the paths / allowJs on the referenced project that actually owns the files.

If you must keep the old precedence while still using references: a referenced project's match wins, and the first matching references entry takes priority (the root is only a fallback when no reference claims the file). So extract the old root settings into their own config and list it first:

// tsconfig.json (solution root)
{
  "files": [],
  "references": [
    { "path": "./tsconfig.base.json" }, // old root paths/allowJs — listed first, so it wins
    { "path": "./tsconfig.app.json" },
    { "path": "./tsconfig.node.json" }
  ]
}

tsconfig.base.json should carry the paths you previously declared on the root, plus allowJs: true if it needs to claim .js files (the extension is checked against each config's own allowJs). With no include, it defaults to **/* under its directory and claims every file first.

One consequence of the new walk-up behavior to keep in mind: this solution root (files: [], only references) has no file patterns of its own, so it owns a file only when one of its references matches it. When no tsconfig.json owns the file (for example a file outside tsconfig.base.json's directory), Rolldown does not fall back to this tsconfig.json. It keeps searching upward through ancestor directories. Before this release the nearest tsconfig.json was used unconditionally, so such files previously stopped at this solution root.

Alternatively, bypass reference resolution entirely by pointing the top-level tsconfig option at a single config: export default { tsconfig: './tsconfig.app.json' }.


[1.1.0] - 2026-06-03

🚀 Features

  • enable experimental.lazyBarrel by default (#9632) by @shulaoda
  • import.meta.glob support caseSensitive option (#9594) by @btea
  • add SOURCEMAP_BROKEN warning for renderChunk hook (#9601) by @sapphi-red
  • add SOURCEMAP_BROKEN warning for transform hook (#9600) by @sapphi-red
  • add @__NO_SIDE_EFFECTS__ hint for invalid @__PURE__ before function declarations (#9505) by @Copilot
  • code-splitting: support group-local includeDependenciesRecursively (#9587) by @hyf0

🐛 Bug Fixes

  • report TSCONFIG_ERROR instead of UNHANDLEABLE_ERROR for a missing tsconfig file (#9633) by @shulaoda
  • browser: add missing exports and ensure consistency with rolldown package (#9629) by @sapphi-red
  • should build test-dev-server when test-node (#9610) by @situ2001
  • chunk-optimizer: refuse asymmetric merge for cyclic dynamic entries (#9320) (#9322) by @aminpaks
  • dev: handle the remaining errors in dev (#9570) by @h-a-n-a
  • handle slash-normalized ids with preserveModulesRoot (#9595) by @IWANABETHATGUY
  • json: preserve .default access on JSON default imports (#9568) by @IWANABETHATGUY
  • testing: remove unintended trigger_full_build from test harness (#9573) by @hyf0

🚜 Refactor

📚 Documentation

  • clarify that RolldownBuild::close method should be called in most cases (#9619) by @sapphi-red

⚡ Performance

🧪 Testing

⚙️ Miscellaneous Tasks

  • deps: update oxc_resolver to 11.21.0 (#9634) by @shulaoda
  • update invalid option diagnostic link to point to Rolldown docs (#9631) by @sapphi-red
  • deps: update vite+ to v0.1.24 (#9628) by @renovate[bot]
  • deps: update oxc resolver to v11.20.0 (#9549) by @renovate[bot]
  • deps: update dependency vite-plus to v0.1.24 (#9470) by @renovate[bot]
  • deps: update npm packages (#9614) by @renovate[bot]
  • deps: upgrade oxc to 0.134.0 (#9625) by @shulaoda
  • deps: update crate-ci/typos action to v1.47.0 (#9620) by @renovate[bot]
  • deps: update rollup submodule for tests to v4.61.0 (#9623) by @rolldown-guard[bot]
  • deps: update github actions (#9613) by @renovate[bot]
  • deps: update pnpm to v11.4.0 (#9616) by @renovate[bot]
  • deps: update rust crates (#9615) by @renovate[bot]
  • deps: update test262 submodule for tests (#9624) by @rolldown-guard[bot]
  • deps: update dependency @napi-rs/cli to v3.7.0 (#9588) by @renovate[bot]
  • deps: update dependency rust to v1.96.0 (#9596) by @renovate[bot]
  • re-enable WASI testing with proper infrastructure (#9397) by @Boshen

❤️ New Contributors

Co-authored-by: shulaoda 165626830+shulaoda@users.noreply.github.com

v1.0.3

27 May 11:50
Immutable release. Only release title and notes can be modified.
a287faa

Choose a tag to compare

[1.0.3] - 2026-05-27

🚀 Features

🐛 Bug Fixes

  • ci: create target dir before cargo release-oxc update (#9584) by @shulaoda
  • ci: reorder prepare-release steps to avoid dirty git check failure (#9583) by @shulaoda
  • testing: canonicalize temp dir early and use platform-specific separator in test262 (#9582) by @shulaoda
  • testing: resolve symlinked temp dir in test262 snapshot normalization (#9581) by @shulaoda
  • testing: canonicalize temp dir path in test262 snapshot normalization (#9579) by @shulaoda
  • dev: onOutput called twice when initial build fails (#9552) by @hyf0
  • dev: make ensureCurrentBuildFinish not returning error when engine closes (#9564) by @h-a-n-a
  • oxc-runtime: route require() to CJS helper variant (#9263) (#9526) by @IWANABETHATGUY
  • generator: use exporter chunk's export mode for CJS default re-exports (#9299) (#9529) by @IWANABETHATGUY
  • rolldown: always run reduced-atom static cycle check (#9441) (#9514) by @IWANABETHATGUY
  • apply transform.dropLabels before scanning (#9521) (#9522) by @IWANABETHATGUY
  • rolldown_watcher: take rolldown dep through the workspace (#9510) by @Boshen
  • cache: keep the scan-stage cache consistent when a build fails (#9495) by @h-a-n-a
  • skip JSON default-import namespace optimization for write targets (#9484) (#9489) by @IWANABETHATGUY
  • deps: skip pnpm frozen-lockfile on Netlify to dodge catalog mismatch bug (#9471) by @Boshen

🚜 Refactor

📚 Documentation

⚡ Performance

  • generate: thread ast_table by value into codegen consumer (#9555) by @Boshen
  • finalizers: replace _reExport construction with a direct call to avoid calling clone_in (#9501) by @Dunqing
  • reorder hot-path boolean checks to short-circuit on cheap predicates first (#9523) by @Boshen

🧪 Testing

⚙️ Miscellaneous Tasks

  • deps: upgrade oxc to 0.133.0 (#9563) by @Dunqing
  • deps: update crate-ci/typos action to v1.46.3 (#9576) by @renovate[bot]
  • deps: update mimalloc-safe to 0.1.62 (#9577) by @shulaoda
  • mimalloc-safe: update to a bug-fix branch for verification (#9569) by @shulaoda
  • deps: update test262 submodule for tests (#9551) by @rolldown-guard[bot]
  • point published crates' readme to root README.md (#9553) by @Boshen
  • replace actions-cool/issues-helper with gh CLI (#9543) by @Boshen
  • deps: update cargo-shear to 1.12.4 (#9541) by @Boshen
  • deps: update taiki-e/install-action action to v2.79.4 (#9535) by @renovate[bot]
  • deps: update github actions (#9532) by @renovate[bot]
  • deps: update rust crates (#9534) by @renovate[bot]
  • deps: update npm packages (#9533) by @renovate[bot]
  • gate experimental/testing-only items to silence dead_code in publish builds (#9517) by @Boshen
  • docs: deploy to Void (#9509) by @Boshen
  • release: set up cargo-release-oxc for publishing crates (#9476) by @Boshen
  • rolldown_plugin_lazy_compilation: add missing description (#9507) by @Boshen
  • mimalloc-safe: update to a bug-fix branch for verification (#9506) by @shulaoda
  • deps: update crate-ci/typos action to v1.46.2 (#9468) by @renovate[bot]

❤️ New Contributors

v1.0.2

20 May 08:49
Immutable release. Only release title and notes can be modified.
f2757ed

Choose a tag to compare

[1.0.2] - 2026-05-20

🚀 Features

🐛 Bug Fixes

  • hash: keep chunk file names stable when an unrelated entry is added (#9444) by @hyf0
  • call codeSplitting.groups[].name in deterministic order (#9457) by @sapphi-red
  • dev/lazy: make resolve_id idempotent when the resolved id is already a lazy entry (#9439) by @h-a-n-a
  • chunk-optimization: publish absorbed dynamic-entry namespace cross-chunk (#9448) by @IWANABETHATGUY
  • treeshake: propagate pure annotation through compound exprs (#9431) by @Dunqing
  • finalizer: skip redundant init call when barrel executes in same chunk (#9354) by @IWANABETHATGUY
  • linking: initialize wrapped ESM re-export owners (#9353) by @IWANABETHATGUY
  • do not inherit __toESM across chunks for named-only external imports (#9333) (#9415) by @IWANABETHATGUY
  • watcher: don't write output or emit events after close() (#9328) by @situ2001
  • chunk-optimization: avoid unsafe dynamic-only merges (#9398) by @IWANABETHATGUY
  • cjs: rename CJS-wrapped locals that would shadow chunk-scope names (#9392) by @hyf0
  • dev/lazy: watch lazy modules added in rebuilds (#9391) by @h-a-n-a

🚜 Refactor

  • rolldown_dev: move dev example to break publish cycle (#9465) by @Boshen
  • binding: drop unsafe napi string helper, hoist transform ArcStr (#9456) by @hyf0
  • ecmascript_utils: split rewrite_ident_reference off JsxExt trait (#9417) by @IWANABETHATGUY
  • use ThreadsafeFunction::call_async_catch (#9390) by @sapphi-red

📚 Documentation

  • devtools: document @rolldown/debug usage and package graph consumption (#9435) by @IWANABETHATGUY
  • replace Inter with system font stack in OG template SVG (#9240) by @yvbopeng
  • remove output.comments warning as all issues have been resolved (#9393) by @sapphi-red
  • in-depth: clarify @PURE scope and document positions (#9389) by @Kyujenius
  • readme: remove release candidate notice (#9387) by @shulaoda

⚡ Performance

🧪 Testing

⚙️ Miscellaneous Tasks

❤️ New Contributors

Co-authored-by: shulaoda 165626830+shulaoda@users.noreply.github.com

v1.0.1

13 May 12:45
Immutable release. Only release title and notes can be modified.
2777945

Choose a tag to compare

[1.0.1] - 2026-05-13

🚀 Features

  • experimental/lazy-barrel: advice on oversized barrel modules (#9236) by @shulaoda
  • rolldown: inline optional-chain enum access (#9379) by @Dunqing
  • chunk-optimization: dedupe already-loaded dynamic deps (#9305) by @IWANABETHATGUY
  • binding: call moduleParsed hook in ParallelJsPlugin (#9318) by @jaehafe

🐛 Bug Fixes

  • transform: enable enum_eval for transformSync and vite TS transform (#9325) by @Dunqing
  • error: remove severity prefix from diagnostic messages (#9262) by @Kyujenius
  • deps: pin pnpm to 10.23.0 to work around catalog mismatch on Netlify (#9364) by @shulaoda
  • ci: pin mimalloc-safe to 0.1.58 (#9361) by @shulaoda
  • dev/lazy: fix exports of lazy requests in lazy chunks (#9249) by @h-a-n-a
  • rolldown_plugin_vite_resolve: handle errors in resolveSubpathImports callback (#9355) by @sapphi-red
  • rolldown_plugin_lazy_compilation: use loadExports for fetched proxy to preserve original export names (#9132) by @h-a-n-a
  • common: include offending index in HybridIndexVec panic message (#9296) by @SAY-5

🚜 Refactor

📚 Documentation

⚡ Performance

  • binding: enable mimalloc v3 to reduce idle memory (#9349) by @shulaoda

🧪 Testing

⚙️ Miscellaneous Tasks

❤️ New Contributors

Co-authored-by: shulaoda 165626830+shulaoda@users.noreply.github.com

v1.0.0

07 May 09:10
Immutable release. Only release title and notes can be modified.
ac5c710

Choose a tag to compare

[1.0.0] - 2026-05-07

🐛 Bug Fixes

  • dev/lazy: lazily compiled modules should be watched (#9301) by @h-a-n-a
  • implement dynamic dominator merge logic (#9270) by @TheAlexLichter
  • dev: apply __toCommonJS interop when CJS requires ESM in HMR finalizer (#9261) by @h-a-n-a

🚜 Refactor

📚 Documentation

  • getting-started: remove RC warning for 1.0.0 release (#9310) by @shulaoda
  • getting-started: update version references for 1.0.0 release (#9309) by @shulaoda
  • add Vite+ tab to getting-started snippets (#9285) by @shulaoda
  • lazy-barrel: clarify own-exports behavior for import-then-export records (#9298) by @shulaoda
  • restructure top navigation around Learn vs Reference (#9284) by @shulaoda
  • builtin-plugins: add bundle analyzer plugin docs (#9292) by @shulaoda
  • design doc for reference_needed_symbols (#9264) by @IWANABETHATGUY

⚡ Performance

⚙️ Miscellaneous Tasks

v1.0.0-rc.18

29 Apr 13:44
Immutable release. Only release title and notes can be modified.
2c4a957

Choose a tag to compare

[1.0.0-rc.18] - 2026-04-29

💥 BREAKING CHANGES

🐛 Bug Fixes

  • rolldown_plugin_vite_import_glob: return error instead of panicking when virtual module uses a relative glob (#9241) by @shulaoda
  • binding: treat empty inlineConst object as omitted (#9247) by @IWANABETHATGUY
  • rolldown: keep enum declaration for optional-chain access (#9229) by @Dunqing
  • link_stage: restore inline let-else in exports-kind filter (#9237) by @IWANABETHATGUY
  • dev/lazy: avoid module reinitialization in lazy compilation patches (#9179) by @h-a-n-a
  • dev: visit identifier references for runtime rewrites in HMR finalizer (#9191) by @h-a-n-a
  • chunk-optimizer: pick dominator for runtime placement to avoid cycles (#9164) by @IWANABETHATGUY
  • make this.emitFile chunk path synchronous to avoid deadlock (#9031) by @lazarv
  • use sentinel id for browser: false ignored modules (#9192) by @shulaoda
  • prevent chunk optimizer from creating import cycles (#9228) by @IWANABETHATGUY

🚜 Refactor

📚 Documentation

⚙️ Miscellaneous Tasks

❤️ New Contributors

Co-authored-by: shulaoda 165626830+shulaoda@users.noreply.github.com

v1.0.0-rc.17

22 Apr 11:14
Immutable release. Only release title and notes can be modified.
d9d72c3

Choose a tag to compare

[1.0.0-rc.17] - 2026-04-22

🐛 Bug Fixes

  • link: error on missing export between TS modules (#9197) by @IWANABETHATGUY
  • rolldown_plugin_vite_import_glob: import path should not be affected by absolute base option (#9145) by @kermanx
  • this.resolve() returns null for bare relative paths without importer (#9142) by @Copilot
  • collect destructured bindings in HMR module exports (#9146) by @h-a-n-a
  • esbuild-tests: handle 0.28.0 test cases (#9149) by @sapphi-red
  • plugin/copy-module: honor external resolutions from other plugins (#9139) by @TheAlexLichter
  • allow undefined in sourcesContent type (#9136) by @jurijzahn8019
  • reduce false positives in chunk optimizer circular dependency detection (#9049) by @AlonMiz

🚜 Refactor

  • chunk-optimizer: extract runtime-module placement into rehome_runtime_module (#9163) by @IWANABETHATGUY

📚 Documentation

⚡ Performance

  • rolldown_plugin_vite_import_glob: skip self-import earlier using raw path comparison (#9193) by @shulaoda

🧪 Testing

  • lazy: add playground/lazy-compilation (#7974) by @hyf0

⚙️ Miscellaneous Tasks

❤️ New Contributors


Co-authored-by: shulaoda 165626830+shulaoda@users.noreply.github.com

v1.0.0-rc.16

16 Apr 09:05
Immutable release. Only release title and notes can be modified.
edec4fa

Choose a tag to compare

[1.0.0-rc.16] - 2026-04-16

🚀 Features

  • const enum cross-module inlining support (#8796) by @Dunqing
  • implement module tagging system for code splitting (#9045) by @hyf0

🐛 Bug Fixes

  • rolldown_plugin_vite_manifest: handle duplicate chunk names for CSS entries (#9059) by @sapphi-red
  • improve error message for invalid return values in function options (#9125) by @shulaoda
  • await async export-star init wrappers (#9101) by @thezzisu
  • never panic during diagnostic emission (#9091) by @IWANABETHATGUY
  • include array rest pattern in binding_identifiers (#9112) by @IWANABETHATGUY
  • rolldown: set worker thread count with ROLLDOWN_WORKER_THREADS (#9086) by @fpotter
  • rolldown_plugin_lazy_compilation: escape request ID in proxy modules (#9102) by @h-a-n-a
  • treat namespace member access as side-effect-free (#9099) by @IWANABETHATGUY
  • relax overly conservative side-effect leak check in chunk optimizer (#9085) by @IWANABETHATGUY
  • runtime: release cb reference after __commonJS factory initialization (#9067) by @hyf0-agent
  • @__NO_SIDE_EFFECTS__ wrapper should not remove dynamic imports (#9075) by @IWANABETHATGUY
  • rolldown_plugin_vite_import_glob: use POSIX path join/normalize for glob resolution (#9077) by @shulaoda
  • emit REQUIRE_TLA error when require() loads a module with top-level await (#9071) by @jaehafe
  • emit namespace declaration for empty modules in manual chunks (#8993) by @privatenumber
  • rolldown_plugin_vite_import_glob: keep common base on path segment boundary (#9070) by @shulaoda
  • prevent circular runtime helper imports during facade elimination (#8989) (#9057) by @IWANABETHATGUY
  • correct circular dependency check in facade elimination (#9047) by @h-a-n-a
  • docs: correct dead link in CodeSplittingGroup.tags JSDoc (#9051) by @hyf0
  • emit DUPLICATE_SHEBANG warning when banner contains shebang (#9026) by @IWANABETHATGUY

🚜 Refactor

📚 Documentation

  • document runtime module placement strategy in code-splitting design (#9062) by @IWANABETHATGUY
  • clarify options hook behavior difference with Rollup in watch mode (#9053) by @sapphi-red
  • meta/design: introduce module tags (#9017) by @hyf0

⚡ Performance

🧪 Testing

⚙️ Miscellaneous Tasks

❤️ New Contributors

Co-authored-by: shulaoda 165626830+shulaoda@users.noreply.github.com

v1.0.0-rc.15

09 Apr 02:46
Immutable release. Only release title and notes can be modified.
27cb729

Choose a tag to compare

[1.0.0-rc.15] - 2026-04-09

🐛 Bug Fixes

  • prevent stack overflow in generate_transitive_esm_init on circular dependencies (#9041) by @shulaoda

🚜 Refactor

  • agents: rename Spec-Driven Development to Context Engineering (#9036) by @hyf0

Co-authored-by: shulaoda 165626830+shulaoda@users.noreply.github.com