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

## Executive Summary (TL;DR)
Biome @biomejs/biome@2.3.12. Source highlight: Added new nursery rule `noDuplicateAttributes` to forbid duplicate attributes in HTML elements.

## New Features
- feat(graphql_analyze): implement useUniqueEnumValueNames
- feat(graphql_analyze): implement useLoneExecutableDefinition
- feat(biome_js_analyze): implement noExcessiveLinesPerFile
- feat: add useErrorCause Rule
- chore: add css, graphql & html new assist rule tasks
- feat(analyze/html): add noDuplicateAttributes

## Bug Fixes
- Added new nursery rule `noDuplicateAttributes` to forbid duplicate attributes in HTML elements.
- Added a new nursery rule `noVueOptionsApi`.
- Fixed #8809, #7985, and #8136: the `noSecrets` rule no longer reports false positives on common CamelCase identifiers like `paddingBottom`, `backgroundColor`, `unhandledRejection`, `uncaughtException`, and `IngestGatewayLogGroup`.
- Properly handle `parameters` metavariables for `arrow_function` GritQL queries. The following `biome search` command no longer throws an error:
- Fixed `noUnusedVariables` to ignore type parameters declared in ambient contexts such as `declare module` blocks.
- Fixed #8765: The HTML parser can now parse directive modifiers with a single colon, e.g. `@keydown.:`.

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