Biome @biomejs/[email protected]stable Released Oct 13, 2025
Impact Score: 5/10

Biome CLI v2.2.6

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 `useQwikMethodUsage` lint rule for the Qwik domain.

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.

โœจ New Features & Capabilities (6)

  • Added the `useQwikValidLexicalScope` rule to the Qwik domain.
  • Added the rule `useDeprecatedDate`, which makes a deprecation date required for the graphql `@deprecated` directive.
  • chore: add .zed to gitignore
  • docs: add Polish translation of Biome README
  • feat(qwik): add useQwikMethodUsage & useQwikValidLexicalScope
  • feat(biome_graphql_analyze): implement `useDeprecatedDate`

๐Ÿ”ง Bug Fixes & Patches (6)

  • Added the `useQwikMethodUsage` lint rule for the Qwik domain.
  • Fixed #6981: The NoUnknownPseudoClass rule no longer reports local pseudo-classes when CSS Modules are used.
  • Fixed #7638: `useImportExtensions` no longer emits diagnostics on valid import paths that end with a query or hash.
  • Fixed #7704: The `useExhaustiveDependencies` rule now correctly adds an object dependency when its method is called within the closure.
  • Fixed #7595: `noUselessEscapeInString` no longer reports `$\{` escape in template literals.
  • Fixed #7619: Added support for parsing the CSS `:state()` pseudo-class.
