#10815 86613d5 Thanks @WaterWhisperer! - Fixed a parser panic reported in #10708: Biome now recovers when unsupported CSS Modules @value rules or scoped @keyframes names end at EOF.
#10534 da9b403 Thanks @Mokto! - Fixed noUnusedVariables 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 098ba41 Thanks @Aqu1bp! - Fixed #10698: The noUnsafeOptionalChaining rule now reports unsafe optional chains wrapped in TypeScript as, satisfies, type assertion, and instantiation expressions, such as new (value?.constructor as Constructor)().
#10773 3c6513d Thanks @otkrickey! - Fixed #10772: useVueValidVOn no longer reports a missing handler for v-on directives using a verb modifier (.stop / .prevent) without an expression, e.g. <div @click.stop>
. The rule also accepts the arg-less object syntax instead of reporting a missing event name.
#10721 d83c66b Thanks @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 handlers0 more accurately.
#10865 6450276 Thanks @ematipico! - Fixed #10845. Biome Language Server no longer goes in deadlock when the scanner is enabled.
#10853 93d8e53 Thanks @Netail! - Fixed #10840: Astro shorthand attribute syntax is now correctly being parsed from embedded nodes.
#10820 bba3092 Thanks @JamBalaya56562! - Fixed #10619: noProcessEnv 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 3447b2f Thanks @dyc3! - Fixed #10824: useDomQuerySelector now supports an ignore option for receiver identifiers that should not be reported.
#10875 b12e486 Thanks @dyc3! - Fixed #10795: --profile-rules now reports timings for each plugin separately as plugin/, matching the naming used by plugin suppressions, instead of aggregating all plugins under a single plugin/plugin entry.
#10877 d6bc447 Thanks @ematipico! - Fixed biome-zed#164: Biome no longer inserts stray whitespace when format-on-type runs after closing delimiters such as ), ], and }.
#10867 a21463e Thanks @dyc3! - Fixed #10864: Biome no longer crashes when checking or linting HTML files with unquoted attribute values such as .
What's Changed
fix(useVueValidVOn): allow verb-modifier-only handlers and object syntax by @otkrickey in #10773
fix(css_parser): recover CSS Modules syntax at EOF by @WaterWhisperer in #10815
feat(fmt/yaml): sequence mapping by @ematipico in #10814
fix(lint): handle TypeScript wrappers in unsafe optional chains by @Aqu1bp in #10827
fix(lint): report computed member access in noProcessEnv by @JamBalaya56562 in #10820
ci: ignore quick-xml RustSec advisories by @JamBalaya56562 in #10831
perf(core): embedded ranges plumbing by @ematipico in #10836
feat(md/fmt): more compatibility gains by @ematipico in #10833
chore(xtask): migrate Error global type by @minseong0324 in #10721
fix(lint): suppress false positives in noUnusedVariables for Svelte store subscriptions and $bindable() props by @Mokto in #10534
refactor(md/parse): reduce emitted nodes by @ematipico in #10847
feat(md/fmt): quotes, thematic breaks and link definition by @ematipico in #10844
refactor(md/parse): parse HTML into one single node by @ematipico in #10848
docs(noMissingVarFunction): list container-name in ignored properties by @dfedoryshchev in #10852
refactor(md/parse): fold code content lines and indentation runs by @ematipico in #10851
fix: astro shorthand syntax embedded nodes by @Netail in #10853
chore(xtask): migrate disposable global types by @minseong0324 in #10841
test(cli): anchor temp-dir snapshot redaction to path boundaries by @JamBalaya56562 in #10832
chore(deps): update github-actions by @renovate[bot] in #10856
chore(deps): update pnpm to v11.9.0 by @renovate[bot] in #10860
ci: ignore Bot PRs in AgentScan workflow by @siketyan in #10862
fix(workspace): deadlock on salsa setters by @ematipico in #10865
ci: update macos runner by @ematipico in #10866
feat(useDomQuerySelector): add ignore option by @dyc3 in #10835
fix(css_parser): gate SCSS syntax in CSS by @denbezrukov in #10456
fix(html): fix inner_string_text for unquoted attribute values by @dyc3 in #10867
chore(deps): update rust to v1.96.1 by @renovate[bot] in #10859
ci: update crossbeam-epoch to fix advisory by @ematipico in #10874
feat(md/fmt): bullet list spacing by @ematipico in #10854
docs(useSortedClasses): remove outdated notes about unsupported features by @johncarmack1984 in #10872
feat(plugins): show plugin names in --profile-rules output by @dyc3 in #10875
chore(markdown): update prettier and test fixtures for markdown by @tidefield in #10882
fix(lsp): guard format on type using the right characters by @ematipico in #10877