Biome @biomejs/[email protected]stable Released Apr 09, 2026
Impact Score: 5/10

Biome CLI v2.4.11

Source available โ€” automated, not human-reviewed

Component: @biomejs/biome ยท Channel: stable. Automated analysis, not a compatibility certification. How this works.

Analysis updated: 2026-11-01.

Compatibility not verified โ€” check source notes
$ npm install --save-dev --save-exact @biomejs/[email protected]
๐Ÿ“„ .MD
โšก Executive Summary (TL;DR)

Biome @biomejs/[email protected]. Source highlight: Added the new nursery rule useConsistentTestIt in the `test` domain. The rule enforces consistent use of either `it` or `test` for test functions in Jest/Vitest suites, with separate control for top-level tests and tests inside `describe` blocks.

Who Does This Impact? (Role-Based Analysis)

๐Ÿ’ป Software Engineers & Devs

Check the source notes against the package and APIs you use before upgrading.

๐Ÿ“Š Product & Engineering Leads

Use the documented changes to assess relevance to your product; release frequency alone is not a quality measure.

โš™๏ธ DevOps & Security

Verify the target version, runtime requirements and rollback procedure in the official documentation.

๐Ÿ”ง Bug Fixes & Patches (6)

  • Added the new nursery rule useConsistentTestIt in the `test` domain. The rule enforces consistent use of either `it` or `test` for test functions in Jest/Vitest suites, with separate control for top-level tests and tests inside `describe` blocks.
  • Added the new nursery lint rule `useExplicitReturnType`. It reports TypeScript functions and methods that omit an explicit return type.
  • Fixed #9484: the formatter no longer panics when formatting files that contain `graphql` tagged template literals combined with parenthesized expressions.
  • Fixed an issue where, occasionally, some bindings and references were not properly tracked, causing false positives from `noUnusedVariables` and `noUndeclaredVariables` in Svelte, Vue, and Astro files.
  • Fixed #4093: the `noDelete` rule no longer triggers for `delete process.env.FOO`, since `delete` is the documented way to remove environment variables in Node.js.
  • Added the rule `noMisleadingReturnType`. The rule detects when a function's return type annotation is wider than what the implementation actually returns.
