Access Biome changelog updates through our uniform API. Same JSON structure across all sources — no adapter-specific parsing needed.
GET https://watchchangelog.com/api/v1/entries?source=biome.releases{
"source": "biome.releases",
"vendor": "Biome",
"id": "tag:github.com,2008:Repository/671654508/@biomejs/biome@2.5.10",
"published_at": "2026-08-21T17:40:37.000Z",
"title": "Biome CLI v2.5.10",
"url": "https://github.com/biomejs/biome/releases/tag/%40biomejs%2Fbiome%402.5.10",
"summary": "2.5.10 Patch Changes #11403 8f7786f Thanks @Princesseuh ! - Fixed Astro rejecting JavaScript comments between attributes. < div /* block comment */ class = \" something \" ></ div > < Component /* c */ client:load /> #11403 8f7786f Thanks @Princesseuh ! - Fixed a bare < in Astro text being treated as the start of a tag, such as <p>5 < 6 and 7 > 6</p> . As in HTML, a < that cannot open a tag is text and needs no escaping. #11438 3133ffa Thanks @Princesseuh ! - Fixed #8294 : an Astro expression holding only a comment is no longer reported as a parse error, which also stopped the whole file from being formatted. < div > { /* a note */ } </ div > < div class = { /* a note */ } >x</ div > #11403 8f7786f Thanks @Princesseuh ! - Fixed #9165 : an empty Astro expression such as <div>{}</div> no longer fails to parse. Astro renders {} as nothing. #11403 8f7786f Thanks @Princesseuh ! - Fixed Astro expressions containing a comment failing to parse. < div > { /* block comment */ x } </ div > < div > { /* only a comment */ } </ div > #11403 8f7786f Thanks @Princesseuh ! - Added support for Astro's fragment shorthand. <> < p >a</ p > </> #11403 8f7786f Thanks @Princesseuh ! - Fixed an Astro frontmatter block being cut short by a closing tag inside a string or comment. --- const a = \" </script> \" ; // </script> in a comment --- #11403 8f7786f Thanks @Princesseuh ! - Fixed --- being read as an Astro frontmatter fence when markup precedes it. Astro only recognizes frontmatter at the very start of a file, so a file opening with a comment now has no frontmatter, and its --- lines are content. <!-- c --> --- this is text, not frontmatter --- #11403 8f7786f Thanks @Princesseuh ! - Fixed an Astro frontmatter block ending early on a line that merely starts with a dash. --- -- count ; --- #11403 8f7786f Thanks @Princesseuh ! - Fixed the children of an Astro element carrying is:raw being parsed as markup instead of raw text. This now also covers <script> and <style> , whose contents Astro emits verbatim rather than processing, so they are no longer linted as JavaScript or CSS. < article is:raw ><% awesome %> </ article > < script is:raw >{{ mustache }} </ script > #11403 8f7786f Thanks @Princesseuh ! - Fixed Astro rejecting attribute names that start with a colon, such as :href . #11403 8f7786f Thanks @Princesseuh ! - Fixed the Astro parser failing to recover from a malformed closing tag such as <div></{<// , so that a later mistake is reported where it happens rather than cascading. #11403 8f7786f Thanks @Princesseuh ! - Fixed { inside an Astro <math> element opening an expression. MathML is foreign content where Astro parses no expressions, so LaTeX such as R^{2x} now survives as text. <svg> is unaffected. #11403 8f7786f Thanks @Princesseuh ! - Fixed {{ at the start of an Astro expression being read as an interpolation. Astro has no {{ }} syntax, so {{ a: 1 }} and <Comp a={{ b: 1 }} /> are object literals. #11403 8f7786f Thanks @Princesseuh ! - Fixed expressions inside an Astro <pre> or <textarea> being read as raw text. Astro parses both as ordinary elements, so their markup and interpolations are now parsed, and a variable used only inside one is no longer reported as unused. < pre > { value } </ pre > < textarea >< div > { value } </ div ></ textarea > #11403 8f7786f Thanks @Princesseuh ! - Added support for template literal attribute values in Astro, such as <div class=`a ${b} c`> . #11403 8f7786f Thanks @Princesseuh ! - Fixed Astro rejecting HTML5 unquoted attribute values that contain ` , = , ' or \" , such as <a href=a=b> and <a href=a'b> . #11393 dec5a8f Thanks @1678092075 ! - Fixed #11207 : useStrictMode no longer reports Vue event handlers such as @click=\"count++\" . #11431 c065f99 Thanks @levrik ! - Fixed #11429 : Variables and imports used by Vue same-name bindings such as :disabled or v-bind:disabled are no longer reported as unused. #11409 405dedb Thanks @ematipico ! - Fixed a memory leak in the LSP server where memory usage kept growing over long editor sessions. #11422 a51eff7 Thanks @dyc3 ! - Fixed #11416 : Biome no longer crashes when parsing incomplete {let} or {const} declarations in Svelte files. #11378 34b715c Thanks @Netail ! - Added extra rule sources from @eslint/css . biome migrate eslint detects rules in your eslint configurations more reliably. #11403 8f7786f Thanks @Princesseuh ! - Fixed {# , {/ , {: and {@ being read as Svelte block openings in every HTML-like file. They are now Svelte-only, so in HTML, Vue and Angular files a sequence such as {#if x} is ordinary text instead of a parse error. #11443 8d45229 Thanks @ematipico ! - Fixed #11390 : noFloatingPromises no longer performs unnecessary type inference on call arguments when checking methods of non-generic class instances created with new . #11425 9c2667b Thanks @dyc3 ! - Fixed #6426 : GritQL plugins now match and rewrite metavariables embedded in quoted strings. #11441 00317c3 Thanks @dyc3 ! - Improved performance of useNamedCaptureGroup , noMisplacedAssertion , noSkippedTests , noExportsInTest , noDuplicateTestHooks , noIdenticalTestTitle , useTestHooksInOrder , and useTestHooksOnTop . What's Changed refactor(analyze): avoid boxed rule state strings by @dyc3 in #11385 ci: fix advistories by @ematipico in #11391 chore: update spin to resolve yanked package warning by @dyc3 in #11392 fix(useStrictMode): ignore Vue event handlers by @1678092075 in #11393 refactor(core): settings as tracked functions by @ematipico in #11363 feat(md): frontmatter parsing support by @ematipico in #11395 chore: add CodSpeed and Cloudflare to sponsors by @ematipico in #11410 chore: missing rule sources by @Netail in #11378 chore: replace cargo-audit with cargo-deny by @Netail in #11413 feat(js_plugin): runtime AST bindings for JS plugins by @siketyan in #10954 chore: split just test-lintrule by @Netail in #11414 feat(js_plugin): query AST nodes by their kind by @siketyan in #11415 fix(core): files eviction and project by @ematipico in #11409 fix(parse/js): handle incomplete declarations more gracefully by @dyc3 in #11422 fix(grit): handle metavariables inside quoted strings by @dyc3 in #11425 chore(wasm): enable JS plugins via unstable feature by @siketyan in #11421 feat(js_transform): erase type annotations in TypeScript code by @siketyan in #11417 fix(html/parser): correct Astro document parsing by @Princesseuh in #11403 fix(visitor): register references from Vue same-name bindings by @levrik in #11431 refactor(deserialize): type-erased visitor for reduce binary size by @siketyan in #11428 fix(js_plugin): use web-time clock on Boa engine by @siketyan in #11434 fix(tools): conformance checkout by @ematipico in #11444 fix(js/parser): accept comment-only Astro template expressions by @Princesseuh in #11438 fix(inference): use local inference for constructor dependent members by @ematipico in #11443 perf(lint/js): optimize some rule queries and unit test call shared logic by @dyc3 in #11441 fix(parse/js): handle incomplete svelte declarations even more by @dyc3 in #11448 ci: release by @github-actions[bot] in #11450 New Contributors @1678092075 made their first contribution in #11393 @levrik made their first contribution in #11431 Full Changelog : https://github.com/biomejs/biome/compare/@biomejs/biome@2.5.9...@biomejs/biome@2.5.10",
"tags": [
"Biome",
"biome.releases",
"linter",
"formatter",
"rust"
]
}Sign up to access the full changelog API. All public sources are free — no credit card required.
Sign Up Free →+2 more
+2 more
+2 more
+2 more
+2 more
+2 more