๐Ÿ“„ View Raw Release Notes (Original Developer Log)
## 2.2.6 ### Patch Changes - [#7071](https://github.com/biomejs/biome/pull/7071) [`a8e7301`](https://github.com/biomejs/biome/commit/a8e73018a8c9e34a182624a91389e19d1fa7817f) Thanks [@ptkagori](https://github.com/ptkagori)! - Added the [`useQwikMethodUsage`](https://biomejs.dev/linter/rules/use-qwik-method-usage) lint rule for the Qwik domain. This rule validates Qwik hook usage. Identifiers matching `useXxx` must be called only within serialisable reactive contexts (for example, inside `component$`, route loaders/actions, or within other Qwik hooks), preventing common Qwik antipatterns. **Invalid:** ```js // Top-level hook call is invalid. const state = useStore({ count: 0 }); function helper() { // Calling a hook in a non-reactive function is invalid. const loc = useLocation(); } ``` **Valid:** ```js component$(() => { const state = useStore({ count: 0 }); // OK inside component$. return <div>{state.count}</div>; }); const handler = $(() => { const loc = useLocation(); // OK inside a $-wrapped closure. console.log(loc.params); }); ``` - [#7685](https://github.com/biomejs/biome/pull/7685) [`52071f5`](https://github.com/biomejs/biome/commit/52071f54bc1a3c5d1d2ee6039c5feead836638ed) Thanks [@denbezrukov](https://github.com/denbezrukov)! - Fixed [#6981](https://github.com/biomejs/biome/issues/6981): The [NoUnknownPseudoClass](https://biomejs.dev/linter/rules/no-unknown-pseudo-class/) rule no longer reports local pseudo-classes when CSS Modules are used. - [#7640](https://github.com/biomejs/biome/pull/7640) [`899f7b2`](https://github.com/biomejs/biome/commit/899f7b28ec9cc457d02565d69212e7c29b5b5aff) Thanks [@arendjr](https://github.com/arendjr)! - Fixed [#7638](https://github.com/biomejs/biome/issues/7638): [`useImportExtensions`](https://biomejs.dev/linter/rules/use-import-extensions/) no longer emits diagnostics on valid import paths that end with a query or hash. #### Example ```js // This no longer warns if `index.css` exists: import style from "../theme/index.css?inline"; ``` - [#7071](https://github.com/biomejs/biome/pull/7071) [`a8e7301`](https://github.com/biomejs/biome/commit/a8e73018a8c9e34a182624a91389e19d1fa7817f) Thanks [@ptkagori](https://github.com/ptkagori)! - Added the [`useQwikValidLexicalScope`](https://biomejs.dev/linter/rules/use-qwik-valid-lexical-scope) rule to the Qwik domain. This rule helps you avoid common bugs in Qwik components by checking that your variables and functions are declared in the correct place. **Invalid:** ```js // Invalid: state defined outside the component's lexical scope. let state = useStore({ count: 0 }); const Component = component$(() => { return ( <button onClick$={() => state.count++}>Invalid: {state.count}</button> ); }); ``` **Valid:** ```js // Valid: state initialised within the component's lexical scope and captured by the event. const Component = component$(() => { const state = useStore({ count: 0 }); return <button onClick$={() => state.count++}>Valid: {state.count}</button>; }); ``` - [#7620](https://github.com/biomejs/biome/pull/7620) [`5beb1ee`](https://github.com/biomejs/biome/commit/5beb1eefe134f4dc713cfb28bfa1cbae38319975) Thanks [@Netail](https://github.com/Netail)! - Added the rule [`useDeprecatedDate`](https://biomejs.dev/linter/rules/use-deprecated-date/), which makes a deprecation date required for the graphql `@deprecated` directive. ##### Invalid ```graphql query { member @deprecated(reason: "Use `members` instead") { id } } ``` ##### Valid ```graphql query { member @deprecated(reason: "Use `members` instead", deletionDate: "2099-12-25") { id } } ``` - [#7709](https://github.com/biomejs/biome/pull/7709) [`d6da4d5`](https://github.com/biomejs/biome/commit/d6da4d5a272d61420997e26aef80f53298515665) Thanks [@siketyan](https://github.com/siketyan)! - Fixed [#7704](https://github.com/biomejs/biome/issues/7704): The [`useExhaustiveDependencies`](https://biomejs.dev/linter/rules/use-exhaustive-dependencies/) rule now correctly adds an object dependency when its method is called within the closure. For example: ```js function Component(props) { useEffect(() => { props.foo(); }, []); } ``` will now be fixed to: ```js function Component(props) { useEffect(() => { props.foo(); }, [props]); } ``` - [#7624](https://github.com/biomejs/biome/pull/7624) [`309ae41`](https://github.com/biomejs/biome/commit/309ae41c1a29e50d71300d3e63f6c64ee6ecb968) Thanks [@lucasweng](https://github.com/lucasweng)! - Fixed [#7595](https://github.com/biomejs/biome/issues/7595): [`noUselessEscapeInString`](https://biomejs.dev/linter/rules/no-useless-escape-in-string/) no longer reports `$\{` escape in template literals. - [#7665](https://github.com/biomejs/biome/pull/7665) [`29e4229`](https://github.com/biomejs/biome/commit/29e422939f25595dca4f19735a27258d97545288) Thanks [@ryan-m-walker](https://github.com/ryan-m-walker)! - Fixed [#7619](https://github.com/biomejs/biome/issues/7619): Added support for parsing the CSS `:state()` pseudo-class. ```css custom-selector:state(checked) { } ``` - [#7608](https://github.com/biomejs/biome/pull/7608) [`41df59b`](https://github.com/biomejs/biome/commit/41df59bfc6d49190b9c35fa262def3ecfcc6abd2) Thanks [@ritoban23](https://github.com/ritoban23)! - Fixed [#7604](https://github.com/biomejs/biome/issues/7604): the `useMaxParams` rule now highlights parameter lists instead of entire function bodies. This provides more precise error highlighting. Previously, the entire function was highlighted; now only the parameter list is highlighted, such as `(a, b, c, d, e, f, g, h)`. - [#7643](https://github.com/biomejs/biome/pull/7643) [`459a6ac`](https://github.com/biomejs/biome/commit/459a6aca67290e8b974802bd693738f79883d67e) Thanks [@daivinhtran](https://github.com/daivinhtran)! - Fixed [#7580](https://github.com/biomejs/biome/issues/7580): Include plugin in summary report ## What's Changed * chore: add .zed to gitignore by @daivinhtran in https://github.com/biomejs/biome/pull/7634 * fix(lint/noUselessEscapeInString): avoid false positive for $\{ escape in template literals by @lucasweng in https://github.com/biomejs/biome/pull/7624 * fix(lint): only highlight function names in useMaxParams rule by @ritoban23 in https://github.com/biomejs/biome/pull/7608 * docs: add Polish translation of Biome README by @SzymCode in https://github.com/biomejs/biome/pull/7630 * fix(linter): `useImportExtensions` handles queries and hashes by @arendjr in https://github.com/biomejs/biome/pull/7640 * ci: breakdown benchmarks by @ematipico in https://github.com/biomejs/biome/pull/7641 * chore: upgrade to rust 1.90.0 by @ematipico in https://github.com/biomejs/biome/pull/7642 * fix(css_parser): add support for parsing :state() (#7619) by @ryan-m-walker in https://github.com/biomejs/biome/pull/7665 * fix(cli): include plugin rule in summary report by @daivinhtran in https://github.com/biomejs/biome/pull/7643 * feat(qwik): add useQwikMethodUsage & useQwikValidLexicalScope by @ptkagori in https://github.com/biomejs/biome/pull/7071 * fix: replace domains polyfill.io to Cloudflare by @You-saku in https://github.com/biomejs/biome/pull/7678 * feat(biome_graphql_analyze): implement `useDeprecatedDate` by @Netail in https://github.com/biomejs/biome/pull/7620 * chore(deps): update dependency @types/node to v22.18.8 by @renovate[bot] in https://github.com/biomejs/biome/pull/7686 * chore(deps): update github-actions by @renovate[bot] in https://github.com/biomejs/biome/pull/7687 * chore(deps): update rust crate regex to 1.11.3 by @renovate[bot] in https://github.com/biomejs/biome/pull/7689 * chore(deps): update rust crate quote to 1.0.41 by @renovate[bot] in https://github.com/biomejs/biome/pull/7688 * chore(deps): update dependency eslint to v9.37.0 by @renovate[bot] in https://github.com/biomejs/biome/pull/7691 * chore(deps): update rust crate serde to 1.0.228 by @renovate[bot] in https://github.com/biomejs/biome/pull/7690 * fix(css_analyze): handle CSS Modules pseudo-class 'local' in NoUnknownPseudoClass rule (#6981) by @denbezrukov in https://github.com/biomejs/biome/pull/7685 * chore(deps): update pnpm to v10.18.0 by @renovate[bot] in https://github.com/biomejs/biome/pull/7693 * chore(deps): update taiki-e/install-action action to v2.62.21 by @renovate[bot] in https://github.com/biomejs/biome/pull/7692 * chore(deps): update rust crate camino to 1.2.1 by @renovate[bot] in https://github.com/biomejs/biome/pull/7694 * fix(deps): update rust crates by @renovate[bot] in https://github.com/biomejs/biome/pull/7562 * fix(lint/useExhaustiveDependencies): correct fix for method calls by @siketyan in https://github.com/biomejs/biome/pull/7709 * chore(deps): update dependency @types/node to v22.18.10 by @renovate[bot] in https://github.com/biomejs/biome/pull/7738 * chore(deps): update rust crate libc to 0.2.177 by @renovate[bot] in https://github.com/biomejs/biome/pull/7740 * chore(deps): update rust crate ureq to 3.1.2 - autoclosed by @renovate[bot] in https://github.com/biomejs/biome/pull/7741 * ci: release by @github-actions[bot] in https://github.com/biomejs/biome/pull/7637 * chore(deps): update github-actions by @renovate[bot] in https://github.com/biomejs/biome/pull/7736 ## New Contributors * @ritoban23 made their first contribution in https://github.com/biomejs/biome/pull/7608 * @SzymCode made their first contribution in https://github.com/biomejs/biome/pull/7630 * @You-saku made their first contribution in https://github.com/biomejs/biome/pull/7678 **Full Changelog**: https://github.com/biomejs/biome/compare/@biomejs/[email protected]...@biomejs/[email protected]