Biome @biomejs/[email protected]stable Released May 27, 2026
Impact Score: 5/10

Biome CLI v2.4.16

Source available โ€” automated, not human-reviewed

Component: @biomejs/biome ยท Channel: stable. Automated analysis, not a compatibility certification. How this works.

Analysis updated: 2026-11-01.

Compatibility not verified โ€” check source notes
$ npm install --save-dev --save-exact @biomejs/[email protected]
๐Ÿ“„ .MD
โšก Executive Summary (TL;DR)

Biome @biomejs/[email protected]. Source highlight: Fixed an issue where diagnostics showed an incorrect location in Astro files.

Who Does This Impact? (Role-Based Analysis)

๐Ÿ’ป Software Engineers & Devs

Check the source notes against the package and APIs you use before upgrading.

๐Ÿ“Š Product & Engineering Leads

Use the documented changes to assess relevance to your product; release frequency alone is not a quality measure.

โš™๏ธ DevOps & Security

Verify the target version, runtime requirements and rollback procedure in the official documentation.

โœจ New Features & Capabilities (6)

  • feat(css_parser): support for SCSS `@include ... using` clauses
  • feat(parse/tailwind): differentiate between number and non-number values
  • feat(css_parser): support SCSS interpolated selector
  • feat(useDestructuring): add options for assignment/declaration and improve diagnostic for bare object assignments
  • feat(css): support SCSS interpolation in attribute selectors
  • feat(parse/html): parse svelte function bindings more precisely

๐Ÿ”ง Bug Fixes & Patches (6)

  • Fixed an issue where diagnostics showed an incorrect location in Astro files.
  • Fixed HTML formatting for a case where comments could cause the formatter to split up a closing tag, which would cause the resulting HTML to be syntactically invalid.
  • Fixed diagnostics emitted by the `noUntrustedLicenses` rule.
  • Fixed #10356: `biome rage --linter` now displays rules enabled through linter domains in the enabled rules list.
  • Fixed #10265: Svelte function bindings such as `bind:value={get, set}` are now parsed more precisely, so `noCommaOperator` won't emit false positives for that syntax anymore.
  • Fixed #8480: `useDestructuring` now provides `variableDeclarator` and `assignmentExpression` options to control which contexts enforce destructuring, matching ESLint's `prefer-destructuring` configuration. Both default to `{array: true, object: true}`. The diagnostic for object destructuring in assignment expressions now instructs users to wrap the assignment in parentheses.
