# What changed in @biomejs/biome

> 245 changes in @biomejs/biome 2 from its official release notes, upgrade guides and advisories: 10 breaking, 4 security, 40 new APIs and options. Each one cited. Sources checked 2026-10-18. HTML: https://unstale.sh/npm/@biomejs/biome/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## @biomejs/biome 2

### Breaking changes

- The CLI now emits an error when the configuration has errors. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- Configuration file errors are no longer silently ignored and are checked before any command executes. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- Now reports mismatched closing tags and top-level closing tags without openings; tag names are matched case-insensitively. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- The rule now reports directives inside Astro template expressions. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- Reports React Compiler diagnostics regardless of the React version declared in package.json. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- Removes special HTML formatter handling for the obsolete listing element. (2.5.14) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.14)
- Combining readonly and accessor modifiers in either order now reports that they cannot be used together. (2.5.14) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.14)
- Biome now reports HTML comments between Svelte tag attributes as parse errors. (2.5.12) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.12)
- Braces inside Astro `<math>` elements no longer open expressions, so LaTeX such as `R^{2x}` survives as text; `<svg>` is unaffected. (2.5.10) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.10)
- HTML `style` attribute values are parsed as CSS, and all Biome CSS lint rules are applied to them. (2.5.8) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.8)

### Security

- Restricts access to the Unix daemon socket to the Biome user; it is stored in a user-accessible cache directory and uses mode 0600. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- Unix daemon socket permissions are now restricted. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- Biome reports a diagnostic for excessively deep syntax instead of overflowing the native stack while releasing the parsed tree. (2.5.12) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.12)
- A new nursery rule disallows Astro's set:html directive because untrusted content can introduce cross-site scripting vulnerabilities. (2.5.11) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.11)

### New APIs and options

- Markdown now supports suppressions. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- Added the noAstroConflictingSetDirectives rule for .astro files. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- Added the noMeaninglessVoidOperator lint rule. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- Added the noMisplacedListElements lint rule. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- Added the noSelfImport lint rule. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- Added the noSvelteExportLet lint rule. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- Added the noTailwindRawColors lint rule. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- Added the useLogicalProperties lint rule. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- Added the usePromiseRejectErrors lint rule. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- Added the useStrictBooleanExpressions lint rule. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- Added the useSvelteKitRuneImports lint rule. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- YAML formatting now supports suppression comments. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- GritQL plugins can use contains on import-clause metavariables in import patterns. (2.5.14) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.14)
- Adds the Markdownlint MD040 rule for fenced code language declarations. (2.5.14) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.14)
- Implements the noJsonUnsafeValues JSON lint rule. (2.5.14) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.14)
- Adds the noObsoleteTags lint rule. (2.5.14) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.14)
- Adds the noReturnInFinally lint rule. (2.5.14) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.14)
- Adds the noSvelteAtDebugTags lint rule. (2.5.14) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.14)
- Adds the noSvelteAtDebugTags lint rule. (2.5.14) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.14)
- Adds @shadcn/lint as a lint rule source. (2.5.14) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.14)
- Adds the useConsistentFunctionStyle lint rule. (2.5.14) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.14)
- Implements the useConsistentObjectKeys JSON lint rule. (2.5.14) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.14)
- Adds the requireExplicitCase option to useExhaustiveSwitchCases. (2.5.14) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.14)
- Implements the useValidTestTitle lint rule. (2.5.14) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.14)
- Adds parsing support for GitHub Flavored Markdown. (2.5.13) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.13)
- Adds code fix mutation support for plugins. (2.5.13) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.13)
- Adds rule context support for plugins. (2.5.13) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.13)
- Adds semantic model support for plugins. (2.5.13) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.13)
- Adds JavaScript traversal methods for plugins. (2.5.13) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.13)
- Adds the Markdown MD025 single top-level heading rule. (2.5.12) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.12)
- JavaScript plugins now support TypeScript. (2.5.11) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.11)
- JavaScript plugins can query AST nodes by their kind. (2.5.10) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.10)
- JavaScript plugins gain runtime AST bindings. (2.5.10) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.10)
- Markdown frontmatter parsing support was added. (2.5.10) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.10)
- JavaScript plugins can be enabled in WASM through the `unstable` feature. (2.5.10) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.10)
- biome rage now includes BIOME_BINARY in its environment variable metadata. (2.5.9) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.9)
- biome rage now includes BIOME_LOG_FILE in its environment variable metadata. (2.5.9) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.9)
- A new nursery rule reports Astro client:only directives without an initializer. (2.5.9) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.9)
- Added support for the SCSS nesting combinator. (2.5.8) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.8)
- Added the `useTopLevelHeading` rule. (2.5.8) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.8)

