@biomejs/biome@2.5.4

google/magika@biomejs/biome@2.5.4Jul 15, 2026by github-actions[bot]

AI Summary

This is a patch release that improves HTML parser performance and fixes several linting and formatting issues across JavaScript, Markdown, and HTML files. It also introduces new formatting features for YAML and class sorting.

Key Highlights

  • Improved HTML parser performance in synthetic benchmarks
  • Fixed `noCommentText` infinite loop issue during formatting
  • Fixed `noLabelWithoutControl` rule for Astro, Svelte, and Vue
  • Fixed formatting for curried test calls
  • Cleanup of stale Unix daemon sockets

New Features

  • Basic block properties for YML formatting
  • Sort important-suffix classes in sort_v4
  • Inference engine via salsa

Full Release Notes

## 2.5.4

### Patch Changes

- [#10665](https://github.com/biomejs/biome/pull/10665) [`55ff995`](https://github.com/biomejs/biome/commit/55ff995098148446b7e7fdfc19053902bb987122) Thanks [@dyc3](https://github.com/dyc3)! - Improved the performance of the HTML parser slightly in our synthetic benchmarks.

- [#10894](https://github.com/biomejs/biome/pull/10894) [`f4fb10e`](https://github.com/biomejs/biome/commit/f4fb10e176e537e8ce2cac0c3fd4c38a77f91886) Thanks [@ematipico](https://github.com/ematipico)! - Fixed [#6392](https://github.com/biomejs/biome/issues/6392): On-type formatting no longer moves comments before an `if` statement into its body.

- [#10939](https://github.com/biomejs/biome/pull/10939) [`f2799db`](https://github.com/biomejs/biome/commit/f2799db38e3d8a644207d9b8f957abea6cb3d9fa) Thanks [@Netail](https://github.com/Netail)! - Fixed [#10930](https://github.com/biomejs/biome/issues/10930): [`noLabelWithoutControl`](https://biomejs.dev/linter/rules/no-label-without-control/) now correctly detects text interpolation in Astro, Svelte & Vue as valid accessible content.

- [#10945](https://github.com/biomejs/biome/pull/10945) [`ae15d98`](https://github.com/biomejs/biome/commit/ae15d98bbf2222fbb34e3e31832cba9676a6d01c) Thanks [@Netail](https://github.com/Netail)! - Fixed [#10942](https://github.com/biomejs/biome/issues/10942): Svelte directives don't throw an accidental debug log anymore.

- [#10842](https://github.com/biomejs/biome/pull/10842) [`5e1abfe`](https://github.com/biomejs/biome/commit/5e1abfee59155b5fdca8813314371ed54c06acfb) Thanks [@JamBalaya56562](https://github.com/JamBalaya56562)! - Fixed [#9196](https://github.com/biomejs/biome/issues/9196): `biome check --write --unsafe` no longer hangs forever when applying the [`noCommentText`](https://biomejs.dev/linter/rules/no-comment-text/) code fix.

  The rule's fix now wraps the comment in a real JSX expression container (`{/* comment */}`) instead of re-inserting the braces as plain JSX text, so the fixed code is no longer reported again by the same rule.

- [#10891](https://github.com/biomejs/biome/pull/10891) [`ecca79e`](https://github.com/biomejs/biome/commit/ecca79e8ff10f40aa676212c0db0a970c6091615) Thanks [@ematipico](https://github.com/ematipico)! - Fixed [`#10885`](https://github.com/biomejs/biome/issues/10885): prevented a module-inference regression introduced by a housekeeping change.

- [#10886](https://github.com/biomejs/biome/pull/10886) [`60c8043`](https://github.com/biomejs/biome/commit/60c8043527f7ccc7b505471e1042f2a4324e4d31) Thanks [@dyc3](https://github.com/dyc3)! - Fixed [#10727](https://github.com/biomejs/biome/issues/10727): Biome now breaks the arguments of curried `test.each`, `it.each`, `describe.each`, and `test.for` calls when they exceed the configured line width.

  ```diff
  - test.each([[1, 2]])("a description that is long enough to push the hugged opening line beyond the print width", (a, b) => {
  -   expect(a).toBe(b);
  - });
  + test.each([[1, 2]])(
  +   "a description that is long enough to push the hugged opening line beyond the print width",
  +   (a, b) => {
  +     expect(a).toBe(b);
  +   },
  + );
  ```

- [#10895](https://github.com/biomejs/biome/pull/10895) [`01a85f0`](https://github.com/biomejs/biome/commit/01a85f04b09f0af05b16a15c137421e312ceada5) Thanks [@ematipico](https://github.com/ematipico)! - Biome will now remove stale Unix daemon sockets from older Biome versions when starting a newer daemon.



## What's Changed
* feat(yml/fmt): basic block properties by @ematipico in https://github.com/biomejs/biome/pull/10873
* feat(useSortedClasses): sort important-suffix classes in sort_v4 by @johncarmack1984 in https://github.com/biomejs/biome/pull/10880
* fix(format/js): wrap curried test each calls by @dyc3 in https://github.com/biomejs/biome/pull/10886
* fix(markdown): parse whitespace after list markers by @tidefield in https://github.com/biomejs/biome/pull/10869
* fix(inference): use correct function when cloning data by @ematipico in https://github.com/biomejs/biome/pull/10891
* docs(noDuplicateProperties): note that @keyframes declarations are ignored by @dfedoryshchev in https://github.com/biomejs/biome/pull/10893
* fix(lint): prevent noCommentText fix from looping forever by @JamBalaya56562 in https://github.com/biomejs/biome/pull/10842
* fix(core): cleanup old sockets in Unix by @ematipico in https://github.com/biomejs/biome/pull/10895
* feat(inference): inference engine via salsa by @ematipico in https://github.com/biomejs/biome/pull/10888
* chore(deps): update dependency @types/node to v24.13.3 by @renovate[bot] in https://github.com/biomejs/biome/pull/10920
* chore(deps): update github-actions by @renovate[bot] in https://github.com/biomejs/biome/pull/10921
* chore(deps): update pnpm to v11.11.0 by @renovate[bot] in https://github.com/biomejs/biome/pull/10925
* chore(deps): update rust crate jiff to 0.2.32 by @renovate[bot] in https://github.com/biomejs/biome/pull/10923
* chore(deps): update rust crate regex to 1.13.0 by @renovate[bot] in https://github.com/biomejs/biome/pull/10926
* fix(fmt): don't move comments inside if statement by @ematipico in https://github.com/biomejs/biome/pull/10894
* fix(html_analyze): noLabelWithoutControl interpolation by @Netail in https://github.com/biomejs/biome/pull/10939
* refactor(parse/html): keywords for all html/svg tags by @dyc3 in https://github.com/biomejs/biome/pull/10665
* perf(lint/html): avoid string comparisons for tag names by @dyc3 in https://github.com/biomejs/biome/pull/10692
* fix: accidental debug log by @Netail in https://github.com/biomejs/biome/pull/10945
* ci: release by @github-actions[bot] in https://github.com/biomejs/biome/pull/10887


**Full Changelog**: https://github.com/biomejs/biome/compare/@biomejs/biome@2.5.3...@biomejs/biome@2.5.4