@biomejs/biome@2.3.10
biomejs/biome@biomejs/biome@2.3.10Dec 17, 2025by github-actions[bot]
AI Summary
A maintenance release focusing on bug fixes for TypeScript type analysis, Vue linting regressions, and the introduction of a new Turborepo-specific linting domain.
Key Highlights
- Fixed `noRedeclare` to no longer report redeclarations for `infer` type in conditional types.
- Fixed `noExtraNonNullAssertion` regression and semantic model crash on constructor methods.
- Added a new Turborepo domain with the `noUndeclaredEnvVars` rule.
- Fixed handling of multi-codepoint characters when running in stdin mode.
- Improved `noVueReservedKeys` rule to avoid false positives in non-setup scripts.
New Features
- Turborepo domain and `noUndeclaredEnvVars` rule
- Enhanced TypeScript semantic model stability
Full Release Notes
## 2.3.10 ### Patch Changes - [#8417](https://github.com/biomejs/biome/pull/8417) [`c3a2557`](https://github.com/biomejs/biome/commit/c3a255709cdbdb8e2281eac5bb65848eafeaa366) Thanks [@taga3s](https://github.com/taga3s)! - Fixed [#7809](https://github.com/biomejs/biome/issues/7809): [`noRedeclare`](https://biomejs.dev/linter/rules/no-redeclare/) no longer reports redeclarations for `infer` type in conditional types. - [#8477](https://github.com/biomejs/biome/pull/8477) [`90e8684`](https://github.com/biomejs/biome/commit/90e86848a9dd63b63b6a91766620657ae04b5c2d) Thanks [@dyc3](https://github.com/dyc3)! - Fixed [#8475](https://github.com/biomejs/biome/issues/8475): fixed a regression in how `noExtraNonNullAssertion` flags extra non-null assertions - [#8479](https://github.com/biomejs/biome/pull/8479) [`250b519`](https://github.com/biomejs/biome/commit/250b51974f833f17b0e0e4f5d71bf93461cf3324) Thanks [@dyc3](https://github.com/dyc3)! - Fixed [#8473](https://github.com/biomejs/biome/issues/8473): The semantic model now indexes typescript constructor method definitions, and no longer panics if you use one (a regression in 2.3.9). - [#8448](https://github.com/biomejs/biome/pull/8448) [`2af85c1`](https://github.com/biomejs/biome/commit/2af85c16ae3cfcd460645d83fe5789c75031967a) Thanks [@mdevils](https://github.com/mdevils)! - Improved handling of `defineProps()` macro in Vue components. The [`noVueReservedKeys`](https://biomejs.dev/linter/rules/no-vue-reserved-keys/) rule now avoids false positives in non-setup scripts. - [#8420](https://github.com/biomejs/biome/pull/8420) [`42033b0`](https://github.com/biomejs/biome/commit/42033b041f473badfcc6d1a0f52324b5388c570b) Thanks [@vsn4ik](https://github.com/vsn4ik)! - Fixed the nursery rule [`noLeakedRender`](https://biomejs.dev/linter/rules/no-leaked-render/). The `biome migrate eslint` command now correctly detects the rule `react/jsx-no-leaked-render` in your eslint configurations. - [#8426](https://github.com/biomejs/biome/pull/8426) [`285d932`](https://github.com/biomejs/biome/commit/285d9321d8701e86f39b3a747563fc14e129b459) Thanks [@anthonyshew](https://github.com/anthonyshew)! - Added a Turborepo domain and a new "noUndeclaredEnvVars" rule in it for warning users of unsafe environment variable usage in Turborepos. - [#8410](https://github.com/biomejs/biome/pull/8410) [`a21db74`](https://github.com/biomejs/biome/commit/a21db74bc02ac7ae7e0bd96de242588c6c4108e8) Thanks [@ematipico](https://github.com/ematipico)! - Fixed [#2988](https://github.com/biomejs/biome/issues/2988) where Biome couldn't handle properly characters that contain multiple code points when running in `stdin` mode. - [#8372](https://github.com/biomejs/biome/pull/8372) [`b352ee4`](https://github.com/biomejs/biome/commit/b352ee4759f7c3b09a2bf2084de5991e935bce4d) Thanks [@Netail](https://github.com/Netail)! - Added the nursery rule [`noAmbiguousAnchorText`](https://biomejs.dev/linter/rules/no-ambiguous-anchor-text/), which disallows ambiguous anchor descriptions. #### Invalid ```html <a>learn more</a> ``` ## What's Changed * feat: new Turborepo domain and `noUndeclaredEnvVars` rule by @anthonyshew in https://github.com/biomejs/biome/pull/8426 * fix(noExtraNonNullAssertion): fix regression by @dyc3 in https://github.com/biomejs/biome/pull/8477 * fix(analyze/js): index ts constructor methods in semantic model (regression) by @dyc3 in https://github.com/biomejs/biome/pull/8479 * fix(lint): `lint/suspicous/noRedeclare` should not report redeclarations for `infer` type in conditional types by @taga3s in https://github.com/biomejs/biome/pull/8417 * fix(noLeakedRender): eslint rule name fix by @vsn4ik in https://github.com/biomejs/biome/pull/8420 * chore: add kraken as bronze sponsor by @dyc3 in https://github.com/biomejs/biome/pull/8486 * fix(linter): improve Vue defineProps handling in noVueReservedKeys by @mdevils in https://github.com/biomejs/biome/pull/8448 * fix(cli): colors with multi-codepoints characters by @ematipico in https://github.com/biomejs/biome/pull/8410 * feat(lint): implement noAmbiguousAnchorText by @Netail in https://github.com/biomejs/biome/pull/8372 * ci: release by @github-actions[bot] in https://github.com/biomejs/biome/pull/8474 * docs: fix typos for assist/actions/organize-imports by @sergioness in https://github.com/biomejs/biome/pull/8490 ## New Contributors * @taga3s made their first contribution in https://github.com/biomejs/biome/pull/8417 * @vsn4ik made their first contribution in https://github.com/biomejs/biome/pull/8420 * @sergioness made their first contribution in https://github.com/biomejs/biome/pull/8490 **Full Changelog**: https://github.com/biomejs/biome/compare/@biomejs/biome@2.3.9...@biomejs/biome@2.3.10