### Performance

- The HTML formatter is up to 4x faster. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- Indexing and analysis of big files are up to 2x faster, especially in projects using project and types lint rules. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- Type inference is significantly faster, with benchmark speedups of about 2–240x for some popular libraries, affecting all rules that use type information. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- Improves formatting performance for documents containing many HTML-native or SVG-native tags. (2.5.14) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.14)
- Formatting and checking large parenthesized object expressions no longer exhibit quadratic slowdowns. (2.5.14) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.14)
- Improves formatter performance by up to approximately 50% in some cases. (2.5.13) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.13)
- Improves linting performance for large CSS and JSON files. (2.5.13) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.13)
- Improves type inference performance by avoiding resolution of unused members in object arguments. (2.5.12) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.12)
- Calls to non-Promise methods on third-party TypeScript classes are classified using targeted type information instead of expensive full type inference. (2.5.11) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.11)
- Rule performance was improved. (2.5.10) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.10)
- Rule performance was improved. (2.5.10) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.10)
- Rule performance was improved. (2.5.10) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.10)
- Rule performance was improved. (2.5.10) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.10)
- Rule performance was improved. (2.5.10) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.10)
- Rule performance was improved. (2.5.10) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.10)
- Rule performance was improved. (2.5.10) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.10)
- Rule performance was improved. (2.5.10) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.10)

### Behavior and default changes

- Type lowering now handles computed members and infers symbol-keyed access. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- Watched-file patterns are scoped to each workspace folder, with deprecated rootUri fallback and compatible absolute glob patterns for clients without relative-pattern support. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- When plugins fail to load, Biome prints each failing plugin's path on its own line instead of concatenating error messages. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- Type lowering now handles readonly types and infers const generics. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- SCSS now supports interpolation in containers, layers, property names, and the attr function. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- SCSS now allows nested declarations. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- Can now match TypeScript interface snippets. (2.5.14) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.14)
- Expands the cases supported by the useIncludes lint rule. (2.5.14) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.14)
- Adds support for interpolated SCSS URL values. (2.5.12) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.12)
- Interpolation delimiters stay attached to whitespace-sensitive boundaries and adjacent inline siblings, wrapping expressions when needed to fit the configured line width. (2.5.11) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.11)
- Template literal attribute values are now supported in Astro. (2.5.10) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.10)
- The Tailwind parser now understands container-query variants, child and descendant variants, combinator selectors in arbitrary variants, variant modifiers, and arbitrary container-query sizes. (2.5.9) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.9)
- Added ordering of variants in `sort_v4`. (2.5.8) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.8)

### Tooling

