Biome @biomejs/[email protected]stable Released Oct 28, 2025
โš ๏ธ Breaking Change Impact Score: 7/10

Biome CLI v2.3.2

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.

Breaking-change evidence from the source

  • - [#7901](https://github.com/biomejs/biome/pull/7901) [`0d17b05`](https://github.com/biomejs/biome/commit/0d17b05477a537b6d652a2e56c50bb1db013ef06) Thanks [@ematipico](https://github.com/ematipico)! - Fixed [#7837](https://github.com/biomejs/biome/issues/7837), where Biome couldn't properly parse text expressions that contained nested curly brackets. This was breaking parsing in Astro and Svelte files.
Read the original context โ†—
Source flags breaking changes โ€” review applicability
$ npm install --save-dev --save-exact @biomejs/[email protected]
๐Ÿ“„ .MD
โšก Executive Summary (TL;DR)

Biome @biomejs/[email protected]. Source highlight: Added the nursery rule `noIncrementDecrement`, disallows the usage of the unary operators ++ and --.

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.

โš ๏ธ Breaking Changes & Deprecations (1)

  • - [#7901](https://github.com/biomejs/biome/pull/7901) [`0d17b05`](https://github.com/biomejs/biome/commit/0d17b05477a537b6d652a2e56c50bb1db013ef06) Thanks [@ematipico](https://github.com/ematipico)! - Fixed [#7837](https://github.com/biomejs/biome/issues/7837), where Biome couldn't properly parse text expressions that contained nested curly brackets. This was breaking parsing in Astro and Svelte files.

โœจ New Features & Capabilities (2)

  • feat(js): update `Boa` to `v0.21.0`
  • feat(lint): implement `noIncrementDecrement`

๐Ÿ”ง Bug Fixes & Patches (6)

  • Added the nursery rule `noIncrementDecrement`, disallows the usage of the unary operators ++ and --.
  • Fixed #7837, where Biome couldn't properly parse text expressions that contained nested curly brackets. This was breaking parsing in Astro and Svelte files.
  • Fixed #7230: `noUselessStringConcat` no longer emits false positives for multi-line strings with leading `+` operators.
  • Fixed #7601: Properly match Grit plugin's code snippet with only one child.
  • Fixed #7837, where Biome Language Server panicked when opening HTML-ish files when the experimental full support is enabled.
  • fix(lint): `noUselessStringConcat` now correctly detects leading concatenation operators from `operatorLinebreak=before`
๐Ÿ“„ View Raw Release Notes (Original Developer Log)
## 2.3.2 ### Patch Changes - [#7859](https://github.com/biomejs/biome/pull/7859) [`c600618`](https://github.com/biomejs/biome/commit/c6006184a860b42fea3f0ea5fe96c47087341a90) Thanks [@Netail](https://github.com/Netail)! - Added the nursery rule [`noIncrementDecrement`](https://biomejs.dev/linter/rules/no-increment-decrement/), disallows the usage of the unary operators ++ and --. - [#7901](https://github.com/biomejs/biome/pull/7901) [`0d17b05`](https://github.com/biomejs/biome/commit/0d17b05477a537b6d652a2e56c50bb1db013ef06) Thanks [@ematipico](https://github.com/ematipico)! - Fixed [#7837](https://github.com/biomejs/biome/issues/7837), where Biome couldn't properly parse text expressions that contained nested curly brackets. This was breaking parsing in Astro and Svelte files. - [#7874](https://github.com/biomejs/biome/pull/7874) [`e617d36`](https://github.com/biomejs/biome/commit/e617d363b9356bef007192a7f508e15d63f56e9b) Thanks [@Bertie690](https://github.com/Bertie690)! - Fixed [#7230](https://github.com/biomejs/biome/issues/7230): [`noUselessStringConcat`](https://biomejs.dev/linter/rules/no-useless-string-concat/) no longer emits false positives for multi-line strings with leading `+` operators. Previously, the rule did not check for leading newlines on the `+` operator, emitting false positives if one occurred at the start of a line. \ Notably, formatting with `operatorLinebreak="before"` would move the `+` operators to the start of lines automatically, resulting in spurious errors whenever a multi-line string was used. Now, the rule correctly detects and ignores multi-line concatenations with leading operators as well, working regardless of the setting of `operatorLinebreak`. **Example** ```ts // The following code used to error if the `+` operators were at the start of lines (as opposed to the end). // Now, the rule correctly recognizes this as a stylistic concatenation and ignores it. const reallyLongStringThatShouldNotError = "Lorem ipsum dolor sit amet consectetur adipiscing elit." + "Quisque faucibus ex sapien vitae pellentesque sem placerat." + "In id cursus mi pretium tellus duis convallis." + "Tempus leo eu aenean sed diam urna tempor. Pulvinar vivamus fringilla"; ``` - [#7786](https://github.com/biomejs/biome/pull/7786) [`33ffcd5`](https://github.com/biomejs/biome/commit/33ffcd50a749ca0e188796a10b4ffffb59ead4b3) Thanks [@daivinhtran](https://github.com/daivinhtran)! - Fixed [#7601](https://github.com/biomejs/biome/issues/7601): Properly match Grit plugin's code snippet with only one child. - [#7901](https://github.com/biomejs/biome/pull/7901) [`0d17b05`](https://github.com/biomejs/biome/commit/0d17b05477a537b6d652a2e56c50bb1db013ef06) Thanks [@ematipico](https://github.com/ematipico)! - Fixed [#7837](https://github.com/biomejs/biome/issues/7837), where Biome Language Server panicked when opening HTML-ish files when the experimental full support is enabled. ## What's Changed * fix(lint): `noUselessStringConcat` now correctly detects leading concatenation operators from `operatorLinebreak=before` by @Bertie690 in https://github.com/biomejs/biome/pull/7874 * chore(deps): update rust crate globset to 0.4.18 by @renovate[bot] in https://github.com/biomejs/biome/pull/7883 * chore(deps): update rust crate ignore to 0.4.24 by @renovate[bot] in https://github.com/biomejs/biome/pull/7884 * chore(deps): update rust crate proc-macro2 to 1.0.103 by @renovate[bot] in https://github.com/biomejs/biome/pull/7885 * chore(deps): update rust crate tikv-jemallocator to 0.6.1 by @renovate[bot] in https://github.com/biomejs/biome/pull/7886 * fix(lint): extend matcher for GritCodeSnippet to cover edge case by @daivinhtran in https://github.com/biomejs/biome/pull/7786 * feat(js): update `Boa` to `v0.21.0` by @Gumichocopengin8 in https://github.com/biomejs/biome/pull/7888 * chore(deps): update dependency eslint to v9.38.0 by @renovate[bot] in https://github.com/biomejs/biome/pull/7890 * chore(deps): update rust crate indexmap to 2.12.0 by @renovate[bot] in https://github.com/biomejs/biome/pull/7891 * chore(deps): update github-actions - autoclosed by @renovate[bot] in https://github.com/biomejs/biome/pull/7892 * chore(deps): update rust crate rayon to 1.11.0 by @renovate[bot] in https://github.com/biomejs/biome/pull/7894 * chore(deps): update rust crate regex to 1.12.2 by @renovate[bot] in https://github.com/biomejs/biome/pull/7895 * chore(deps): update rust crate tokio to 1.48.0 by @renovate[bot] in https://github.com/biomejs/biome/pull/7896 * fix(core): text expression parsing and LSP file opening by @ematipico in https://github.com/biomejs/biome/pull/7901 * feat(lint): implement `noIncrementDecrement` by @Netail in https://github.com/biomejs/biome/pull/7859 * ci: release by @github-actions[bot] in https://github.com/biomejs/biome/pull/7887 **Full Changelog**: https://github.com/biomejs/biome/compare/@biomejs/[email protected]...@biomejs/[email protected]