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

## Executive Summary (TL;DR)
Biome @biomejs/biome@2.3.15. Source highlight: Added the lint rule `noNestedPromises`. This rule detects nested `.then()` or `.catch()` calls that could be refactored into flat promise chains.

## New Features
- feat(migrate): some more migration metadata
- feat(lint/js): add `noNestedPromises`
- feat(lint): add nursery rule noUselessReturn

## Bug Fixes
- Added the lint rule `noNestedPromises`. This rule detects nested `.then()` or `.catch()` calls that could be refactored into flat promise chains.
- Added the nursery rule `noUselessReturn`. The rule reports redundant `return;` statements that don't affect the function's control flow.
- Reverted a behavior change in `useExhaustiveDependencies` that was accidentally included as part of the #8802 fix. The change made method calls on objects (e.g., `props.data.forEach(...)`) report only the object (`props.data`) as a missing dependency instead of the full member expression. This behavior change will be reconsidered separately.
- Fixed #8790: The `noAssignInExpressions` rule no longer reports a false positive when an assignment is used as the expression body of an arrow function (e.g., `const f = b => a += b`).
- Fixed #8518, where globally excluded files in a monorepo were still being processed when using `"extends": "//"`.
- Fixed #8967. useExhaustiveDependencies no longer reports false positives for variables destructured from a rest pattern.

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