# Biome @biomejs/biome@2.5.12 — Release & Upgrade Intelligence
- **Product:** Biome (https://biomejs.dev)
- **Version:** @biomejs/biome@2.5.12
- **Released:** Sep 03, 2026
- **Impact Score:** 7/10
- **Breaking Changes:** Source flagged
- **Canonical Analysis:** https://changelogs.us/biome/updates/biomejs-biome-2.5.12/

## Executive Summary (TL;DR)
Biome @biomejs/biome@2.5.12. Source highlight: Fixed Astro attribute expressions rejecting TypeScript and JSX syntax that is accepted in text expressions.

## Breaking Changes & Deprecations
- - [#11440](https://github.com/biomejs/biome/pull/11440) [`b88f1ea`](https://github.com/biomejs/biome/commit/b88f1ea368c727ff8ebeddcaf9448f6ddc7c4878) Thanks [@Princesseuh](https://github.com/Princesseuh)! - Fixed a template literal nested inside `${}` breaking the rest of an Astro file, such as ``const href = `/blog${page === 0 ? '' : `/${page + 1}`}`;``.
- - [#11440](https://github.com/biomejs/biome/pull/11440) [`b88f1ea`](https://github.com/biomejs/biome/commit/b88f1ea368c727ff8ebeddcaf9448f6ddc7c4878) Thanks [@Princesseuh](https://github.com/Princesseuh)! - Fixed a quote inside a regex character class breaking the rest of an Astro file, such as `const unsafe = /[/"]/;`.

## New Features
- feat(css): support interpolated SCSS URL values
- feat(markdown): port markdownlint MD025 single top-level heading rule
- feat(lint/js): add `noInvalidFileInputAccept`
- feat(js_analyze): added a React naming convention rule
- feat(lint/js): add `noUnmodifiedLoopCondition`
- chore: add a "update module replacements" workflow

## Improvements
- perf: void extra resolution of unused object members and params
- perf(css_parser): avoid rejected nesting blocks

## Bug Fixes
- Fixed Astro attribute expressions rejecting TypeScript and JSX syntax that is accepted in text expressions.
- Fixed Astro attribute names being split on `:` and `.` inside an expression, such as `{x &&
- Fixed a bare `>` in the children of an Astro expression being treated as markup, such as `{x &&
- Fixed HTML comments inside an Astro expression failing to parse. They are now read as trivia, wherever they appear among the children.
- Fixed `is:raw` children inside an Astro expression being read as JSX, such as `{x &&
- Fixed an apostrophe or quote in the text of a JSX element inside an Astro expression ending the expression early, such as `{items.map((i) =>

## Upgrade Command
```bash
npm install --save-dev --save-exact @biomejs/biome@2.5.12
```