๐Ÿ“„ View Raw Release Notes (Original Developer Log)
## 2.4.16 ### Patch Changes - [#10329](https://github.com/biomejs/biome/pull/10329) [`ef764d5`](https://github.com/biomejs/biome/commit/ef764d51b9f5be18ec5a4f9b4dce732512e5d805) Thanks [@Conaclos](https://github.com/Conaclos)! - Fixed an issue where diagnostics showed an incorrect location in Astro files. - [#10363](https://github.com/biomejs/biome/pull/10363) [`50aa415`](https://github.com/biomejs/biome/commit/50aa4157599a1ac5c77c13bce81f5c87240beff0) Thanks [@dyc3](https://github.com/dyc3)! - Fixed HTML formatting for a case where comments could cause the formatter to split up a closing tag, which would cause the resulting HTML to be syntactically invalid. Input: ```html <span ><!-- 1 --><span>a</span ><!-- 2 --><span>b</span ><!-- 3 --></span> ``` Output: ```diff <span ><!-- 1 - --> <span>a</span<!-- 2 - --> ><span>b</span><!-- 3 + --><span>a</span><!-- 2 + --><span>b</span><!-- 3 --></span > ``` - [#10465](https://github.com/biomejs/biome/pull/10465) [`0c718da`](https://github.com/biomejs/biome/commit/0c718da81770f47d65845bc1a006f99512d9359b) Thanks [@dfedoryshchev](https://github.com/dfedoryshchev)! - Fixed diagnostics emitted by the `noUntrustedLicenses` rule. - [#10358](https://github.com/biomejs/biome/pull/10358) [`05c2617`](https://github.com/biomejs/biome/commit/05c26176573534a0abfa92d454d244f9569bc77d) Thanks [@dyc3](https://github.com/dyc3)! - Fixed [#10356](https://github.com/biomejs/biome/issues/10356): `biome rage --linter` now displays rules enabled through linter domains in the enabled rules list. - [#10300](https://github.com/biomejs/biome/pull/10300) [`950247c`](https://github.com/biomejs/biome/commit/950247c389e693c16b47d61d8ef0f1b85d1a1b02) Thanks [@dyc3](https://github.com/dyc3)! - Fixed [#10265](https://github.com/biomejs/biome/issues/10265): Svelte function bindings such as `bind:value={get, set}` are now parsed more precisely, so [`noCommaOperator`](https://biomejs.dev/linter/rules/no-comma-operator/) won't emit false positives for that syntax anymore. - [#9786](https://github.com/biomejs/biome/pull/9786) [`e71f584`](https://github.com/biomejs/biome/commit/e71f58490f3121432d1bc24ae5330ecf96391a40) Thanks [@MeGaNeKoS](https://github.com/MeGaNeKoS)! - Fixed [#8480](https://github.com/biomejs/biome/issues/8480): [`useDestructuring`](https://biomejs.dev/linter/rules/use-destructuring/) now provides `variableDeclarator` and `assignmentExpression` options to control which contexts enforce destructuring, matching ESLint's `prefer-destructuring` configuration. Both default to `{array: true, object: true}`. The diagnostic for object destructuring in assignment expressions now instructs users to wrap the assignment in parentheses. - [#10425](https://github.com/biomejs/biome/pull/10425) [`1948b72`](https://github.com/biomejs/biome/commit/1948b7242e092ed0cfcf501ef6f119202b8ea93b) Thanks [@sjh9714](https://github.com/sjh9714)! - Fixed [#10244](https://github.com/biomejs/biome/issues/10244): The `useOptionalChain` rule now detects negated guard inequality chains like `!foo || foo.bar !== "x"`. - [#10442](https://github.com/biomejs/biome/pull/10442) [`001f94f`](https://github.com/biomejs/biome/commit/001f94f696d9baca3c231d39895a01d4dd528d52) Thanks [@ematipico](https://github.com/ematipico)! - Fixed [#10411](https://github.com/biomejs/biome/issues/10411): [`noMisusedPromises`](https://biomejs.dev/linter/rules/no-misused-promises/) no longer causes a stack overflow when a nested function returns an object with shorthand properties that shadow destructured variables from an outer scope. - [#10318](https://github.com/biomejs/biome/pull/10318) [`9b1577f`](https://github.com/biomejs/biome/commit/9b1577fa400279d9b0222cbc920cfa9ddcf1c9d6) Thanks [@dyc3](https://github.com/dyc3)! - Added support for `formatter.trailingCommas` in overrides. This option was previously available in the top-level formatter configuration but missing from formatter overrides. - [#10319](https://github.com/biomejs/biome/pull/10319) [`2e37709`](https://github.com/biomejs/biome/commit/2e3770923f9fb4e33606113e726014f7b63730d0) Thanks [@dyc3](https://github.com/dyc3)! - Fixed Vue and Svelte formatting for standalone interpolations in inline elements. Biome now preserves existing newlines in cases like: ```diff - <span> {{ value }} </span> + <span> + {{ value }} + </span> ``` - [#10365](https://github.com/biomejs/biome/pull/10365) [`0a58eb0`](https://github.com/biomejs/biome/commit/0a58eb0982460b757a26f94d958a7e40c0686227) Thanks [@Netail](https://github.com/Netail)! - Fixed [#10361](https://github.com/biomejs/biome/issues/10361): [`noUnusedFunctionParameters`](https://biomejs.dev/linter/rules/no-unused-function-parameters/) now mentions the parameter name in the diagnostic. - [#10439](https://github.com/biomejs/biome/pull/10439) [`df6b867`](https://github.com/biomejs/biome/commit/df6b867bb6fd210cc75ac03d832e7281eced5b61) Thanks [@denbezrukov](https://github.com/denbezrukov)! - Fixed CSS and SCSS formatting for comments around declaration colons so comments between property names, colons, and values stay at the same boundary as Prettier. ```diff .selector { - color: /* red, */ - blue; + color: /* red, */ blue; } ``` - [#10344](https://github.com/biomejs/biome/pull/10344) [`b30208c`](https://github.com/biomejs/biome/commit/b30208c06365907d6fb376f030bc75bbf5e3dea9) Thanks [@siketyan](https://github.com/siketyan)! - Fixed [`#10123`](https://github.com/biomejs/biome/issues/10123): Corrected the [`noReactNativeDeepImports`](https://biomejs.dev/linter/rules/no-react-native-deep-imports/) source rule to point to the proper upstream rule, so users can migrate from the original rule correctly. - [#10328](https://github.com/biomejs/biome/pull/10328) [`b59133f`](https://github.com/biomejs/biome/commit/b59133fd2a8afa33564914df531f7f752b48ecee) Thanks [@dyc3](https://github.com/dyc3)! - Fixed [#10309](https://github.com/biomejs/biome/issues/10309): Biome no longer adds newlines to Astro frontmatter when linter or assist `--write` mode is enabled. ## What's Changed * fix(format/html/vue): preserve newlines around standalone interpolations by @dyc3 in https://github.com/biomejs/biome/pull/10319 * refactor(css_parser): remove `allow_css_ratio` from SCSS expression parsing functions by @denbezrukov in https://github.com/biomejs/biome/pull/10325 * fix(astro): display diagnostic advices with the correct location by @Conaclos in https://github.com/biomejs/biome/pull/10329 * fix: trim astro frontmatter content before processing it by @dyc3 in https://github.com/biomejs/biome/pull/10328 * fix(config): support trailingCommas in overrides by @dyc3 in https://github.com/biomejs/biome/pull/10318 * chore(deps): update rust:1.95.0-bullseye docker digest to b26cecc by @renovate[bot] in https://github.com/biomejs/biome/pull/10334 * chore(deps): update rust:1.95.0-trixie docker digest to 5b1e348 by @renovate[bot] in https://github.com/biomejs/biome/pull/10335 * chore(deps): update dependency @types/node to v24.12.3 by @renovate[bot] in https://github.com/biomejs/biome/pull/10336 * chore(deps): update dependency tombi to v0.10.6 by @renovate[bot] in https://github.com/biomejs/biome/pull/10337 * feat(css_parser): support for SCSS `@include ... using` clauses by @denbezrukov in https://github.com/biomejs/biome/pull/10327 * chore(deps): update github-actions by @renovate[bot] in https://github.com/biomejs/biome/pull/10338 * chore(deps): update pnpm to v10.33.4 by @renovate[bot] in https://github.com/biomejs/biome/pull/10339 * chore(deps): update rust crate filetime to 0.2.28 by @renovate[bot] in https://github.com/biomejs/biome/pull/10340 * chore(deps): update dependency @changesets/changelog-github to v0.7.0 by @renovate[bot] in https://github.com/biomejs/biome/pull/10342 * feat(parse/tailwind): differentiate between number and non-number values by @dyc3 in https://github.com/biomejs/biome/pull/10332 * chore(deps): update rust crate rayon to 1.12.0 by @renovate[bot] in https://github.com/biomejs/biome/pull/10343 * fix(markdown_parser): parse tab-indented siblings by @jfmcdowell in https://github.com/biomejs/biome/pull/10333 * fix(lint/js): correct the rule source of `noReactNativeDeepImports` by @siketyan in https://github.com/biomejs/biome/pull/10344 * fix(markdown_parser): column-aware tab handling around block containers by @jfmcdowell in https://github.com/biomejs/biome/pull/10345 * chore: update pnpm to the lateset by @ematipico in https://github.com/biomejs/biome/pull/10348 * chore: fix renovate config by @dyc3 in https://github.com/biomejs/biome/pull/10352 * feat(css_parser): support SCSS interpolated selector by @denbezrukov in https://github.com/biomejs/biome/pull/10351 * feat(useDestructuring): add options for assignment/declaration and improve diagnostic for bare object assignments by @MeGaNeKoS in https://github.com/biomejs/biome/pull/9786 * chore: remove benchmark from repository by @ematipico in https://github.com/biomejs/biome/pull/10355 * fix(rage): print rules enabled by domains by @dyc3 in https://github.com/biomejs/biome/pull/10358 * feat(css): support SCSS interpolation in attribute selectors by @denbezrukov in https://github.com/biomejs/biome/pull/10357 * fix(js_analyze): noUnusedFunctionParameters mention parameter name by @Netail in https://github.com/biomejs/biome/pull/10365 * feat(parse/html): parse svelte function bindings more precisely by @dyc3 in https://github.com/biomejs/biome/pull/10300 * feat(css_formatter): add support for formatting SCSS keyframes selectors by @denbezrukov in https://github.com/biomejs/biome/pull/10362 * fix: yaml linting panic fixes by @jjroush in https://github.com/biomejs/biome/pull/10287 * feat(css_parser): add support for SCSS interpolated dashed identifiers and properties by @denbezrukov in https://github.com/biomejs/biome/pull/10367 * fix(markdown_parser): handle ordered sublist continuation by @jfmcdowell in https://github.com/biomejs/biome/pull/10349 * docs: fix duplicate-word typos in code comments by @dfedoryshchev in https://github.com/biomejs/biome/pull/10371 * test(markdown_parser): add CST list invariants by @jfmcdowell in https://github.com/biomejs/biome/pull/10369 * chore: yaml formatting infra by @ematipico in https://github.com/biomejs/biome/pull/10366 * chore(goverance): cover expenses for representing Biome at a conference by @Conaclos in https://github.com/biomejs/biome/pull/10246 * docs: clarify vcs.root description by @Dotify71 in https://github.com/biomejs/biome/pull/10379 * Revert "docs: clarify vcs.root description" by @ematipico in https://github.com/biomejs/biome/pull/10381 * feat(css_parser): add support for SCSS parent selectors by @denbezrukov in https://github.com/biomejs/biome/pull/10370 * fix(css_parser): parse CSS custom functions in SCSS by @denbezrukov in https://github.com/biomejs/biome/pull/10387 * feat(useSortedClasses): scaffold v4 parser-based sort module by @jiwon79 in https://github.com/biomejs/biome/pull/10291 * fix(css_parser): support semicolonless SCSS statement at-rules by @denbezrukov in https://github.com/biomejs/biome/pull/10389 * fix(format/html): fix case where comments cause invalid html by @dyc3 in https://github.com/biomejs/biome/pull/10363 * fix(markdown_parser): break paragraph at sibling list marker without tab by @jfmcdowell in https://github.com/biomejs/biome/pull/10376 * feat(css_formatter): preserve raw scss string interpolation by @denbezrukov in https://github.com/biomejs/biome/pull/10388 * fix(service): correct FileExistsParams typo by @yanthomasdev in https://github.com/biomejs/biome/pull/10399 * chore(deps): update rust crate bpaf to 0.9.26 by @renovate[bot] in https://github.com/biomejs/biome/pull/10403 * chore(deps): update rust crate filetime to 0.2.29 by @renovate[bot] in https://github.com/biomejs/biome/pull/10404 * chore(deps): update dependency tombi to v0.11.4 by @renovate[bot] in https://github.com/biomejs/biome/pull/10405 * chore(deps): update rust crate dashmap to 6.2.1 by @renovate[bot] in https://github.com/biomejs/biome/pull/10406 * chore: remove dashmap from project by @ematipico in https://github.com/biomejs/biome/pull/10407 * chore(deps): update dependency @types/node to v24.12.4 by @renovate[bot] in https://github.com/biomejs/biome/pull/10400 * chore(deps): update pnpm to v11.1.2 by @renovate[bot] in https://github.com/biomejs/biome/pull/10401 * fix(css_formatter): preserve scss identifier interpolation spacing by @denbezrukov in https://github.com/biomejs/biome/pull/10398 * chore(format/html): fix unused code warnings in release builds by @dyc3 in https://github.com/biomejs/biome/pull/10412 * chore(service): make grit opt-in by @ematipico in https://github.com/biomejs/biome/pull/10410 * feat(css_formatter): preserve source-tight scss binary edges by @denbezrukov in https://github.com/biomejs/biome/pull/10413 * refactor: make yaml, md and graphql gated via rust features by @ematipico in https://github.com/biomejs/biome/pull/10416 * feat(css_parser): add support for parsing and formatting unknown SCSS/CSS at-rules by @denbezrukov in https://github.com/biomejs/biome/pull/10397 * refactor: make plugins opt-in via feature gate by @ematipico in https://github.com/biomejs/biome/pull/10418 * feat(css_formatter): align SCSS map pair value layout by @denbezrukov in https://github.com/biomejs/biome/pull/10417 * fix: incorrect build when using build or test by @ematipico in https://github.com/biomejs/biome/pull/10426 * ci: agent scan, zizmor and reduce permissions by @ematipico in https://github.com/biomejs/biome/pull/10428 * ci: remove checkout step from agentscan workflow by @MatteoGabriele in https://github.com/biomejs/biome/pull/10429 * fix(css_parser): classify interpolated query feature ranges correctly by @denbezrukov in https://github.com/biomejs/biome/pull/10421 * docs: remove outdated Caveats section in `useImportExtensions` by @Dotify71 in https://github.com/biomejs/biome/pull/10431 * docs: remove redundant default phrase in `useConsistentObjectDefinitions` rule by @Dotify71 in https://github.com/biomejs/biome/pull/10430 * fix(css_formatter): preserve blank lines between SCSS map pairs by @denbezrukov in https://github.com/biomejs/biome/pull/10427 * ci: fix preview releases by @dyc3 in https://github.com/biomejs/biome/pull/10436 * fix(useSortedClasses): sort Tailwind v4 arbitrary values by @jiwon79 in https://github.com/biomejs/biome/pull/10414 * fix(css_parser): improve diagnostics for missing attribute names and empty selectors in SCSS by @denbezrukov in https://github.com/biomejs/biome/pull/10437 * ci: remove corepack by @ematipico in https://github.com/biomejs/biome/pull/10440 * fix(css_formatter): improve comment handling in generic CSS properties by @denbezrukov in https://github.com/biomejs/biome/pull/10439 * fix(css_formatter): align commented SCSS map value layout by @denbezrukov in https://github.com/biomejs/biome/pull/10445 * fix(css_formatter): handle control variable maps in SCSS map expressions by @denbezrukov in https://github.com/biomejs/biome/pull/10446 * fix(inference): pass correct scope on return statements by @ematipico in https://github.com/biomejs/biome/pull/10442 * feat(css_parser): parse interpolated scss nested properties by @denbezrukov in https://github.com/biomejs/biome/pull/10455 * chore(deps): update rust:1.95.0-bullseye docker digest to 28afaeb by @renovate[bot] in https://github.com/biomejs/biome/pull/10457 * fix(test): leaky CLI tests by @ematipico in https://github.com/biomejs/biome/pull/10463 * fix(css_formatter): align SCSS map comment trailing commas by @denbezrukov in https://github.com/biomejs/biome/pull/10449 * fix(markdown_parser): keep list blank-line separators inside the preceding item by @jfmcdowell in https://github.com/biomejs/biome/pull/10466 * chore(deps): update rust crate jiff to 0.2.27 by @renovate[bot] in https://github.com/biomejs/biome/pull/10459 * docs: fix duplicate "from" in noUntrustedLicenses diagnostic by @dfedoryshchev in https://github.com/biomejs/biome/pull/10465 * fix(lint): detect optional-chain inequality guards by @sjh9714 in https://github.com/biomejs/biome/pull/10425 * chore(deps): update dependency tombi to v0.11.7 by @renovate[bot] in https://github.com/biomejs/biome/pull/10458 * fix(core): regression in emitted types by @ematipico in https://github.com/biomejs/biome/pull/10478 * fix(parser/yaml): correctly lex and parse alias as mapping key by @siketyan in https://github.com/biomejs/biome/pull/10472 * fix(markdown_parser): terminate fenced code blocks at list-item boundaries by @jfmcdowell in https://github.com/biomejs/biome/pull/10471 * ci: release by @github-actions[bot] in https://github.com/biomejs/biome/pull/10326 ## New Contributors * @jjroush made their first contribution in https://github.com/biomejs/biome/pull/10287 * @Dotify71 made their first contribution in https://github.com/biomejs/biome/pull/10379 * @MatteoGabriele made their first contribution in https://github.com/biomejs/biome/pull/10429 * @sjh9714 made their first contribution in https://github.com/biomejs/biome/pull/10425 **Full Changelog**: https://github.com/biomejs/biome/compare/@biomejs/[email protected]...@biomejs/[email protected]