- Type lowering now handles array type syntax. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- Multiline Astro expressions are indented at the surrounding markup column, and biome format now formats Astro expressions too. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- Type lowering now handles generic type constraints. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- Type lowering now includes global functions from source declarations. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- Type lowering now handles indexed access types. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- Type inference now lowers Intl namespace declarations. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- Type lowering now handles keyof type operators. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- Added a lint rule that detects React object types used as default props. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- Type lowering now handles Symbol call signatures. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- Type lowering now handles Symbol static members. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- Adds suite() as an alias of describe() across test analysis rules and formatter; rules also recognize fsuite, xsuite, and test.suite blocks. (2.5.14) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.14)
- Test rules accept suite() as an alias of describe(). (2.5.14) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.14)
- Adds detection of undeclared custom Vue directives. (2.5.14) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.14)
- Can capture and inspect multiple named import specifiers and match captured JSX component names against snippets such as React.Fragment. (2.5.13) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.13)
- Astro fragment shorthand is now supported. (2.5.10) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.10)
- A JavaScript transform can erase type annotations in TypeScript code. (2.5.10) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.10)
- biome rage now includes RUST_BACKTRACE in its environment variable metadata. (2.5.9) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.9)
- Added a Markdown linter. (2.5.8) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.8)

### Fixes and other changes

