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

## Executive Summary (TL;DR)
Biome @biomejs/biome@2.4.9. Source highlight: Added a new nursery CSS rule `noDuplicateSelectors`, that disallows duplicate selector lists within the same at-rule context.

## New Features
- chore(bench/html): add real test fixtures to biome_html_analyze benches
- chore: add eslint-migrate-options skill
- feat(analyze): implement noInlineStyles
- feat(css): add `noDuplicateSelectors`
- feat(linter): add rule `noUntrustedLicenses`

## Improvements
- docs: break down skills, improve existing ones
- perf(html): inline parse functions

## Bug Fixes
- Added a new nursery CSS rule `noDuplicateSelectors`, that disallows duplicate selector lists within the same at-rule context.
- Fixed #7211: `useOptionalChain` now detects negated logical OR chains. The following code is now considered invalid:
- Fixed #8345: `useAdjacentOverloadSignatures` no longer reports false positives for static and instance methods with the same name. Static methods and instance methods are now treated as separate overload groups.
- Fixed `#9475`: Fixed a panic when Biome analyzed ambient TypeScript modules containing class constructor, getter, or setter signatures that reference local type aliases. Biome now handles these declarations without crashing during semantic analysis.
- Fixed a bug where enabling the rules of a whole group, would enable rules that belonged to a domain under the same group.
- Fixed #8828: Grit patterns using `export { $foo } from $source` now match named re-exports in JavaScript and TypeScript files.

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