GitHub Releaseshttps://github.com/2026-08-04T14:36:16Ztag:github.com,2008:Repository/1305551246/v1.82026-08-04T14:36:16Zgander: Gander 1.8<p>Small fix release.</p>
<p><strong>Short documents no longer show a grey band below the content.</strong> The shared stylesheet set a background on both <code>html</code> and <code>body</code>, and each viewer only overrode <code>body</code>. Since <code>body</code> is only as tall as its content, anything shorter than the screen left the grey showing underneath. Most obvious in dark mode on Markdown and text files, where the document is dark and the band is light.</p>
<p>Fixed in the Markdown, text, spreadsheet and slide viewers. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5057288333" data-permission-text="Title is private" data-url="https://github.com/mokshablr/gander/issues/7" data-hovercard-type="issue" data-hovercard-url="/mokshablr/gander/issues/7/hovercard" href="https://github.com/mokshablr/gander/issues/7">#7</a>, thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/lalalasupa0/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/lalalasupa0">@lalalasupa0</a>)</p>
<h3>Install</h3>
<p><code>Gander-1.8-arm64.apk</code> fits practically every phone from 2017 onward. Use the universal build for very old or x86 devices.</p>
<p>Verify before installing if you like. Signing certificate SHA-256:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="5B:5C:F6:4A:94:23:7C:D5:F0:E0:85:76:00:38:BC:1C:EB:DF:18:DA:BA:5C:B3:EA:CA:7C:15:9F:22:A7:E2:4B"><pre class="notranslate"><code>5B:5C:F6:4A:94:23:7C:D5:F0:E0:85:76:00:38:BC:1C:EB:DF:18:DA:BA:5C:B3:EA:CA:7C:15:9F:22:A7:E2:4B
</code></pre></div>mokshablrtag:github.com,2008:Repository/53631945/ignore-0.4.332026-08-04T14:00:08Zripgrep: ignore-0.4.33<p>ignore-0.4.33</p>BurntSushitag:github.com,2008:Repository/53631945/globset-0.4.202026-08-04T13:59:57Zripgrep: globset-0.4.20<p>globset-0.4.20</p>BurntSushitag:github.com,2008:Repository/671654508/@biomejs/biome@2.5.72026-08-04T13:24:41Zbiome: Biome CLI v2.5.7
<h2>2.5.7</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a href="https://github.com/biomejs/biome/pull/10822" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/10822/hovercard">#10822</a> <a href="https://github.com/biomejs/biome/commit/c171b3bd513d49c35b66cdc74a5de0ca0766b6ef"><code>c171b3b</code></a> Thanks <a href="https://github.com/pkallos">@pkallos</a>! - Added the option <code>ignoreIfStatements</code> to <a href="https://biomejs.dev/linter/rules/use-nullish-coalescing/" rel="nofollow">useNullishCoalescing</a>. Biome now flags <code>if</code> statements that only assign to a nullish variable (such as <code>if (!a) { a = b }</code>) and can rewrite them to <code>??=</code>. When enabled, Biome ignores those <code>if</code> statements.</p>
</li>
<li>
<p><a href="https://github.com/biomejs/biome/pull/11136" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11136/hovercard">#11136</a> <a href="https://github.com/biomejs/biome/commit/e63354cf280783fa6380951342bdacc3fd55e681"><code>e63354c</code></a> Thanks <a href="https://github.com/AkashNaickar">@AkashNaickar</a>! - Added a new nursery rule <a href="https://biomejs.dev/linter/rules/no-extend-native/" rel="nofollow"><code>noExtendNative</code></a>, which reports extending the prototype of a built-in object.</p>
</li>
<li>
<p><a href="https://github.com/biomejs/biome/pull/10094" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/10094/hovercard">#10094</a> <a href="https://github.com/biomejs/biome/commit/e00714360807115210e549caca0f235431ca9a8a"><code>e007143</code></a> Thanks <a href="https://github.com/THEjacob1000">@THEjacob1000</a>! - Added the nursery rule <a href="https://biomejs.dev/linter/rules/no-tailwind-arbitrary-value/" rel="nofollow"><code>noTailwindArbitraryValue</code></a>. Biome now reports Tailwind CSS arbitrary values such as <code>w-[400px]</code>, including in HTML/JSX class attributes, configured utility functions, and tagged templates.</p>
</li>
<li>
<p><a href="https://github.com/biomejs/biome/pull/11184" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11184/hovercard">#11184</a> <a href="https://github.com/biomejs/biome/commit/135f476de8b853f9dc2ff2679ea3525432e66e8e"><code>135f476</code></a> Thanks <a href="https://github.com/subotac">@subotac</a>! - Fixed <a href="https://github.com/biomejs/biome/issues/11176" data-hovercard-type="issue" data-hovercard-url="/biomejs/biome/issues/11176/hovercard">#11176</a>: <code>noUnknownPseudoClass</code> now recognizes Vue's <code>:deep()</code> pseudo-class inside <code>.vue</code> style blocks.</p>
</li>
<li>
<p><a href="https://github.com/biomejs/biome/pull/8239" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/8239/hovercard">#8239</a> <a href="https://github.com/biomejs/biome/commit/a519f9d19e56015ec906efac4629fbb15708f5e2"><code>a519f9d</code></a> Thanks <a href="https://github.com/cormacrelf">@cormacrelf</a>! - Fixed <a href="https://github.com/biomejs/biome/issues/8233" data-hovercard-type="issue" data-hovercard-url="/biomejs/biome/issues/8233/hovercard">#8233</a>, where Biome CLI in<br>
stdin mode didn't work correctly when handling files in projects with nested<br>
configurations. For example, with the following structure,<br>
<code>--stdin-file-path=subdirectory/...</code> would not use the nested configuration in<br>
<code>subdirectory/biome.json</code>:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="├── biome.json
└── subdirectory
├── biome.json
└── lib.js"><pre class="notranslate"><code>├── biome.json
└── subdirectory
├── biome.json
└── lib.js
</code></pre></div>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="biome format --write --stdin-file-path=subdirectory/lib.js < subdirectory/lib.js"><pre>biome format --write --stdin-file-path=subdirectory/lib.js <span class="pl-k"><</span> subdirectory/lib.js</pre></div>
<p>Now, the nested configuration is correctly picked up and applied.</p>
<p>In addition, Biome now shows a warning if <code>--stdin-file-path</code> is provided but<br>
that path is ignored and therefore not formatted or fixed.</p>
</li>
<li>
<p><a href="https://github.com/biomejs/biome/pull/11138" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11138/hovercard">#11138</a> <a href="https://github.com/biomejs/biome/commit/8c2c6bd96c035e506bc60b75448afb039e331fb1"><code>8c2c6bd</code></a> Thanks <a href="https://github.com/ematipico">@ematipico</a>! - Fixed <a href="https://biomejs.dev/linter/rules/no-unnecessary-conditions/" rel="nofollow"><code>noUnnecessaryConditions</code></a>: Biome now chooses the same function overload as TypeScript when an argument is a callback, so conditions that were previously missed are reported.</p>
<p>The following code is now invalid, because a parameter typed <code>() => void</code> accepts an <code>async</code> callback and <code>schedule</code> therefore returns <code>string</code>:</p>
<div class="highlight highlight-source-ts notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="declare function schedule(handler: () => void): string;
declare function schedule(handler: () => Promise<void>): string | undefined;
schedule(async () => {}) ?? "fallback";"><pre><span class="pl-k">declare</span> <span class="pl-k">function</span> <span class="pl-s1">schedule</span><span class="pl-kos">(</span><span class="pl-s1">handler</span>: <span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=></span> <span class="pl-smi"><span class="pl-k">void</span></span><span class="pl-kos">)</span>: <span class="pl-smi">string</span><span class="pl-kos">;</span>
<span class="pl-k">declare</span> <span class="pl-k">function</span> <span class="pl-s1">schedule</span><span class="pl-kos">(</span><span class="pl-s1">handler</span>: <span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=></span> <span class="pl-smi">Promise</span><span class="pl-c1"><</span><span class="pl-smi"><span class="pl-k">void</span></span><span class="pl-c1">></span><span class="pl-kos">)</span>: <span class="pl-smi">string</span> <span class="pl-c1">|</span> <span class="pl-c1">undefined</span><span class="pl-kos">;</span>
<span class="pl-en">schedule</span><span class="pl-kos">(</span><span class="pl-k">async</span> <span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=></span> <span class="pl-kos">{</span><span class="pl-kos">}</span><span class="pl-kos">)</span> <span class="pl-c1">??</span> <span class="pl-s">"fallback"</span><span class="pl-kos">;</span></pre></div>
<p>The following code is also now invalid, because <code>map(() => 42)</code> returns <code>42</code>:</p>
<div class="highlight highlight-source-ts notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="type Mapper<T> = () => T;
declare function map<T>(mapper: Mapper<T>): T;
map(() => 42) || flag;"><pre><span class="pl-k">type</span> <span class="pl-smi">Mapper</span><span class="pl-c1"><</span><span class="pl-smi">T</span><span class="pl-c1">></span> <span class="pl-c1">=</span> <span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=></span> <span class="pl-smi">T</span><span class="pl-kos">;</span>
<span class="pl-k">declare</span> <span class="pl-k">function</span> <span class="pl-s1">map</span><span class="pl-c1"><</span><span class="pl-smi">T</span><span class="pl-c1">></span><span class="pl-kos">(</span><span class="pl-s1">mapper</span>: <span class="pl-smi">Mapper</span><span class="pl-c1"><</span><span class="pl-smi">T</span><span class="pl-c1">></span><span class="pl-kos">)</span>: <span class="pl-smi">T</span><span class="pl-kos">;</span>
<span class="pl-en">map</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=></span> <span class="pl-c1">42</span><span class="pl-kos">)</span> <span class="pl-c1">||</span> <span class="pl-s1">flag</span><span class="pl-kos">;</span></pre></div>
</li>
<li>
<p><a href="https://github.com/biomejs/biome/pull/11138" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11138/hovercard">#11138</a> <a href="https://github.com/biomejs/biome/commit/8c2c6bd96c035e506bc60b75448afb039e331fb1"><code>8c2c6bd</code></a> Thanks <a href="https://github.com/ematipico">@ematipico</a>! - Fixed <a href="https://github.com/biomejs/biome/issues/11087" data-hovercard-type="issue" data-hovercard-url="/biomejs/biome/issues/11087/hovercard">#11087</a>: <a href="https://biomejs.dev/linter/rules/no-unnecessary-conditions/" rel="nofollow"><code>noUnnecessaryConditions</code></a> no longer reports optional chains and nullish coalescing whose receiver can be nullish.</p>
<p>For example, the optional chain and fallback in the following code are no longer reported:</p>
<div class="highlight highlight-source-ts notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="declare const usage: { range: { startDate: string } } | null;
const startDate = usage?.range.startDate ?? "N/A";"><pre><span class="pl-k">declare</span> <span class="pl-k">const</span> <span class="pl-s1">usage</span>: <span class="pl-kos">{</span> <span class="pl-c1">range</span>: <span class="pl-kos">{</span> <span class="pl-c1">startDate</span>: <span class="pl-smi">string</span> <span class="pl-kos">}</span> <span class="pl-kos">}</span> <span class="pl-c1">|</span> <span class="pl-c1">null</span><span class="pl-kos">;</span>
<span class="pl-k">const</span> <span class="pl-s1">startDate</span> <span class="pl-c1">=</span> <span class="pl-s1">usage</span><span class="pl-kos">?.</span><span class="pl-c1">range</span><span class="pl-kos">.</span><span class="pl-c1">startDate</span> <span class="pl-c1">??</span> <span class="pl-s">"N/A"</span><span class="pl-kos">;</span></pre></div>
</li>
<li>
<p><a href="https://github.com/biomejs/biome/pull/11118" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11118/hovercard">#11118</a> <a href="https://github.com/biomejs/biome/commit/9c16840801a806ba34fbba7da28b9724d250207a"><code>9c16840</code></a> Thanks <a href="https://github.com/subotac">@subotac</a>! - Fixed <a href="https://github.com/biomejs/biome/issues/11098" data-hovercard-type="issue" data-hovercard-url="/biomejs/biome/issues/11098/hovercard">#11098</a>: The HTML formatter now preserves the configured trailing newline when a file ends with a comment.</p>
<div class="highlight highlight-source-diff notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="-<!-- trailing comment -->
\ No newline at end of file
+<!-- trailing comment -->"><pre><span class="pl-md"><span class="pl-md">-</span><!-- trailing comment --></span>
\ No newline at end of file
<span class="pl-mi1"><span class="pl-mi1">+</span><!-- trailing comment --></span></pre></div>
</li>
<li>
<p><a href="https://github.com/biomejs/biome/pull/11201" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11201/hovercard">#11201</a> <a href="https://github.com/biomejs/biome/commit/0e8061069915651a6f7cbba918a0bde0dbc1491f"><code>0e80610</code></a> Thanks <a href="https://github.com/Bishwas-py">@Bishwas-py</a>! - Fixed <a href="https://github.com/biomejs/biome/issues/11182" data-hovercard-type="issue" data-hovercard-url="/biomejs/biome/issues/11182/hovercard">#11182</a>: suppression comments for <a href="https://biomejs.dev/linter/rules/no-positive-tabindex/" rel="nofollow"><code>noPositiveTabindex</code></a> now suppress the rule in HTML files when the attributes of the element span multiple lines.</p>
</li>
<li>
<p><a href="https://github.com/biomejs/biome/pull/11079" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11079/hovercard">#11079</a> <a href="https://github.com/biomejs/biome/commit/607afd2488efb30cff5ea4b27de4d98eca728e0f"><code>607afd2</code></a> Thanks <a href="https://github.com/dyc3">@dyc3</a>! - The HTML formatter now lays out the <code>srcset</code> attribute of <code><img></code> and <code><source></code> as the list of candidates it is. Runs of whitespace between candidates collapse, and once the list no longer fits on one line each candidate goes on its own line with the descriptors aligned:</p>
<div class="highlight highlight-source-diff notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="- <img srcset="/visual@0.5.png 400w, /visual.png 805w, /visual@2x.png 1610w, /visual@3x.png 2415w" />
+ <img
+ srcset="
+ /visual@0.5.png 400w,
+ /visual.png 805w,
+ /visual@2x.png 1610w,
+ /visual@3x.png 2415w
+ "
+ />"><pre><span class="pl-md"><span class="pl-md">-</span> <img srcset="/visual@0.5.png 400w, /visual.png 805w, /visual@2x.png 1610w, /visual@3x.png 2415w" /></span>
<span class="pl-mi1"><span class="pl-mi1">+</span> <img</span>
<span class="pl-mi1"><span class="pl-mi1">+</span> srcset="</span>
<span class="pl-mi1"><span class="pl-mi1">+</span> /visual@0.5.png 400w,</span>
<span class="pl-mi1"><span class="pl-mi1">+</span> /visual.png 805w,</span>
<span class="pl-mi1"><span class="pl-mi1">+</span> /visual@2x.png 1610w,</span>
<span class="pl-mi1"><span class="pl-mi1">+</span> /visual@3x.png 2415w</span>
<span class="pl-mi1"><span class="pl-mi1">+</span> "</span>
<span class="pl-mi1"><span class="pl-mi1">+</span> /></span></pre></div>
</li>
<li>
<p><a href="https://github.com/biomejs/biome/pull/11156" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11156/hovercard">#11156</a> <a href="https://github.com/biomejs/biome/commit/fed72c7e8a2bff2942d5970f182262d18e049914"><code>fed72c7</code></a> Thanks <a href="https://github.com/saberoueslati">@saberoueslati</a>! - Fixed <a href="https://github.com/biomejs/biome/issues/11129" data-hovercard-type="issue" data-hovercard-url="/biomejs/biome/issues/11129/hovercard">#11129</a>: <a href="https://biomejs.dev/linter/rules/no-unused-variables/" rel="nofollow"><code>noUnusedVariables</code></a> no longer reports Vue bindings as unused when they are assigned through automatically unwrapped template refs.</p>
</li>
<li>
<p><a href="https://github.com/biomejs/biome/pull/11124" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11124/hovercard">#11124</a> <a href="https://github.com/biomejs/biome/commit/d890b39c3ef21040bded453d9af91e1b301a0d67"><code>d890b39</code></a> Thanks <a href="https://github.com/denbezrukov">@denbezrukov</a>! - Fixed CSS formatting of line comments between a declaration colon and value to preserve their source indentation.</p>
<div class="highlight highlight-source-diff notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content=" .test {
background:
- /////// foo
- // bar
+ /////// foo
+ // bar
radial-gradient(circle, #000, transparent);
}"><pre> .test {
background:
<span class="pl-md"><span class="pl-md">-</span> /////// foo</span>
<span class="pl-md"><span class="pl-md">-</span> // bar</span>
<span class="pl-mi1"><span class="pl-mi1">+</span> /////// foo</span>
<span class="pl-mi1"><span class="pl-mi1">+</span> // bar</span>
radial-gradient(circle, #000, transparent);
}</pre></div>
</li>
<li>
<p><a href="https://github.com/biomejs/biome/pull/11113" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11113/hovercard">#11113</a> <a href="https://github.com/biomejs/biome/commit/3d8ab73619f1c62a2d544d41ffee16eab9307d51"><code>3d8ab73</code></a> Thanks <a href="https://github.com/denbezrukov">@denbezrukov</a>! - Fixed CSS formatting of long block comments between comma-separated property values:</p>
<div class="highlight highlight-source-diff notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content=" .foo {
box-shadow:
- 1000px /* long long long long long long long long long long long long comment */ 1000px /* long long long long long long long long long comment */ 2px color(srgb 0.555555555 0.555555555 0.555555555),
+ 1000px
+ /* long long long long long long long long long long long long comment */
+ 1000px /* long long long long long long long long long comment */ 2px
+ color(srgb 0.555555555 0.555555555 0.555555555),
1px 1px black;
}"><pre> .foo {
box-shadow:
<span class="pl-md"><span class="pl-md">-</span> 1000px /* long long long long long long long long long long long long comment */ 1000px /* long long long long long long long long long comment */ 2px color(srgb 0.555555555 0.555555555 0.555555555),</span>
<span class="pl-mi1"><span class="pl-mi1">+</span> 1000px</span>
<span class="pl-mi1"><span class="pl-mi1">+</span> /* long long long long long long long long long long long long comment */</span>
<span class="pl-mi1"><span class="pl-mi1">+</span> 1000px /* long long long long long long long long long comment */ 2px</span>
<span class="pl-mi1"><span class="pl-mi1">+</span> color(srgb 0.555555555 0.555555555 0.555555555),</span>
1px 1px black;
}</pre></div>
</li>
<li>
<p><a href="https://github.com/biomejs/biome/pull/11127" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11127/hovercard">#11127</a> <a href="https://github.com/biomejs/biome/commit/da5c1a539bac009eb1bc275b9bd8194f9ca7d5fa"><code>da5c1a5</code></a> Thanks <a href="https://github.com/dyc3">@dyc3</a>! - The HTML formatter now picks the quote character for an attribute by counting the quotes in the value rather than looking only for a double quote. <code>&apos;</code> and <code>&quot;</code> count as the characters they stand for, and only the character that ends up as the delimiter stays escaped:</p>
<div class="highlight highlight-source-diff notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="- <div title='123 &apos;&quot; 456'></div>
+ <div title="123 '&quot; 456"></div>"><pre><span class="pl-md"><span class="pl-md">-</span> <div title='123 &apos;&quot; 456'></div></span>
<span class="pl-mi1"><span class="pl-mi1">+</span> <div title="123 '&quot; 456"></div></span></pre></div>
<p>Entities that are not quotes, such as <code>&amp;</code> or <code>&[#39](https://github.com/biomejs/biome/issues/39);</code>, are left exactly as written.</p>
</li>
<li>
<p><a href="https://github.com/biomejs/biome/pull/11193" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11193/hovercard">#11193</a> <a href="https://github.com/biomejs/biome/commit/77035bb3777805c682eefa4cbed5464c94baccba"><code>77035bb</code></a> Thanks <a href="https://github.com/dyc3">@dyc3</a>! - Fixed the HTML formatter collapsing the blank line between an element and the text that follows it. A blank line before text is now kept, the way one before another element already was:</p>
<div class="highlight highlight-source-diff notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content=" <div>foo</div>
-
text"><pre> <div>foo</div>
<span class="pl-md"><span class="pl-md">-</span></span>
text</pre></div>
</li>
<li>
<p><a href="https://github.com/biomejs/biome/pull/11106" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11106/hovercard">#11106</a> <a href="https://github.com/biomejs/biome/commit/ad80f572c922fc2a80c90b8e26a66300dfb82d24"><code>ad80f57</code></a> Thanks <a href="https://github.com/dyc3">@dyc3</a>! - The HTML formatter now writes the HTML5 doctype in lowercase, matching Prettier:</p>
<div class="highlight highlight-source-diff notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="- <!DOCTYPE html>
+ <!doctype html>"><pre><span class="pl-md"><span class="pl-md">-</span> <!DOCTYPE html></span>
<span class="pl-mi1"><span class="pl-mi1">+</span> <!doctype html></span></pre></div>
<p>This only applies to a plain <code>.html</code> file whose doctype stands alone. A doctype that names a DTD keeps the case it was written with, since the rest of the declaration is not lowercased either:</p>
<div class="highlight highlight-text-html-basic notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">"><pre><span class="pl-c1"><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"<span class="pl-kos">></span></span></pre></div>
<p>A <code>.vue</code>, <code>.svelte</code>, or <code>.astro</code> file keeps whatever the author wrote.</p>
</li>
<li>
<p><a href="https://github.com/biomejs/biome/pull/11188" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11188/hovercard">#11188</a> <a href="https://github.com/biomejs/biome/commit/60679dbe6d53c9b78571042b0b8c906bd345e52d"><code>60679db</code></a> Thanks <a href="https://github.com/dyc3">@dyc3</a>! - Fixed the HTML formatter printing a comment twice when it ended the line of the last element in a document:</p>
<div class="highlight highlight-source-diff notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="- text<!-- a --><!-- a -->
+ text<!-- a -->"><pre><span class="pl-md"><span class="pl-md">-</span> text<!-- a --><!-- a --></span>
<span class="pl-mi1"><span class="pl-mi1">+</span> text<!-- a --></span></pre></div>
</li>
<li>
<p><a href="https://github.com/biomejs/biome/pull/11077" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11077/hovercard">#11077</a> <a href="https://github.com/biomejs/biome/commit/4dcd0d99579650191696dc5fb8b16dd69d65c4ee"><code>4dcd0d9</code></a> Thanks <a href="https://github.com/dyc3">@dyc3</a>! - Fixed a bug where the HTML formatter collapsed the whitespace inside <code><textarea></code>, <code><xmp></code> and <code><plaintext></code>, changing what the page renders.</p>
<div class="highlight highlight-source-diff notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="- <textarea>
- line one
- line two </textarea>
+ <textarea>line one line two</textarea>"><pre><span class="pl-md"><span class="pl-md">-</span> <textarea></span>
<span class="pl-md"><span class="pl-md">-</span> line one</span>
<span class="pl-md"><span class="pl-md">-</span> line two </textarea></span>
<span class="pl-mi1"><span class="pl-mi1">+</span> <textarea>line one line two</textarea></span></pre></div>
<p>Biome now prints the content of these elements exactly as it appears in the source, matching the existing behavior for <code><pre></code>.</p>
</li>
<li>
<p><a href="https://github.com/biomejs/biome/pull/11194" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11194/hovercard">#11194</a> <a href="https://github.com/biomejs/biome/commit/abfbb11da260852f0b4aa15f36207314ccfae436"><code>abfbb11</code></a> Thanks <a href="https://github.com/dyc3">@dyc3</a>! - Fixed the HTML formatter refusing to format a Svelte file containing an array pattern that skips a position:</p>
<div class="highlight highlight-source-svelte notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="{#each animals as [, value]}
<p>{value}</p>
{/each}"><pre>{<span class="pl-k">#each</span> <span class="pl-smi">animals</span> <span class="pl-k">as</span> [, value]}
<<span class="pl-ent">p</span>>{<span class="pl-smi">value</span>}</<span class="pl-ent">p</span>>
{<span class="pl-k">/each</span>}</pre></div>
</li>
<li>
<p><a href="https://github.com/biomejs/biome/pull/10094" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/10094/hovercard">#10094</a> <a href="https://github.com/biomejs/biome/commit/e00714360807115210e549caca0f235431ca9a8a"><code>e007143</code></a> Thanks <a href="https://github.com/THEjacob1000">@THEjacob1000</a>! - Fixed <a href="https://biomejs.dev/linter/rules/use-sorted-classes/" rel="nofollow"><code>useSortedClasses</code></a> to correctly detect unsorted classes in static member expression tagged templates (e.g. <code>tw.div\</code>...``). Previously, these were silently skipped due to surrounding whitespace trivia not being stripped from the tag name.</p>
</li>
<li>
<p><a href="https://github.com/biomejs/biome/pull/11078" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11078/hovercard">#11078</a> <a href="https://github.com/biomejs/biome/commit/10da30e0013c35fe2f4d3e335b88a539ae6eb87a"><code>10da30e</code></a> Thanks <a href="https://github.com/dyc3">@dyc3</a>! - Fixed Vue single-file components failing to parse when they contain a custom block such as <code><i18n></code> or <code><docs></code>, or a <code><template></code> written in another language. Their content is no longer read as HTML, so a block may hold whatever its own tooling expects:</p>
<div class="highlight highlight-text-html-vue notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="<docs>
This block is prose, and it may mention a `<my-component>` without closing it.
</docs>
<template lang="pug">
.test
#foo
</template>"><pre><<span class="pl-ent">docs</span>>
This block is prose, and it may mention a `<my-component>` without closing it.
</<span class="pl-ent">docs</span>>
<<span class="pl-ent">template</span> lang="pug">
<span class="pl-e">.test</span>
<span class="pl-e">#foo</span>
</<span class="pl-ent">template</span>></pre></div>
<p>Previously both blocks produced a parse error and the whole file was left unformatted. Biome now prints their content unchanged while still formatting the opening tag.</p>
</li>
<li>
<p><a href="https://github.com/biomejs/biome/pull/11231" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11231/hovercard">#11231</a> <a href="https://github.com/biomejs/biome/commit/4afd901edd5d921d63a259a049c6a774269c7b82"><code>4afd901</code></a> Thanks <a href="https://github.com/ematipico">@ematipico</a>! - Improved the performance of the following lint rules:</p>
<ul>
<li><a href="https://biomejs.dev/linter/rules/no-arguments/" rel="nofollow"><code>noArguments</code></a>.</li>
<li><a href="https://biomejs.dev/linter/rules/no-global-assign/" rel="nofollow"><code>noGlobalAssign</code></a>.</li>
<li><a href="https://biomejs.dev/linter/rules/no-undeclared-variables/" rel="nofollow"><code>noUndeclaredVariables</code></a>.</li>
<li><a href="https://biomejs.dev/linter/rules/no-restricted-globals/" rel="nofollow"><code>noRestrictedGlobals</code></a>.</li>
<li><a href="https://biomejs.dev/linter/rules/no-invalid-use-before-declaration/" rel="nofollow"><code>noInvalidUseBeforeDeclaration</code></a>.</li>
<li><a href="https://biomejs.dev/linter/rules/no-shadow/" rel="nofollow"><code>noShadow</code></a>.</li>
<li><a href="https://biomejs.dev/linter/rules/no-redeclare/" rel="nofollow"><code>noRedeclare</code></a>.</li>
</ul>
</li>
<li>
<p><a href="https://github.com/biomejs/biome/pull/11134" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11134/hovercard">#11134</a> <a href="https://github.com/biomejs/biome/commit/2fa0a62224af7a13869a28ef80aefa5ea75ebfd2"><code>2fa0a62</code></a> Thanks <a href="https://github.com/yanthomasdev">@yanthomasdev</a>! - Clarified the warning emitted when using the experimental <code>json</code> and <code>json-pretty</code> reporters.</p>
</li>
<li>
<p><a href="https://github.com/biomejs/biome/pull/11198" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11198/hovercard">#11198</a> <a href="https://github.com/biomejs/biome/commit/ed88b13a6d95fe564aaee6c731651e7dec8266db"><code>ed88b13</code></a> Thanks <a href="https://github.com/saberoueslati">@saberoueslati</a>! - Fixed <a href="https://github.com/biomejs/biome/issues/11171" data-hovercard-type="issue" data-hovercard-url="/biomejs/biome/issues/11171/hovercard">#11171</a>: variables referenced only inside a Svelte attachment (<code>{@attach ...}</code>) are no longer reported as unused by <a href="https://biomejs.dev/linter/rules/no-unused-variables/" rel="nofollow"><code>noUnusedVariables</code></a> and <a href="https://biomejs.dev/linter/rules/no-unused-imports/" rel="nofollow"><code>noUnusedImports</code></a>.</p>
</li>
<li>
<p><a href="https://github.com/biomejs/biome/pull/11155" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11155/hovercard">#11155</a> <a href="https://github.com/biomejs/biome/commit/6ee17ea2df979a67df5d1263734f28f77c6512a6"><code>6ee17ea</code></a> Thanks <a href="https://github.com/dyc3">@dyc3</a>! - Improved performance when printing diagnostics to the console.</p>
</li>
<li>
<p><a href="https://github.com/biomejs/biome/pull/11160" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11160/hovercard">#11160</a> <a href="https://github.com/biomejs/biome/commit/217f8adbc2f700ab4c92cb227434c2afba9f9611"><code>217f8ad</code></a> Thanks <a href="https://github.com/dyc3">@dyc3</a>! - Improved the performance of <a href="https://biomejs.dev/linter/rules/no-floating-promises/" rel="nofollow"><code>noFloatingPromises</code></a> by skipping type inference for assignment statements, which are always considered handled.</p>
</li>
<li>
<p><a href="https://github.com/biomejs/biome/pull/11159" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11159/hovercard">#11159</a> <a href="https://github.com/biomejs/biome/commit/26c23d96ced1a6eca496955fbe93279da2747346"><code>26c23d9</code></a> Thanks <a href="https://github.com/saberoueslati">@saberoueslati</a>! - Fixed <a href="https://github.com/biomejs/biome/issues/11144" data-hovercard-type="issue" data-hovercard-url="/biomejs/biome/issues/11144/hovercard">#11144</a>: <a href="https://biomejs.dev/linter/rules/no-floating-promises/" rel="nofollow"><code>noFloatingPromises</code></a> no longer reports already-awaited optional Promise values.</p>
</li>
<li>
<p><a href="https://github.com/biomejs/biome/pull/11138" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11138/hovercard">#11138</a> <a href="https://github.com/biomejs/biome/commit/8c2c6bd96c035e506bc60b75448afb039e331fb1"><code>8c2c6bd</code></a> Thanks <a href="https://github.com/ematipico">@ematipico</a>! - Fixed <a href="https://github.com/biomejs/biome/issues/11121" data-hovercard-type="issue" data-hovercard-url="/biomejs/biome/issues/11121/hovercard">#11121</a>: <a href="https://biomejs.dev/linter/rules/no-unnecessary-conditions/" rel="nofollow"><code>noUnnecessaryConditions</code></a> no longer reports conditions based on an inapplicable function overload.</p>
<p>For example, the condition in the following code is no longer reported because <code>query({})</code> selects the overload that returns <code>boolean</code>:</p>
<div class="highlight highlight-source-ts notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="declare function query(options: { initial: string }): { isPending: false };
declare function query(options: { initial?: string }): { isPending: boolean };
const { isPending } = query({});
isPending || fallback;"><pre><span class="pl-k">declare</span> <span class="pl-k">function</span> <span class="pl-s1">query</span><span class="pl-kos">(</span><span class="pl-s1">options</span>: <span class="pl-kos">{</span> <span class="pl-c1">initial</span>: <span class="pl-smi">string</span> <span class="pl-kos">}</span><span class="pl-kos">)</span>: <span class="pl-kos">{</span> <span class="pl-c1">isPending</span>: <span class="pl-c1">false</span> <span class="pl-kos">}</span><span class="pl-kos">;</span>
<span class="pl-k">declare</span> <span class="pl-k">function</span> <span class="pl-s1">query</span><span class="pl-kos">(</span><span class="pl-s1">options</span>: <span class="pl-kos">{</span> <span class="pl-c1">initial</span>?: <span class="pl-smi">string</span> <span class="pl-kos">}</span><span class="pl-kos">)</span>: <span class="pl-kos">{</span> <span class="pl-c1">isPending</span>: <span class="pl-smi">boolean</span> <span class="pl-kos">}</span><span class="pl-kos">;</span>
<span class="pl-k">const</span> <span class="pl-kos">{</span> isPending <span class="pl-kos">}</span> <span class="pl-c1">=</span> <span class="pl-en">query</span><span class="pl-kos">(</span><span class="pl-kos">{</span><span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
<span class="pl-s1">isPending</span> <span class="pl-c1">||</span> <span class="pl-s1">fallback</span><span class="pl-kos">;</span></pre></div>
</li>
<li>
<p><a href="https://github.com/biomejs/biome/pull/11152" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11152/hovercard">#11152</a> <a href="https://github.com/biomejs/biome/commit/c4fc6a90777358905cf99b3261a479de73d7d383"><code>c4fc6a9</code></a> Thanks <a href="https://github.com/dyc3">@dyc3</a>! - Improved the performance of collecting rule timings with <code>--profile-rules</code> in heavily multithreaded environments.</p>
</li>
<li>
<p><a href="https://github.com/biomejs/biome/pull/11128" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11128/hovercard">#11128</a> <a href="https://github.com/biomejs/biome/commit/4d3ff7689c36af5149142d9a4a23165154359655"><code>4d3ff76</code></a> Thanks <a href="https://github.com/ematipico">@ematipico</a>! - Fixed <a href="https://github.com/biomejs/biome/issues/7635" data-hovercard-type="issue" data-hovercard-url="/biomejs/biome/issues/7635/hovercard">#7635</a>: <a href="https://biomejs.dev/linter/rules/no-deprecated-imports/" rel="nofollow"><code>noDeprecatedImports</code></a> now detects deprecated ambient declarations that are exported separately.</p>
</li>
<li>
<p><a href="https://github.com/biomejs/biome/pull/11117" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11117/hovercard">#11117</a> <a href="https://github.com/biomejs/biome/commit/01f7ef58d4c19a587b01754c96b577a2a5a47418"><code>01f7ef5</code></a> Thanks <a href="https://github.com/subotac">@subotac</a>! - Fixed <a href="https://github.com/biomejs/biome/issues/11014" data-hovercard-type="issue" data-hovercard-url="/biomejs/biome/issues/11014/hovercard">#11014</a>: <a href="https://biomejs.dev/linter/rules/no-delete/" rel="nofollow"><code>noDelete</code></a> no longer reports <code>process.env["FOO"]</code> style property deletions.</p>
</li>
<li>
<p><a href="https://github.com/biomejs/biome/pull/11168" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11168/hovercard">#11168</a> <a href="https://github.com/biomejs/biome/commit/9847e680ff8bb891a6c910e881af98a4fffa33c2"><code>9847e68</code></a> Thanks <a href="https://github.com/saberoueslati">@saberoueslati</a>! - Added the nursery rule <a href="https://biomejs.dev/linter/rules/no-non-scalable-viewport" rel="nofollow"><code>noNonScalableViewport</code></a>, which reports viewport metadata that disables user scaling with <code>user-scalable=no</code>.</p>
<p>For example:</p>
<div class="highlight highlight-text-html-basic notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="<meta name="viewport" content="width=device-width, user-scalable=no" />"><pre><span class="pl-kos"><</span><span class="pl-ent">meta</span> <span class="pl-c1">name</span>="<span class="pl-s">viewport</span>" <span class="pl-c1">content</span>="<span class="pl-s">width=device-width, user-scalable=no</span>" <span class="pl-kos">/></span></pre></div>
</li>
<li>
<p><a href="https://github.com/biomejs/biome/pull/11154" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11154/hovercard">#11154</a> <a href="https://github.com/biomejs/biome/commit/a1d6b1fc544c6c6cc1dd38f87898d34738fbe97b"><code>a1d6b1f</code></a> Thanks <a href="https://github.com/dyc3">@dyc3</a>! - Improved the performance of <a href="https://biomejs.dev/linter/rules/no-import-cycles/" rel="nofollow"><code>noImportCycles</code></a> by skipping graph traversals for imports that cannot be part of a cycle.</p>
</li>
<li>
<p><a href="https://github.com/biomejs/biome/pull/11175" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11175/hovercard">#11175</a> <a href="https://github.com/biomejs/biome/commit/d96d6dd07702828f7e7a5ce59f8fc00006f6ee46"><code>d96d6dd</code></a> Thanks <a href="https://github.com/ematipico">@ematipico</a>! - Fixed CSS parsing of registered custom properties: Biome now correctly validates the <code>syntax</code> descriptor of <code>@property</code> rules.</p>
</li>
</ul>
<h2>What's Changed</h2>
<ul>
<li>fix(html): preserve trailing newline after comments by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/subotac/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/subotac">@subotac</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5000657026" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11118" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11118/hovercard" href="https://github.com/biomejs/biome/pull/11118">#11118</a></li>
<li>fix(format/html): preserve the content of preformatted elements by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dyc3/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dyc3">@dyc3</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4978792738" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11077" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11077/hovercard" href="https://github.com/biomejs/biome/pull/11077">#11077</a></li>
<li>feat(format/yaml): explicit block mapping entries by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dyc3/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dyc3">@dyc3</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4959915211" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11053" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11053/hovercard" href="https://github.com/biomejs/biome/pull/11053">#11053</a></li>
<li>feat(format/yaml): normalize scalar quotes by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dyc3/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dyc3">@dyc3</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4959915468" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11054" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11054/hovercard" href="https://github.com/biomejs/biome/pull/11054">#11054</a></li>
<li>fix(parser/yaml): plain scalar <code>#</code> and alias name lexing by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dyc3/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dyc3">@dyc3</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4962911609" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11061" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11061/hovercard" href="https://github.com/biomejs/biome/pull/11061">#11061</a></li>
<li>feat(format/yaml): normalize node property placement by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dyc3/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dyc3">@dyc3</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4962935818" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11062" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11062/hovercard" href="https://github.com/biomejs/biome/pull/11062">#11062</a></li>
<li>feat(format/yaml): middle comments by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dyc3/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dyc3">@dyc3</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4962953371" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11063" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11063/hovercard" href="https://github.com/biomejs/biome/pull/11063">#11063</a></li>
<li>feat(css_formatter): scss and css comments inside declarations by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/denbezrukov/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/denbezrukov">@denbezrukov</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4996641695" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11113" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11113/hovercard" href="https://github.com/biomejs/biome/pull/11113">#11113</a></li>
<li>chore: trim published crate sizes with cargo diet by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dreyfus92/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dreyfus92">@dreyfus92</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5004048341" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11123" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11123/hovercard" href="https://github.com/biomejs/biome/pull/11123">#11123</a></li>
<li>feat(useSortedClasses): resolve bare functional utilities with defaults in sort_v4 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/johncarmack1984/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/johncarmack1984">@johncarmack1984</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5002589794" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11120" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11120/hovercard" href="https://github.com/biomejs/biome/pull/11120">#11120</a></li>
<li>feat(lint): add ignoreIfStatements option to useNullishCoalescing by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/pkallos/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/pkallos">@pkallos</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4788700824" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/10822" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/10822/hovercard" href="https://github.com/biomejs/biome/pull/10822">#10822</a></li>
<li>feat(md/fmt): dedent code blocks, normalize strings, indentation fixes by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ematipico/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ematipico">@ematipico</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4996209284" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11111" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11111/hovercard" href="https://github.com/biomejs/biome/pull/11111">#11111</a></li>
<li>fix: <code>--stdin-file-path</code> with nested configuration by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/cormacrelf/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/cormacrelf">@cormacrelf</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3657487587" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/8239" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/8239/hovercard" href="https://github.com/biomejs/biome/pull/8239">#8239</a></li>
<li>fix(noDelete): allow computed process.env deletion by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/subotac/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/subotac">@subotac</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4999678786" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11117" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11117/hovercard" href="https://github.com/biomejs/biome/pull/11117">#11117</a></li>
<li>chore(xtask): migrate Date global type by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/minseong0324/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/minseong0324">@minseong0324</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4993559413" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11107" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11107/hovercard" href="https://github.com/biomejs/biome/pull/11107">#11107</a></li>
<li>feat(format/yaml): flow collection blank lines and spacing by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dyc3/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dyc3">@dyc3</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4962962494" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11064" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11064/hovercard" href="https://github.com/biomejs/biome/pull/11064">#11064</a></li>
<li>feat(format/yaml): explicit-form mapping keys by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dyc3/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dyc3">@dyc3</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4962976681" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11065" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11065/hovercard" href="https://github.com/biomejs/biome/pull/11065">#11065</a></li>
<li>feat(format/yaml): document separation and trailing newlines by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dyc3/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dyc3">@dyc3</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4962989189" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11066" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11066/hovercard" href="https://github.com/biomejs/biome/pull/11066">#11066</a></li>
<li>feat(format/yaml): block scalar trailing comment lines by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dyc3/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dyc3">@dyc3</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4962798197" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11058" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11058/hovercard" href="https://github.com/biomejs/biome/pull/11058">#11058</a></li>
<li>fix(css_formatter): preserve property value comment indentation by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/denbezrukov/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/denbezrukov">@denbezrukov</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5008727414" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11124" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11124/hovercard" href="https://github.com/biomejs/biome/pull/11124">#11124</a></li>
<li>feat(fmt/md): prose-wrap formatting for markdown by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ematipico/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ematipico">@ematipico</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4999419391" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11115" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11115/hovercard" href="https://github.com/biomejs/biome/pull/11115">#11115</a></li>
<li>feat(lint): add nursery rule noTailwindArbitraryValue by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/THEjacob1000/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/THEjacob1000">@THEjacob1000</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4313742781" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/10094" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/10094/hovercard" href="https://github.com/biomejs/biome/pull/10094">#10094</a></li>
<li>fix(parser/yaml): property attachment across lines in block mappings by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dyc3/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dyc3">@dyc3</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4962678872" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11057" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11057/hovercard" href="https://github.com/biomejs/biome/pull/11057">#11057</a></li>
<li>fix(css): resolve empty syntax node pointers by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/denbezrukov/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/denbezrukov">@denbezrukov</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5013558815" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11132" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11132/hovercard" href="https://github.com/biomejs/biome/pull/11132">#11132</a></li>
<li>fix(inference): regression in optional chain types by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ematipico/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ematipico">@ematipico</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5018002212" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11138" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11138/hovercard" href="https://github.com/biomejs/biome/pull/11138">#11138</a></li>
<li>docs: rework CLI by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/yanthomasdev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/yanthomasdev">@yanthomasdev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5014483435" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11134" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11134/hovercard" href="https://github.com/biomejs/biome/pull/11134">#11134</a></li>
<li>fix(html): track Vue template assignment references by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/saberoueslati/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/saberoueslati">@saberoueslati</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5032893479" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11156" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11156/hovercard" href="https://github.com/biomejs/biome/pull/11156">#11156</a></li>
<li>feat(css): property syntax value codec by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ematipico/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ematipico">@ematipico</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5028651304" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11148" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11148/hovercard" href="https://github.com/biomejs/biome/pull/11148">#11148</a></li>
<li>feat(lint): add noExtendNative nursery rule by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/AkashNaickar/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/AkashNaickar">@AkashNaickar</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5017477296" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11136" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11136/hovercard" href="https://github.com/biomejs/biome/pull/11136">#11136</a></li>
<li>feat(css): property semantic model by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ematipico/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ematipico">@ematipico</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5030295734" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11149" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11149/hovercard" href="https://github.com/biomejs/biome/pull/11149">#11149</a></li>
<li>perf(console): batch writes when printing instead of one char at a time by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dyc3/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dyc3">@dyc3</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5032538944" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11155" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11155/hovercard" href="https://github.com/biomejs/biome/pull/11155">#11155</a></li>
<li>fix(lint): detect deprecated ambient imports by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ematipico/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ematipico">@ematipico</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5011243956" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11128" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11128/hovercard" href="https://github.com/biomejs/biome/pull/11128">#11128</a></li>
<li>chore(xtask): migrate RegExp global types by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/minseong0324/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/minseong0324">@minseong0324</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4993640356" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11108" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11108/hovercard" href="https://github.com/biomejs/biome/pull/11108">#11108</a></li>
<li>perf(rule_profiler): thread local profilers, aggregate at the end by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dyc3/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dyc3">@dyc3</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5031653017" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11152" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11152/hovercard" href="https://github.com/biomejs/biome/pull/11152">#11152</a></li>
<li>perf(noFloatingPromises): short circuit assignment statements by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dyc3/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dyc3">@dyc3</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5037295806" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11160" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11160/hovercard" href="https://github.com/biomejs/biome/pull/11160">#11160</a></li>
<li>feat(module-graph): css traversal for properties by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ematipico/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ematipico">@ematipico</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5031904739" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11153" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11153/hovercard" href="https://github.com/biomejs/biome/pull/11153">#11153</a></li>
<li>fix(inference): collapse instance wrappers around unions by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/saberoueslati/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/saberoueslati">@saberoueslati</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5037192725" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11159" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11159/hovercard" href="https://github.com/biomejs/biome/pull/11159">#11159</a></li>
<li>fix(parse/html): read Vue SFC custom blocks as opaque text by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dyc3/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dyc3">@dyc3</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4978792861" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11078" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11078/hovercard" href="https://github.com/biomejs/biome/pull/11078">#11078</a></li>
<li>feat(format/html): lay out the srcset attribute by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dyc3/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dyc3">@dyc3</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4978792968" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11079" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11079/hovercard" href="https://github.com/biomejs/biome/pull/11079">#11079</a></li>
<li>fix(format/html): write the HTML5 doctype in lowercase by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dyc3/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dyc3">@dyc3</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4993009703" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11106" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11106/hovercard" href="https://github.com/biomejs/biome/pull/11106">#11106</a></li>
<li>fix(format/html): pick attribute quotes by counting them by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dyc3/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dyc3">@dyc3</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5011153542" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11127" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11127/hovercard" href="https://github.com/biomejs/biome/pull/11127">#11127</a></li>
<li>chore(xtask): migrate Map and Set global types by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/minseong0324/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/minseong0324">@minseong0324</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4993678701" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11109" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11109/hovercard" href="https://github.com/biomejs/biome/pull/11109">#11109</a></li>
<li>feat(lint): add noNonScalableViewport rule by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/saberoueslati/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/saberoueslati">@saberoueslati</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5037497270" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11168" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11168/hovercard" href="https://github.com/biomejs/biome/pull/11168">#11168</a></li>
<li>chore(xtask): migrate Array global types by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/minseong0324/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/minseong0324">@minseong0324</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5009099160" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11125" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11125/hovercard" href="https://github.com/biomejs/biome/pull/11125">#11125</a></li>
<li>fix(css_parser): tighten interpolated identifier boundaries by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/denbezrukov/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/denbezrukov">@denbezrukov</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5042323097" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11181" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11181/hovercard" href="https://github.com/biomejs/biome/pull/11181">#11181</a></li>
<li>fix(analyze): recognize references in Svelte attachments by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/saberoueslati/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/saberoueslati">@saberoueslati</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5045023856" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11198" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11198/hovercard" href="https://github.com/biomejs/biome/pull/11198">#11198</a></li>
<li>fix(lint/css): recognize Vue :deep() pseudo-class by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/subotac/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/subotac">@subotac</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5042866235" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11184" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11184/hovercard" href="https://github.com/biomejs/biome/pull/11184">#11184</a></li>
<li>chore(deps): update rust crate serde to 1.0.229 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/renovate/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/renovate">@renovate</a>[bot] in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5045756617" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11200" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11200/hovercard" href="https://github.com/biomejs/biome/pull/11200">#11200</a></li>
<li>chore(deps): update rust crate camino to 1.2.5 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/renovate/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/renovate">@renovate</a>[bot] in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5044804802" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11197" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11197/hovercard" href="https://github.com/biomejs/biome/pull/11197">#11197</a></li>
<li>chore(deps): update rust crate schemars to 1.2.2 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/renovate/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/renovate">@renovate</a>[bot] in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5045755797" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11199" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11199/hovercard" href="https://github.com/biomejs/biome/pull/11199">#11199</a></li>
<li>chore(deps): update rust crate serde_json to 1.0.151 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/renovate/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/renovate">@renovate</a>[bot] in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5046660041" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11203" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11203/hovercard" href="https://github.com/biomejs/biome/pull/11203">#11203</a></li>
<li>chore(deps): update rust crate bpaf to 0.9.27 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/renovate/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/renovate">@renovate</a>[bot] in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5044804182" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11196" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11196/hovercard" href="https://github.com/biomejs/biome/pull/11196">#11196</a></li>
<li>chore(deps): update github-actions by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/renovate/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/renovate">@renovate</a>[bot] in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5046679357" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11204" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11204/hovercard" href="https://github.com/biomejs/biome/pull/11204">#11204</a></li>
<li>chore(deps): update pnpm to v11.18.0 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/renovate/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/renovate">@renovate</a>[bot] in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5047048833" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11205" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11205/hovercard" href="https://github.com/biomejs/biome/pull/11205">#11205</a></li>
<li>test(format/html): enable <code>html_embeds</code> feature for tests by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dyc3/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dyc3">@dyc3</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5050638297" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11216" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11216/hovercard" href="https://github.com/biomejs/biome/pull/11216">#11216</a></li>
<li>perf(noImportCycles): prune DFS traversals by grouping strongly connected components by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dyc3/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dyc3">@dyc3</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5031927813" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11154" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11154/hovercard" href="https://github.com/biomejs/biome/pull/11154">#11154</a></li>
<li>feat(graph): traversal of HTML-ish files by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ematipico/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ematipico">@ematipico</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5036965198" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11158" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11158/hovercard" href="https://github.com/biomejs/biome/pull/11158">#11158</a></li>
<li>feat(css): js traverse, source order paths, cache traverse by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ematipico/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ematipico">@ematipico</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5038864118" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11169" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11169/hovercard" href="https://github.com/biomejs/biome/pull/11169">#11169</a></li>
<li>fix(css): validate <a class="user-mention notranslate" data-hovercard-type="organization" data-hovercard-url="/orgs/Property/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Property">@Property</a> syntax descriptors by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ematipico/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ematipico">@ematipico</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5041510888" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11175" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11175/hovercard" href="https://github.com/biomejs/biome/pull/11175">#11175</a></li>
<li>test(format/html): run the prettier-plugin-svelte suite by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dyc3/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dyc3">@dyc3</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5012287938" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11130" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11130/hovercard" href="https://github.com/biomejs/biome/pull/11130">#11130</a></li>
<li>fix(format/html): stop printing a document's last comment twice by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dyc3/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dyc3">@dyc3</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5044136881" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11188" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11188/hovercard" href="https://github.com/biomejs/biome/pull/11188">#11188</a></li>
<li>fix(noPositiveTabindex): make suppression comments work on multiline HTML tags by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Bishwas-py/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Bishwas-py">@Bishwas-py</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5045807075" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11201" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11201/hovercard" href="https://github.com/biomejs/biome/pull/11201">#11201</a></li>
<li>perf(lint): reduce trigger of rules by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ematipico/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ematipico">@ematipico</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5058665731" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11231" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11231/hovercard" href="https://github.com/biomejs/biome/pull/11231">#11231</a></li>
<li>fix(format/html): keep the blank line before text by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dyc3/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dyc3">@dyc3</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5044796411" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11193" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11193/hovercard" href="https://github.com/biomejs/biome/pull/11193">#11193</a></li>
<li>fix(format/html): format a Svelte array pattern that skips a position by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dyc3/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dyc3">@dyc3</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5044796573" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11194" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11194/hovercard" href="https://github.com/biomejs/biome/pull/11194">#11194</a></li>
<li>ci: release by @github-actions[bot] in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5001362354" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11119" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11119/hovercard" href="https://github.com/biomejs/biome/pull/11119">#11119</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/subotac/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/subotac">@subotac</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5000657026" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11118" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11118/hovercard" href="https://github.com/biomejs/biome/pull/11118">#11118</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dreyfus92/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dreyfus92">@dreyfus92</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5004048341" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11123" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11123/hovercard" href="https://github.com/biomejs/biome/pull/11123">#11123</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/THEjacob1000/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/THEjacob1000">@THEjacob1000</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4313742781" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/10094" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/10094/hovercard" href="https://github.com/biomejs/biome/pull/10094">#10094</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/saberoueslati/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/saberoueslati">@saberoueslati</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5032893479" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11156" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11156/hovercard" href="https://github.com/biomejs/biome/pull/11156">#11156</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/AkashNaickar/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/AkashNaickar">@AkashNaickar</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5017477296" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11136" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11136/hovercard" href="https://github.com/biomejs/biome/pull/11136">#11136</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Bishwas-py/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Bishwas-py">@Bishwas-py</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5045807075" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11201" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11201/hovercard" href="https://github.com/biomejs/biome/pull/11201">#11201</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/biomejs/biome/compare/@biomejs/biome@2.5.6...@biomejs/biome@2.5.7">https://github.com/biomejs/biome/compare/@biomejs/biome@2.5.6...@biomejs/biome@2.5.7</a></p>github-actions[bot]tag:github.com,2008:Repository/1160445603/v0.6.12026-08-04T00:43:43Zopenwurli: v0.6.1 "NotADuck"<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/hal0zer0/openwurli/compare/v0.6.0...v0.6.1"><tt>v0.6.0...v0.6.1</tt></a></p>github-actions[bot]tag:github.com,2008:Repository/610265820/2026-08-03-tuxguitar-next2026-08-03T19:10:56Ztuxguitar: 2026-08-03-tuxguitar-next<p><strong>Warning:</strong> This version of TuxGuitar is our development playground and may not be stable!</p>
<p><strong>Security notice:</strong> The packages available here are not officially signed. To install them, you must temporarily disable the digital signature verification of your operating system (called "disable Gatekeeper" on macOS, "allow installation from unknown sources" on Windows, "Sideloading" on Android).</p>
<p><strong>Please note:</strong> TuxGuitar versions 2.0.0 and later use a <strong>new file format</strong> which cannot be read by older versions. You can still export your tablatures in the old format so that you can open them with older versions of TuxGuitar.</p>
<p>The Windows packages include OpenJDK from portableapps.com.<br>
The macOS package includes OpenJDK from brew.sh.</p>helge17tag:github.com,2008:Repository/950004433/v0.4.02026-08-03T14:49:55ZNeuralRack: v0.4.0 released<p>Please checkout bug fix release 0.4.1<br>
<a href="https://github.com/brummer10/NeuralRack/releases/tag/v0.4.1">https://github.com/brummer10/NeuralRack/releases/tag/v0.4.1</a></p>github-actions[bot]tag:github.com,2008:Repository/950004433/v0.4.12026-08-03T14:49:22ZNeuralRack: v0.4.1 released<p>NeuralRack is a Neural Model and Impulse Response File loader for Linux/Windows available as Stand alone application, and in the Clap, LV2, vst2 and vst3 plugin format.<br>
<a target="_blank" rel="noopener noreferrer" href="https://github.com/brummer10/NeuralRack/raw/main/NeuralRack.png?raw=true"><img src="https://github.com/brummer10/NeuralRack/raw/main/NeuralRack.png?raw=true" alt="NeuralRack" style="max-width: 100%;"></a><br>
It supports <a href="https://www.tone3000.com/search?tags=103" rel="nofollow">*.nam files</a> and, or <a href="https://www.tone3000.com/search?tags=23562" rel="nofollow">*.json or .aidax files</a> by using the <a href="https://github.com/mikeoliphant/NeuralAudio">NeuralAudio</a> engine.</p>
<p>For Impulse Response File Convolution it use <a href="https://github.com/HiFi-LoFi/FFTConvolver">FFTConvolver</a></p>
<p>Resampling is done by <a href="https://kokkinizita.linuxaudio.org/linuxaudio/zita-resampler/resampler.html" rel="nofollow">Libzita-resampler</a></p>
<p>New in this release:</p>
<ul>
<li>fix clap plugin crash in Bitwig</li>
</ul>
<p>Neuralrack allow to load up to two model files and run them serial.<br>
The input/output could be controlled separate for each model.<br>
For tone sharping a 6 band EQ could be enabled.<br>
Additional it allow to load up a separate Impulse Response file for each output channel (stereo).<br>
Neuralrack provide a buffered Mode which introduce a one frame latency when enabled.<br>
It could move one Neural Model, or the complete processing into a background thread. That will reduce the CPU load when needed.<br>
The resulting latency will be reported to the host so that it could be compensated.</p>
<p>To build from source, please use NeuralRack-v0.4.1-src.tar.xz as only that contain the needed submodules.</p>github-actions[bot]tag:github.com,2008:Repository/840832278/latest2026-08-03T14:22:03Zjv880_juce: jv880 Latest<h2>Commits</h2>
<ul>
<li><a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/giulioz/jv880_juce/commit/4bf2beea9e0a3a914a85f08a49fabdf169d900ec/hovercard" href="https://github.com/giulioz/jv880_juce/commit/4bf2beea9e0a3a914a85f08a49fabdf169d900ec"><tt>4bf2bee</tt></a>: Fix one sample dropped per block on odd render lengths (Charles Vestal) <a href="https://github.com/giulioz/jv880_juce/pull/127" data-hovercard-type="pull_request" data-hovercard-url="/giulioz/jv880_juce/pull/127/hovercard">#127</a></li>
<li><a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/giulioz/jv880_juce/commit/e52f606ee8203d94456d85729546a6305ce9dd83/hovercard" href="https://github.com/giulioz/jv880_juce/commit/e52f606ee8203d94456d85729546a6305ce9dd83"><tt>e52f606</tt></a>: Add tools/blockdrop, the standalone harness behind the previous commit (Charles Vestal) <a href="https://github.com/giulioz/jv880_juce/pull/127" data-hovercard-type="pull_request" data-hovercard-url="/giulioz/jv880_juce/pull/127/hovercard">#127</a></li>
</ul>github-actions[bot]tag:github.com,2008:Repository/53631945/ignore-0.4.322026-08-03T11:15:23Zripgrep: ignore-0.4.32<p>ignore-0.4.32</p>BurntSushitag:github.com,2008:Repository/373897031/v3.3.02026-08-02T23:04:49Zrclip: v3.3.0<h2>What's Changed</h2>
<ul>
<li>chore: upgrade deps by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/yurijmikhalevich/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/yurijmikhalevich">@yurijmikhalevich</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5044259862" data-permission-text="Title is private" data-url="https://github.com/yurijmikhalevich/rclip/issues/298" data-hovercard-type="pull_request" data-hovercard-url="/yurijmikhalevich/rclip/pull/298/hovercard" href="https://github.com/yurijmikhalevich/rclip/pull/298">#298</a></li>
<li>feat: detect renamed and duplicate images by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/yurijmikhalevich/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/yurijmikhalevich">@yurijmikhalevich</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5044549131" data-permission-text="Title is private" data-url="https://github.com/yurijmikhalevich/rclip/issues/299" data-hovercard-type="pull_request" data-hovercard-url="/yurijmikhalevich/rclip/pull/299/hovercard" href="https://github.com/yurijmikhalevich/rclip/pull/299">#299</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/yurijmikhalevich/rclip/compare/v3.2.5...v3.3.0"><tt>v3.2.5...v3.3.0</tt></a></p>github-actions[bot]tag:github.com,2008:Repository/373897031/v3.2.52026-08-02T10:41:59Zrclip: v3.2.5<h2>What's Changed</h2>
<ul>
<li>chore(deps): bump setuptools from 82.0.1 to 83.0.0 by <a class="user-mention notranslate" data-hovercard-type="organization" data-hovercard-url="/orgs/dependabot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dependabot">@dependabot</a>[bot] in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4949813430" data-permission-text="Title is private" data-url="https://github.com/yurijmikhalevich/rclip/issues/293" data-hovercard-type="pull_request" data-hovercard-url="/yurijmikhalevich/rclip/pull/293/hovercard" href="https://github.com/yurijmikhalevich/rclip/pull/293">#293</a></li>
<li>chore(deps): bump pillow from 12.2.0 to 12.3.0 by <a class="user-mention notranslate" data-hovercard-type="organization" data-hovercard-url="/orgs/dependabot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dependabot">@dependabot</a>[bot] in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4938393981" data-permission-text="Title is private" data-url="https://github.com/yurijmikhalevich/rclip/issues/292" data-hovercard-type="pull_request" data-hovercard-url="/yurijmikhalevich/rclip/pull/292/hovercard" href="https://github.com/yurijmikhalevich/rclip/pull/292">#292</a></li>
<li>fix: daily macOS CI test by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/yurijmikhalevich/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/yurijmikhalevich">@yurijmikhalevich</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5016723603" data-permission-text="Title is private" data-url="https://github.com/yurijmikhalevich/rclip/issues/296" data-hovercard-type="pull_request" data-hovercard-url="/yurijmikhalevich/rclip/pull/296/hovercard" href="https://github.com/yurijmikhalevich/rclip/pull/296">#296</a></li>
<li>feat: enable daily rclip testing on brew for Linux by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/yurijmikhalevich/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/yurijmikhalevich">@yurijmikhalevich</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5018197610" data-permission-text="Title is private" data-url="https://github.com/yurijmikhalevich/rclip/issues/297" data-hovercard-type="pull_request" data-hovercard-url="/yurijmikhalevich/rclip/pull/297/hovercard" href="https://github.com/yurijmikhalevich/rclip/pull/297">#297</a></li>
<li>feat: let the user adjust max image size + fix potential OOM on low-RAM machines by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/yurijmikhalevich/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/yurijmikhalevich">@yurijmikhalevich</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4712795692" data-permission-text="Title is private" data-url="https://github.com/yurijmikhalevich/rclip/issues/291" data-hovercard-type="pull_request" data-hovercard-url="/yurijmikhalevich/rclip/pull/291/hovercard" href="https://github.com/yurijmikhalevich/rclip/pull/291">#291</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/yurijmikhalevich/rclip/compare/v3.2.4...v3.2.5"><tt>v3.2.4...v3.2.5</tt></a></p>github-actions[bot]tag:github.com,2008:Repository/1238504280/v2.5.52026-08-02T05:25:54Zaria2-next: v2.5.5 - Runtime BitTorrent Endpoint Control<h2>Breaking Changes</h2>
<p><code>bt-external-ip</code> is now session-wide and can no longer be configured per download or through input-file entries.</p>
<h2>Summary</h2>
<p>This release adds live BitTorrent listener rebinding and consistent external endpoint announcements without interrupting established peer connections.</p>
<h3>Added</h3>
<ul>
<li>Added runtime <code>listen-port</code> changes through <code>aria2.changeGlobalOption</code>.</li>
<li>Added <code>bt-external-port</code> for NAT and port-forwarding configurations.</li>
<li>Added <code>aria2.getBtEndpoint</code> to report active local and advertised endpoints.</li>
</ul>
<h3>Changed</h3>
<ul>
<li>Tracker, DHT, and BEP 10 announcements now refresh after endpoint changes.</li>
<li>Local Peer Discovery continues to publish the actual local listener port.</li>
<li>External IP configuration is validated and managed globally.</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Failed listener replacements now preserve the previous working listener.</li>
<li>Endpoint changes during tracker activity are announced immediately after the active request completes.</li>
</ul>
<h3>Downloads</h3>
<table>
<thead>
<tr>
<th>Platform</th>
<th>Download</th>
</tr>
</thead>
<tbody>
<tr>
<td>Linux x86_64</td>
<td><code>aria2-next-2.5.5-linux-x86_64</code></td>
</tr>
<tr>
<td>Linux ARM64</td>
<td><code>aria2-next-2.5.5-linux-aarch64</code></td>
</tr>
<tr>
<td>macOS Apple Silicon</td>
<td><code>aria2-next-2.5.5-macos-arm64</code></td>
</tr>
<tr>
<td>macOS Intel</td>
<td><code>aria2-next-2.5.5-macos-x86_64</code></td>
</tr>
<tr>
<td>Windows x86_64</td>
<td><code>aria2-next-2.5.5-windows-x86_64.exe</code></td>
</tr>
<tr>
<td>Windows ARM64</td>
<td><code>aria2-next-2.5.5-windows-arm64.exe</code></td>
</tr>
<tr>
<td>Android ARM64</td>
<td><code>aria2-next-2.5.5-android-arm64</code></td>
</tr>
<tr>
<td>Checksums</td>
<td><code>aria2-next-2.5.5-checksums.sha256</code></td>
</tr>
</tbody>
</table>AnInsomniacytag:github.com,2008:Repository/1305551246/v1.72026-08-01T20:59:10Zgander: Gander 1.7<p>Mostly things people asked for after the Show HN.</p>
<p><strong>PDF zoom now goes to 10x</strong> instead of 3x. The old limit was a library default I had never overridden, and it was not enough to read something small on a full page, like a QR code on a ticket. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5029046771" data-permission-text="Title is private" data-url="https://github.com/mokshablr/gander/issues/2" data-hovercard-type="issue" data-hovercard-url="/mokshablr/gander/issues/2/hovercard" href="https://github.com/mokshablr/gander/issues/2">#2</a>, thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/neuos/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/neuos">@neuos</a>)</p>
<p><strong>OpenDocument spreadsheets (.ods) now show up in Open-with.</strong> They already rendered fine, but the MIME type was never registered, so tapping an .ods in a file manager did not offer Gander. Opening one from inside the app always worked. (thanks to sgc on Hacker News)</p>
<p><strong>Screen reader support.</strong> Someone asked how Gander handles accessibility, I went and checked, and the answer was "not well". Now the back button, the photo viewer, web-rendered images and the file rows on the home screen are all labelled, and the search match count is announced as "Match 2 of 7" rather than "two sevenths". (thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/FreedomBen/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/FreedomBen">@FreedomBen</a> for asking)</p>
<p>Still honest about what is missing: PDFs give a screen reader nothing at all, because the renderer produces bitmaps with no text layer. That is the same reason you cannot copy text out of a PDF or search inside one. Fixing it properly means changing the PDF library, which is a bigger job.</p>
<h3>Install</h3>
<p><code>Gander-1.7-arm64.apk</code> fits practically every phone from 2017 onward. Use the universal build for very old or x86 devices.</p>
<p>Verify before installing if you like. Signing certificate SHA-256:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="5B:5C:F6:4A:94:23:7C:D5:F0:E0:85:76:00:38:BC:1C:EB:DF:18:DA:BA:5C:B3:EA:CA:7C:15:9F:22:A7:E2:4B"><pre class="notranslate"><code>5B:5C:F6:4A:94:23:7C:D5:F0:E0:85:76:00:38:BC:1C:EB:DF:18:DA:BA:5C:B3:EA:CA:7C:15:9F:22:A7:E2:4B
</code></pre></div>mokshablrtag:github.com,2008:Repository/348053395/20.0.02026-08-01T20:41:20ZConvertWithMoss: 20.0.0<ul>
<li>Many thanks to Douglas Carmichael for plenty of contributions and fixes!</li>
<li>Many thanks to David García Goñi for providing specifications of the E-mu formats and refined Kurzweil specifications!</li>
<li>Many thanks to Linus Wileryd for the improved icon set!</li>
<li>New: Added support for the Arturia Synclavier V format (reading and writing of SYNX preset and bank exports; partials which play a sound file become sample zones).</li>
<li>New: Added support for the E-mu Emulator III/IIIX/ESI bank format (E3B, E3X, ESI).</li>
<li>New: Added support for the E-mu Emulator IV bank format (E4B). Banks can also be read directly from CD-ROM and hard disk images of the EOS samplers (ISO, IMG, HDA), including via the ISO/IMG source format. New: Writing creates a bank as a ready-to-use CD-ROM image for SCSI CD-ROM emulators (e.g. ZuluSCSI), which is the only way to load banks on units running EOS versions before 4.7. Written banks have not been tested on real hardware yet.</li>
<li>New: Added support for the E-mu Emulator X format (EXB banks with their EBL sample pool).</li>
<li>New: Added support for the Roland S-550 CD-ROM format.</li>
<li>New: Added support for the Roland SP-404MK2 format (reading and writing of projects; each bank of pads becomes a multi-sample).</li>
<li>New: When a converted preset plays its samples an octave or more from the middle of the keyboard (common for vintage phrase and vocal presets, which were triggered from drum machines rather than played on keys), a log line names the root it plays at, so the faithful mapping is not mistaken for a conversion error.</li>
<li>User Interface
<ul>
<li>New: There is now a toggle switch before the source field to switch between batch conversion (as it worked before) or only picking a single file to convert. Each mode keeps a history of its own, which is exchanged along with the entered path when the toggle is used.</li>
<li>New: A source format where one file contains several presets - a bank, a disk image or a library - has a <em>Contents...</em> button, which shows all presets found in the source as a tree of their file and their containers. Each entry shows its number of zones, its key range and its category, so that an unknown bank can be explored, and only the ticked presets are converted. One note of the preset highlighted in the <em>Contents...</em> dialog can be played with the <em>Play</em> button or a double-click. It is rendered from the preset as it was read - amplitude and filter envelopes, filter, pitch and volume LFOs, velocity and panning - so it tells what the conversion will produce, which allows to pick the presets of an unknown bank by ear. This works for every source format, since it renders the model and not the format.</li>
<li>New: The <em>Play</em> button plays the note of a sample root close to the keyboard middle, so that phrase and vocal presets are heard as they were recorded.</li>
<li>New: Added tooltips to format lists to be able to see the full text of an entry.</li>
</ul>
</li>
<li>Command Line Interface
<ul>
<li>New: One or more source files can be given instead of the source folder, which converts only these files (e.g. <code>ConvertWithMoss -s exs24 -d 1010music MySampler/Piano*.exs Output</code>). The last given path stays the destination folder.</li>
</ul>
</li>
<li>Backend
<ul>
<li>New: Added support for a LFO (low frequency oscillator) modulating pitch (vibrato) with its rate, depth and delay: DecentSampler, DLS, Renoise, SFZ, SoundFont 2. Other formats pending.</li>
<li>New: Added support for a LFO modulating the volume (tremolo) with its rate, depth and delay: DecentSampler, DLS, Renoise, SFZ, SoundFont 2. Other formats pending.</li>
<li>New: The Korg KSC/KMP/KSF, Kurzweil K2x00, Roland MV-8000 and Roland ZEN-Core destinations have an option to shorten a name to its last separated segment for the short name field of the device (e.g. 'Greek Bazouki - Dark Tremolo' becomes 'Dark Tremolo'), which otherwise cuts off exactly the part that tells the presets apart. Disabled by default.</li>
<li>New: Added more instrument names to the category detector.</li>
<li>Fixed: A destination which cannot write what was asked for wrote nothing at all: the sources were read, collected and then silently dropped, since creating a library or a performance is an empty operation for a format which does not support it. E.g. converting 175 Elektron Tonverk presets to Waldorf QPAT with '-l MyLib' finished with an empty output folder, and Kontakt multis to QPAT with '-t performance' did the same. The command line now fails with an error message before the detection starts. The user interface is not affected, since it only offers the output types which the destination supports.</li>
<li>Fixed: Detecting a source which contains many presets was dominated by a fixed 10 millisecond pause taken after every single detected preset. A CD-ROM image of an E-mu sampler with 812 presets needed 11 seconds, of which 8 were that pause; two of them with 2339 presets needed 36 seconds. The pause is now taken every 64 presets, which keeps a cancellation responsive but takes the two images down to 1.4 seconds.</li>
</ul>
</li>
<li>1010music blackbox / bento
<ul>
<li>Fixed: The loop cross-fade of a blackbox pad was read from the loop-end attribute instead of the fade-amount attribute - virtually every looped pad got a cross-fade spanning the entire loop, which destinations that bake cross-fades into the audio smeared audibly.</li>
<li>Fixed: A performance instrument on OMNI was written into a bento project with MIDI input channel 'Off', so the track received no MIDI at all - the same defect was fixed for the blackbox in 19.1.0.</li>
<li>Fixed: The loop type and cross-fade of a bento cell were assigned from themselves instead of the cell's default loop - a ping-pong loop read as a forward loop.</li>
<li>Fixed: The sample length attribute of a bento cell was treated as an absolute end position although it is the play-back length (the blackbox reading is correct) - a cell with a moved sample start lost that many frames from its end.</li>
<li>Fixed: The root velocity written into a bento project was half of the velocity range's width instead of its mid-point, which for a layer of 80..127 lies outside of the layer.</li>
</ul>
</li>
<li>Ableton
<ul>
<li>Fixed: An unset envelope start or end level was written as 1.0 although Live's default is silence - a slow-attack pad converted with no swell at all (the envelope ramped from full to full), and unset pitch-envelope levels became a full-depth offset. Unset start/end levels are now written as 0, unset hold/sustain levels as 1.</li>
<li>Fixed: The sign of the filter and pitch (aux) envelope amounts was stripped when reading, so downward sweeps inverted - converting an ADV with a negative filter envelope back to ADV flipped it to positive.</li>
<li>Fixed: The detune of the sustain loop was read from the multi-sample part (which is the zone tuning, already applied) instead of the sustain loop element, so the zone detune was applied twice after a round trip.</li>
</ul>
</li>
<li>Akai AKP/AKM
<ul>
<li>Fixed: The pitch bend range was passed as semitones into the model's cents field, so the bend wheel effectively did nothing on converted programs.</li>
<li>Fixed: The volume of a multi part was multiplied onto the dB gain of the zones (a no-op for 0dB zones) instead of being added as a dB offset, and the part panning was scaled twice as wide as the field allows.</li>
</ul>
</li>
<li>Akai MPC
<ul>
<li>New: The destination can now write MPC 3 track files (*.xty) with their '_[TrackData]' sample folder as an alternative to MPC 2 keygroup folders (new 'Output Format' option, issue <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3733054208" data-permission-text="Title is private" data-url="https://github.com/git-moss/ConvertWithMoss/issues/117" data-hovercard-type="issue" data-hovercard-url="/git-moss/ConvertWithMoss/issues/117/hovercard" href="https://github.com/git-moss/ConvertWithMoss/issues/117">#117</a>). The files replicate the complete track structure of MPC firmware 3.7 from a template - the firmware's own reader is strict about its serialized object tree - and only the multi-sample fields are patched in.</li>
<li>New: The volume of a MPC 3 layer (an object holding the linear gain coefficient) is now read.</li>
<li>Fixed: The pitch bend range of a MPC 3 track or project was read as cents but the file stores semitones, so the default of 2 semitones became 2 cents. The fraction of an octave stored next to it confirms the unit.</li>
<li>Fixed: The tuning of a MPC 3 layer was read from the coarse and fine tune of its instrument, which the caller had already applied - the instrument tuning was doubled and the layer's own tuning was lost.</li>
</ul>
</li>
<li>Akai MPC2000/3000
<ul>
<li>Fixed: The tune of a program pad and of a SND sample were read unsigned - every negatively tuned pad of e.g. the factory library CD came out drastically sharp (a -0.05 semitone pad read as more than +600 semitones and was clamped to +12).</li>
</ul>
</li>
<li>Akai MPC60
<ul>
<li>Fixed: The 12 bit sample data was unpacked with the low nibble at 1/16 of its weight and the result byte-swapped, which reduced the audio to roughly 8 bit quality with a signal-correlated error. The 12 bits are now left-justified as in the reference implementation.</li>
</ul>
</li>
<li>Akai S900/S950
<ul>
<li>Fixed: The fractional part of the nominal pitch was applied with an inverted sign: a sample recorded e.g. a quarter tone sharp was played another quarter tone sharp instead of being corrected. Also the loudness offset was read unsigned, so any attenuation became a boost.</li>
</ul>
</li>
<li>Akai S1000/S3000
<ul>
<li>Fixed: The pitch bend range was passed as semitones into the model's cents field - the bend wheel effectively did nothing.</li>
<li>Fixed: The program volume (a 0..1 value) was written directly as the dB gain of every zone, overwriting the per-layer loudness set before - the velocity-layer balance of every program was discarded.</li>
<li>Fixed: The fraction byte of the keygroup and keygroup-sample fixed point tunings was treated as signed, so negative fine tunes came out about a semitone flat (e.g. -0.05 semitones read as -1.05). The sample header tuning in literal cents is no longer rescaled.</li>
</ul>
</li>
<li>Arturia Synclavier V
<ul>
<li>New: Added an option to write the samples additionally as plain WAV files in the layout of the sample pool ('User/<preset>'): the application's import loads the embedded samples but does not copy them into its sample pool, so imported presets loaded in a later session report them as missing. Merging the written 'User' folder into the pool makes them permanent.</li>
</ul>
</li>
<li>CWITEC TX16Wx
<ul>
<li>Fixed: The wave IDs of a written program restarted at 0 for every group, although they must be unique across the program - in a program with several groups all regions resolved to the waves of the last group when read (also in the TX16Wx plug-in itself). Additionally the reader now creates an own zone object per region, since several regions may reference the same wave; before, such regions shared one object and overwrote each other's key and velocity ranges.</li>
<li>Fixed: The depth of a pitch envelope was written in cents of the full model depth (12000 cents) but read as a fraction of 4800 cents, inflating the depth 2.5 times in a round trip.</li>
<li>Fixed: Cutoff Key-Tracking is now adjusted to 24000ct maximum range (was only 1200ct maximum).</li>
</ul>
</li>
<li>DecentSampler
<ul>
<li>Fixed: A volume value without a dB unit is a linear amplitude but was scaled as 'value times 6dB' - volume="0.5" (-6dB) read as +3dB and an explicit volume="1.0" differed from an absent attribute.</li>
</ul>
</li>
<li>Disting EX
<ul>
<li>Fixed: The creator names round-robin samples with an '_RR' suffix but the detector's file name pattern only accepted '_R' - such file names did not match at all, so the note and velocity information of every round-robin sample was lost when reading. Both spellings are accepted now.</li>
</ul>
</li>
<li>DLS
<ul>
<li>Fixed: The pitch envelope was built from the times of EG1 (the amplitude envelope) instead of its own EG2 times.</li>
<li>Fixed: The fine tune of a region (stored in cents) was divided by 32768 as if it were a semi-tone fraction - a -50 cent detune shrank to -0.15 cents, erasing the detune of every region.</li>
<li>Fixed: The signed 16 bit accessor of the RIFF chunk framework read big-endian although RIFF is little-endian throughout; the region fine tune (its only user) additionally came out byte-swapped.</li>
</ul>
</li>
<li>Kurzweil K2x00
<ul>
<li>Fixed: An envelope stage with both a zero time and a zero level is unused on the device and keeps the level of the previous stage, but was read literally. A program which leaves its decay stage unused - like the reported FM basses, which sustain at the attack level and only fade out with a long release - was therefore converted to a silent preset. Additionally, the attack velocity is now converted as a cutoff modulation source of the F1 slot in both directions; the same programs open their nearly closed cutoff by velocity and converted very dull without it.</li>
</ul>
</li>
<li>Logic EXS24
<ul>
<li>Fixed: The velocity sensitivity of the volume envelope was read and written inverted: a file with full sensitivity (-60dB, which is also the format default) was read as no velocity response at all and vice versa. Since both directions were inverted, the defect was invisible in a round trip but e.g. a written EXS did not respond to velocity in Logic.</li>
<li>Fixed: The parameters with IDs above 255 (among them the envelope delay and attack slope) were written in a layout which neither the reader nor Logic understands and their padding leaked 4 additional zero bytes per unused slot into the old parameter block - the affected parameters were lost from every written file.</li>
<li>Fixed: The velocity modulation of the filter cutoff was formatted but never added to the written file.</li>
<li>Fixed: The panning of a group was decoded twice, so every left-panned group ended up hard left (the flattened per-zone panning was correct, only the group offset was affected).</li>
</ul>
</li>
<li>NI Kontakt
<ul>
<li>Fixed: The filter cutoff of a Kontakt 1 file is stored logarithmically normalized to [0..1] but was read as a frequency in Hertz - a mid-range filter became a low-pass below 1 Hz and the converted preset was practically silent. Writing was already correct, which is why round trips through ConvertWithMoss hid it.</li>
<li>Fixed: The upper key limit of an instrument in a Kontakt 1 multi (NKM) was stored as the lower clip key - the clip range became [high..127] and destinations which apply it dropped or mis-clipped most zones of a performance conversion.</li>
<li>Fixed: The upper velocity crossfade of a written Kontakt 1 file was calculated from the lower velocity crossfade value.</li>
<li>Fixed: The loop cross-fade of a written Kontakt 1 file was the cross-fade fraction cast to a whole number, so every cross-fade became 0 samples. The field is a length in samples.</li>
<li>Fixed: The lower velocity crossfade of a Kontakt 4.2/5+ zone was read from the lower key crossfade field.</li>
<li>Fixed: Muted and soloed groups were ignored when reading Kontakt 4.2/5+ files - the zones of muted groups (often alternate articulations parked by the sound designer) stacked onto the active ones. Zones of muted groups are now skipped, and if any group is soloed only the soloed groups are converted.</li>
</ul>
</li>
<li>NI Maschine
<ul>
<li>Fixed: The velocity to volume amount was written from the amplitude envelope modulation depth instead of the velocity modulation amount (both the Maschine 1 and 2 writers) - a source without velocity response became fully velocity sensitive.</li>
</ul>
</li>
<li>Reason NN-XT
<ul>
<li>Fixed: The velocity fade-out was read raw although it is stored inverted (0x80 = off, otherwise 127 minus the fade range, as the writer encodes it) - a zone without a fade read as a fade over the whole velocity range and an SXT round trip turned 'off' into a full-range fade.</li>
</ul>
</li>
<li>Roland S-5xx
<ul>
<li>Fixed: Removed Null-characters from description texts.</li>
<li>Fixed: The TVF key follow used an integer division, so any tracking below the maximum was rounded down to none; the value was also read unsigned, so negative tracking was impossible.</li>
<li>Fixed: The unison detune of a patch (documented -50..50 cents) was read unsigned, so a negative detune turned into more than 2 semitones upwards.</li>
</ul>
</li>
<li>Roland S-7xx
<ul>
<li>Fixed: The three panning stages (patch, partial and sample mix) were multiplied instead of added, so a centered stage - the default - erased the panning of all others: the stereo image of every factory patch built from hard-panned sample pairs collapsed to doubled mono, and two same-side pans flipped to the other side. On a library CD-ROM all 3765 panned zones were read dead center.</li>
<li>Fixed: Five signed parameters (the TVF envelope depth, the pitch envelope depth, the cutoff velocity sensitivity, the cutoff key follow and the TVA level key follow, all -63..63) were read unsigned - a negative value such as a downward filter sweep of -20 became +3.75 with the direction inverted.</li>
<li>Fixed: The envelope time law missed that 0 means instant, so every stage was at least 302 ms long - including a fabricated 302 ms delay before every note, which 3204 zones of the same CD-ROM carried into the converted files. Envelope times which are really programmed are unchanged.</li>
<li>Fixed: A loop cross-fade was fabricated from the fractional address bytes of the loop points; the S-7xx has no loop cross-fade parameter.</li>
</ul>
</li>
<li>Roland ZEN-Core
<ul>
<li>Fixed: A bank (a SVZ which holds one tone per preset, as written by the preset library destination) was read as one single multi-sample: all samples of the file were merged into it and only the shaping of its first tone was applied, so every preset but the first was lost. Each tone is now read as a multi-sample of its own, built from the multi-samples which its partials play. A SVZ with one tone is unchanged.</li>
<li>Fixed: The pan and the velocity window of the tone partials were ignored when reading, so a stereo instrument (two hard-panned partials over two mono multi-samples) collapsed into stacked centered zones and velocity layers all sounded at once. Each partial's zones now carry its pan and velocity range; a partial whose right wave differs from its left one is read as a stereo pair.</li>
<li>Fixed: The levels of the pitch and filter (TVF) envelopes are signed 16 bit values but were read unsigned, so e.g. a pitch envelope starting at -1023 (a classic pitch drop) read as starting at the positive maximum.</li>
</ul>
</li>
<li>Renoise
<ul>
<li>Fixed: A modulation set was created for every key zone. Now zones with identical modulation share one set, which gives the usual single instrument-wide modulation set; additional sets are only created for zones which genuinely modulate differently.</li>
<li>New: A pitch LFO (vibrato) is read from and written as a LFO modulation device (waveform, rate, depth and onset time; the value curves were calibrated against Renoise 3.5.4).</li>
<li>New: A volume LFO (tremolo) is read from and written as a LFO modulation device targeting the volume; since the volume chain is linear, the depth in decibels is expressed as the linear swing whose lowest point lies that many decibels below full volume.</li>
<li>Fixed: The depth of a pitch envelope was read as the model maximum of 120 semitones instead of the pitch modulation range of the modulation set (12 semitones by default) and was dropped entirely when writing - a 2 semitone pitch envelope e.g. inflated to 120 semitones in a round trip. The depth is now read from and written as the pitch modulation range of the mixer device, which also keeps the pitch LFO consistent.</li>
</ul>
</li>
<li>Sample Files
<ul>
<li>Fixed: When building a multi-sample from plain sample files, an embedded root note (e.g. from the WAV 'smpl' chunk) was ignored since the key mapping ran before the file metadata was loaded - file name digits won instead ("Marimba-01..03" mapped to the MIDI notes 1..3) or the detection failed although every file carries its root. The file's own root note now takes precedence over the name.</li>
</ul>
</li>
<li>SFZ
<ul>
<li>Fixed: The key and velocity crossfade ranges (xfin/xfout) were written outside of the zone's range, where the zone does not even play - and for zones at the edges the 0/127 clamps collapsed the fade range entirely (e.g. a fade at the top of a full-velocity zone was written as the empty range 127..127 and lost). The fades are now anchored inside the zone's range.</li>
<li>Fixed: A negative filter envelope depth (a downward sweep, e.g. of an 808-style kick) was silently dropped when writing; the fileg_depth opcode is now also written for negative depths.</li>
</ul>
</li>
<li>SoundFont 2
<ul>
<li>Fixed: Generators which only appear on the preset level were dropped entirely when the instrument level did not carry the same generator, although the specification defines them as offsets to the default value in that case. A preset whose global zone transposes a plain instrument down an octave was read an octave too high, preset-level attenuation and envelope offsets vanished, and a preset-level filter offset never created a filter. Such generators are routine in commercial and General MIDI SoundFonts.</li>
<li>Fixed: A preset-level generator offset was added without the signed conversion when the instrument level carried the generator and the value was looked up unsigned - a negative offset (e.g. lowering the filter cutoff) was added as a huge positive number.</li>
<li>Fixed: The filter resonance was read as centibels divided by 100 instead of 10, so every resonance came out ten times too small (20 dB read as 2 dB) and each SoundFont-to-SoundFont round trip divided it by ten again. Writing was already correct.</li>
<li>Fixed: Negative pitch and filter envelope modulation amounts (downward sweeps, e.g. the pitch drop of an 808-style kick) were dropped when writing; both generators are signed in the format and reading them was already correct.</li>
</ul>
</li>
<li>Synclavier Regen
<ul>
<li>Fixed: A source with more than 12 groups lost everything beyond the first 12 - many sources deliver one group per sample zone, so nearly the whole key map was dropped and large multi-samples converted silent. Groups whose zones share the same velocity range and do not overlap on the keyboard are now packed into shared partials (a partial holds a whole key map in its patch list), so such sources fit completely; only genuine layers beyond 12 are still dropped.</li>
</ul>
</li>
<li>Synthstrom Deluge
<ul>
<li>Fixed: The velocity sensitivity of the volume (the velocity to volume patch cable) was read into and written from the amplitude envelope modulation depth instead of the velocity modulation amount - a source without velocity response became fully velocity sensitive and vice versa.</li>
<li>Fixed: An instrument without loops which is not a one-shot was written with the loop mode ONCE, which ignores a note-off on the device (and was read back as a one-shot). Such instruments are now written with CUT, which stops the play-back on a note-off.</li>
<li>Fixed: The transpose and detune of a kit drum were discarded when reading a kit, so pitched kit drums lost their tuning even in a Deluge to Deluge conversion.</li>
</ul>
</li>
<li>TAL Sampler
<ul>
<li>Fixed: The creator omitted the volume attribute for 0dB zones but the reader decodes a missing attribute as about -21.8dB, so every zone of a read-back .talsmpl dropped by that amount. The volume is now always written and the reader's default is the raw value which represents 0dB.</li>
</ul>
</li>
<li>Waldorf Quantum/Iridium
<ul>
<li>New: A source which carries its bank in front of its name is written without it in the preset name, since the device shows the bank in a field of its own. The file name keeps the full name. An explicit Bank from the settings replaces the source's bank, in which case the name keeps it - but only as long as it fits into the 32 character name field of the device. Everything beyond that is cut off, which removes exactly the part that tells the presets of one bank apart: 'Full Arco String - Arco Strings Lo' and '... Hi' both ended up as 'Full Arco String - Arco Strings' on the display. Such a name is now written without the bank of the source, which the file name still carries.</li>
<li>New: A 'Shorten file names to the displayed preset name' option names the written file after the preset name which the device shows and keeps the whole file name within 40 characters (the import screen of an Iridium MK2 displays about 43 and cuts off the rest), e.g. '05000-Full Arco String - Arco Strings Lo.qpat' (45 characters, clipped on the device) becomes '05000-Arco Strings Lo.qpat'. Disabled by default.</li>
<li>Fixed: The amount of a matrix entry modulating the oscillator pitch (the pitch envelope) was read with the wrong offset: a positive amount was read as a negative one (e.g. +50% as -25%) and +100% was dropped entirely.</li>
<li>Fixed: The velocity modulation of the volume was written from the amplitude envelope modulation depth instead of the velocity modulation amount. E.g. a source with a velocity amount of 0% was written as +100%.</li>
</ul>
</li>
<li>WAV
<ul>
<li>Fixed: The sample chunk stores a note with a negative fine tuning as the next higher unity note with the complementary positive fraction, but the correction was applied in the wrong direction on both sides: reading added 1 to the unity note where 1 must be subtracted and writing subtracted where it must add. The two errors cancelled between ConvertWithMoss' own reader and writer, which is why round trips never showed it - but any WAV from another tool whose pitch fraction is above 50 cents was read two semitones off, and every written WAV with a negative fine tuning carried a unity note two semitones below what conforming samplers expect.</li>
<li>Fixed: A sample chunk whose pitch fraction is above 50 cents overwrote the root key which the preset format itself supplied (e.g. the root of a Bitwig multisample's XML), since the fine-tuning merge was not gated on the root being unset - combined with the direction error above, such a zone ended up more than two octaves off. The root key and fine tuning of the sample chunk are now only used when the format does not provide a root of its own.</li>
</ul>
</li>
<li>Yamaha YSFC
<ul>
<li>Fixed: Envelope times were quantized to whole seconds when writing, since the lookup into the time table compared against truncated table entries - every sub-second time became about 0.9 seconds (e.g. a release of 0.3s tripled) in all written amplitude, filter and pitch envelopes.</li>
<li>Fixed: The tuning of a zone was written to both the keybank and the element although the two stack on the device (and when reading), which doubled the detune of every written zone. The element tuning is now left neutral.</li>
<li>Fixed: When reading performances, a performance was added to the result once per part, so a multi-part performance was converted multiple times.</li>
</ul>
</li>
</ul>git-mosstag:github.com,2008:Repository/13807606/v0.74.22026-08-01T00:17:03Zfzf: 0.74.2<ul>
<li>Performance optimizations for short queries
<ul>
<li>Short queries scan the largest candidate sets, and the first keystroke scans the whole input</li>
<li>Single-character queries are up to 2.4x faster</li>
<li>Two-character queries are up to 1.4x faster</li>
</ul>
</li>
<li>Faster sorting of search results, skipping redundant radix passes</li>
<li><code>change-border-label</code> and <code>transform-border-label</code> now work on the native border of a tmux or Zellij floating pane</li>
<li>Fixed Kitty graphics sequences from a preview command being taken by tmux as pane title requests</li>
<li>Fixed an image at the top of the preview being torn by <code>--preview-window ~N</code></li>
<li>Fixed nondeterministic match highlight positions</li>
<li>Fixed signal and resize handlers persisting after <code>Run()</code> returns when fzf is used as a library</li>
<li>fzf now detects terminal resize on Windows in <code>--height</code> mode (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4367159252" data-permission-text="Title is private" data-url="https://github.com/junegunn/fzf/issues/4790" data-hovercard-type="issue" data-hovercard-url="/junegunn/fzf/issues/4790/hovercard" href="https://github.com/junegunn/fzf/issues/4790">#4790</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Cyrus580529/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Cyrus580529">@Cyrus580529</a>)</li>
<li>fish: fixed history command being affected by user initialization scripts, and improved timestamp colors in CTRL-R (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4920072223" data-permission-text="Title is private" data-url="https://github.com/junegunn/fzf/issues/4862" data-hovercard-type="issue" data-hovercard-url="/junegunn/fzf/issues/4862/hovercard" href="https://github.com/junegunn/fzf/issues/4862">#4862</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bitraid/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bitraid">@bitraid</a>)</li>
<li>zsh: fixed CTRL-R not propagating the exit status of fzf when perl is available (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4981492257" data-permission-text="Title is private" data-url="https://github.com/junegunn/fzf/issues/4871" data-hovercard-type="issue" data-hovercard-url="/junegunn/fzf/issues/4871/hovercard" href="https://github.com/junegunn/fzf/issues/4871">#4871</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/LangLangBart/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/LangLangBart">@LangLangBart</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Toliak/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Toliak">@Toliak</a>)</li>
<li>zsh: fixed <code>chpwd</code> hook functions being called twice by ALT-C (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5016739506" data-permission-text="Title is private" data-url="https://github.com/junegunn/fzf/issues/4879" data-hovercard-type="issue" data-hovercard-url="/junegunn/fzf/issues/4879/hovercard" href="https://github.com/junegunn/fzf/issues/4879">#4879</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/LangLangBart/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/LangLangBart">@LangLangBart</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/lucc/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/lucc">@lucc</a>)</li>
</ul>junegunntag:github.com,2008:Repository/6201092/git-release2026-07-31T16:56:37Zmpv: development build<p>Automated development build of the latest <code>master</code> branch.</p>
<ul>
<li>Version: <code>v0.41.0-918-g1d1568614</code></li>
<li>Commit: <a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/mpv-player/mpv/commit/1d15686142fd5d53c954aab7526cedab05ef9dc3/hovercard" href="https://github.com/mpv-player/mpv/commit/1d15686142fd5d53c954aab7526cedab05ef9dc3"><tt>1d15686</tt></a></li>
<li>Built: 2026-07-31 16:56:23 UTC</li>
</ul>
<h3>Windows</h3>
<ul>
<li><a href="https://github.com/mpv-player/mpv/releases/download/git-release/mpv-v0.41.0-dev-g1d1568614-30645369667-x86_64-pc-windows-msvc.zip">x86_64 (Clang)</a></li>
<li><a href="https://github.com/mpv-player/mpv/releases/download/git-release/mpv-v0.41.0-dev-g1d1568614-30645369667-x86_64-w64-mingw32.zip">x86_64 (GCC)</a></li>
<li><a href="https://github.com/mpv-player/mpv/releases/download/git-release/mpv-v0.41.0-dev-g1d1568614-30645369667-aarch64-pc-windows-msvc.zip">arm64 (Clang)</a></li>
<li><a href="https://github.com/mpv-player/mpv/releases/download/git-release/mpv-v0.41.0-dev-g1d1568614-30645369667-i686-w64-mingw32.zip">i686 (GCC)</a></li>
<li><a href="https://github.com/mpv-player/mpv/releases/download/git-release/mpv-v0.41.0-dev-g1d1568614-30645369667-x86_64-pc-windows-msvc-pdb.zip">x86_64 (Clang, debug symbols)</a></li>
<li><a href="https://github.com/mpv-player/mpv/releases/download/git-release/mpv-v0.41.0-dev-g1d1568614-30645369667-aarch64-pc-windows-msvc-pdb.zip">arm64 (Clang, debug symbols)</a></li>
</ul>
<h3>macOS</h3>
<ul>
<li><a href="https://github.com/mpv-player/mpv/releases/download/git-release/mpv-v0.41.0-dev-g1d1568614-30645369667-macos-15-intel.zip">x86_64 (macOS 15)</a></li>
<li><a href="https://github.com/mpv-player/mpv/releases/download/git-release/mpv-v0.41.0-dev-g1d1568614-30645369667-macos-14-arm.zip">arm64 (macOS 14)</a></li>
<li><a href="https://github.com/mpv-player/mpv/releases/download/git-release/mpv-v0.41.0-dev-g1d1568614-30645369667-macos-15-arm.zip">arm64 (macOS 15)</a></li>
<li><a href="https://github.com/mpv-player/mpv/releases/download/git-release/mpv-v0.41.0-dev-g1d1568614-30645369667-macos-26-arm.zip">arm64 (macOS 26)</a></li>
</ul>
<div class="markdown-alert markdown-alert-warning"><p class="markdown-alert-title"><svg data-component="Octicon" class="octicon octicon-alert mr-2" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path></svg>Warning</p><p>These are untested development builds of the very latest <code>master</code>.<br>
They are <strong>not</strong> official releases. For stable builds see the<br>
<a href="https://github.com/mpv-player/mpv/releases/latest">latest release</a>.</p>
</div>github-actions[bot]tag:github.com,2008:Repository/1238504280/v2.5.42026-07-31T01:11:55Zaria2-next: v2.5.4 - Android Trust and Container Permissions<h2>Breaking Changes</h2>
<p>Docker deployments must define <code>PUID</code> and <code>PGID</code>. Startup now prepares writable mounts before switching to the requested identity.</p>
<h2>Summary</h2>
<p>This release restores automatic HTTPS certificate discovery on Android and improves Docker bind-mount reliability.</p>
<h3>Changed</h3>
<p>Docker containers initialize configuration, session, and download paths using the requested numeric identity. Explicit root identities remain available with a warning.</p>
<h3>Fixed</h3>
<p>Android builds now honor <code>SSL_CERT_FILE</code> and <code>SSL_CERT_DIR</code>, then load the Termux CA bundle from <code>$PREFIX/etc/tls/cert.pem</code>.</p>
<p>TLS failures now report certificate verification details instead of a generic protocol error.</p>
<p>Docker bind mounts no longer fail when host directories initially belong to root.</p>
<h3>Downloads</h3>
<p>Release assets cover Linux x86_64 and ARM64, macOS Apple Silicon and Intel, Windows x86_64 and ARM64, Android ARM64, and SHA-256 checksums.</p>AnInsomniacytag:github.com,2008:Repository/1114168896/0.0.12026-07-30T19:21:01ZZLSpectrumEqualizer: 0.0.1<p>The first version of ZL Spectrum Equalizer is here :)</p>
<p>As this is the first version, some bugs might be expected :( So use with caution and please please please report the bugs you find (if any, hopefully none :)</p>
<p>After installation, please load the plugin in an empty DAW session and check its functionality.</p>
<blockquote>
<p>WARNING for Linux users: From (around) September this year, the installer will be built on Ubuntu 24.04, which will make it incompatible with older Linux kernel versions. See <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4676239397" data-permission-text="Title is private" data-url="https://github.com/actions/runner-images/issues/14254" data-hovercard-type="issue" data-hovercard-url="/actions/runner-images/issues/14254/hovercard" href="https://github.com/actions/runner-images/issues/14254">actions/runner-images#14254</a></p>
</blockquote>
<blockquote>
<p>WARNING for Pro Tools users: AAX will be available around the release of version 0.1.0</p>
</blockquote>
<p>Please read</p>
<p>the manual: <a href="https://zl-audio.github.io/plugins/zlspeceq/" rel="nofollow">https://zl-audio.github.io/plugins/zlspeceq/</a><br>
the plugin installation help page: <a href="https://zl-audio.github.io/help/plugin_installation/" rel="nofollow">https://zl-audio.github.io/help/plugin_installation/</a></p>github-actions[bot]tag:github.com,2008:Repository/21833183/v3.11.32026-07-30T06:04:09ZAmazeFileManager: v3.11.3<h2>What's Changed</h2>
<ul>
<li>release/4.0 to hotfix/3.11.2 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/VishnuSanal/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/VishnuSanal">@VishnuSanal</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3765790853" data-permission-text="Title is private" data-url="https://github.com/TeamAmaze/AmazeFileManager/issues/4529" data-hovercard-type="pull_request" data-hovercard-url="/TeamAmaze/AmazeFileManager/pull/4529/hovercard" href="https://github.com/TeamAmaze/AmazeFileManager/pull/4529">#4529</a></li>
<li>Proguard rules fix to include everything below org.bouncycastle.jcajce.provider.asymmetric by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/TranceLove/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/TranceLove">@TranceLove</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3774809779" data-permission-text="Title is private" data-url="https://github.com/TeamAmaze/AmazeFileManager/issues/4537" data-hovercard-type="pull_request" data-hovercard-url="/TeamAmaze/AmazeFileManager/pull/4537/hovercard" href="https://github.com/TeamAmaze/AmazeFileManager/pull/4537">#4537</a></li>
<li>Fix edit SMB connection unable to populate value to dialog by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/TranceLove/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/TranceLove">@TranceLove</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4203419460" data-permission-text="Title is private" data-url="https://github.com/TeamAmaze/AmazeFileManager/issues/4598" data-hovercard-type="pull_request" data-hovercard-url="/TeamAmaze/AmazeFileManager/pull/4598/hovercard" href="https://github.com/TeamAmaze/AmazeFileManager/pull/4598">#4598</a></li>
<li>Fixes for path traversal vulnerabilities by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/TranceLove/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/TranceLove">@TranceLove</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4139197626" data-permission-text="Title is private" data-url="https://github.com/TeamAmaze/AmazeFileManager/issues/4591" data-hovercard-type="pull_request" data-hovercard-url="/TeamAmaze/AmazeFileManager/pull/4591/hovercard" href="https://github.com/TeamAmaze/AmazeFileManager/pull/4591">#4591</a></li>
<li>Upgrade Google Play Billing library to 8.0.0 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/TranceLove/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/TranceLove">@TranceLove</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4955353529" data-permission-text="Title is private" data-url="https://github.com/TeamAmaze/AmazeFileManager/issues/4685" data-hovercard-type="pull_request" data-hovercard-url="/TeamAmaze/AmazeFileManager/pull/4685/hovercard" href="https://github.com/TeamAmaze/AmazeFileManager/pull/4685">#4685</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/TeamAmaze/AmazeFileManager/compare/v3.11.2...v3.11.3"><tt>v3.11.2...v3.11.3</tt></a></p>VishnuSanaltag:github.com,2008:Repository/1238504280/v2.5.32026-07-30T02:38:09Zaria2-next: v2.5.3 - Native Trust and Peer Control<h2>Security</h2>
<p>macOS HTTPS certificate validation now uses Apple SecTrust and the system trust store. OpenSSL remains responsible for transport and explicit custom CA files. Legacy manual hostname verification has been removed.</p>
<h2>Breaking Changes</h2>
<p>Windows now rejects unsupported custom CA files instead of silently falling back to the system trust store.</p>
<h2>Summary</h2>
<p>This release improves peer policy control, TLS verification, option compatibility, and release reliability across Linux, macOS, Windows, and Android.</p>
<h3>Added</h3>
<ul>
<li>The peer blocklist RPC atomically replaces rules, disconnects matching active peers, removes blocked candidates, and reports affected peer counts.</li>
<li><code>aria2.getVersion</code> exposes the <code>aria2-next</code> product identity and RPC contract version.</li>
<li>The <code>bt-detach-seed-only</code> input alias maps to <code>detach-share-only</code>. The <code>notice</code> log level maps to <code>info</code>.</li>
</ul>
<h3>Changed</h3>
<ul>
<li>macOS uses Apple SecTrust for default certificate verification. Linux and explicit custom CA verification use OpenSSL native chain and hostname validation.</li>
<li>macOS OpenSSL builds use stable CA and configuration paths without depending on the GitHub Actions workspace.</li>
<li>Release binaries for all seven supported targets build in parallel before publication.</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Peer RPC data distinguishes the active remote connection port from the peer-advertised listen port.</li>
<li>Peer blocklist updates immediately remove and disconnect matching peers across active BitTorrent downloads.</li>
</ul>
<h3>Downloads</h3>
<table>
<thead>
<tr>
<th>Platform</th>
<th>Download</th>
</tr>
</thead>
<tbody>
<tr>
<td>Linux x86_64</td>
<td><code>aria2-next-2.5.3-linux-x86_64</code></td>
</tr>
<tr>
<td>Linux ARM64</td>
<td><code>aria2-next-2.5.3-linux-aarch64</code></td>
</tr>
<tr>
<td>macOS Apple Silicon</td>
<td><code>aria2-next-2.5.3-macos-arm64</code></td>
</tr>
<tr>
<td>macOS Intel</td>
<td><code>aria2-next-2.5.3-macos-x86_64</code></td>
</tr>
<tr>
<td>Windows x86_64</td>
<td><code>aria2-next-2.5.3-windows-x86_64.exe</code></td>
</tr>
<tr>
<td>Windows ARM64</td>
<td><code>aria2-next-2.5.3-windows-arm64.exe</code></td>
</tr>
<tr>
<td>Android ARM64</td>
<td><code>aria2-next-2.5.3-android-arm64</code></td>
</tr>
<tr>
<td>Checksums</td>
<td><code>aria2-next-2.5.3-checksums.sha256</code></td>
</tr>
</tbody>
</table>AnInsomniacytag:github.com,2008:Repository/1061247040/v0.6.42026-07-29T13:57:41Zrsync: v0.6.4<h2>oc-rsync 0.6.4</h2>
<p>Wire-compatible with upstream rsync 3.4.4 (protocol 32).</p>
<h3>Install</h3>
<p><strong>Homebrew:</strong></p>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="brew install oferchen/rsync/oc-rsync"><pre>brew install oferchen/rsync/oc-rsync</pre></div>
<p><strong>Binary:</strong> Download the asset for your platform below.</p>
<table>
<thead>
<tr>
<th>Platform</th>
<th>Formats</th>
</tr>
</thead>
<tbody>
<tr>
<td>Linux (x86_64, aarch64)</td>
<td><code>.deb</code>, <code>.rpm</code> (with OpenSSL), static musl <code>.tar.gz</code>, <code>*-openssl.tar.gz</code></td>
</tr>
<tr>
<td>macOS (x86_64, aarch64)</td>
<td><code>.tar.gz</code></td>
</tr>
<tr>
<td>Windows (x86_64)</td>
<td><code>.tar.gz</code>, <code>.zip</code></td>
</tr>
</tbody>
</table>
<p>Linux static tarballs: <code>*-musl.tar.gz</code> (pure Rust) or <code>*-musl-openssl.tar.gz</code> (OpenSSL-accelerated checksums).</p>
<h3>Toolchain variants</h3>
<p>Each release ships three Rust-toolchain variants of every binary:</p>
<table>
<thead>
<tr>
<th>Suffix</th>
<th>Rust toolchain</th>
<th>Recommended use</th>
</tr>
</thead>
<tbody>
<tr>
<td><em>(none)</em></td>
<td>stable</td>
<td>Default. Use this.</td>
</tr>
<tr>
<td><code>-beta</code></td>
<td>Rust beta</td>
<td>Early adopters validating the next Rust release.</td>
</tr>
<tr>
<td><code>-nightly</code></td>
<td>Rust nightly</td>
<td>Performance experiments and unstable-feature testing.</td>
</tr>
</tbody>
</table>
<p>The <code>-beta</code> / <code>-nightly</code> suffix denotes the <strong>Rust toolchain</strong> the artifact was built with - it is <strong>not</strong> an indicator of oc-rsync's own release maturity (that is set in the release title and <code>README.md</code>).</p>
<hr>
<h3>Highlights</h3>
<p>See the <strong><a href="https://github.com/oferchen/rsync/blob/master/CHANGELOG.md#064---2026-07-18">v0.6.4 changelog entry</a></strong> for the full, per-category list of changes in this release (258 entries across Added / Fixed / Performance / Changed / Documentation / Testing / CI / Maintenance).</p>
<hr>
<h3>Security</h3>
<p>See <code>SECURITY.md</code> for the canonical mitigation roster and <code>docs/design/sec-1-completion-summary-2026-05-22.md</code> for the SEC-1 sub-task (<code>.a</code>-<code>.p</code>) ship state.</p>
<p><strong>Active mitigations</strong></p>
<table>
<thead>
<tr>
<th>CVE</th>
<th>Description</th>
<th>Status</th>
<th>Cite</th>
</tr>
</thead>
<tbody>
<tr>
<td><a title="CVE-2026-29518" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-pfv9-gp3h-73xv/hovercard" href="https://github.com/advisories/GHSA-pfv9-gp3h-73xv">CVE-2026-29518</a></td>
<td>Path traversal via symlink race</td>
<td>Fixed</td>
<td>SEC-1.a-q2, <code>SECURITY.md</code></td>
</tr>
<tr>
<td><a title="CVE-2026-43619" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-pwrq-5rj3-c43m/hovercard" href="https://github.com/advisories/GHSA-pwrq-5rj3-c43m">CVE-2026-43619</a></td>
<td>Privilege escalation via TOCTOU</td>
<td>Fixed</td>
<td>SEC-1.a-q2, <code>SECURITY.md</code></td>
</tr>
</tbody>
</table>
<p><strong>Defense-in-depth.</strong> This release ships the SEC-1 <code>*at</code> syscall chain (<code>fstatat</code>, <code>unlinkat</code>, <code>mkdirat</code>, <code>symlinkat</code>, <code>linkat</code>, <code>fchmodat</code>, <code>fchownat</code>, <code>utimensat</code>, <code>renameat</code>) routed through a per-transfer <code>DirSandbox</code> carrier with <code>openat2(RESOLVE_BENEATH | RESOLVE_NO_SYMLINKS)</code> runtime detection. The optional <code>landlock</code> Cargo feature (Linux 5.13+) layers kernel-enforced <code>PathBeneath</code> allowlisting on top; daemons on older kernels run with the <code>*at</code> chain as the sole TOCTOU defense, which is itself sufficient against <a title="CVE-2026-29518" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-pfv9-gp3h-73xv/hovercard" href="https://github.com/advisories/GHSA-pfv9-gp3h-73xv">CVE-2026-29518</a> / <a title="CVE-2026-43619" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-pwrq-5rj3-c43m/hovercard" href="https://github.com/advisories/GHSA-pwrq-5rj3-c43m">CVE-2026-43619</a>.</p>
<h3>Platform support tiers</h3>
<table>
<thead>
<tr>
<th>Platform</th>
<th>Tier</th>
<th>Notes</th>
</tr>
</thead>
<tbody>
<tr>
<td>Linux x86_64 / aarch64</td>
<td><strong>Tier 1</strong></td>
<td>Full <code>io_uring</code> + <code>splice</code> + <code>vmsplice</code> + Landlock + seccomp. Every required CI cell runs the full nextest workspace.</td>
</tr>
<tr>
<td>macOS x86_64 / aarch64</td>
<td><strong>Tier 1</strong></td>
<td><code>kqueue</code> + <code>sendfile</code> + <code>clonefile</code>. Every required CI cell runs the full nextest workspace.</td>
</tr>
<tr>
<td>Windows x86_64</td>
<td><strong>Tier 2</strong></td>
<td>IOCP file and socket I/O, <code>TransmitFile</code>, ReFS reflink, <code>CopyFileExW</code>. <code>splice</code> / <code>vmsplice</code> / <code>io_uring</code> are Linux-only and intentionally not implemented; the IOCP receive path is faster than the upstream Cygwin <code>read</code>/<code>write</code> fallback. Required CI cells test the <code>core</code>, <code>engine</code>, and <code>cli</code> crates. See <a href="https://github.com/oferchen/rsync/blob/master/docs/user/windows-support-matrix.md">Windows support matrix</a> and the <a href="https://github.com/oferchen/rsync/blob/master/docs/audits/win-tier2-stub-inventory.md">Windows Tier 2 stub inventory</a>.</td>
</tr>
</tbody>
</table>
<p>Tier 2 is a deliberate choice (no Win32 equivalent for <code>splice</code> / <code>vmsplice</code> / <code>io_uring</code>), not a defect. The IOCP backend matches or beats the upstream Cygwin baseline on the same workload.</p>
<h3>Kernel / platform compatibility</h3>
<table>
<thead>
<tr>
<th>Layer</th>
<th>Minimum</th>
<th>Notes</th>
</tr>
</thead>
<tbody>
<tr>
<td>io_uring data path</td>
<td>Linux 5.6+</td>
<td>Runtime-probed; falls back to standard buffered I/O.</td>
</tr>
<tr>
<td>Provided buffer rings (PBUF_RING)</td>
<td>Linux 5.19+</td>
<td>Runtime-probed; falls back to standard buffered I/O.</td>
</tr>
<tr>
<td>Landlock LSM (<code>landlock</code> feature)</td>
<td>Linux 5.13+</td>
<td>Best-effort ABI downgrade; no-op on older kernels.</td>
</tr>
<tr>
<td><code>IORING_OP_SEND_ZC</code> (<code>iouring-send-zc</code> feature)</td>
<td>Linux 6.0+ recommended</td>
<td>Opt-in; default builds use plain <code>IORING_OP_SEND</code>.</td>
</tr>
<tr>
<td>macOS <code>*at</code> chain</td>
<td>macOS 10.10+</td>
<td>BSD <code>*at</code> family verified at parity with Linux (SEC-1.k).</td>
</tr>
<tr>
<td>Windows IOCP</td>
<td>Windows 10 1809+</td>
<td>NTFS handle-based APIs sidestep path TOCTOU structurally (SEC-1.l).</td>
</tr>
</tbody>
</table>
<p>Distro packagers: see <code>docs/packaging/landlock-feature-guidance.md</code> for the per-distro <code>--features landlock</code> recommendation, runtime ABI matrix, and build-time dependency notes.</p>
<h3>Linux io_uring requirements</h3>
<p>oc-rsync uses Linux io_uring for high-throughput I/O on supported kernels. The minimum supported kernel for the io_uring path is <strong>Linux 5.6</strong>; older kernels (including RHEL 8 / CentOS Stream 8 at 4.18) fall back to standard <code>read(2)</code> / <code>write(2)</code> automatically - no user action required.</p>
<p>For the full performance tier (zero-copy <code>SEND_ZC</code>), Linux <strong>6.0 or newer</strong> is required AND the binary must be built with the <code>iouring-send-zc</code> cargo feature enabled. Default release builds advertise <code>--zero-copy</code> but downgrade to non-zero-copy <code>SEND</code> silently on older kernels or builds without the feature.</p>
<p>Full per-opcode kernel-floor matrix: see <code>docs/audit/iouring-opcode-kernel-floor.md</code>.</p>
<h3>Supported rsync protocol versions</h3>
<p>oc-rsync continues to support protocol versions 28-32 inclusive, matching upstream rsync 2.6.x through 3.4.x. Protocol back-negotiation to 28 is exercised by wire-byte regression tests and a periodic CI matrix against rsync 2.6.9 (built from source). Protocols <code><= 27</code> (rsync 2.5.x and earlier) remain unsupported. See <code>docs/design/rp28-k-1-protocol-drop-vs-keep-decision.md</code> for the decision rationale and <code>docs/design/rp28-k-2-execution-record.md</code> for the execution record.</p>
<hr>
<p><strong>Full changelog:</strong> <a class="commit-link" href="https://github.com/oferchen/rsync/compare/v0.6.3...v0.6.4"><tt>v0.6.3...v0.6.4</tt></a></p>
<h2>What's Changed</h2>
<hr>
<h3>Full changelog</h3>
<p>This release rolls up roughly 1,200 pull requests merged since v0.6.3. See the curated, per-category <a href="https://github.com/oferchen/rsync/blob/master/CHANGELOG.md">CHANGELOG</a> for the complete list, or the <a href="https://github.com/oferchen/rsync/compare/v0.6.3...v0.6.4">full commit comparison</a>.</p>
<hr>
<h2>Benchmark Results</h2>
<p>oc-rsync vs upstream rsync 3.4.4 on 148.3MB (10000 files).</p>
<h3>Highlights</h3>
<ul>
<li><strong>Overall:</strong> oc-rsync is 1.12x faster than upstream on average across transfer modes.</li>
<li><strong>Sparse Files:</strong> 3.45x faster.</li>
<li><strong>Large File (1GB):</strong> 2.04x faster.</li>
<li><strong>Daemon Push:</strong> 1.30x faster.</li>
</ul>
<h3>Local Copy</h3>
<table>
<thead>
<tr>
<th>Test</th>
<th>rsync 3.4.4</th>
<th>oc-rsync</th>
<th>Ratio</th>
</tr>
</thead>
<tbody>
<tr>
<td>Initial sync</td>
<td>0.279s</td>
<td>0.237s</td>
<td>faster 0.85x</td>
</tr>
<tr>
<td>No-change sync</td>
<td>0.093s</td>
<td>0.081s</td>
<td>faster 0.87x</td>
</tr>
<tr>
<td>Checksum sync</td>
<td>0.191s</td>
<td>0.138s</td>
<td>faster 0.72x</td>
</tr>
</tbody>
</table>
<h3>SSH Pull</h3>
<table>
<thead>
<tr>
<th>Test</th>
<th>rsync 3.4.4</th>
<th>oc-rsync</th>
<th>Ratio</th>
</tr>
</thead>
<tbody>
<tr>
<td>Initial sync</td>
<td>0.587s</td>
<td>0.800s</td>
<td>slower 1.36x</td>
</tr>
<tr>
<td>No-change sync</td>
<td>0.326s</td>
<td>0.307s</td>
<td>faster 0.94x</td>
</tr>
</tbody>
</table>
<h3>SSH Push</h3>
<table>
<thead>
<tr>
<th>Test</th>
<th>rsync 3.4.4</th>
<th>oc-rsync</th>
<th>Ratio</th>
</tr>
</thead>
<tbody>
<tr>
<td>Initial sync</td>
<td>0.590s</td>
<td>0.563s</td>
<td>~same 0.95x</td>
</tr>
<tr>
<td>No-change sync</td>
<td>0.348s</td>
<td>0.339s</td>
<td>~same 0.97x</td>
</tr>
</tbody>
</table>
<h3>Daemon Pull</h3>
<table>
<thead>
<tr>
<th>Test</th>
<th>rsync 3.4.4</th>
<th>oc-rsync</th>
<th>Ratio</th>
</tr>
</thead>
<tbody>
<tr>
<td>Initial sync</td>
<td>0.425s</td>
<td>1.431s</td>
<td>slower 3.37x</td>
</tr>
<tr>
<td>No-change sync</td>
<td>0.211s</td>
<td>0.166s</td>
<td>faster 0.79x</td>
</tr>
</tbody>
</table>
<h3>Daemon Push</h3>
<table>
<thead>
<tr>
<th>Test</th>
<th>rsync 3.4.4</th>
<th>oc-rsync</th>
<th>Ratio</th>
</tr>
</thead>
<tbody>
<tr>
<td>Initial sync</td>
<td>0.408s</td>
<td>0.347s</td>
<td>faster 0.85x</td>
</tr>
<tr>
<td>No-change sync</td>
<td>0.203s</td>
<td>0.140s</td>
<td>faster 0.69x</td>
</tr>
</tbody>
</table>
<h3>Checksum: OpenSSL vs Pure Rust</h3>
<table>
<thead>
<tr>
<th>Test</th>
<th>Pure Rust</th>
<th>OpenSSL</th>
<th>Ratio</th>
</tr>
</thead>
<tbody>
<tr>
<td>Initial checksum sync</td>
<td>0.271s</td>
<td>0.269s</td>
<td>~same 0.99x</td>
</tr>
<tr>
<td>No-change checksum sync</td>
<td>0.136s</td>
<td>0.136s</td>
<td>~same 1.00x</td>
</tr>
</tbody>
</table>
<h3>io_uring vs Standard I/O</h3>
<table>
<thead>
<tr>
<th>Test</th>
<th>Standard I/O</th>
<th>io_uring</th>
<th>Ratio</th>
</tr>
</thead>
<tbody>
<tr>
<td>Local initial sync</td>
<td>0.231s</td>
<td>0.231s</td>
<td>~same 1.00x</td>
</tr>
<tr>
<td>Daemon pull initial</td>
<td>1.439s</td>
<td>1.429s</td>
<td>~same 0.99x</td>
</tr>
<tr>
<td>SSH pull initial</td>
<td>0.808s</td>
<td>0.801s</td>
<td>~same 0.99x</td>
</tr>
</tbody>
</table>
<h3>SSH Transport: upstream vs oc-rsync subprocess vs oc-rsync russh</h3>
<table>
<thead>
<tr>
<th>Test</th>
<th>Upstream (ssh)</th>
<th>oc-rsync (ssh)</th>
<th>oc-rsync (russh)</th>
<th>oc-sub / upstream</th>
<th>russh / oc-sub</th>
</tr>
</thead>
<tbody>
<tr>
<td>Initial pull</td>
<td>0.609s</td>
<td>0.817s</td>
<td>0.648s</td>
<td>slower 1.34x</td>
<td>faster 0.79x</td>
</tr>
<tr>
<td>No-change pull</td>
<td>0.335s</td>
<td>0.368s</td>
<td>0.171s</td>
<td>slower 1.10x</td>
<td>faster 0.47x</td>
</tr>
<tr>
<td>Initial push</td>
<td>0.593s</td>
<td>0.555s</td>
<td>0.400s</td>
<td>faster 0.94x</td>
<td>faster 0.72x</td>
</tr>
<tr>
<td>No-change push</td>
<td>0.344s</td>
<td>0.340s</td>
<td>0.184s</td>
<td>~same 0.99x</td>
<td>faster 0.54x</td>
</tr>
</tbody>
</table>
<h3>Compression</h3>
<table>
<thead>
<tr>
<th>Test</th>
<th>rsync 3.4.4</th>
<th>oc-rsync</th>
<th>Ratio</th>
</tr>
</thead>
<tbody>
<tr>
<td>zlib initial sync</td>
<td>0.287s</td>
<td>0.279s</td>
<td>~same 0.97x</td>
</tr>
<tr>
<td>zlib no-change sync</td>
<td>0.093s</td>
<td>0.084s</td>
<td>faster 0.90x</td>
</tr>
<tr>
<td>zstd initial sync</td>
<td>0.288s</td>
<td>0.283s</td>
<td>~same 0.98x</td>
</tr>
<tr>
<td>zstd no-change sync</td>
<td>0.093s</td>
<td>0.085s</td>
<td>faster 0.91x</td>
</tr>
</tbody>
</table>
<h3>Delta Transfer</h3>
<table>
<thead>
<tr>
<th>Test</th>
<th>rsync 3.4.4</th>
<th>oc-rsync</th>
<th>Ratio</th>
</tr>
</thead>
<tbody>
<tr>
<td>Local delta sync</td>
<td>0.094s</td>
<td>0.084s</td>
<td>faster 0.89x</td>
</tr>
<tr>
<td>Local delta checksum sync</td>
<td>0.194s</td>
<td>0.145s</td>
<td>faster 0.75x</td>
</tr>
</tbody>
</table>
<h3>Large File (1GB)</h3>
<table>
<thead>
<tr>
<th>Test</th>
<th>rsync 3.4.4</th>
<th>oc-rsync</th>
<th>Ratio</th>
</tr>
</thead>
<tbody>
<tr>
<td>1GB file initial sync</td>
<td>0.500s</td>
<td>0.580s</td>
<td>slower 1.16x</td>
</tr>
<tr>
<td>1GB file no-change sync</td>
<td>0.045s</td>
<td>0.004s</td>
<td>faster 0.09x</td>
</tr>
<tr>
<td>1GB file delta sync</td>
<td>1.876s</td>
<td>0.415s</td>
<td>faster 0.22x</td>
</tr>
</tbody>
</table>
<h3>Many Small Files (100K)</h3>
<table>
<thead>
<tr>
<th>Test</th>
<th>rsync 3.4.4</th>
<th>oc-rsync</th>
<th>Ratio</th>
</tr>
</thead>
<tbody>
<tr>
<td>100K files initial sync</td>
<td>3.038s</td>
<td>3.127s</td>
<td>~same 1.03x</td>
</tr>
<tr>
<td>100K files no-change sync</td>
<td>0.588s</td>
<td>0.775s</td>
<td>slower 1.32x</td>
</tr>
</tbody>
</table>
<h3>Sparse Files</h3>
<table>
<thead>
<tr>
<th>Test</th>
<th>rsync 3.4.4</th>
<th>oc-rsync</th>
<th>Ratio</th>
</tr>
</thead>
<tbody>
<tr>
<td>Sparse initial sync</td>
<td>0.262s</td>
<td>0.116s</td>
<td>faster 0.44x</td>
</tr>
<tr>
<td>Sparse no-change sync</td>
<td>0.047s</td>
<td>0.006s</td>
<td>faster 0.14x</td>
</tr>
</tbody>
</table>
<h3>Memory Usage (Peak RSS)</h3>
<table>
<thead>
<tr>
<th>Test</th>
<th>rsync 3.4.4</th>
<th>oc-rsync</th>
<th>Time Ratio</th>
<th>RSS rsync 3.4.4</th>
<th>RSS oc-rsync</th>
</tr>
</thead>
<tbody>
<tr>
<td>Initial sync (10K files)</td>
<td>0.403s</td>
<td>0.343s</td>
<td>faster 0.85x</td>
<td>7.7MB</td>
<td>45.4MB</td>
</tr>
<tr>
<td>1GB file sync</td>
<td>0.508s</td>
<td>0.310s</td>
<td>faster 0.61x</td>
<td>6.9MB</td>
<td>15.0MB</td>
</tr>
<tr>
<td>100K files sync</td>
<td>2.986s</td>
<td>3.016s</td>
<td>~same 1.01x</td>
<td>7.6MB</td>
<td>92.5MB</td>
</tr>
</tbody>
</table>
<h3>Summary</h3>
<p><strong>Overall:</strong> 0.89x average ratio<br>
(best 0.09x, worst 3.37x)</p>
<table>
<thead>
<tr>
<th>Mode</th>
<th>Avg Ratio</th>
</tr>
</thead>
<tbody>
<tr>
<td>Local Copy</td>
<td>0.81x</td>
</tr>
<tr>
<td>SSH Pull</td>
<td>1.15x</td>
</tr>
<tr>
<td>SSH Push</td>
<td>0.96x</td>
</tr>
<tr>
<td>Daemon Pull</td>
<td>2.08x</td>
</tr>
<tr>
<td>Daemon Push</td>
<td>0.77x</td>
</tr>
<tr>
<td>Checksum: OpenSSL vs Pure Rust</td>
<td>0.99x</td>
</tr>
<tr>
<td>io_uring vs Standard I/O</td>
<td>0.99x</td>
</tr>
<tr>
<td>SSH Transport: upstream vs oc-rsync subprocess vs oc-rsync russh</td>
<td>0.63x</td>
</tr>
<tr>
<td>Compression</td>
<td>0.94x</td>
</tr>
<tr>
<td>Delta Transfer</td>
<td>0.82x</td>
</tr>
<tr>
<td>Large File (1GB)</td>
<td>0.49x</td>
</tr>
<tr>
<td>Many Small Files (100K)</td>
<td>1.18x</td>
</tr>
<tr>
<td>Sparse Files</td>
<td>0.29x</td>
</tr>
<tr>
<td>Memory Usage</td>
<td>0.82x</td>
</tr>
</tbody>
</table>
<p><em>Ratio < 1.0 = oc-rsync faster, > 1.0 = upstream faster</em></p>github-actions[bot]tag:github.com,2008:Repository/1056194120/1.1-rc32026-07-29T13:24:08ZSuper-Mario-Bros.-Remastered-Public: 1.1 RC3<h1>Small Features</h1>
<ul>
<li>MASSIVELY improved editor performance, nearly all memory issues, slowdowns and crashes SHOULD be fixed, I urge anyone that had these issues, to check if its all good now, as im 99% confident it should be now</li>
<li>Overlay clouds can now have their scroll direction changed: ("cloud_scroll": [-16, 0])</li>
<li>Added loop offsets, to animation jsons, allows you to specify which frame, a looping animation should loop to, by default 0, optional ("loop_offset": 0)</li>
<li>Added "can freeze x" and "can freeze y", to the player flingers, enabling them, will make it so the player is frozen, if their x or y speeds, are set to 0, and "additive" is disabled, instead of just not applying anything</li>
</ul>
<h1>Fixes</h1>
<ul>
<li>Fixed the second layer order being wrong, and always displaying the second layer in front</li>
<li>Fully fixed all the audio looping issues now, by reverting the new changes. fuck em</li>
<li>Fixed the theme select icons not being overridable</li>
<li>Made the overlay clouds and particles override, in the theme changer, ignore the "enable bg particles" setting</li>
<li>Fixed signal drawers not being moved, alongside their parent gizmo</li>
<li>Fixed moving platforms, being offset wrong when loading a custom level</li>
<li>Speaker gizmos, now play their sfx, when changed</li>
<li>Fixed the level editor closing, after saving, IF cancelling out of the "save and exit" dialogue</li>
<li>Switched the horizontal direction names for the piranha plant, cause they were wrong</li>
<li>Fixed invisible blocks not being able to be hit, while the player is upside down</li>
<li>Fixed resetting the level in the editor, being broken</li>
<li>Yoshi's animations now start playing, when he appears</li>
<li>added "smooth_rotation" property, to homing bills</li>
<li>Cannon balls now have a default animation</li>
<li>Spike no longer changes direction, when throwing</li>
<li>Fixed red piranha plants range being the same as the green ones</li>
</ul>JHDev2006tag:github.com,2008:Repository/341787720/latest-commit2026-07-29T12:17:21Zdiffutils: latest-commit<p>commit: <a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/uutils/diffutils/commit/4e8c5099485af4b15fa0b0221d51a5316ca43ad3/hovercard" href="https://github.com/uutils/diffutils/commit/4e8c5099485af4b15fa0b0221d51a5316ca43ad3"><tt>4e8c509</tt></a></p>github-actions[bot]tag:github.com,2008:Repository/1129214146/0.5.32026-07-28T12:09:58Zhongdown: Hongdown 0.5.3<p>Released on July 28, 2026.</p>
<ul>
<li>Fixed a bug where decoded tabs in angle-bracketed reference destinations were written as literal control characters, so reparsing the formatted Markdown could lose the destination. Tabs are now written as <code>&#9;</code>, preserving the destination and making formatting idempotent. [<a href="https://github.com/dahlia/hongdown/issues/39" data-hovercard-type="issue" data-hovercard-url="/dahlia/hongdown/issues/39/hovercard">#39</a>, <a href="https://github.com/dahlia/hongdown/pull/40" data-hovercard-type="pull_request" data-hovercard-url="/dahlia/hongdown/pull/40/hovercard">#40</a>]</li>
</ul>github-actions[bot]tag:github.com,2008:Repository/671654508/@biomejs/biome@2.5.62026-07-28T09:55:21Zbiome: Biome CLI v2.5.6
<h2>2.5.6</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a href="https://github.com/biomejs/biome/pull/11035" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11035/hovercard">#11035</a> <a href="https://github.com/biomejs/biome/commit/0e4b03be71b32120c6326e58e046260bcf5d3231"><code>0e4b03b</code></a> Thanks <a href="https://github.com/ematipico">@ematipico</a>! - Fixed a performance regression in <a href="https://biomejs.dev/linter/rules/no-misused-promises/" rel="nofollow"><code>noMisusedPromises</code></a> that caused type inference to run repeatedly while linting a file.</p>
</li>
<li>
<p><a href="https://github.com/biomejs/biome/pull/11043" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11043/hovercard">#11043</a> <a href="https://github.com/biomejs/biome/commit/22ec076462d4590ea7c95f7693b69040c32a38aa"><code>22ec076</code></a> Thanks <a href="https://github.com/denbezrukov">@denbezrukov</a>! - Fixed CSS formatting for multiline function arguments preceded by comments:</p>
<div class="highlight highlight-source-diff notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content=" .example {
value: outer(
1,
/* comment */
nested(
- first,
- second
- )
+ first,
+ second
+ )
);
}"><pre> .example {
value: outer(
1,
/* comment */
nested(
<span class="pl-md"><span class="pl-md">-</span> first,</span>
<span class="pl-md"><span class="pl-md">-</span> second</span>
<span class="pl-md"><span class="pl-md">-</span> )</span>
<span class="pl-mi1"><span class="pl-mi1">+</span> first,</span>
<span class="pl-mi1"><span class="pl-mi1">+</span> second</span>
<span class="pl-mi1"><span class="pl-mi1">+</span> )</span>
);
}</pre></div>
</li>
<li>
<p><a href="https://github.com/biomejs/biome/pull/11007" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11007/hovercard">#11007</a> <a href="https://github.com/biomejs/biome/commit/c9acb25acbce7a6f632b5041ec546a604aea4343"><code>c9acb25</code></a> Thanks <a href="https://github.com/BTF-Kabir-2020">@BTF-Kabir-2020</a>! - Fixed <a href="https://github.com/biomejs/biome/issues/9195" data-hovercard-type="issue" data-hovercard-url="/biomejs/biome/issues/9195/hovercard">#9195</a>: <a href="https://biomejs.dev/linter/rules/use-hook-at-top-level/" rel="nofollow"><code>useHookAtTopLevel</code></a> no longer reports hooks in named <code>forwardRef</code> components that receive a <code>ref</code> parameter.</p>
</li>
<li>
<p><a href="https://github.com/biomejs/biome/pull/10152" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/10152/hovercard">#10152</a> <a href="https://github.com/biomejs/biome/commit/50a9bd84df852de305e94a91fb57f6b3b1378187"><code>50a9bd8</code></a> Thanks <a href="https://github.com/Zelys-DFKH">@Zelys-DFKH</a>! - Fixed <a href="https://github.com/biomejs/biome/issues/10131" data-hovercard-type="issue" data-hovercard-url="/biomejs/biome/issues/10131/hovercard">#10131</a>: Biome now correctly parses curried arrow functions in ternary consequents when the inner arrow's parameters use a destructuring pattern, e.g. <code>cond ? (x) => ({ a, b }) => body : alt</code>.</p>
</li>
<li>
<p><a href="https://github.com/biomejs/biome/pull/11105" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11105/hovercard">#11105</a> <a href="https://github.com/biomejs/biome/commit/8ffe2b9f2f9224921a0bad4a772e6611006351e5"><code>8ffe2b9</code></a> Thanks <a href="https://github.com/dadavidtseng">@dadavidtseng</a>! - Fixed <a href="https://github.com/biomejs/biome/issues/11092" data-hovercard-type="issue" data-hovercard-url="/biomejs/biome/issues/11092/hovercard">#11092</a>: The <a href="https://biomejs.dev/linter/rules/no-useless-ternary/" rel="nofollow"><code>noUselessTernary</code></a> quick fix now preserves operator spacing when simplifying or inverting boolean ternary expressions.</p>
</li>
<li>
<p><a href="https://github.com/biomejs/biome/pull/10533" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/10533/hovercard">#10533</a> <a href="https://github.com/biomejs/biome/commit/580987506a32cdde2f5498e0f712e3493ef9adde"><code>5809875</code></a> Thanks <a href="https://github.com/Mokto">@Mokto</a>! - Fixed <a href="https://github.com/biomejs/biome/issues/10515" data-hovercard-type="issue" data-hovercard-url="/biomejs/biome/issues/10515/hovercard">#10515</a>: <code>biome check --write</code> was not idempotent on Svelte files — multi-line template literals in <code><script></code> blocks and block comments in <code><style></code> blocks gained an extra indent level on every run.</p>
</li>
<li>
<p><a href="https://github.com/biomejs/biome/pull/11040" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11040/hovercard">#11040</a> <a href="https://github.com/biomejs/biome/commit/0abb620b2f0bd748bf272a2bc56aa02f5a6d0fee"><code>0abb620</code></a> Thanks <a href="https://github.com/Mokto">@Mokto</a>! - Fixed an issue where the HTML formatter would duplicate a comment placed directly before a Svelte <code>{@const ...}</code> or <code>{@debug ...}</code> block. The duplication compounded on every subsequent <code>--write</code>, causing the file to grow exponentially.</p>
</li>
<li>
<p><a href="https://github.com/biomejs/biome/pull/10858" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/10858/hovercard">#10858</a> <a href="https://github.com/biomejs/biome/commit/6d182043b1de76f8668464bfa5c295161135ee0e"><code>6d18204</code></a> Thanks <a href="https://github.com/ruidosujeira">@ruidosujeira</a>! - Fixed <a href="https://github.com/biomejs/biome/issues/10839" data-hovercard-type="issue" data-hovercard-url="/biomejs/biome/issues/10839/hovercard">#10839</a>: Svelte <code>{#each}</code> array destructuring no longer includes spaces inside square brackets, and multiline bind function expressions now indent their getter, setter, and function body correctly.</p>
</li>
<li>
<p><a href="https://github.com/biomejs/biome/pull/11009" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11009/hovercard">#11009</a> <a href="https://github.com/biomejs/biome/commit/2c36626bed58e63e49ecca8a40c717adae4c91ac"><code>2c36626</code></a> Thanks <a href="https://github.com/ematipico">@ematipico</a>! - Improved the accuracy of type-aware lint rules by resolving more inferred types. For example, <a href="https://biomejs.dev/linter/rules/no-floating-promises/" rel="nofollow"><code>noFloatingPromises</code></a> now detects floating Promises returned by aliased callbacks and arrays of Promises created by async mapping callbacks.</p>
<p>The following statements are now reported:</p>
<div class="highlight highlight-source-ts notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="type AsyncCallback = () => Promise<void>;
declare const callback: AsyncCallback;
callback();
[1, 2, 3].map(async (value) => value);"><pre><span class="pl-k">type</span> <span class="pl-smi">AsyncCallback</span> <span class="pl-c1">=</span> <span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=></span> <span class="pl-smi">Promise</span><span class="pl-c1"><</span><span class="pl-smi"><span class="pl-k">void</span></span><span class="pl-c1">></span><span class="pl-kos">;</span>
<span class="pl-k">declare</span> <span class="pl-k">const</span> <span class="pl-s1">callback</span>: <span class="pl-smi">AsyncCallback</span><span class="pl-kos">;</span>
<span class="pl-en">callback</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
<span class="pl-kos">[</span><span class="pl-c1">1</span><span class="pl-kos">,</span> <span class="pl-c1">2</span><span class="pl-kos">,</span> <span class="pl-c1">3</span><span class="pl-kos">]</span><span class="pl-kos">.</span><span class="pl-en">map</span><span class="pl-kos">(</span><span class="pl-k">async</span> <span class="pl-kos">(</span><span class="pl-s1">value</span><span class="pl-kos">)</span> <span class="pl-c1">=></span> <span class="pl-s1">value</span><span class="pl-kos">)</span><span class="pl-kos">;</span></pre></div>
</li>
<li>
<p><a href="https://github.com/biomejs/biome/pull/10973" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/10973/hovercard">#10973</a> <a href="https://github.com/biomejs/biome/commit/9cb044cf2c8971642942c302a6d2b0000964c2f0"><code>9cb044c</code></a> Thanks <a href="https://github.com/ematipico">@ematipico</a>! - Fixed false positives in <a href="https://biomejs.dev/linter/rules/no-misleading-return-type/" rel="nofollow"><code>noMisleadingReturnType</code></a> when generic-constraint, normalization, substitution, or structural return-type comparison cannot complete. The rule now suppresses diagnostics rather than suggesting a return type derived from partial information. For example, this unresolved return type is no longer reported:</p>
<div class="highlight highlight-source-ts notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="function unresolvedReturnType(): MissingType {
return "value" as const;
}"><pre><span class="pl-k">function</span> <span class="pl-en">unresolvedReturnType</span><span class="pl-kos">(</span><span class="pl-kos">)</span>: <span class="pl-smi">MissingType</span> <span class="pl-kos">{</span>
<span class="pl-k">return</span> <span class="pl-s">"value"</span> <span class="pl-k">as</span> <span class="pl-k">const</span><span class="pl-kos">;</span>
<span class="pl-kos">}</span></pre></div>
</li>
<li>
<p><a href="https://github.com/biomejs/biome/pull/11071" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11071/hovercard">#11071</a> <a href="https://github.com/biomejs/biome/commit/15047a2fff2aa2a5c0c096257b4718b0141431be"><code>15047a2</code></a> Thanks <a href="https://github.com/dyc3">@dyc3</a>! - The HTML parser now accepts mixed-case <code>doctype</code> declarations.</p>
</li>
<li>
<p><a href="https://github.com/biomejs/biome/pull/11030" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11030/hovercard">#11030</a> <a href="https://github.com/biomejs/biome/commit/cc90e65a6b14388a5fab1d893f782055fac34f91"><code>cc90e65</code></a> Thanks <a href="https://github.com/marschattha">@marschattha</a>! - The <code>rdjson</code> reporter now populates the <a href="https://github.com/reviewdog/reviewdog/blob/master/proto/rdf/reviewdog.proto">severity</a> field of each diagnostic (<code>ERROR</code>, <code>WARNING</code>, or <code>INFO</code>), so tools consuming Reviewdog Diagnostic Format output no longer need to assume a default severity.</p>
</li>
<li>
<p><a href="https://github.com/biomejs/biome/pull/11009" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11009/hovercard">#11009</a> <a href="https://github.com/biomejs/biome/commit/2c36626bed58e63e49ecca8a40c717adae4c91ac"><code>2c36626</code></a> Thanks <a href="https://github.com/ematipico">@ematipico</a>! - Fixed a performance regression in type-aware JavaScript lint rules by inferring only requested types and memoizing export resolution.</p>
</li>
<li>
<p><a href="https://github.com/biomejs/biome/pull/11056" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11056/hovercard">#11056</a> <a href="https://github.com/biomejs/biome/commit/903b1770528040484b5f8b71f652130a8e6bd960"><code>903b177</code></a> Thanks <a href="https://github.com/dyc3">@dyc3</a>! - Added support for Svelte declaration tags using <code>let</code> and <code>const</code>. Biome can now parse, format, and lint bindings declared in these tags.</p>
</li>
<li>
<p><a href="https://github.com/biomejs/biome/pull/11045" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11045/hovercard">#11045</a> <a href="https://github.com/biomejs/biome/commit/89c27c62541d2b628247563441e48f2303e53f4b"><code>89c27c6</code></a> Thanks <a href="https://github.com/ematipico">@ematipico</a>! - Improved the performance of Biome formatter up to ~7% across the board.</p>
</li>
<li>
<p><a href="https://github.com/biomejs/biome/pull/9806" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/9806/hovercard">#9806</a> <a href="https://github.com/biomejs/biome/commit/781d68dae5df6ad188efc8afb0972112654614fe"><code>781d68d</code></a> Thanks <a href="https://github.com/dyc3">@dyc3</a>! - Added the nursery rule <a href="https://biomejs.dev/linter/rules/no-js-restricted-properties/" rel="nofollow"><code>noJsRestrictedProperties</code></a>, which ports ESLint's <code>no-restricted-properties</code> rule. Biome now flags restricted member access and object destructuring, and <code>biome migrate eslint</code> preserves the rule's options.</p>
</li>
</ul>
<h2>What's Changed</h2>
<ul>
<li>refactor(lint): extract return type relation by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ematipico/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ematipico">@ematipico</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4910887925" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/10973" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/10973/hovercard" href="https://github.com/biomejs/biome/pull/10973">#10973</a></li>
<li>refactor(inference): separate raw type collection by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ematipico/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ematipico">@ematipico</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4930175476" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11003" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11003/hovercard" href="https://github.com/biomejs/biome/pull/11003">#11003</a></li>
<li>fix(linter): recognize forwardRef named components with ref params by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/BTF-Kabir-2020/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/BTF-Kabir-2020">@BTF-Kabir-2020</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4930195746" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11007" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11007/hovercard" href="https://github.com/biomejs/biome/pull/11007">#11007</a></li>
<li>fix(html_formatter): match prettier for svelte each as destructuring … by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ruidosujeira/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ruidosujeira">@ruidosujeira</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4815403701" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/10858" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/10858/hovercard" href="https://github.com/biomejs/biome/pull/10858">#10858</a></li>
<li>fix(cli): populate severity in rdjson reporter output by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/marschattha/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/marschattha">@marschattha</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4942983061" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11030" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11030/hovercard" href="https://github.com/biomejs/biome/pull/11030">#11030</a></li>
<li>refactor(inference): add structural type mapping by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ematipico/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ematipico">@ematipico</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4930180139" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11004" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11004/hovercard" href="https://github.com/biomejs/biome/pull/11004">#11004</a></li>
<li>refactor(inference): add canonical inferred globals by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ematipico/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ematipico">@ematipico</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4930185194" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11005" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11005/hovercard" href="https://github.com/biomejs/biome/pull/11005">#11005</a></li>
<li>feat(css): support preserved SCSS custom property by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/denbezrukov/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/denbezrukov">@denbezrukov</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4942928359" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11029" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11029/hovercard" href="https://github.com/biomejs/biome/pull/11029">#11029</a></li>
<li>refactor(inference): port Salsa module inference by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ematipico/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ematipico">@ematipico</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4930191216" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11006" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11006/hovercard" href="https://github.com/biomejs/biome/pull/11006">#11006</a></li>
<li>fix(css_formatter): preserve escaped attribute newlines without breaking parent groups by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/denbezrukov/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/denbezrukov">@denbezrukov</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4940783186" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11027" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11027/hovercard" href="https://github.com/biomejs/biome/pull/11027">#11027</a></li>
<li>feat(useSortedClasses): order same-utility values in sort_v4 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/johncarmack1984/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/johncarmack1984">@johncarmack1984</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4932186513" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11016" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11016/hovercard" href="https://github.com/biomejs/biome/pull/11016">#11016</a></li>
<li>fix(linter): inference regression by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ematipico/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ematipico">@ematipico</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4952355270" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11035" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11035/hovercard" href="https://github.com/biomejs/biome/pull/11035">#11035</a></li>
<li>fix(html): stop duplicating leading comments before Svelte {<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/const/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/const">@const</a>}/{<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/debug/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/debug">@debug</a>} blocks by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Mokto/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Mokto">@Mokto</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4956135049" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11040" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11040/hovercard" href="https://github.com/biomejs/biome/pull/11040">#11040</a></li>
<li>fix(inference): handle import cycles by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ematipico/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ematipico">@ematipico</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4930197455" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11008" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11008/hovercard" href="https://github.com/biomejs/biome/pull/11008">#11008</a></li>
<li>chore: tidy up skills by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ematipico/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ematipico">@ematipico</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4957538514" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11047" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11047/hovercard" href="https://github.com/biomejs/biome/pull/11047">#11047</a></li>
<li>fix(css_parser): parse SCSS parent selector hyphens by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/denbezrukov/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/denbezrukov">@denbezrukov</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4957163668" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11042" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11042/hovercard" href="https://github.com/biomejs/biome/pull/11042">#11042</a></li>
<li>fix(parser): allow nested destructured arrow functions inside ternary-consequent bodies by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Zelys-DFKH/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Zelys-DFKH">@Zelys-DFKH</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4347105952" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/10152" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/10152/hovercard" href="https://github.com/biomejs/biome/pull/10152">#10152</a></li>
<li>fix(css_formatter): indent commented SCSS function arguments by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/denbezrukov/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/denbezrukov">@denbezrukov</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4957172186" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11043" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11043/hovercard" href="https://github.com/biomejs/biome/pull/11043">#11043</a></li>
<li>ci: add e2e benchmarks for lint rules by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ematipico/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ematipico">@ematipico</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4958129272" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11048" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11048/hovercard" href="https://github.com/biomejs/biome/pull/11048">#11048</a></li>
<li>feat(format/yaml): flow mappings by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dyc3/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dyc3">@dyc3</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4930470810" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11011" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11011/hovercard" href="https://github.com/biomejs/biome/pull/11011">#11011</a></li>
<li>perf(fmt): inline print_element, fast path for printable ASCII chars by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ematipico/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ematipico">@ematipico</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4957382273" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11045" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11045/hovercard" href="https://github.com/biomejs/biome/pull/11045">#11045</a></li>
<li>feat(lint/js): add <code>noRestrictedProperties</code> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dyc3/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dyc3">@dyc3</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4207914134" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/9806" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/9806/hovercard" href="https://github.com/biomejs/biome/pull/9806">#9806</a></li>
<li>feat(format/yaml): block scalars by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dyc3/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dyc3">@dyc3</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4934045000" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11019" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11019/hovercard" href="https://github.com/biomejs/biome/pull/11019">#11019</a></li>
<li>refactor(analyzer): cut over inferred type consumers by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ematipico/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ematipico">@ematipico</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4930204583" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11009" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11009/hovercard" href="https://github.com/biomejs/biome/pull/11009">#11009</a></li>
<li>test(format/html): enable prettier's vue snapshot tests by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dyc3/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dyc3">@dyc3</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4971332745" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11070" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11070/hovercard" href="https://github.com/biomejs/biome/pull/11070">#11070</a></li>
<li>fix(parse/html): accept mixed case doctype declarations by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dyc3/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dyc3">@dyc3</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4971333053" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11071" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11071/hovercard" href="https://github.com/biomejs/biome/pull/11071">#11071</a></li>
<li>feat(useSortedClasses): order by name and resolve dashed statics in sort_v4 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/johncarmack1984/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/johncarmack1984">@johncarmack1984</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4956195109" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11041" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11041/hovercard" href="https://github.com/biomejs/biome/pull/11041">#11041</a></li>
<li>feat(svelte): support for {let}/{const} syntax by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dyc3/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dyc3">@dyc3</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4962041051" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11056" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11056/hovercard" href="https://github.com/biomejs/biome/pull/11056">#11056</a></li>
<li>feat(format/yaml): flow scalar content by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dyc3/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dyc3">@dyc3</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4959900931" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11050" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11050/hovercard" href="https://github.com/biomejs/biome/pull/11050">#11050</a></li>
<li>feat(format/yaml): indent comments per their block structure by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dyc3/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dyc3">@dyc3</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4959913151" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11051" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11051/hovercard" href="https://github.com/biomejs/biome/pull/11051">#11051</a></li>
<li>feat(format/yaml): keep node properties on the entry line by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dyc3/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dyc3">@dyc3</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4959913323" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11052" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11052/hovercard" href="https://github.com/biomejs/biome/pull/11052">#11052</a></li>
<li>fix(html): skip reindenting template literal and block-comment continuations in embedded code by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Mokto/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Mokto">@Mokto</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4568685594" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/10533" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/10533/hovercard" href="https://github.com/biomejs/biome/pull/10533">#10533</a></li>
<li>chore(xtask): migrate Symbol global types by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/minseong0324/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/minseong0324">@minseong0324</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4951807736" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11034" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11034/hovercard" href="https://github.com/biomejs/biome/pull/11034">#11034</a></li>
<li>chore(deps): update rust crate jiff to 0.2.35 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/renovate/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/renovate">@renovate</a>[bot] in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4983631936" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11085" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11085/hovercard" href="https://github.com/biomejs/biome/pull/11085">#11085</a></li>
<li>chore(deps): update rust crate libc to 0.2.189 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/renovate/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/renovate">@renovate</a>[bot] in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4983632699" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11086" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11086/hovercard" href="https://github.com/biomejs/biome/pull/11086">#11086</a></li>
<li>chore(deps): update rust crate proc-macro2 to 1.0.107 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/renovate/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/renovate">@renovate</a>[bot] in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4984953210" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11089" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11089/hovercard" href="https://github.com/biomejs/biome/pull/11089">#11089</a></li>
<li>chore(deps): update rust crate regex to 1.13.1 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/renovate/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/renovate">@renovate</a>[bot] in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4984954617" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11090" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11090/hovercard" href="https://github.com/biomejs/biome/pull/11090">#11090</a></li>
<li>feat(useSortedClasses): sort sort_v4 candidates by property signature by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/johncarmack1984/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/johncarmack1984">@johncarmack1984</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4977980128" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11076" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11076/hovercard" href="https://github.com/biomejs/biome/pull/11076">#11076</a></li>
<li>feat(inference): add structured inference requests by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ematipico/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ematipico">@ematipico</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4986606501" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11091" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11091/hovercard" href="https://github.com/biomejs/biome/pull/11091">#11091</a></li>
<li>fix: build bench by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ematipico/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ematipico">@ematipico</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4988875276" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11097" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11097/hovercard" href="https://github.com/biomejs/biome/pull/11097">#11097</a></li>
<li>chore(xtask): migrate WeakMap global type by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/minseong0324/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/minseong0324">@minseong0324</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4983328279" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11084" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11084/hovercard" href="https://github.com/biomejs/biome/pull/11084">#11084</a></li>
<li>feat(css_syntax): allow SCSS variables in rule lists by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/denbezrukov/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/denbezrukov">@denbezrukov</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4990261716" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11103" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11103/hovercard" href="https://github.com/biomejs/biome/pull/11103">#11103</a></li>
<li>fix(lint): remove double space in noUselessTernary quick fix by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dadavidtseng/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dadavidtseng">@dadavidtseng</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4992321000" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11105" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11105/hovercard" href="https://github.com/biomejs/biome/pull/11105">#11105</a></li>
<li>ci: release by @github-actions[bot] in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4936770441" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11022" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11022/hovercard" href="https://github.com/biomejs/biome/pull/11022">#11022</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/BTF-Kabir-2020/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/BTF-Kabir-2020">@BTF-Kabir-2020</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4930195746" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11007" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11007/hovercard" href="https://github.com/biomejs/biome/pull/11007">#11007</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/marschattha/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/marschattha">@marschattha</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4942983061" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11030" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11030/hovercard" href="https://github.com/biomejs/biome/pull/11030">#11030</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dadavidtseng/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dadavidtseng">@dadavidtseng</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4992321000" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11105" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11105/hovercard" href="https://github.com/biomejs/biome/pull/11105">#11105</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/biomejs/biome/compare/@biomejs/biome@2.5.5...@biomejs/biome@2.5.6">https://github.com/biomejs/biome/compare/@biomejs/biome@2.5.5...@biomejs/biome@2.5.6</a></p>github-actions[bot]tag:github.com,2008:Repository/1129214146/0.5.22026-07-27T15:23:08Zhongdown: Hongdown 0.5.2<p>Released on July 28, 2026.</p>
<ul>
<li>
<p>Fixed a bug where a reference definition shared by a body link and a link inside a footnote could sink to the later footnote's section, leaving the body link's section without its definition. Shared definitions now stay at the end of the first section that uses them, while remaining below footnote definitions when both occur in the same section. [<a href="https://github.com/dahlia/hongdown/issues/30" data-hovercard-type="issue" data-hovercard-url="/dahlia/hongdown/issues/30/hovercard">#30</a>, <a href="https://github.com/dahlia/hongdown/pull/38" data-hovercard-type="pull_request" data-hovercard-url="/dahlia/hongdown/pull/38/hovercard">#38</a>]</p>
</li>
<li>
<p>Fixed a bug where reference definitions lost angle brackets required by an empty destination, ASCII whitespace, or other targets that cannot be serialized safely in bare form. Those lines no longer represented the original CommonMark reference definitions, and a second formatting pass treated them as ordinary text. These destinations now stay angle-bracketed, preserving their link targets and making formatting idempotent. [<a href="https://github.com/dahlia/hongdown/issues/25" data-hovercard-type="issue" data-hovercard-url="/dahlia/hongdown/issues/25/hovercard">#25</a>, <a href="https://github.com/dahlia/hongdown/pull/37" data-hovercard-type="pull_request" data-hovercard-url="/dahlia/hongdown/pull/37/hovercard">#37</a>]</p>
</li>
<li>
<p>Fixed a bug where an external inline link whose text contained consecutive whitespace could require two formatting passes to settle. Runs of CommonMark ASCII whitespace in ordinary link text are now collapsed on the first pass, so <code>[a b](https://example.com/)</code> immediately becomes <code>[a b]</code> with a matching definition. [<a href="https://github.com/dahlia/hongdown/issues/28" data-hovercard-type="issue" data-hovercard-url="/dahlia/hongdown/issues/28/hovercard">#28</a>, <a href="https://github.com/dahlia/hongdown/pull/36" data-hovercard-type="pull_request" data-hovercard-url="/dahlia/hongdown/pull/36/hovercard">#36</a>]</p>
</li>
<li>
<p>Fixed a bug where non-ASCII whitespace at the edge of an inline link's text could leave its generated shortcut reference with no matching definition. Reference labels now follow the parser's edge-whitespace rules, preserving distinct labels and their definitions across formatting runs. [<a href="https://github.com/dahlia/hongdown/issues/31" data-hovercard-type="issue" data-hovercard-url="/dahlia/hongdown/issues/31/hovercard">#31</a>, <a href="https://github.com/dahlia/hongdown/pull/35" data-hovercard-type="pull_request" data-hovercard-url="/dahlia/hongdown/pull/35/hovercard">#35</a>]</p>
</li>
<li>
<p>Fixed a bug where formatting could silently change a link's destination. Reference labels are generated from the link text, so two links with the same text but different destinations were given the same label, and the later definition overwrote the earlier one. A label is now shared only when the complete target matches, meaning both the URL and the title; otherwise the colliding link gets a numbered label and full reference syntax, as in <code>[guide][guide 2]</code>. [<a href="https://github.com/dahlia/hongdown/issues/26" data-hovercard-type="issue" data-hovercard-url="/dahlia/hongdown/issues/26/hovercard">#26</a>, <a href="https://github.com/dahlia/hongdown/pull/29" data-hovercard-type="pull_request" data-hovercard-url="/dahlia/hongdown/pull/29/hovercard">#29</a>]</p>
</li>
<li>
<p>Fixed a bug where a numbered label assigned to a colliding link could match unresolved reference syntax elsewhere in the document, silently turning ordinary bracketed text into a link. Numbered label allocation now skips labels already used by unresolved references. [<a href="https://github.com/dahlia/hongdown/issues/33" data-hovercard-type="issue" data-hovercard-url="/dahlia/hongdown/issues/33/hovercard">#33</a>, <a href="https://github.com/dahlia/hongdown/pull/34" data-hovercard-type="pull_request" data-hovercard-url="/dahlia/hongdown/pull/34/hovercard">#34</a>]</p>
</li>
<li>
<p>Fixed a bug where a reference definition needed by a later section was dropped entirely when an earlier section had already defined the same label with a different destination, leaving the later link pointing at the earlier section's URL. [<a href="https://github.com/dahlia/hongdown/issues/26" data-hovercard-type="issue" data-hovercard-url="/dahlia/hongdown/issues/26/hovercard">#26</a>, <a href="https://github.com/dahlia/hongdown/pull/29" data-hovercard-type="pull_request" data-hovercard-url="/dahlia/hongdown/pull/29/hovercard">#29</a>]</p>
</li>
<li>
<p>Fixed a bug where reference labels differing only in letter case, such as <code>[Guide]</code> and <code>[guide]</code>, were emitted as two separate definitions. Since CommonMark matches reference labels case-insensitively, parsers ignored the second definition and both links resolved to the first URL. Labels are now compared with runs of whitespace collapsed and Unicode case folding applied, the same way the underlying parser resolves them. [<a href="https://github.com/dahlia/hongdown/issues/26" data-hovercard-type="issue" data-hovercard-url="/dahlia/hongdown/issues/26/hovercard">#26</a>, <a href="https://github.com/dahlia/hongdown/pull/29" data-hovercard-type="pull_request" data-hovercard-url="/dahlia/hongdown/pull/29/hovercard">#29</a>]</p>
</li>
<li>
<p>Fixed a bug where a reference definition placed inside a <code><!-- hongdown-disable --></code> region was dropped, leaving the region's links pointing at nothing. Since the loss was stable across runs, <code>--check</code> never reported the damaged file afterwards. The region between the two directives is now copied from the source in one piece instead of being rebuilt block by block, so its reference definitions survive, as do its footnote definitions, interior blank lines, and indentation. (The blank line separating the region from the directives around it is still normalized to exactly one.) [<a href="https://github.com/dahlia/hongdown/issues/27" data-hovercard-type="issue" data-hovercard-url="/dahlia/hongdown/issues/27/hovercard">#27</a>, <a href="https://github.com/dahlia/hongdown/pull/32" data-hovercard-type="pull_request" data-hovercard-url="/dahlia/hongdown/pull/32/hovercard">#32</a>]</p>
</li>
<li>
<p>Fixed a bug where a reference definition was dropped when the only links using it sat in a region that skips formatting. Those links are copied from the source and never registered the definition they depend on, which silently broke reference-style badges under <code><!-- hongdown-disable --></code>, <code><!-- hongdown-disable-next-line --></code>, <code><!-- hongdown-disable-next-section --></code>, and <code><!-- hongdown-disable-file --></code>. [<a href="https://github.com/dahlia/hongdown/issues/27" data-hovercard-type="issue" data-hovercard-url="/dahlia/hongdown/issues/27/hovercard">#27</a>, <a href="https://github.com/dahlia/hongdown/pull/32" data-hovercard-type="pull_request" data-hovercard-url="/dahlia/hongdown/pull/32/hovercard">#32</a>]</p>
</li>
<li>
<p>Fixed a bug where a link inside a region that skips formatting could have its destination changed by a link outside it. A copied link keeps the label the source gave it, so when both wanted the same label for different destinations the copied one silently lost its target. The formatted link, which can be given a derived label such as <code>[guide][guide 2]</code>, now yields instead. [<a href="https://github.com/dahlia/hongdown/issues/27" data-hovercard-type="issue" data-hovercard-url="/dahlia/hongdown/issues/27/hovercard">#27</a>, <a href="https://github.com/dahlia/hongdown/pull/32" data-hovercard-type="pull_request" data-hovercard-url="/dahlia/hongdown/pull/32/hovercard">#32</a>]</p>
</li>
<li>
<p>Fixed a bug where a directive comment gained an extra blank line above it when it directly followed front matter, and lost the blank line entirely when the only thing above it was a reference definition. [<a href="https://github.com/dahlia/hongdown/issues/27" data-hovercard-type="issue" data-hovercard-url="/dahlia/hongdown/issues/27/hovercard">#27</a>, <a href="https://github.com/dahlia/hongdown/pull/32" data-hovercard-type="pull_request" data-hovercard-url="/dahlia/hongdown/pull/32/hovercard">#32</a>]</p>
</li>
<li>
<p>Fixed a bug where a block whose formatting was skipped by <code><!-- hongdown-disable-next-line --></code> or <code><!-- hongdown-disable-next-section --></code> was copied from where its content begins rather than from the start of its lines, losing the indentation and the list or blockquote markers before it. An indented code block came out as a paragraph, and a reference definition the parser had taken out of a list item was dropped altogether. Such a block also gained a blank line on every run, so <code>--check</code> reported a file <code>--write</code> had just written. [<a href="https://github.com/dahlia/hongdown/pull/32" data-hovercard-type="pull_request" data-hovercard-url="/dahlia/hongdown/pull/32/hovercard">#32</a>]</p>
</li>
<li>
<p>Fixed a bug where a reference label holding a bracket escaped with a backslash, as in <code>[a\]b]</code>, was cut short at that bracket. The link was given a label naming no definition, and the definition itself was written out cut short too, so the next run no longer read it as a definition at all. [<a href="https://github.com/dahlia/hongdown/pull/32" data-hovercard-type="pull_request" data-hovercard-url="/dahlia/hongdown/pull/32/hovercard">#32</a>]</p>
</li>
</ul>github-actions[bot]tag:github.com,2008:Repository/294977469/v1.9.312026-07-27T05:15:45Zclink: v1.9.31<h4>Recent Breaking Change</h4>
<ul>
<li><strong>Breaking Change:</strong> the "gray text" auto-suggestions display is now off by default, due to too many complaints and frustration and support cost.
<ul>
<li>The <a href="https://chrisant996.github.io/clink/clink.html#suggestion-list" rel="nofollow">Suggestions List</a> since v1.8.0 is friendlier and more powerful; toggle it by pressing <kbd>F2</kbd> or enable it by default via <code>clink set suggestionlist.default true</code>.</li>
<li>The "gray text" or "inline" auto-suggestions display can be turned on again via <code>clink set autosuggest.inline true</code> if preferred.</li>
</ul>
</li>
</ul>
<h4>v1.9.31</h4>
<ul>
<li>Added new Lua API <a href="https://chrisant996.github.io/clink/clink.html#rl.gethistoryindex" rel="nofollow">rl.gethistoryindex()</a> which returns the current interactive history index, if any.</li>
<li>Fixed <code>git.isgitdir()</code> and <code>git.getgitdir()</code> to not get confused by the empty .git directories that the Codex app leaves scattered around (due to a bug in Codex that's currently tracked by a large number of open issues).</li>
<li>Fixed <code>:chaincommand("doskey")</code> to be able to expand doskey aliases (regression introduced in v1.6.18).</li>
<li>Fixed an undo list memory management bug in <code>clink-reset-line</code> that could leak memory (regression introduced in v1.8.0).</li>
</ul>chrisant996tag:github.com,2008:Repository/450825576/nightly-272026-07-26T08:52:50ZClock: 2.32 Nightly-27<h2>Fixes</h2>
<ul>
<li>Fix the hiding of the <em>"Vibration"</em> category in the timer settings for devices without vibrator;</li>
<li>Fix the hiding of the <em>"Dismiss"</em> button in alarm cards;</li>
<li>Fix the toolbar title hiding issue (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4908872623" data-permission-text="Title is private" data-url="https://github.com/BlackyHawky/Clock/issues/646" data-hovercard-type="issue" data-hovercard-url="/BlackyHawky/Clock/issues/646/hovercard" href="https://github.com/BlackyHawky/Clock/issues/646">#646</a>);</li>
</ul>
<h2>Improvements</h2>
<h3>General</h3>
<ul>
<li>Add a <em>"Save"</em> button to the alarm and timer editing panels;</li>
<li>Remove the <em>"Apply a blur effect to the background image"</em> setting:
<ul>
<li>This is now handled by the slider;</li>
</ul>
</li>
<li>Disable rapid clicks on the main FAB, except for the stopwatch tab:
<ul>
<li>This prevents, for example, the creation of multiple timers;</li>
</ul>
</li>
<li>Improve and clean code;</li>
</ul>
<h3>Alarm</h3>
<ul>
<li>Add the ability to display the alarm title across multiple lines (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4822135212" data-permission-text="Title is private" data-url="https://github.com/BlackyHawky/Clock/issues/635" data-hovercard-type="issue" data-hovercard-url="/BlackyHawky/Clock/issues/635/hovercard" href="https://github.com/BlackyHawky/Clock/issues/635">#635</a>);</li>
<li>Add the ability to use a custom background image for each alarm (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4813368928" data-permission-text="Title is private" data-url="https://github.com/BlackyHawky/Clock/issues/634" data-hovercard-type="issue" data-hovercard-url="/BlackyHawky/Clock/issues/634/hovercard" href="https://github.com/BlackyHawky/Clock/issues/634">#634</a>):
<ul>
<li>The background image is no longer tinted; therefore, it is no longer necessary to choose a transparent background color;</li>
</ul>
</li>
<li>Add the ability to blur the background image for each alarm;</li>
<li>Add the ability to dismiss/snooze alarms with the headphones Play/Pause button (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4868577113" data-permission-text="Title is private" data-url="https://github.com/BlackyHawky/Clock/issues/642" data-hovercard-type="issue" data-hovercard-url="/BlackyHawky/Clock/issues/642/hovercard" href="https://github.com/BlackyHawky/Clock/issues/642">#642</a>):
<ul>
<li>This is only possible if the settings <em>"Use advanced audio playback"</em> and <em>"Enable automatic routing of ringtones to external audio devices"</em> are enabled;</li>
<li>Only works on the lock screen;</li>
</ul>
</li>
<li>Add a <em>"Preview"</em> button to the alarm editing panel;</li>
<li>Improve the visual style of the days of the week buttons;</li>
</ul>
<h3>Clock</h3>
<ul>
<li>Search for cities in English regardless of the app's language (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4847554084" data-permission-text="Title is private" data-url="https://github.com/BlackyHawky/Clock/issues/640" data-hovercard-type="issue" data-hovercard-url="/BlackyHawky/Clock/issues/640/hovercard" href="https://github.com/BlackyHawky/Clock/issues/640">#640</a>);</li>
</ul>
<h3>Timer</h3>
<ul>
<li>Display an editing panel to edit the timers. This allows you to:
<ul>
<li>Enable vibrations per timer;</li>
<li>Set the vibration pattern per timer (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4868615797" data-permission-text="Title is private" data-url="https://github.com/BlackyHawky/Clock/issues/643" data-hovercard-type="issue" data-hovercard-url="/BlackyHawky/Clock/issues/643/hovercard" href="https://github.com/BlackyHawky/Clock/issues/643">#643</a>);</li>
<li>Set the auto silence duration per timer;</li>
<li>Set the volume crescendo duration per timer;</li>
<li>Set the ringtone per timer;</li>
<li>Turn on the flash when a timer expires;</li>
<li>Turn off media when a timer expires (useful when media player apps do not have this feature built-in) (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4790980508" data-permission-text="Title is private" data-url="https://github.com/BlackyHawky/Clock/issues/630" data-hovercard-type="issue" data-hovercard-url="/BlackyHawky/Clock/issues/630/hovercard" href="https://github.com/BlackyHawky/Clock/issues/630">#630</a>);</li>
<li>Delete the timer once expired (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4669254058" data-permission-text="Title is private" data-url="https://github.com/BlackyHawky/Clock/issues/612" data-hovercard-type="issue" data-hovercard-url="/BlackyHawky/Clock/issues/612/hovercard" href="https://github.com/BlackyHawky/Clock/issues/612">#612</a>);</li>
<li>Duplicate a timer;</li>
</ul>
</li>
<li>Hide the <em>"+1: 00"</em> button when timer is reset;</li>
<li>Hide the timer label if not set;</li>
<li>Remove the <em>"Edit"</em> button as it's no longer necessary;</li>
<li>Rename the setting title <em>"Display the active timers in compact mode"</em> to <em>"Display the timers in compact mode"</em> (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4780298582" data-permission-text="Title is private" data-url="https://github.com/BlackyHawky/Clock/issues/629" data-hovercard-type="issue" data-hovercard-url="/BlackyHawky/Clock/issues/629/hovercard" href="https://github.com/BlackyHawky/Clock/issues/629">#629</a>);</li>
<li>Add the ability to reset expired timers with the headphones Play/Pause button:
<ul>
<li>This is only possible if the settings <em>"Use advanced audio playback"</em> and <em>"Enable automatic routing of ringtones to external audio devices"</em> are enabled under <em>"Alarms"</em>;</li>
<li>Only works on the lock screen;</li>
</ul>
</li>
</ul>
<h2>Notes</h2>
<h3>- Please make a new backup after updating the app and delete the old one.</h3>BlackyHawkytag:github.com,2008:Repository/14973783/Nightly2026-07-25T14:14:31Zdexed: Nightly<p>Release updated Sat Jul 25 14:14:08 UTC 2026</p>
<ul>
<li><a href="https://github.com/asb2m10/dexed/commit/30da05ce0f1a4026dda994c209ff06216b6ce973">30da05c</a> : Squashed commit of the following:</li>
<li><a href="https://github.com/asb2m10/dexed/commit/ea3d3a454218308fee743dbdfe0d472f97145c23">ea3d3a4</a> : Update to 1.1.0</li>
<li><a href="https://github.com/asb2m10/dexed/commit/47f1d6fb7176671f8b1a621266bcee0d9e454b73">47f1d6f</a> : Remove modal dialogs for tuningui</li>
<li><a href="https://github.com/asb2m10/dexed/commit/44847b3df97832ad0754970bf3dc467d448a01fd">44847b3</a> : Fix parameters for DX signed value</li>
<li><a href="https://github.com/asb2m10/dexed/commit/6df544a33c4ac426d87f4dc852ccc7d188ccf993">6df544a</a> : Switch surgesynth tuninggui</li>
</ul>asb2m10