- Fixed Astro formatting of embedded content. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- No longer adds invalid parentheses around Svelte {@const} declarations when experimental HTML support and formatting are enabled. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- Biome no longer crashes when output is piped to a program that exits early; output to the closed pipe is discarded and Biome exits normally. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- The CLI no longer crashes when output is piped to a closed pipe. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- Type inference now fully lowers Date constructor members. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- Disabling one domain no longer disables rules that also belong to another enabled domain; explicitly configured rules also remain enabled. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- Fixed incorrect type inference when generic parameters are reused across inherited types or swapped in recursive types. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- No longer inserts a space after a within pattern without an until clause. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- No longer duplicates comments around Svelte blocks, including comments after blocks and comments before branch or closing tags. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- No longer removes the space between text and an inline element on the next line when joining lines. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- Regex literals beginning with > no longer terminate self-closing tags; regex literals after keywords such as return are recognized too. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- The parser now compares complete opening and closing tag names. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- The HTML lexer now treats a regex beginning with > as a regex. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- The parser no longer misparses << as type arguments when the closing > is missing. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- Long-running workspaces now reflect package manifest and TypeScript path-mapping changes without requiring the importing file to be edited. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- No longer reports chained method calls such as builder.image(url).fit("max") as focused tests. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- The rule now ignores chained .fit() method calls. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- The fix now preserves the string value for octal escapes with a leading digit 4–7. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- No longer reports view transition names inside view transition pseudo-elements. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- The rule now ignores view transition names in pseudo-elements. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- No longer offers a safe fix for return; as the body of an unbraced if, else, or label; safe fixes also preserve surrounding comments. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- The rule skips fixes for unbraced bodies and keeps comments. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- String concatenation fixes now escape quotes. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- Rules enabled by overlapping domains are now preserved. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- VCS checks now account for parent ignore files. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- The language server now handles relative glob patterns correctly. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- The SCSS parser now accepts if inside a url function. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- SCSS query values now support unary expressions. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- Suppression comments now work on affected parts of HTML-like files and on snippets embedded in JavaScript files. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- Comments at the end of a Svelte block's contents are now indented with the contents rather than the following tag. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- Formatting now preserves const tag assignment syntax and fixes duplicate or incorrectly indented comments around Svelte blocks. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- Tailwind classes in class expressions are now detected. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- Tailwind classes are now detected in Svelte, Vue, and Astro class attribute expressions that do not use a class merging function. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- Test rules no longer mistake regular method calls named test, it, or describe for tests. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- More global types, including Array, Map, and Set, are fully defined, which should decrease false positives on typed rules. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- Type-aware rules now resolve members through generic type aliases that instantiate another generic type with a nested generic argument. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- Parses f<T> << f<T> as a left shift of two instantiation expressions, matching TypeScript instead of reporting a parse error. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- A << expression followed by a later >>> is no longer misparsed as TypeScript type arguments. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- The rule now preserves negative index expressions. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- The rule now ignores loops that update the index in the loop body. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- Removed the React 19 version requirement from the rule. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- The rule no longer escapes a slash that is already escaped. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- No longer reports boolean literals on the right side of || and && outside boolean contexts, where removing them can change the expression result. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- Now evaluates parent directory patterns when matching child paths, preserving re-included directories while ignoring excluded siblings. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- Linting now recognizes Vue slot bindings. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- Typed slot props no longer produce a parse error, and types in slot prop annotations are recognized as used by noUnusedVariables. (2.5.15) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.15)
- Suppression comments targeting the entire assist category, including biome-ignore-all assist, are respected when running check. (2.5.14) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.14)
- Correctly writes fixes for code inside HTML attribute expressions instead of reporting fixable diagnostics without applying them. (2.5.14) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.14)
- No longer fails with conflicting rule fixes when multiple diagnostics target a declaration preceded by a multiline comment. (2.5.14) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.14)
- Correctly writes fixes for code inside HTML attribute expressions instead of reporting fixable diagnostics without applying them. (2.5.14) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.14)
- No longer modify the wrong part of Vue, Svelte, or Astro files when experimental full HTML support is disabled. (2.5.14) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.14)
- Fixes are now written back to attribute-expression embeds in HTML. (2.5.14) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.14)
- Associates annotations with the correct files when Biome runs from a nested directory. (2.5.14) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.14)
- Files re-included by negation patterns in a nested .gitignore are processed when vcs.useIgnoreFile is enabled, even if the ignore file contains *. (2.5.14) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.14)
- Grit plugin code fixes are now available as editor code actions. (2.5.14) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.14)
- Plugins that use sequential no longer panic when Biome processes files. (2.5.14) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.14)
- Import patterns now match namespace imports, including type-only imports; explicit import type patterns also match type-only named and namespace imports. (2.5.14) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.14)
- Preserves authored segment breaks between CJK characters and next to CJK punctuation instead of replacing them with spaces. (2.5.14) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.14)
- No longer applies native HTML element formatting to PascalCase component names in Vue, Svelte, and Astro files. (2.5.14) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.14)
- No longer applies SVG block formatting to unknown elements whose names match SVG element names. (2.5.14) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.14)
- Fixes redundant parentheses around binary and logical unary operands with leading line comments. (2.5.14) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.14)
- Inserts a newline before the closing angle bracket when a leading comment forces type arguments onto multiple lines. (2.5.14) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.14)
- Avoids extra parentheses and comment movement when formatting multiline expressions after operators such as !. (2.5.14) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.14)
- With operatorLinebreak set to before, own-line comments before binary operators stay above the operator. (2.5.14) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.14)
- Nested gitignore files now honor negation patterns. (2.5.14) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.14)
- Nested gitignore files now honor negation patterns. (2.5.14) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.14)
- Recognizes aliased named imports in single-file components under their local name. (2.5.14) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.14)
- Recognizes React 19.3 DOM properties instead of treating them as unknown attributes. (2.5.14) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.14)
- TypeScript class members using override accessor now parse correctly; accessor override reports that override must precede accessor. (2.5.14) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.14)
- The SCSS parser now allows omitting the final semicolon in at-rules. (2.5.14) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.14)
- The CSS parser now parses SCSS module variables in media queries. (2.5.14) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.14)
- Applies safe fixes without formatting files that have parse errors when formatter.formatWithErrors is disabled. (2.5.14) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.14)
- Correctly handles dashed utility base names and parses arbitrary values separately while preserving the complete base name. (2.5.14) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.14)
- Multiline template interpolations preserve the closing brace's indentation when source indentation is not a multiple of tabWidth. (2.5.14) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.14)
- Suppression comments now suppress matching HTML lint diagnostics on the following line when full HTML support is enabled. (2.5.13) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.13)
- Fixes parsing of unquoted URLs beginning with @ or ! and preserves escaped and non-ASCII whitespace in raw URLs during formatting. (2.5.13) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.13)
- No longer inserts whitespace between adjacent Svelte expressions when their combined length exceeds the line width. (2.5.13) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.13)
- Infers unannotated callback parameter types from the passed function's signature, honors explicit call type arguments, and avoids unnecessary inference of imported generics and namespace members. (2.5.13) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.13)
- The formatter no longer crashes on multiline expressions in files with CRLF line endings. (2.5.12) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.12)
- Astro expressions now parse TypeScript and JSX syntax, attribute values, comments, text, and embedded script and style contents according to Astro syntax. (2.5.12) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.12)
- Fixes handling of format suppression comments on TypeScript declared class properties with string literal names. (2.5.12) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.12)
- The Language Server no longer starts with debug logging enabled, preventing logs from growing exponentially in long sessions. (2.5.12) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.12)
- Fixes repeated dependency analysis that could lead to long and unresponsive sessions. (2.5.12) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.12)
- The formatter prints declare before accessibility modifiers on class properties, matching Prettier and TypeScript's canonical modifier order. (2.5.12) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.12)
- Biome no longer crashes while parsing malformed delete expressions. (2.5.12) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.12)
- Vanilla HTML no longer reports unsupported text expression diagnostics for double-curly text, and the formatter preserves adjacent curly-brace text. (2.5.12) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.12)
- Biome no longer crashes when linting malformed for...of statements. (2.5.12) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.12)
- Grit plugins can use function = ... as a node argument. (2.5.12) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.12)
- The formatter no longer moves comments next to the < of a generic, avoiding invalid TypeScript syntax. (2.5.12) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.12)
- Biome now parses legacy Internet Explorer filter and -ms-filter values such as progid:DXImageTransform... and alpha(opacity=40). (2.5.12) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.12)
- The configuration schema now correctly provides auto-completion for linter domains. (2.5.12) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.12)
- Recognizes unhandled Promise chains when an imported function's module belongs to an import cycle; cyclic modules preserve types for exports outside recursive type dependencies. (2.5.12) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.12)
- No longer reports Bun runtime built-in modules as unresolved imports. (2.5.12) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.12)
- Exempts any variable whose initializer references props, preventing false duplicate-key reports for derived script setup variables. (2.5.12) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.12)
- Biome preserves Unicode characters when writing source received through standard input to standard output. (2.5.12) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.12)
- Formatting a Svelte render tag followed by an HTML comment no longer duplicates the comment. (2.5.12) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.12)
- Whitespace now always allows the parser to recover from parsing failures and start parsing a new class. (2.5.12) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.12)
- Adjacent elements inside an Astro expression now parse as an implicit fragment instead of raising an error. (2.5.11) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.11)
- Astro templates now accept unclosed HTML void elements. (2.5.11) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.11)
- Re-export patterns now match named re-exports with aliases, inline type modifiers, and multiple specifiers. (2.5.11) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.11)
- The rule no longer reports template assignments to Vue <script setup> bindings whose names match built-in globals. (2.5.11) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.11)
- Biome now parses parenthesized object literals returned from arrow functions when they contain a conditional expression and a nested arrow function. (2.5.11) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.11)
- Files passed through this option now use full HTML support for Astro, Svelte, and Vue when it is enabled. (2.5.11) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.11)
- Variables and imports used as custom Vue directives are no longer reported as unused. (2.5.11) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.11)
- Astro now accepts JavaScript comments between attributes. (2.5.10) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.10)
- Astro now accepts attribute names that start with a colon, such as `:href`. (2.5.10) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.10)
- An Astro expression containing only a comment is no longer reported as a parse error, allowing the whole file to be formatted. (2.5.10) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.10)
- Empty Astro expressions such as `<div>{}</div>` now parse; Astro renders `{}` as nothing. (2.5.10) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.10)
- Astro expressions containing comments now parse, including expressions with a comment followed by a value. (2.5.10) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.10)
- A closing tag inside a string or comment no longer cuts an Astro frontmatter block short. (2.5.10) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.10)
- An Astro frontmatter block no longer ends on a line that merely starts with a dash. (2.5.10) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.10)
- Astro frontmatter is recognized only at the very start of a file; later `---` lines are content. (2.5.10) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.10)
- The Astro parser recovers from malformed closing tags so later mistakes are reported where they occur rather than cascading. (2.5.10) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.10)
- `{{` at the start of an Astro expression is parsed as an object literal rather than an interpolation. (2.5.10) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.10)
- Astro parses markup and interpolations in `<pre>` and `<textarea>` as ordinary elements, preventing variables used only inside them from being reported as unused. (2.5.10) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.10)
- A `<` that cannot open a tag is treated as text and needs no escaping. (2.5.10) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.10)
- Astro now accepts HTML5 unquoted attribute values containing backticks, equals signs, or quotes. (2.5.10) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.10)
- The migration command detects rules from `@eslint/css` in ESLint configurations more reliably. (2.5.10) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.10)
- GritQL plugins now match and rewrite metavariables embedded in quoted strings. (2.5.10) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.10)
- Children of Astro elements carrying `is:raw` are parsed as raw text; `<script>` and `<style>` contents are no longer linted as JavaScript or CSS. (2.5.10) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.10)
- Fixed a memory leak that caused memory usage to grow over long editor sessions. (2.5.10) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.10)
- Svelte block openings are now recognized only in Svelte files; sequences such as `{#if x}` are ordinary text in HTML, Vue, and Angular files. (2.5.10) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.10)
- Biome no longer crashes when parsing incomplete `{let}` or `{const}` declarations in Svelte files. (2.5.10) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.10)
- The rule no longer reports Vue event handlers such as `@click="count++"`. (2.5.10) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.10)
- Variables and imports used by Vue same-name bindings such as `:disabled` or `v-bind:disabled` are no longer reported as unused. (2.5.10) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.10)
- TypeScript path mapping targets without ./ are now resolved relative to their configured path base. (2.5.9) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.9)
- The CSS parser recovers at declaration boundaries after bogus declarations, allowing subsequent valid declarations to be parsed. (2.5.9) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.9)
- The CSS parser accepts Tailwind container-query variant names such as @xl and @max-xl in @variant. (2.5.9) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.9)
- Whitespace handling is corrected for marquee, noscript, video, audio, and object elements. (2.5.9) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.9)
- The formatter preserves meaningful blank lines, including spacing after elements with trailing spaces and blank lines between comment groups. (2.5.9) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.9)
- Parent tag wrapping is corrected when an HTML element starts or ends with a block-like or hidden child such as source, track, or param. (2.5.9) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.9)
- Invalid CSS declarations in HTML style attributes now produce parser diagnostics instead of causing a panic. (2.5.9) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.9)
- Wrapping accounts for the width of an adjacent closing tag, avoiding lines that exceed the configured width. (2.5.9) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.9)
- The rule now recognizes Vitest Browser Mode expect.element() calls as assertions. (2.5.9) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.9)
- SVG parsing now works for files with an XML declaration followed by a PUBLIC doctype. (2.5.9) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.9)
- The Tailwind parser now understands modifiers on bare utilities, including @container/sidebar and shadow/50. (2.5.9) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.9)
- The Tailwind parser now accepts the legacy leading ! important marker. (2.5.9) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.9)
- Biome no longer crashes with an access violation when analysing files on Windows ARM64. (2.5.9) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.9)
- CSS block comments between a declaration colon and value now preserve their source indentation. (2.5.8) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.8)
- CSS formatting keeps comments inside functional pseudo-classes and pseudo-elements instead of moving them before the function name. (2.5.8) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.8)
- Patterns with multiple metavariables now match snippets consistently in WebAssembly. (2.5.8) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.8)
- CSS parsing of registered custom properties now correctly validates the `syntax` descriptor. (2.5.8) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.8)
- Svelte files now parse correctly when an expression begins with an object literal. (2.5.8) — [release notes](https://github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.8)
