@biomejs/biome@2.5.3
langgenius/dify@biomejs/biome@2.5.3Jul 8, 2026by github-actions[bot]
AI Summary
A patch release fixing parser panics, linter false positives in Svelte files, and performance issues in the Language Server.
Key Highlights
- Fixed parser panic for CSS Modules @value rules at EOF
- Fixed false positives in noUnusedVariables for Svelte store subscriptions
- Fixed noUnsafeOptionalChaining rule for TypeScript wrappers
- Fixed Language Server deadlock when scanner is enabled
New Features
- Improved type-aware lint rule inference for globals
- Support for Astro shorthand attribute syntax
- Fixed noProcessEnv to report computed member access
Full Release Notes
## 2.5.3 ### Patch Changes - [#10815](https://github.com/biomejs/biome/pull/10815) [`86613d5`](https://github.com/biomejs/biome/commit/86613d5b01eb965b460ccefbf27f168d87774aaf) Thanks [@WaterWhisperer](https://github.com/WaterWhisperer)! - Fixed a parser panic reported in [#10708](https://github.com/biomejs/biome/issues/10708): Biome now recovers when unsupported CSS Modules `@value` rules or scoped `@keyframes` names end at EOF. - [#10534](https://github.com/biomejs/biome/pull/10534) [`da9b403`](https://github.com/biomejs/biome/commit/da9b403b6bbacc8d75d56e327a46f4ed0285913e) Thanks [@Mokto](https://github.com/Mokto)! - Fixed [`noUnusedVariables`](https://biomejs.dev/linter/rules/no-unused-variables/) false positives in Svelte files: Svelte store subscriptions (`$store` references in templates now keep the underlying `store` binding from being flagged), and `$bindable()` props that are only written to in the script block (write-only is intentional for bindable props) are no longer reported as unused. - [#10827](https://github.com/biomejs/biome/pull/10827) [`098ba41`](https://github.com/biomejs/biome/commit/098ba41c99e6efaac8eb182eec258a567bb00123) Thanks [@Aqu1bp](https://github.com/Aqu1bp)! - Fixed [#10698](https://github.com/biomejs/biome/issues/10698): The [`noUnsafeOptionalChaining`](https://biomejs.dev/linter/rules/no-unsafe-optional-chaining/) rule now reports unsafe optional chains wrapped in TypeScript `as`, `satisfies`, type assertion, and instantiation expressions, such as `new (value?.constructor as Constructor)()`. - [#10773](https://github.com/biomejs/biome/pull/10773) [`3c6513d`](https://github.com/biomejs/biome/commit/3c6513d4e9a82a195785144caa9d96093c3861ff) Thanks [@otkrickey](https://github.com/otkrickey)! - Fixed [#10772](https://github.com/biomejs/biome/issues/10772): [`useVueValidVOn`](https://biomejs.dev/linter/rules/use-vue-valid-v-on/) no longer reports a missing handler for v-on directives using a verb modifier (`.stop` / `.prevent`) without an expression, e.g. `<div @click.stop></div>`. The rule also accepts the arg-less object syntax `<div v-on="$listeners"></div>` instead of reporting a missing event name. - [#10721](https://github.com/biomejs/biome/pull/10721) [`d83c66b`](https://github.com/biomejs/biome/commit/d83c66b39a820703d94100f8a6502cc6dbad26a1) Thanks [@minseong0324](https://github.com/minseong0324)! - Improved type-aware lint rule inference for built-in globals and indexed function calls. Biome now resolves `Error(...)`, `new Error(...)`, optional `Error#stack`, and calls through indexed function values such as `handlers[0]()` more accurately. - [#10865](https://github.com/biomejs/biome/pull/10865) [`6450276`](https://github.com/biomejs/biome/commit/6450276764ee4794a0fcb46c139f95b68d892427) Thanks [@ematipico](https://github.com/ematipico)! - Fixed [#10845](https://github.com/biomejs/biome/issues/10845). Biome Language Server no longer goes in deadlock when the scanner is enabled. - [#10853](https://github.com/biomejs/biome/pull/10853) [`93d8e53`](https://github.com/biomejs/biome/commit/93d8e5352454bccfbd179db03b3155776599c52c) Thanks [@Netail](https://github.com/Netail)! - Fixed [#10840](https://github.com/biomejs/biome/issues/10840): Astro shorthand attribute syntax is now correctly being parsed from embedded nodes. - [#10820](https://github.com/biomejs/biome/pull/10820) [`bba3092`](https://github.com/biomejs/biome/commit/bba30920715920142e933939f6270feedca933a5) Thanks [@JamBalaya56562](https://github.com/JamBalaya56562)! - Fixed [#10619](https://github.com/biomejs/biome/issues/10619): [`noProcessEnv`](https://biomejs.dev/linter/rules/no-process-env/) now also reports computed (bracket) member access. Previously only dot access was checked, so `process["env"]` and `env["NODE_ENV"]` (where `env` is imported from `node:process`) were missed. Both static and computed accesses are now reported. - [#10835](https://github.com/biomejs/biome/pull/10835) [`3447b2f`](https://github.com/biomejs/biome/commit/3447b2f5a3c430efc8e917514260af5341c5509d) Thanks [@dyc3](https://github.com/dyc3)! - Fixed [#10824](https://github.com/biomejs/biome/issues/10824): [`useDomQuerySelector`](https://biomejs.dev/linter/rules/use-dom-query-selector/) now supports an `ignore` option for receiver identifiers that should not be reported. - [#10875](https://github.com/biomejs/biome/pull/10875) [`b12e486`](https://github.com/biomejs/biome/commit/b12e486d0f0b80d02d2208e239190f8756d39d48) Thanks [@dyc3](https://github.com/dyc3)! - Fixed [#10795](https://github.com/biomejs/biome/issues/10795): `--profile-rules` now reports timings for each plugin separately as `plugin/<pluginName>`, matching the naming used by plugin suppressions, instead of aggregating all plugins under a single `plugin/plugin` entry. - [#10877](https://github.com/biomejs/biome/pull/10877) [`d6bc447`](https://github.com/biomejs/biome/commit/d6bc4473a210758ee49f6cad41bc69587a7cf125) Thanks [@ematipico](https://github.com/ematipico)! - Fixed [biome-zed#164](https://github.com/biomejs/biome-zed/issues/164): Biome no longer inserts stray whitespace when format-on-type runs after closing delimiters such as `)`, `]`, and `}`. - [#10867](https://github.com/biomejs/biome/pull/10867) [`a21463e`](https://github.com/biomejs/biome/commit/a21463e5f616a2db5035b470cd206ac9da4d9423) Thanks [@dyc3](https://github.com/dyc3)! - Fixed [#10864](https://github.com/biomejs/biome/issues/10864): Biome no longer crashes when checking or linting HTML files with unquoted attribute values such as `<textarea rows=4></textarea>`. ## What's Changed * fix(useVueValidVOn): allow verb-modifier-only handlers and object syntax by @otkrickey in https://github.com/biomejs/biome/pull/10773 * fix(css_parser): recover CSS Modules syntax at EOF by @WaterWhisperer in https://github.com/biomejs/biome/pull/10815 * feat(fmt/yaml): sequence mapping by @ematipico in https://github.com/biomejs/biome/pull/10814 * fix(lint): handle TypeScript wrappers in unsafe optional chains by @Aqu1bp in https://github.com/biomejs/biome/pull/10827 * fix(lint): report computed member access in noProcessEnv by @JamBalaya56562 in https://github.com/biomejs/biome/pull/10820 * ci: ignore quick-xml RustSec advisories by @JamBalaya56562 in https://github.com/biomejs/biome/pull/10831 * perf(core): embedded ranges plumbing by @ematipico in https://github.com/biomejs/biome/pull/10836 * feat(md/fmt): more compatibility gains by @ematipico in https://github.com/biomejs/biome/pull/10833 * chore(xtask): migrate Error global type by @minseong0324 in https://github.com/biomejs/biome/pull/10721 * fix(lint): suppress false positives in noUnusedVariables for Svelte store subscriptions and $bindable() props by @Mokto in https://github.com/biomejs/biome/pull/10534 * refactor(md/parse): reduce emitted nodes by @ematipico in https://github.com/biomejs/biome/pull/10847 * feat(md/fmt): quotes, thematic breaks and link definition by @ematipico in https://github.com/biomejs/biome/pull/10844 * refactor(md/parse): parse HTML into one single node by @ematipico in https://github.com/biomejs/biome/pull/10848 * docs(noMissingVarFunction): list container-name in ignored properties by @dfedoryshchev in https://github.com/biomejs/biome/pull/10852 * refactor(md/parse): fold code content lines and indentation runs by @ematipico in https://github.com/biomejs/biome/pull/10851 * fix: astro shorthand syntax embedded nodes by @Netail in https://github.com/biomejs/biome/pull/10853 * chore(xtask): migrate disposable global types by @minseong0324 in https://github.com/biomejs/biome/pull/10841 * test(cli): anchor temp-dir snapshot redaction to path boundaries by @JamBalaya56562 in https://github.com/biomejs/biome/pull/10832 * chore(deps): update github-actions by @renovate[bot] in https://github.com/biomejs/biome/pull/10856 * chore(deps): update pnpm to v11.9.0 by @renovate[bot] in https://github.com/biomejs/biome/pull/10860 * ci: ignore Bot PRs in AgentScan workflow by @siketyan in https://github.com/biomejs/biome/pull/10862 * fix(workspace): deadlock on salsa setters by @ematipico in https://github.com/biomejs/biome/pull/10865 * ci: update macos runner by @ematipico in https://github.com/biomejs/biome/pull/10866 * feat(useDomQuerySelector): add ignore option by @dyc3 in https://github.com/biomejs/biome/pull/10835 * fix(css_parser): gate SCSS syntax in CSS by @denbezrukov in https://github.com/biomejs/biome/pull/10456 * fix(html): fix inner_string_text for unquoted attribute values by @dyc3 in https://github.com/biomejs/biome/pull/10867 * chore(deps): update rust to v1.96.1 by @renovate[bot] in https://github.com/biomejs/biome/pull/10859 * ci: update crossbeam-epoch to fix advisory by @ematipico in https://github.com/biomejs/biome/pull/10874 * feat(md/fmt): bullet list spacing by @ematipico in https://github.com/biomejs/biome/pull/10854 * docs(useSortedClasses): remove outdated notes about unsupported features by @johncarmack1984 in https://github.com/biomejs/biome/pull/10872 * feat(plugins): show plugin names in --profile-rules output by @dyc3 in https://github.com/biomejs/biome/pull/10875 * chore(markdown): update prettier and test fixtures for markdown by @tidefield in https://github.com/biomejs/biome/pull/10882 * fix(lsp): guard format on type using the right characters by @ematipico in https://github.com/biomejs/biome/pull/10877 * ci: release by @github-actions[bot] in https://github.com/biomejs/biome/pull/10817 ## New Contributors * @johncarmack1984 made their first contribution in https://github.com/biomejs/biome/pull/10872 **Full Changelog**: https://github.com/biomejs/biome/compare/@biomejs/biome@2.5.2...@biomejs/biome@2.5.3