๐Ÿ“„ View Raw Release Notes (Original Developer Log)
## 2.4.11 ### Patch Changes - [#9350](https://github.com/biomejs/biome/pull/9350) [`4af4a3a`](https://github.com/biomejs/biome/commit/4af4a3a9ca31a598e9836997b7811992eae53387) Thanks [@dyc3](https://github.com/dyc3)! - Added the new nursery rule [useConsistentTestIt](https://biomejs.dev/linter/rules/use-consistent-test-it/) in the `test` domain. The rule enforces consistent use of either `it` or `test` for test functions in Jest/Vitest suites, with separate control for top-level tests and tests inside `describe` blocks. Invalid: ```js test("should fly", () => {}); // Top-level test using 'test' flagged, convert to 'it' describe("pig", () => { test("should fly", () => {}); // Test inside 'describe' using 'test' flagged, convert to 'it' }); ``` - [#9429](https://github.com/biomejs/biome/pull/9429) [`a2f3f7e`](https://github.com/biomejs/biome/commit/a2f3f7eb3a134ccc6851ed0eec19d1ff1636ec72) Thanks [@ematipico](https://github.com/ematipico)! - Added the new nursery lint rule [`useExplicitReturnType`](https://biomejs.dev/linter/rules/use-explicit-return-type). It reports TypeScript functions and methods that omit an explicit return type. ```ts function toString(x: any) { // rule triggered, it doesn't declare a return type return x.toString(); } ``` - [#9828](https://github.com/biomejs/biome/pull/9828) [`9e40844`](https://github.com/biomejs/biome/commit/9e40844261cf7b8c573e340e11e3297ef08bcd60) Thanks [@ematipico](https://github.com/ematipico)! - Fixed [#9484](https://github.com/biomejs/biome/issues/9484): the formatter no longer panics when formatting files that contain `graphql` tagged template literals combined with parenthesized expressions. - [#9886](https://github.com/biomejs/biome/pull/9886) [`e7c681e`](https://github.com/biomejs/biome/commit/e7c681ecbb6aed471c914167f5d067d327792f44) Thanks [@ematipico](https://github.com/ematipico)! - Fixed an issue where, occasionally, some bindings and references were not properly tracked, causing false positives from [`noUnusedVariables`](https://biomejs.dev/linter/rules/no-unused-variables/) and [`noUndeclaredVariables`](https://biomejs.dev/linter/rules/no-undeclared-variables/) in Svelte, Vue, and Astro files. - [#9760](https://github.com/biomejs/biome/pull/9760) [`5b16d18`](https://github.com/biomejs/biome/commit/5b16d187ba63800f4b6ea5057d551ae3f2fbc68c) Thanks [@myx0m0p](https://github.com/myx0m0p)! - Fixed [#4093](https://github.com/biomejs/biome/issues/4093): the [`noDelete`](https://biomejs.dev/linter/rules/no-delete/) rule no longer triggers for `delete process.env.FOO`, since `delete` is the documented way to remove environment variables in Node.js. - [#9799](https://github.com/biomejs/biome/pull/9799) [`2af8efd`](https://github.com/biomejs/biome/commit/2af8efd348cfa992bc7d35683de55bb8cc583260) Thanks [@minseong0324](https://github.com/minseong0324)! - Added the rule [`noMisleadingReturnType`](https://biomejs.dev/linter/rules/no-misleading-return-type/). The rule detects when a function's return type annotation is wider than what the implementation actually returns. ```ts // Flagged: `: string` is wider than `"loading" | "idle"` function getStatus(b: boolean): string { if (b) return "loading"; return "idle"; } ``` - [#9880](https://github.com/biomejs/biome/pull/9880) [`7f67749`](https://github.com/biomejs/biome/commit/7f67749e77af6e5af3dfc72a02bb99718695612e) Thanks [@dyc3](https://github.com/dyc3)! - Improved the diagnostics for [`useFind`](https://biomejs.dev/linter/rules/use-find/) to better explain the problem, why it matters, and how to fix it. - [#9755](https://github.com/biomejs/biome/pull/9755) [`bff7bdb`](https://github.com/biomejs/biome/commit/bff7bdb1355cdf7d219a288e31c5c5a0357e3aad) Thanks [@ematipico](https://github.com/ematipico)! - Improved performance of fix-all operations (`--write`). Biome is now smarter when it runs lint rules and assist actions. First, it runs only rules that have code fixes, and then runs the rest of the rules. - [#8651](https://github.com/biomejs/biome/pull/8651) [`aafca2d`](https://github.com/biomejs/biome/commit/aafca2d086eb24226a9cf1a69179561f70d02773) Thanks [@siketyan](https://github.com/siketyan)! - Add a new lint rule `useDisposables` for JavaScript, which detects disposable objects assigned to variables without `using` or `await using` syntax. Disposable objects that implement the `Disposable` or `AsyncDisposable` interface are intended to be disposed of after use. Not disposing them can lead to resource or memory leaks, depending on the implementation. **Invalid:** ```js function createDisposable(): Disposable { return { [Symbol.dispose]() { // do something }, }; } const disposable = createDisposable(); ``` **Valid:** ```js function createDisposable(): Disposable { return { [Symbol.dispose]() { // do something }, }; } using disposable = createDisposable(); ``` - [#9788](https://github.com/biomejs/biome/pull/9788) [`53b8e57`](https://github.com/biomejs/biome/commit/53b8e5768e33b87298f8e0e4c896957dee6f2eb6) Thanks [@MeGaNeKoS](https://github.com/MeGaNeKoS)! - Fixed [#7760](https://github.com/biomejs/biome/issues/7760): Added support for CSS scroll-driven animation `timeline-range-name` keyframe selectors (`cover`, `contain`, `entry`, `exit`, `entry-crossing`, `exit-crossing`). Biome no longer reports parse errors on keyframes like `entry 0% { ... }` or `exit 100% { ... }`. - [#9728](https://github.com/biomejs/biome/pull/9728) [`5085424`](https://github.com/biomejs/biome/commit/5085424db427c7874eef7ca732f237febb49fdb1) Thanks [@mkosei](https://github.com/mkosei)! - Fixed [#9696](https://github.com/biomejs/biome/issues/9696): Astro frontmatter now correctly parses regular expression literals like `/\d{4}/`. - [#9261](https://github.com/biomejs/biome/pull/9261) [`16b6c49`](https://github.com/biomejs/biome/commit/16b6c4951793c820d109a9b502e1812fcbfca764) Thanks [@ematipico](https://github.com/ematipico)! - Fixed [#8409](https://github.com/biomejs/biome/issues/8409): CSS formatter now correctly places comments after the colon in property declarations. Previously, comments that appeared after the colon in CSS property values were incorrectly moved before the property name: ```diff [lang]:lang(ja) { - /* system-ui,*/ font-family: + font-family: /* system-ui,*/ Hiragino Sans, sans-serif; } ``` - [#9441](https://github.com/biomejs/biome/pull/9441) [`957ea4c`](https://github.com/biomejs/biome/commit/957ea4c8ebe75083ba68a98f70616c88368883c5) Thanks [@soconnor-seeq](https://github.com/soconnor-seeq)! - Fixed [#1630](https://github.com/biomejs/biome/issues/1630): LSP project selection now prefers the most specific project root in nested workspaces. - [#9878](https://github.com/biomejs/biome/pull/9878) [`de6210f`](https://github.com/biomejs/biome/commit/de6210f80fa6d1dc0ca3edd395e9d8e571766bb8) Thanks [@ematipico](https://github.com/ematipico)! - Fixed [#9118](https://github.com/biomejs/biome/issues/9118): [`noUnusedImports`](https://biomejs.dev/linter/rules/no-unused-imports/) no longer reports false positives for default imports used inside Svelte, Vue and Astro components. - [#9879](https://github.com/biomejs/biome/pull/9879) [`ce7e2b7`](https://github.com/biomejs/biome/commit/ce7e2b762bc82319c39027d15e84a26f8708fc92) Thanks [@dyc3](https://github.com/dyc3)! - Fixed a parser diagnostic's message when vue syntax is disabled so that it no longer references the non-existant `html.parser.vue` option. This option will become available in 2.5. - [#9880](https://github.com/biomejs/biome/pull/9880) [`7f67749`](https://github.com/biomejs/biome/commit/7f67749e77af6e5af3dfc72a02bb99718695612e) Thanks [@dyc3](https://github.com/dyc3)! - Improved the diagnostics for [`useRegexpExec`](https://biomejs.dev/linter/rules/use-regexp-exec/) to better explain the problem, why it matters, and how to fix it. - [#9846](https://github.com/biomejs/biome/pull/9846) [`b7134d9`](https://github.com/biomejs/biome/commit/b7134d92413991c4394574353b76b1891160bc38) Thanks [@ematipico](https://github.com/ematipico)! - Fixed [#9140](https://github.com/biomejs/biome/issues/9140): Biome now parses Astro's attribute shorthand inside `.astro` files. The following snippet no longer reports a parse error: ```astro --- const items = ['a', 'b']; --- <ul> {items.map((item) => <li {item}>row</li>)} </ul> ``` - [#9790](https://github.com/biomejs/biome/pull/9790) [`67df09d`](https://github.com/biomejs/biome/commit/67df09d524fe49d3bb08dc45b7dfb99771e25bdd) Thanks [@dyc3](https://github.com/dyc3)! - Fixed [#9781](https://github.com/biomejs/biome/issues/9781): Trailing comments after a top-level `biome-ignore-all format` suppression are now preserved instead of being dropped. This applies to JavaScript, CSS, HTML, JSONC, GraphQL, and Grit files. - [#9745](https://github.com/biomejs/biome/pull/9745) [`d87073e`](https://github.com/biomejs/biome/commit/d87073ef5586f0cf7eb74fd0d7390a3444c591ff) Thanks [@ematipico](https://github.com/ematipico)! - Fixed [#9741](https://github.com/biomejs/biome/issues/9741): the LSP server now correctly returns the [`organizeImports`](https://biomejs.dev/assist/actions/organize-imports/) code action when the client requests it via `source.organizeImports.biome` in the `only` filter. Previously, editors with `codeAction/resolve` support (e.g. Zed) received an empty response because the action was serialized with the wrong kind (`source.biome.organizeImports` instead of `source.organizeImports.biome`). - [#9880](https://github.com/biomejs/biome/pull/9880) [`7f67749`](https://github.com/biomejs/biome/commit/7f67749e77af6e5af3dfc72a02bb99718695612e) Thanks [@dyc3](https://github.com/dyc3)! - Improved the diagnostics for [`useArraySome`](https://biomejs.dev/linter/rules/use-array-some/) to better explain the problem, why it matters, and how to fix it. - [#9795](https://github.com/biomejs/biome/pull/9795) [`1d09f0f`](https://github.com/biomejs/biome/commit/1d09f0fae1d0270ad603e7b494d8dffb979125aa) Thanks [@dyc3](https://github.com/dyc3)! - Relaxed [`useExplicitType`](https://biomejs.dev/linter/rules/use-explicit-type/) for trivially inferrable types. Type annotations can now be omitted when types are trivially inferrable from: - Binary expressions (`const sum = 1 + 1`) - Comparison expressions (`const isEqual = 'a' === 'b'`, `const isTest = process.env.NODE_ENV === 'test'`) - Logical expressions (`const and = true && false`) - Class instantiation (`const date = new Date()`) - Array literals (`const arr = [1, 2, 3]`) - Conditional expressions (`const val = true ? 'yes' : 'no'`) - Function calls (`const num = Math.random()`) - Parameter defaults - any expression is now allowed (`const fn = (max = MAX_ATTEMPTS) => ...`) Comparison expressions always return `boolean`, so any operands are now allowed (including property access like `process.env.NODE_ENV`). Parameters with default values no longer require type annotations, as TypeScript can infer the type from the default value (even when referencing variables). Also removed the redundant `any` type validation from this rule. The `any` type is now only validated by the dedicated `noExplicitAny` rule, following the Single Responsibility Principle. - [#9809](https://github.com/biomejs/biome/pull/9809) [`e8cad58`](https://github.com/biomejs/biome/commit/e8cad58a1baf8f8c935e8547da88905cfbfb05be) Thanks [@Netail](https://github.com/Netail)! - Added the new nursery rule [`useQwikLoaderLocation`](https://biomejs.dev/linter/rules/use-qwik-loader-location/), which enforces that Qwik loader functions are declared in the correct location. - [#9877](https://github.com/biomejs/biome/pull/9877) [`fc9d715`](https://github.com/biomejs/biome/commit/fc9d715a904d382fcd7fb932a05896cfbafaaa44) Thanks [@ematipico](https://github.com/ematipico)! - Fixed [#9136](https://github.com/biomejs/biome/issues/9136) and [#9653](https://github.com/biomejs/biome/issues/9653): [`noUndeclaredVariables`](https://biomejs.dev/linter/rules/no-undeclared-variables/) and [`noUnusedVariables`](https://biomejs.dev/linter/rules/no-unused-variables/) no longer report false positives on several Svelte template constructs that declare or reference bindings in the host grammar: - `{#snippet name(params)}` โ€” the snippet name and its parameters (including object, array, rest, and nested destructuring) are now tracked. - `{@render name(args)}` โ€” the snippet name used at the render site is now resolved against the snippet declaration. - `{#each items as item, index (key)}` โ€” the `item` binding (plain identifier or destructured), the optional `index`, and the optional `key` expression are now tracked. - `{@const name = value}` โ€” the declared name is now tracked as a binding and the initializer is analyzed for undeclared references. - `{@debug a, b, c}` โ€” each debugged identifier is now analyzed and reported if undeclared. - Shorthand attributes `<img {src} />` โ€” the curly-shorthand attribute is now analyzed as an expression, so undeclared references inside it are reported. For example, the following template no longer triggers either rule: ```svelte <script> let items = []; let total = 0; </script> {#snippet figure(image)} <figure> <img src={image.src} alt={image.caption} /> <figcaption>{image.caption}</figcaption> </figure> {/snippet} {#each items as item} {@const price = item.price} {@render figure(item)} <span>{price}</span> {/each} {@debug items, total} ``` - [#9869](https://github.com/biomejs/biome/pull/9869) [`78bce77`](https://github.com/biomejs/biome/commit/78bce773a2d8776991c93a239d462fd42bf24cc4) Thanks [@Netail](https://github.com/Netail)! - Updated [`noDuplicateFieldDefinitionNames`](https://biomejs.dev/linter/rules/no-duplicate-field-definition-names/) to also flag duplicate fields within type extensions, interface extensions & input extensions. - [#9739](https://github.com/biomejs/biome/pull/9739) [`0bc2198`](https://github.com/biomejs/biome/commit/0bc2198735230c3bad14a831652543bd304fa0d6) Thanks [@dyc3](https://github.com/dyc3)! - Fixed Grit queries that use native Biome AST node names with the native field names that are in our `.ungram` grammar files. Queries such as `JsConditionalExpression(consequent = $cons, alternate = $alt)` now compile successfully in `biome search` and grit plugins. - [#9811](https://github.com/biomejs/biome/pull/9811) [`2dddca3`](https://github.com/biomejs/biome/commit/2dddca3f09bda92f7f43bbaf482796f5aec7a970) Thanks [@dyc3](https://github.com/dyc3)! - Updated `noImpliedEval` to flag `new Function()` usages, as its a form of indirect `eval`, and to include `no-new-func` as a rule source. - [#9870](https://github.com/biomejs/biome/pull/9870) [`ccf9770`](https://github.com/biomejs/biome/commit/ccf9770b37cf2d04205a5914db72c86137bca50f) Thanks [@Netail](https://github.com/Netail)! - Marked eslint-qwik-plugin's `unused-server` as redundant since it was covered by `noUnusedVariables`. - [#9701](https://github.com/biomejs/biome/pull/9701) [`1417c3b`](https://github.com/biomejs/biome/commit/1417c3b4ece262b1500b12c9f1da1429e4d53fc4) Thanks [@dyc3](https://github.com/dyc3)! - Added the new nursery rule [`noUselessTypeConversion`](https://biomejs.dev/linter/rules/no-useless-type-conversion/), which reports redundant primitive conversion patterns such as `String(value)` when `value` is already a string. - [#9248](https://github.com/biomejs/biome/pull/9248) [`49f00a3`](https://github.com/biomejs/biome/commit/49f00a38d64af131178ba4e096155d22055aa1c4) Thanks [@pkallos](https://github.com/pkallos)! - `useNullishCoalescing` now also detects ternary expressions that check for `null` or `undefined` and suggests rewriting them with `??`. A new `ignoreTernaryTests` option allows disabling this behavior. - [#9863](https://github.com/biomejs/biome/pull/9863) [`6a44619`](https://github.com/biomejs/biome/commit/6a4461915f1f5f161795081706b84cc8992b12dd) Thanks [@ematipico](https://github.com/ematipico)! - Fixed [#9690](https://github.com/biomejs/biome/issues/9690): `biome check --write` is now idempotent on HTML files that contain embedded `<style>` or `<script>` blocks. Previously, each run reported "Fixed 1 file" even when the file content did not actually change, because the embedded language formatter's output was not re-indented to match the surrounding HTML block. ## What's Changed * feat(md/fmt): format more nodes by @ematipico in https://github.com/biomejs/biome/pull/9713 * fix(markdown): preserve nested list indent tokens by @jfmcdowell in https://github.com/biomejs/biome/pull/9717 * fix(html): handle escaped regex literals in astro frontmatter by @mkosei in https://github.com/biomejs/biome/pull/9728 * test(markdown): add regression tests for mixed list markers across blank lines by @jfmcdowell in https://github.com/biomejs/biome/pull/9732 * fix(lsp): prefer most specific project root by @soconnor-seeq in https://github.com/biomejs/biome/pull/9441 * fix(markdown): fix fenced code block closing inside list items by @jfmcdowell in https://github.com/biomejs/biome/pull/9730 * fix(markdown): fix HTML block parsing inside list item continuations by @jfmcdowell in https://github.com/biomejs/biome/pull/9740 * fix(markdown): fix panic on multi-byte characters in emphasis context by @jfmcdowell in https://github.com/biomejs/biome/pull/9735 * refactor(markdown): replace skipped trivia with formatter-safe recovery by @jfmcdowell in https://github.com/biomejs/biome/pull/9746 * refactor(markdown): cleanup nits from #9746 by @jfmcdowell in https://github.com/biomejs/biome/pull/9751 * fix(lsp): regression codeAction/resolve by @ematipico in https://github.com/biomejs/biome/pull/9745 * feat(lint/js): add `noUselessTypeConversion` by @dyc3 in https://github.com/biomejs/biome/pull/9701 * fix(markdown): replace panicking code with safe fallbacks in lexer by @jfmcdowell in https://github.com/biomejs/biome/pull/9753 * refactor(markdown): emit continuation indent as structural CST node by @jfmcdowell in https://github.com/biomejs/biome/pull/9737 * fix(markdown): fix false diagnostic on nested lists with double blank lines by @jfmcdowell in https://github.com/biomejs/biome/pull/9764 * feat(css): add support for SCSS string interpolation by @denbezrukov in https://github.com/biomejs/biome/pull/9756 * refactor(markdown): deduplicate shared helper functions by @jfmcdowell in https://github.com/biomejs/biome/pull/9766 * fix(markdown): remove debug scaffolding and parser cleanup by @jfmcdowell in https://github.com/biomejs/biome/pull/9765 * refactor(flags): make variables predictable by @ematipico in https://github.com/biomejs/biome/pull/9769 * fix(markdown_parser): emit MdIndentTokenList for headers inside list items by @jfmcdowell in https://github.com/biomejs/biome/pull/9774 * fix(markdown_parser): fix lazy continuation at nested list marker indent by @jfmcdowell in https://github.com/biomejs/biome/pull/9776 * docs: clarify that elements in scope for useAltText is not configurable by @yogaraptor in https://github.com/biomejs/biome/pull/9773 * fix(markdown_parser): fix multi-byte character panic in emphasis context by @jfmcdowell in https://github.com/biomejs/biome/pull/9775 * perf(core): refactor fix-all logic by @ematipico in https://github.com/biomejs/biome/pull/9755 * feat(css): add support for scroll-driven animation keyframe selectors by @MeGaNeKoS in https://github.com/biomejs/biome/pull/9788 * fix(format): don't remove trailing comments when formatting is suppressed by @dyc3 in https://github.com/biomejs/biome/pull/9790 * test(markdown_parser): add reference HTML validation and structural invariants by @jfmcdowell in https://github.com/biomejs/biome/pull/9779 * fix(markdown_parser): reject multiline inline HTML open tag when > at line start is blockquote marker by @jfmcdowell in https://github.com/biomejs/biome/pull/9783 * fix: noDelete should not suggest undefined assignment for process.env by @myx0m0p in https://github.com/biomejs/biome/pull/9760 * feat(lint/js): add `useConsistentTestIt` by @dyc3 in https://github.com/biomejs/biome/pull/9350 * feat(useExplicitType): relax rule for trivially inferrable types by @dyc3 in https://github.com/biomejs/biome/pull/9795 * chore(deps): update dependency tombi to v0.9.13 by @renovate[bot] in https://github.com/biomejs/biome/pull/9819 * fix(markdown_parser): split bullet lists when marker type changes across blank lines by @jfmcdowell in https://github.com/biomejs/biome/pull/9785 * fix(markdown_parser): recognize setext heading inside blockquote by @jfmcdowell in https://github.com/biomejs/biome/pull/9782 * chore(deps): update github-actions by @renovate[bot] in https://github.com/biomejs/biome/pull/9823 * fix(deps): update @biomejs packages by @renovate[bot] in https://github.com/biomejs/biome/pull/9822 * chore(deps): update rust crate libc to 0.2.184 by @renovate[bot] in https://github.com/biomejs/biome/pull/9821 * chore(deps): update dependency dprint to v0.53.2 by @renovate[bot] in https://github.com/biomejs/biome/pull/9818 * refactor(useConsistentTestIt): review feedback by @dyc3 in https://github.com/biomejs/biome/pull/9827 * fix(cli): fix codeAction/resolve not considering assist actions by @elliotcourant in https://github.com/biomejs/biome/pull/9812 * test(markdown_parser): add differential fuzzer against commonmark.js by @jfmcdowell in https://github.com/biomejs/biome/pull/9784 * feat(markdown): implement basic formatter features by @tidefield in https://github.com/biomejs/biome/pull/9693 * feat(lint): add ternary expression detection to useNullishCoalescing by @pkallos in https://github.com/biomejs/biome/pull/9248 * chore(deps): update rust crate indexmap to 2.13.1 by @renovate[bot] in https://github.com/biomejs/biome/pull/9820 * fix: embedded snippets with parenthesis by @ematipico in https://github.com/biomejs/biome/pull/9828 * feat(js/lint): implement rule `useDisposables` by @siketyan in https://github.com/biomejs/biome/pull/8651 * fix(markdown_parser): reject link reference definition with trailing text after destination by @jfmcdowell in https://github.com/biomejs/biome/pull/9780 * feat(lint): rule `useExplicitReturnType` by @ematipico in https://github.com/biomejs/biome/pull/9429 * fix(markdown_parser): incorrect tight/loose list classification at marker boundaries by @jfmcdowell in https://github.com/biomejs/biome/pull/9787 * ci: add cargo-deny for `paste` crate by @dyc3 in https://github.com/biomejs/biome/pull/9579 * chore: format by @dyc3 in https://github.com/biomejs/biome/pull/9834 * chore(skills): better diagnostic advice by @dyc3 in https://github.com/biomejs/biome/pull/9830 * feat(lint): add nursery rule `noMisleadingReturnType` by @minseong0324 in https://github.com/biomejs/biome/pull/9799 * chore: update guidelines to protect maintainers by @ematipico in https://github.com/biomejs/biome/pull/9825 * chore(deps): update dependency vite to v7.3.2 [security] by @renovate[bot] in https://github.com/biomejs/biome/pull/9844 * refactor(markdown_parser): deduplicate normalize_html test helper by @jfmcdowell in https://github.com/biomejs/biome/pull/9833 * chore(deps): update rust crate tokio to 1.51.0 by @renovate[bot] in https://github.com/biomejs/biome/pull/9602 * fix(deps): update rust crates by @renovate[bot] in https://github.com/biomejs/biome/pull/9708 * refactor(migrate): auto derive `variant_index()` function by @dyc3 in https://github.com/biomejs/biome/pull/9803 * feat(noImpliedEval): flag `new Function(...)` by @dyc3 in https://github.com/biomejs/biome/pull/9811 * test: infra for custom rule migrators by @dyc3 in https://github.com/biomejs/biome/pull/9836 * refactor(markdown_parser): deduplicate link helper functions by @jfmcdowell in https://github.com/biomejs/biome/pull/9840 * fix(js): parse short hand identifier in Astro JSX files by @ematipico in https://github.com/biomejs/biome/pull/9846 * fix(ci): remove unused import: `JsFileSource` by @tidefield in https://github.com/biomejs/biome/pull/9858 * fix(grit): biome native node field names now work by @dyc3 in https://github.com/biomejs/biome/pull/9739 * fix(md-formatter): remove last hard line break by @tidefield in https://github.com/biomejs/biome/pull/9856 * feat(lint): detect tuple widening and inferred unions in noMisleadingReturnType by @minseong0324 in https://github.com/biomejs/biome/pull/9843 * docs: improve useSimplifiedLogicExpression docs by @ematipico in https://github.com/biomejs/biome/pull/9864 * fix(core): update snippet via fix all by @ematipico in https://github.com/biomejs/biome/pull/9863 * feat(js_analyze): implement useQwikLoaderLocation by @Netail in https://github.com/biomejs/biome/pull/9809 * chore: missing rule source by @Netail in https://github.com/biomejs/biome/pull/9871 * chore: unsupported covered by by @Netail in https://github.com/biomejs/biome/pull/9870 * fix(graphql_analyze): also flag duplicate fields within extensions by @Netail in https://github.com/biomejs/biome/pull/9869 * fix(css/formatter): comment placement in lists by @ematipico in https://github.com/biomejs/biome/pull/9261 * fix(core): track of default specifiers by @ematipico in https://github.com/biomejs/biome/pull/9878 * fix(parse/html): fix disabled vue error message by @dyc3 in https://github.com/biomejs/biome/pull/9879 * fix(core): tracking of snippet and render function calls by @ematipico in https://github.com/biomejs/biome/pull/9877 * fix(lint/js): improve diagnostics to better follow rule pillars by @dyc3 in https://github.com/biomejs/biome/pull/9880 * fix(core): tracking of bindings and value references by @ematipico in https://github.com/biomejs/biome/pull/9886 * ci: release by @github-actions[bot] in https://github.com/biomejs/biome/pull/9733 ## New Contributors * @soconnor-seeq made their first contribution in https://github.com/biomejs/biome/pull/9441 * @yogaraptor made their first contribution in https://github.com/biomejs/biome/pull/9773 * @myx0m0p made their first contribution in https://github.com/biomejs/biome/pull/9760 * @elliotcourant made their first contribution in https://github.com/biomejs/biome/pull/9812 * @minseong0324 made their first contribution in https://github.com/biomejs/biome/pull/9799 **Full Changelog**: https://github.com/biomejs/biome/compare/@biomejs/[email protected]...@biomejs/[email protected]