NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #2562 most downloaded on npm
Fast JavaScript/TypeScript bundler in Rust with Rollup-compatible API.
Last release 2 days ago
16 Sep 2026
Ships on a steady schedule
a new release about every 2 weeks
Most releases are documented
notes for 30 of 39 stable releases
Nothing withdrawn
no release was ever pulled
2 years old
611 releases · first in 2024
> This is a minor release. Two changes alter default behavior compared to 1.0.3. Please read this section before upgrading. Everything else is additiv
[!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).
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.
tsconfig project-reference resolution now aligns with TypeScriptUpgrading oxc_resolver (11.19.1 → 11.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:
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.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 rolldown/rolldown#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' }.
experimental.lazyBarrel by default (#9632) by @shulaodaimport.meta.glob support caseSensitive option (#9594) by @bteaSOURCEMAP_BROKEN warning for renderChunk hook (#9601) by @sapphi-redSOURCEMAP_BROKEN warning for transform hook (#9600) by @sapphi-red@__NO_SIDE_EFFECTS__ hint for invalid @__PURE__ before function declarations (#9505) by @CopilotincludeDependenciesRecursively (#9587) by @hyf0rolldown package (#9629) by @sapphi-redImportStatus variants (#9606) by @BoshenRolldownBuild::close method should be called in most cases (#9619) by @sapphi-redCo-authored-by: shulaoda 165626830+shulaoda@users.noreply.github.com
One column per month.
transform: respect decorator strictNullChecks option (#9580) by @kylecannon
defer keyword (#9503) by @TheAlexLichteronOutput called twice when initial build fails (#9552) by @hyf0ensureCurrentBuildFinish not returning error when engine closes (#9564) by @h-a-n-arolldown dep through the workspace (#9510) by @Boshenmap: null vs map: undefined in transform hook output (#9497) by @sapphi-red_reExport construction with a direct call to avoid calling clone_in (#9501) by @Dunqingdevtools: emit package size in PackageGraphReady (#9434) by @IWANABETHATGUY
include and exclude (#9395) by @h-a-n-acodeSplitting.groups[].name in deterministic order (#9457) by @sapphi-redresolve_id idempotent when the resolved id is already a lazy entry (#9439) by @h-a-n-aThreadsafeFunction::call_async_catch (#9390) by @sapphi-redInter with system font stack in OG template SVG (#9240) by @yvbopengoutput.comments warning as all issues have been resolved (#9393) by @sapphi-redlegal_comments_inline test (#9394) by @sapphi-redtodo, unimplemented, and print_stderr clippy lints (#9412) by @Boshenpip install setuptools workaround for node-gyp on macOS (#9370) by @sapphi-redCo-authored-by: shulaoda 165626830+shulaoda@users.noreply.github.com
experimental/lazy-barrel: advice on oversized barrel modules (#9236) by @shulaoda
enum_eval for transformSync and vite TS transform (#9325) by @DunqingresolveSubpathImports callback (#9355) by @sapphi-redtopLevelVar (#9380) by @IWANABETHATGUY$initial group (#9376) by @hyf0@rolldown/pluginutils to rolldown/plugins (#9317) by @shulaodaigorskyflyer/action-readfile with cat (#9369) by @sapphi-redCo-authored-by: shulaoda 165626830+shulaoda@users.noreply.github.com
dev/lazy: lazily compiled modules should be watched (#9301) by @h-a-n-a
optimization: default unspecified inlineConst.mode to smart (#9248) by @IWANABETHATGUY
this.emitFile chunk path synchronous to avoid deadlock (#9031) by @lazarvbrowser: false ignored modules (#9192) by @shulaoda-- separator before forwarded args in vp run (#9246) by @shulaodaCo-authored-by: shulaoda 165626830+shulaoda@users.noreply.github.com
link: error on missing export between TS modules (#9197) by @IWANABETHATGUY
this.resolve() returns null for bare relative paths without importer (#9142) by @CopilotRenderedModule (#9147) by @sapphi-redplayground/lazy-compilation (#7974) by @hyf0ci: windows (#9153) by @hyf0Co-authored-by: shulaoda 165626830+shulaoda@users.noreply.github.com
const enum cross-module inlining support (#8796) by @Dunqing
cb reference after __commonJS factory initialization (#9067) by @hyf0-agent@__NO_SIDE_EFFECTS__ wrapper should not remove dynamic imports (#9075) by @IWANABETHATGUYoptions hook behavior difference with Rollup in watch mode (#9053) by @sapphi-redgenerate_transitive_esm_init to iterative (#9046) by @IWANABETHATGUYextendedTests: false shorthand in test config (#9050) by @hyf0Co-authored-by: shulaoda 165626830+shulaoda@users.noreply.github.com
prevent stack overflow in generate_transitive_esm_init on circular dependencies (#9041) by @shulaoda
generate_transitive_esm_init on circular dependencies (#9041) by @shulaodaCo-authored-by: shulaoda 165626830+shulaoda@users.noreply.github.com
rust: add disable_panic_hook feature to disable the panic hook (#9023) by @sapphi-red
disable_panic_hook feature to disable the panic hook (#9023) by @sapphi-redCo-authored-by: shulaoda 165626830+shulaoda@users.noreply.github.com
add friendly error for unloadable virtual modules (#8955) by @sapphi-red
meta.chunks in renderChunk hook (#8956) by @sapphi-redvite-test-ubuntu when build is skipped (#8934) by @Copilotcreate_ecma_view return destructuring and remove redundant binding (#8932) by @shulaoda@emnapi/runtime and @emnapi/core as direct deps of @rolldown/browser (#8978) by @Copilottype-check scripts (#8957) by @sapphi-redCo-authored-by: shulaoda 165626830+shulaoda@users.noreply.github.com
chunk-optimizer: skip circular dependency check when strict execution order is enabled (#8886) by @hyf0
entriesAware should calculate sizes without duplication (#8887) by @hyf0is_top_level incorrectly treats strict-mode scopes as top-level (#8878) by @DunqingCo-authored-by: shulaoda 165626830+shulaoda@users.noreply.github.com
magicString replace with regex (#8802) by @IWANABETHATGUY
output.sourcemapExcludeSources option (#8828) by @sapphi-redgetIndentString in MagicString (#8775) by @IWANABETHATGUYpluginName from MinimalPluginContext (#8864) by @sapphi-redvpx instead of vp exec for pkg-pr-new (#8827) by @Boshenorder for callable plugins (#8815) by @sapphi-reddervie_entries_aware_chunk_name (#8847) by @AliceLannistecollapse_sourcemaps (#8821) by @Boshenjust setup (#8846) by @AliceLannisteexamples/lazy to examples/lazy-compilation (#8789) by @shulaodaCo-authored-by: shulaoda 165626830+shulaoda@users.noreply.github.com
add indentExclusionRanges property to MagicString (#8746) by @IWANABETHATGUY
oxcRuntimePlugin (#8654) by @sapphi-redyarn_pnp option where needed (#8736) by @sapphi-redcomments.annotation: false breaking tree-shaking (#8657) by @IWANABETHATGUYCrossModuleOptimizationConfig::side_effects_free_function_optimization (#8673) by @Dunqingcross_module_optimization by removing redundant scope tracking (#8672) by @DunqingBindingIdentifierExt to use BindingIdentifier::symbol_id() instead (#8667) by @Dunqinginject option is only conceptually similar to esbuild's one (#8743) by @sapphi-reddevtools.md (#8663) by @hyf0resolve.symlinks is false (#8483) by @sapphi-redreset category in MagicString.test.ts (#8749) by @IWANABETHATGUYCODE_OF_CONDUCT.md (#8706) by @sapphi-redtype-check job (#8677) by @hyf0Co-authored-by: shulaoda 165626830+shulaoda@users.noreply.github.com
rename exported BindingMagicString to RolldownMagicString (#8626) by @IWANABETHATGUY
false to 'dce-only' (#8620) by @shulaoda--no-run build step from cargo-test (#8623) by @Boshencargo-shear to toggle Cargo.toml [lib] test = bool (#8622) by @BoshenCo-authored-by: shulaoda 165626830+shulaoda@users.noreply.github.com
watch: enable full functional fs watcher in wasm (#8575) by @hyf0
format option to directives example config (#8590) by @shulaodaoutput.strict option (#8535) by @minsoo-webCo-authored-by: shulaoda 165626830+shulaoda@users.noreply.github.com
⚡ Smarter Code Generation Defaults
⚡ Smarter Code Generation Defaults
💡 LLM-Friendly Bundle Analyzer Reports
inlineConst: { mode: 'smart', pass: 1} by default (#8444) by @IWANABETHATGUYoffset property support (#8531) by @IWANABETHATGUYoutput.strict option to control "use strict" directive emission (#8489) by @Copilotwatcher.compareContentsForPolling (#8526) by @hyf0plugins on NormalizedInputOptions for buildStart hook (#8521) by @Copilotinvoke_sync deadlock (#8518) by @IWANABETHATGUYtopLevelVar to exported const/let declarations (#8507) by @IWANABETHATGUYnew.target (#8488) by @sapphi-redreset_closed_for_watch_mode (#8530) by @hyf0vitepress-plugin-graphviz (#8498) by @sapphi-redRolldownBuild.generate and others (#8490) by @sapphi-redformatOnSave for markdown files using oxc formatter (#8536) by @minsoo-webretry workaround from output paths test fixtures (#8520) by @CopilotCo-authored-by: shulaoda 165626830+shulaoda@users.noreply.github.com
deprecate output.legalComments (#8450) by @sapphi-red
css_entry_filenames , css_chunk_filenames and related code (#8402) by @hyf0PluginOrder::PinPost (#8417) by @hyf0ModuleType:Copy (#8407) by @hyf0ESTree types from rolldown/utils (#8400) by @sapphi-red.js within "type": "commonjs" as ESM for now (#8470) by @sapphi-red.cjs / .cts / .js within "type": "commonjs" as CommonJS (#8455) by @sapphi-redrender_chunk_meta run after users plugin (#8422) by @hyf0DataUriPlugin (#8418) by @hyf0jsx.preserve should also considering tsconfig json preserve (#8324) by @IWANABETHATGUYdeferred_scan_data.rs "Should have resolved id: NotFound" error (#8379) by @sapphi-red--dir/-d and --file/-o (#8378) by @Copilotrolldown_plugin_data_uri to rolldown_plugin_data_url (#8421) by @hyf0https://rolldown.rs from links in reference docs (#8454) by @sapphi-redoutput.codeSplitting docs (#8452) by @sapphi-redoutput.comments behavior a bit (#8451) by @sapphi-redExported from for values / types exported from subpath exports (#8394) by @sapphi-redsugar_path@2 (#8432) by @hyf0_test.mjs even if executeOutput is false (#8398) by @sapphi-redexpect.assertions() as it is not concurrent test friendly (#8383) by @sapphi-redmockReset option (#8382) by @sapphi-redexpect.assertions in all fixture tests (#8395) by @sapphi-redexpect.assertions in fixture tests (#8387) by @sapphi-red_config.ts files (#8386) by @sapphi-redCo-authored-by: shulaoda 165626830+shulaoda@users.noreply.github.com
💡 Smarter entriesAware for Code Splitting
💡 Smarter entriesAware for Code Splitting
New entriesAware and entriesAwareMergeThreshold options for codeSplitting.groups[] enable entry-reachability-based chunk splitting with automatic small chunk merging.
entriesAware: true splits matched modules by entry reachability — modules reached by the same set of entries are grouped together, providing the most precise loading behavior with less over-fetchingvendor-entry-a-entry-b.js) instead of opaque hashesentriesAwareMergeThreshold sets a byte-size threshold to merge tiny subgroups into the closest sibling with the fewest extra entries, reducing micro-chunk fragmentation while preserving precisionmaxSize: merge tiny chunks first to reduce request overhead, then cap large chunks to control payload sizecodeSplitting: {
groups: [{
name: 'vendor',
test: /node_modules/,
entriesAware: true,
entriesAwareMergeThreshold: 28000, // bytes
}]
}
Visitor to rolldown/utils (#8373) by @sapphi-redinputFormat property to ModuleInfo (#8329) by @shulaodatreeshake.invalid_import_side_effects to false (#8357) by @sapphi-redIndexBitSet (#8343) by @sapphi-redawait import().then((m) => m.prop) (#8328) by @sapphi-redentriesAwareMergeThreshold (#8312) by @hyf0maxSize will split the oversized chunk with taking file relevance into account (#8277) by @hyf0entriesAware chunks (#8275) by @hyf0entriesAware (#8274) by @hyf0minify.compress: true and minify.mangle: true with minify: true (#8367) by @sapphi-redencode_hash_with_base output to fixed length to prevent slice panics (#8320) by @shulaodaxxhash_with_base skips hashing when input is exactly 16 bytes (#8319) by @shulaodaImportKind::try_from with missing variants and correct url-import to url-token (#8310) by @shulaodaexternal config (#8304) by @IWANABETHATGUYmaxSize should split chunks correctly based on sizes (#8289) by @hyf0RawMangleOptions and RawCompressOptions (#8366) by @sapphi-redapply_manual_code_splitting into ManualSplitter (#8346) by @hyf0ModuleGroupOrigin and ModuleGroupId (#8311) by @hyf0FinalizerMutableState struct (#8303) by @shulaodafinalize_modules (#8302) by @shulaodaapply_transfer_parts_mutation into its own module (#8301) by @shulaodadetermine_export_mode (#8294) by @shulaodawarnings field from GenerateContext (#8293) by @shulaodais_in_node_modules to PathExt trait in rolldown_std_utils (#8286) by @shulaoda\0rolldown/runtime.js (#8234) by @hyf0format JSDoc from 'esm' to 'es' (#8372) by @shulaodainvalidImportSideEffects option mention from lazy barrel optimization doc (#8355) by @sapphi-redminSize constraints (#8279) by @ShroXdreport_compressed_size is disabled (#8321) by @shulaodavi.waitFor and expect.poll instead of custom waitUtil function (#8369) by @sapphi-redThe output.legalComments option is now deprecated and use comments.legal instead
💡 Granular comments Option
output.comments option provides fine-grained control over comment preservationoutput.legalComments option is now deprecated and use comments.legal insteadRolldownError from RollupError (#8262) by @sapphi-redresolve_tsconfig function for Vite (#8257) by @sapphi-redrolldown_watcher (#8161) by @hyf0comments and legalComments into a single granular comments option (#8229) by @IWANABETHATGUYtransform (#8180) by @sapphi-redother to jsdoc in comments options (#8256) by @IWANABETHATGUYparse and parseSync (#8215) by @sapphi-redparse / minify / transform from rolldown/utils (#8214) by @sapphi-red<script> escape behavior difference note from platform option (#8253) by @sapphi-redRUSTSEC-2025-0141 cargo check error (#8235) by @hyf0Co-authored-by: shulaoda 165626830+shulaoda@users.noreply.github.com
⚡ Remove Unnecessary Default Export Assignment
⚡ Remove Unnecessary Default Export Assignment
// index.js
var x = 42;
export default x;
// Before
var x = 42;
var entry_default = x;
export { entry_default as default };
// After
var x = 42;
export { x as default };
🐛 Avoid Unnecessary Facade Chunks
// main.js (entry module)
import { a } from './lib.js'
console.log(a)
// lib.js
export * from './counter.js'
// counter.js (entry module)
export const a = 100
// Before
dist/
├── main.js → import { a } from './counter-chunk.js'; console.log(a)
├── counter.js → export { a } from './counter-chunk.js' // ❌ facade chunk
└── counter-chunk.js → export const a = 100
// After
dist/
├── main.js → import { a } from './counter.js'; console.log(a)
└── counter.js → export const a = 100
RUNTIME_MODULE_ID constant for plugin authors (#8199) by @shulaodapreserveValueImports and importsNotUsedAsValues in tsconfig.json (#8169) by @sapphi-redinputMap option to minify / minifySync functions (#8138) by @sapphi-redthis.addWatchFile (#8198) by @hyf0RuntimeModuleTask after build_start to avoid race condition (#8182) by @shulaoda\0rolldown/runtime.js will go through transform hook and add test (#8093) by @hyf0[name] in assetFileNames does not include the directory part (#8098) by @IWANABETHATGUYUnknown resolve error error message (#8111) by @sapphi-rednot(feature = "experimental") (#8110) by @coolreader18VERSION to constants directory (#8200) by @shulaodaSymbolFlags (#8193) by @shulaodaremove instead of contains_key + remove (#8123) by @shulaodaget_barrel_normal_module (#8122) by @shulaodaresolveDynamicImport hook (#8137) by @sapphi-redthis.addWatchFile dependency should be preserved after reload (#8165) by @sapphi-redtransform_runtime_module test as ignored (#8178) by @Copilottransform_runtime_module test shouldn't panic inside (#8151) by @hyf0output.dynamicImportInCjs tests as passed (#8125) by @shulaodaHashMap::new and HashSet::new by clippy (#8135) by @sapphi-redCo-authored-by: shulaoda 165626830+shulaoda@users.noreply.github.com
Skips compilation of unused re-export modules in side-effect-free barrel modules
⚡ Lazy Barrel Optimization
For large component libraries like Ant Design, when you import just one component:
import { Button } from 'antd';
Button;
| Metric | Without lazy barrel | With lazy barrel |
|---|---|---|
| Modules compiled | 2986 | 250 |
| Build time (macOS) | ~65ms | ~28ms |
| Build time (Windows) | ~210ms | ~50ms |
By enabling lazy barrel, Rolldown reduces the number of compiled modules by 90% and speeds up the build by 2-4x.
Enable it in your config:
export default {
experimental: {
lazyBarrel: true,
},
};
For more details, see the https://rolldown.rs/in-depth/lazy-barrel-optimization
\0rolldown/runtime in transform hook (#8068) by @hyf0rolldown:runtime to \0rolldown/runtime.js (#8067) by @hyf0this.emitFile with type: 'prebuilt-chunk' (#8062) by @sapphi-rednew URL error diagnostic (#8043) by @valadaptivenew URL imports (#8035) by @valadaptiveChunk#id to Chunk#chunk_id (#8040) by @hyf0__exportAll parameter logic to reduce default output size (#8036) by @Copilot</script tag search should be case insensitive (#8033) by @IWANABETHATGUY. (#8029) by @Copilotthis to undefined (#8020) by @hyf0output.generatedCode.preset: 'es2015' was not set by default (#8026) by @sapphi-redoutput.strictExecutionOrder by the option validator (#8022) by @sapphi-redthis from on / off methods of RolldownWatcher (#8015) by @sapphi-reduse_built_ins and use_spread from internal JSX options (#8079) by @sapphi-redexperimental.transformHiresSourcemap (#8055) by @Copilotis_data_url more consistently (#8042) by @valadaptiveFxIndexMap to store EntryPoint (#8032) by @IWANABETHATGUY{@include ./foo.md} from d.ts files (#8056) by @sapphi-redCo-authored-by: shulaoda 165626830+shulaoda@users.noreply.github.com
\0rolldown/runtime in transform hook (#8068) by @hyf0rolldown:runtime to \0rolldown/runtime.js (#8067) by @hyf0this.emitFile with type: 'prebuilt-chunk' (#8062) by @sapphi-rednew URL error diagnostic (#8043) by @valadaptivenew URL imports (#8035) by @valadaptiveChunk#id to Chunk#chunk_id (#8040) by @hyf0__exportAll parameter logic to reduce default output size (#8036) by @Copilot</script tag search should be case insensitive (#8033) by @IWANABETHATGUY. (#8029) by @Copilotthis to undefined (#8020) by @hyf0output.generatedCode.preset: 'es2015' was not set by default (#8026) by @sapphi-redoutput.strictExecutionOrder by the option validator (#8022) by @sapphi-redthis from on / off methods of RolldownWatcher (#8015) by @sapphi-reduse_built_ins and use_spread from internal JSX options (#8079) by @sapphi-redexperimental.transformHiresSourcemap (#8055) by @Copilotis_data_url more consistently (#8042) by @valadaptiveFxIndexMap to store EntryPoint (#8032) by @IWANABETHATGUY{@include ./foo.md} from d.ts files (#8056) by @sapphi-redadd codeSplitting: boolean and deprecate inlineDynamicImports (#7870) by @hyf0
experimental.lazyBarrel option (#7908) by @shulaodainvalidImportSideEffects option (#7958) by @shulaodastrictExecutionOrder and move to output.strictExecutionOrder from experimental.strictExecutionOrder (#7901) by @sapphi-redcodeSplitting: boolean and deprecate inlineDynamicImports (#7870) by @hyf0/@vite/lazy from /lazy (#7884) by @sapphi-red</script> to escape template literals (#7987) by @IWANABETHATGUYkind from this.resolve (#7981) by @sapphi-red@vite-ignore to lazy compilation proxy module import (#7883) by @sapphi-red.parse (#7966) by @sapphi-redImportRecordMeta::IsPlainImport (#7948) by @shulaodatry_spawn_with_cache (#7920) by @shulaodaImportStatus::NoMatch to unit variant (#7909) by @shulaodadevEngine.compileEntry does not return null (#7882) by @sapphi-redclientId property to DevRuntime base class (#7880) by @sapphi-redvitepress-plugin-group-icons (#7947) by @yuyinwsbuild() API as experimental (#7954) by @sapphi-redwith_scope_tree_child_ids(true) for SemanticBuilder (#7995) by @DunqingModuleTaskOwner construction until needed (#7921) by @shulaodarename_non_root_symbol pass (#7867) by @Dunqingtagged_template_transform uncondionally (#7975) by @IWANABETHATGUYcollect_depended_symbols (#7888) by @shulaodaNothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →