# Biome @biomejs/biome@2.4.12 — Release & Upgrade Intelligence
- **Product:** Biome (https://biomejs.dev)
- **Version:** @biomejs/biome@2.4.12
- **Released:** Apr 14, 2026
- **Impact Score:** 5/10
- **Breaking Changes:** Not verified
- **Canonical Analysis:** https://changelogs.us/biome/updates/biomejs-biome-2.4.12/

## Executive Summary (TL;DR)
Biome @biomejs/biome@2.4.12. Source highlight: Added the `nursery/noIdenticalTestTitle` lint rule. This rule disallows using the same title for two `describe` blocks or two test cases at the same nesting level.

## New Features
- feat(lint/js): add `noExcessiveSelectorClasses`
- feat(lint): implement useReduceTypeParameter nursery rule
- feat(css): extend SCSS parsing with function names, interpolated values
- feat(lint/js): add `noIdenticalTestTitle`
- feat(js_analyze): implement noJsxNamespace
- feat(lint/js): add `useStringStartsEndsWith`

## Improvements
- perf(noMagicNumbers): reduce allocations

## Bug Fixes
- Added the `nursery/noIdenticalTestTitle` lint rule. This rule disallows using the same title for two `describe` blocks or two test cases at the same nesting level.
- Improved the diagnostics for `useForOf` to better explain the problem, why it matters, and how to fix it.
- Added a new nursery rule `noComponentHookFactories`, that disallows defining React components or custom hooks inside other functions.
- Fixed #9941: Biome now emits a `warning` diagnostic when a file exceed the `files.maxSize` limit.
- Fixed #9918: `useConsistentTestIt` no longer panics when applying fixes to chained calls such as `test.for([])("x", () => {});`.
- Improved the `noGlobalObjectCalls` diagnostic to better explain why calling global objects like `Math` or `JSON` is invalid and how to fix it.

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