GitHub Releases https://github.com/ 2026-10-01T19:02:27Z tag:github.com,2008:Repository/29207621/v2.11.6 2026-10-01T19:02:27Z caddy: v2.11.6 <p>This patch release contains a large number of minor and some noticeable enhancements and bug fixes. Thank you to everyone who contributed or spent their LLM tokens responsibly to help with this release!</p> <p>We have much more in the pipeline still, as AI has made contributions of all quality levels cheap and easy. We will be trying to go through them as quickly and efficiently as we can.</p> <p><strong>Huge thank you to our sponsors for keeping the project alive with resources, and for our maintainers who triage and assist tirelessly in this relentless new age of AI.</strong></p> <p><g-emoji class="g-emoji" alias="warning">⚠️</g-emoji> <strong>Please read the breaking changes below before upgrading.</strong> Most of them come from security hardening, and most configs won't notice. If you were relying on one of the old behaviors, though, you'll want to know about it.</p> <h2>Highlights</h2> <ul> <li><strong>New <a href="https://caddyserver.com/docs/caddyfile/matchers#url-pattern" rel="nofollow"><code>url_pattern</code> request matcher</a>:</strong> Match requests with the <a href="https://urlpattern.spec.whatwg.org/" rel="nofollow">URLPattern</a> standard, the same syntax used by browsers (JS) and many web frameworks. It supports named groups, wildcards, and regexp components. Captured groups become placeholders (<code>{http.url_pattern.&lt;component&gt;.&lt;group&gt;}</code>), and there's a matching <code>url_pattern</code> CEL function too. Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dunglas/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dunglas">@dunglas</a>! (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4566223053" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7787" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7787/hovercard" href="https://github.com/caddyserver/caddy/pull/7787">#7787</a>)</li> <li><strong>Slowloris mitigation:</strong> New idle read/write timeouts reset on every successful read or write. A stalled connection gets cut off, and a slow one that's still making progress is left alone. You can also set optional minimum transfer rates, and there's a new <a href="https://caddyserver.com/docs/caddyfile/directives/timeouts" rel="nofollow"><code>timeouts</code></a> handler directive for per-route tuning. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4997606826" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7913" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7913/hovercard" href="https://github.com/caddyserver/caddy/pull/7913">#7913</a>)</li> <li><strong>New <a href="https://caddyserver.com/docs/caddyfile/options#tls-automate-names" rel="nofollow"><code>tls_automate_names</code></a> global option:</strong> Manage certificates for names without serving them in a site block. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5439294735" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/8015" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/8015/hovercard" href="https://github.com/caddyserver/caddy/pull/8015">#8015</a>)</li> <li><strong>New <a href="https://caddyserver.com/docs/caddyfile/options#expected-underscore-headers" rel="nofollow"><code>expected_underscore_headers</code></a> server option:</strong> If dropping header fields with underscores in 2.11.4 broke your app, you can now list the specific headers to keep. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4608969024" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7809" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7809/hovercard" href="https://github.com/caddyserver/caddy/pull/7809">#7809</a>)</li> <li><strong>HTTP/3 over Tailscale and other low-MTU links</strong> now works, because the initial QUIC packet size is smaller. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4893669283" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7886" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7886/hovercard" href="https://github.com/caddyserver/caddy/pull/7886">#7886</a>)</li> <li><strong>Reverse proxy got more love:</strong> <ul> <li>partial responses are flushed to clients properly (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4773090360" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7849" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7849/hovercard" href="https://github.com/caddyserver/caddy/pull/7849">#7849</a>)</li> <li>TCP half-close is propagated on upgraded streams (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5466403959" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/8027" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/8027/hovercard" href="https://github.com/caddyserver/caddy/pull/8027">#8027</a>)</li> <li><code>versions 3</code> upstreams now honor <a href="https://caddyserver.com/docs/caddyfile/directives/reverse_proxy#tls_trust_pool" rel="nofollow"><code>tls_trust_pool</code></a> (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5517625712" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/8042" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/8042/hovercard" href="https://github.com/caddyserver/caddy/pull/8042">#8042</a>)</li> <li><a href="https://caddyserver.com/docs/caddyfile/directives/reverse_proxy#active-health-checks" rel="nofollow">active health check</a> state is kept separate per check config, so one handler's failing probes don't mark the upstream down for everyone else (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5045183679" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7916" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7916/hovercard" href="https://github.com/caddyserver/caddy/pull/7916">#7916</a>)</li> <li>the <code>random_choose</code> policy distributes correctly now (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4864455657" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7873" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7873/hovercard" href="https://github.com/caddyserver/caddy/pull/7873">#7873</a>)</li> </ul> </li> <li><strong>Server-sent events behind <a href="https://caddyserver.com/docs/caddyfile/directives/encode" rel="nofollow"><code>encode</code></a></strong> now stream immediately instead of being buffered. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4964581298" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7905" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7905/hovercard" href="https://github.com/caddyserver/caddy/pull/7905">#7905</a>)</li> <li><strong>Graceful shutdown</strong> now waits for servers left over from previous configs, so long-lived responses that started before a reload aren't cut off at exit. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5412028306" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/8009" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/8009/hovercard" href="https://github.com/caddyserver/caddy/pull/8009">#8009</a>)</li> <li><strong>Caddyfile:</strong> <a href="https://caddyserver.com/docs/caddyfile/directives/import" rel="nofollow"><code>import</code></a> now works inside <a href="https://caddyserver.com/docs/caddyfile/concepts#named-routes" rel="nofollow">named routes</a> (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5330292529" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7986" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7986/hovercard" href="https://github.com/caddyserver/caddy/pull/7986">#7986</a>), and quoted braces are treated as literal arguments (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4864551952" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7875" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7875/hovercard" href="https://github.com/caddyserver/caddy/pull/7875">#7875</a>).</li> <li><strong>Logging:</strong> <ul> <li>new <a href="https://caddyserver.com/docs/caddyfile/directives/log#set-cookie" rel="nofollow"><code>set_cookie</code></a> log filter (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4902860438" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7888" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7888/hovercard" href="https://github.com/caddyserver/caddy/pull/7888">#7888</a>)</li> <li><a href="https://caddyserver.com/docs/caddyfile/directives/log#roll_interval" rel="nofollow"><code>roll_interval</code></a> accepts days (<code>d</code>) (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4943005546" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7900" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7900/hovercard" href="https://github.com/caddyserver/caddy/pull/7900">#7900</a>)</li> <li>recovered handler panics are logged at ERROR level (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5082104971" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7924" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7924/hovercard" href="https://github.com/caddyserver/caddy/pull/7924">#7924</a>)</li> <li>write timeout errors show up in access logs (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5169960455" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7945" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7945/hovercard" href="https://github.com/caddyserver/caddy/pull/7945">#7945</a>)</li> </ul> </li> <li><strong>Performance:</strong> fewer allocations in request hot paths, encoding negotiation, and the reverse proxy, from <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jvoisin/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jvoisin">@jvoisin</a> and <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dunglas/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dunglas">@dunglas</a>. Directory browsing is much faster for large directories. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4769186702" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7847" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7847/hovercard" href="https://github.com/caddyserver/caddy/pull/7847">#7847</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4962716676" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7903" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7903/hovercard" href="https://github.com/caddyserver/caddy/pull/7903">#7903</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4989156671" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7911" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7911/hovercard" href="https://github.com/caddyserver/caddy/pull/7911">#7911</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5089725907" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7925" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7925/hovercard" href="https://github.com/caddyserver/caddy/pull/7925">#7925</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5089801716" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7926" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7926/hovercard" href="https://github.com/caddyserver/caddy/pull/7926">#7926</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5111274482" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7936" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7936/hovercard" href="https://github.com/caddyserver/caddy/pull/7936">#7936</a>)</li> <li><strong>Other new stuff:</strong> <ul> <li><code>{http.request.proto_name}</code> placeholder (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4549320061" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7782" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7782/hovercard" href="https://github.com/caddyserver/caddy/pull/7782">#7782</a>)</li> <li>FastCGI populates <code>SERVER_ADDR</code> (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4992695830" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7912" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7912/hovercard" href="https://github.com/caddyserver/caddy/pull/7912">#7912</a>)</li> <li>multiple <code>authentication</code> providers no longer clobber each other's responses (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4964533492" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7904" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7904/hovercard" href="https://github.com/caddyserver/caddy/pull/7904">#7904</a>)</li> </ul> </li> </ul> <h2><g-emoji class="g-emoji" alias="warning">⚠️</g-emoji> Breaking changes</h2> <ul> <li><strong>Go 1.26 is now the minimum version</strong> for building Caddy and plugins. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5550453857" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/8056" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/8056/hovercard" href="https://github.com/caddyserver/caddy/pull/8056">#8056</a>)</li> <li><strong>Request headers are limited to 16 KiB by default.</strong> Before, we used Go's 1 MB default. Requests with larger headers (giant cookies, oversized tokens, etc.) will now get <code>431 Request Header Fields Too Large</code>. If you need more, raise it with the <a href="https://caddyserver.com/docs/caddyfile/options#max-header-size" rel="nofollow"><code>max_header_size</code></a> server option.</li> <li><strong>New 1-minute idle read/write timeouts by default.</strong> If a request body read or a response write stalls (makes no progress at all) for longer than that, the connection is aborted. Pauses <em>between</em> writes, like with SSE, don't count. Some long-lived streams where the client goes quiet mid-body may be affected. You can tune these with <code>read_body_idle</code> and <code>write_idle</code> in the <a href="https://caddyserver.com/docs/caddyfile/options#timeouts" rel="nofollow"><code>timeouts</code></a> server option, or per-route with the <a href="https://caddyserver.com/docs/caddyfile/directives/timeouts" rel="nofollow"><code>timeouts</code></a> directive. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4997606826" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7913" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7913/hovercard" href="https://github.com/caddyserver/caddy/pull/7913">#7913</a>)</li> <li><strong>Request header fields containing <code>.</code> are now dropped</strong>, the same way underscores were in 2.11.4. PHP folds <code>.</code> to <code>_</code>, so these could be used to impersonate legitimate headers. If you need specific ones, allow them with the new <a href="https://caddyserver.com/docs/caddyfile/options#expected-dot-headers" rel="nofollow"><code>expected_dot_headers</code></a> server option.</li> <li><strong>A wildcard site's <a href="https://caddyserver.com/docs/caddyfile/directives/tls#client_auth" rel="nofollow"><code>client_auth</code></a> no longer applies to more specific hostnames that have their own site blocks.</strong> For example, <code>public.example.com</code> no longer inherits mTLS from <code>*.example.com</code>. If you were counting on that inheritance, configure <code>client_auth</code> on the specific site explicitly. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5054270753" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7920" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7920/hovercard" href="https://github.com/caddyserver/caddy/pull/7920">#7920</a>)</li> <li><strong>Stricter config validation.</strong> Some configs that used to be silently accepted (and probably didn't do what you expected) are now errors: <ul> <li>duplicate <code>named_routes</code> (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4590935965" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7800" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7800/hovercard" href="https://github.com/caddyserver/caddy/pull/7800">#7800</a>)</li> <li>duplicate <code>forward_auth</code> <code>uri</code> (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4633207560" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7814" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7814/hovercard" href="https://github.com/caddyserver/caddy/pull/7814">#7814</a>)</li> <li>invalid <code>weighted_round_robin</code> weights (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4607527762" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7807" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7807/hovercard" href="https://github.com/caddyserver/caddy/pull/7807">#7807</a>)</li> <li>a non-integer <code>browse</code> <code>file_limit</code> (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5342863957" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7988" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7988/hovercard" href="https://github.com/caddyserver/caddy/pull/7988">#7988</a>)</li> <li>duplicate or ambiguous <code>map</code> inputs (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5592876447" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/8067" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/8067/hovercard" href="https://github.com/caddyserver/caddy/pull/8067">#8067</a>)</li> <li>malformed <code>map</code> destination placeholders (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5603700365" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/8074" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/8074/hovercard" href="https://github.com/caddyserver/caddy/pull/8074">#8074</a>)</li> <li>module paths with ambiguous <code>@</code> version separators (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5293033985" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7974" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7974/hovercard" href="https://github.com/caddyserver/caddy/pull/7974">#7974</a>)</li> </ul> </li> <li><strong>Admin API <a href="https://caddyserver.com/docs/api#post-load" rel="nofollow"><code>/load</code></a></strong> now returns <code>400</code> with warnings inside a valid JSON body when a config is invalid. Before, it returned <code>200</code> with two concatenated JSON objects. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3434848369" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7267" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7267/hovercard" href="https://github.com/caddyserver/caddy/pull/7267">#7267</a>)</li> <li><strong><a href="https://caddyserver.com/docs/caddyfile/matchers#method" rel="nofollow"><code>method</code></a> matcher values are normalized to uppercase</strong>, so <code>method get</code> now matches <code>GET</code> requests. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4706546727" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7832" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7832/hovercard" href="https://github.com/caddyserver/caddy/pull/7832">#7832</a>)</li> </ul> <h2>Security fixes</h2> <p>Thank you to everyone who reported responsibly and helped with patches:</p> <ul> <li>reverseproxy: When a route used both <a href="https://caddyserver.com/docs/caddyfile/directives/forward_auth" rel="nofollow"><code>forward_auth</code></a> and <a href="https://caddyserver.com/docs/caddyfile/directives/reverse_proxy" rel="nofollow"><code>reverse_proxy</code></a>, a request could be sent on the wrong upstream connection. Reported by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/carlt/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/carlt">@carlt</a>, fixed by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/WeidiDeng/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/WeidiDeng">@WeidiDeng</a>. (<a title="GHSA-6365-7ppr-5r92" href="https://github.com/caddyserver/caddy/security/advisories/GHSA-6365-7ppr-5r92">GHSA-6365-7ppr-5r92</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4809110695" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7859" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7859/hovercard" href="https://github.com/caddyserver/caddy/pull/7859">#7859</a>)</li> <li>reverseproxy: Hop-by-hop headers from upstreams are now stripped from <code>101 Switching Protocols</code> responses too. Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jirn073-76/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jirn073-76">@jirn073-76</a>.</li> <li>caddyhttp: <a href="https://caddyserver.com/docs/caddyfile/directives/handle_path" rel="nofollow"><code>handle_path</code></a> and <a href="https://caddyserver.com/docs/caddyfile/directives/uri" rel="nofollow"><code>uri</code></a> <code>strip_prefix</code>/<code>strip_suffix</code> now canonicalize the resulting path, so it can't bypass path-based authorization. Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/steadytao/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/steadytao">@steadytao</a>.</li> <li>caddyhttp: Extended the 2.11.4 header-alias filter to <code>.</code> (see above) to prevent bypassing <code>forward_auth copy_headers</code> with PHP/FastCGI backends. Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dunglas/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dunglas">@dunglas</a>.</li> <li>caddyhttp: The <a href="https://caddyserver.com/docs/caddyfile/matchers#path-regexp" rel="nofollow"><code>path_regexp</code></a> matcher now normalizes Windows backslashes like the <code>path</code> matcher does. This completes the fix for <a title="CVE-2026-52844" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-qrp7-cvwr-j2c6/hovercard" href="https://github.com/advisories/GHSA-qrp7-cvwr-j2c6">CVE-2026-52844</a>. Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/thientd/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/thientd">@thientd</a>. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4807492604" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7858" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7858/hovercard" href="https://github.com/caddyserver/caddy/pull/7858">#7858</a>)</li> <li>fileserver: Windows 8.3 short names are rejected in every path component, not just the last one. Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/DavidCarliez/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/DavidCarliez">@DavidCarliez</a>. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5223576946" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7952" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7952/hovercard" href="https://github.com/caddyserver/caddy/pull/7952">#7952</a>)</li> <li>fileserver: Fixed ETag collisions between files with different modification times and sizes. Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dunglas/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dunglas">@dunglas</a>.</li> <li>fastcgi: The client's <code>Proxy</code> header is no longer passed to backends as <code>HTTP_PROXY</code> (HTTPoxy). Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bzyy1024/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bzyy1024">@bzyy1024</a>. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5110419971" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7934" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7934/hovercard" href="https://github.com/caddyserver/caddy/pull/7934">#7934</a>)</li> <li>reverseproxy: Sticky session cookie hashes are compared in constant time. Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/alhudz/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/alhudz">@alhudz</a>. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4783378045" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7853" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7853/hovercard" href="https://github.com/caddyserver/caddy/pull/7853">#7853</a>)</li> <li>admin: Request paths are normalized in the remote admin access check, and origin/host allow-lists compare case-insensitively (defense-in-depth). Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/AmariahAK/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/AmariahAK">@AmariahAK</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/mohammed90/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/mohammed90">@mohammed90</a>, and <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/hktitof/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/hktitof">@hktitof</a>. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4987862943" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7910" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7910/hovercard" href="https://github.com/caddyserver/caddy/pull/7910">#7910</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5293027446" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7973" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7973/hovercard" href="https://github.com/caddyserver/caddy/pull/7973">#7973</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5357895396" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7993" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7993/hovercard" href="https://github.com/caddyserver/caddy/pull/7993">#7993</a>)</li> <li>caddyhttp: Oversized request bodies used through placeholders now correctly return <code>413</code>. Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/hktitof/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/hktitof">@hktitof</a>. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5292852808" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7969" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7969/hovercard" href="https://github.com/caddyserver/caddy/pull/7969">#7969</a>)</li> </ul> <p><g-emoji class="g-emoji" alias="warning">⚠️</g-emoji> These security patches may be breaking if your application relies on the buggy behaviors.</p> <p>🚨 <strong>Notice for Caddy plugin maintainers: Dependabot will probably alert you to the security fixes in Caddy and urge you to upgrade it in your <code>go.mod</code> file. Please ONLY upgrade the Caddy dependency if there's a change to an exported API your plugin uses.</strong> Note that doing so now also requires Go 1.26.</p> <p>Thank you to everyone who was involved this release, especially our 40 new contributors! 🎉</p> <h2>What's Changed</h2> <ul> <li>reverseproxy: replace placeholders specified for sni while using http3 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/WeidiDeng/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/WeidiDeng">@WeidiDeng</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4466246811" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7737" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7737/hovercard" href="https://github.com/caddyserver/caddy/pull/7737">#7737</a></li> <li>caddyhttp: add {http.request.proto_name} placeholder for spec-compliant protocol names by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Jualhosting/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Jualhosting">@Jualhosting</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4549320061" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7782" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7782/hovercard" href="https://github.com/caddyserver/caddy/pull/7782">#7782</a></li> <li>httpcaddyfile: error on duplicate named_routes by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/vijayvenkatj/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/vijayvenkatj">@vijayvenkatj</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4590935965" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7800" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7800/hovercard" href="https://github.com/caddyserver/caddy/pull/7800">#7800</a></li> <li>cmd: colored error message in WrapCommandFuncForCobra (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4487391791" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7760" data-hovercard-type="issue" data-hovercard-url="/caddyserver/caddy/issues/7760/hovercard" href="https://github.com/caddyserver/caddy/issues/7760">#7760</a>) by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/u5surf/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/u5surf">@u5surf</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4517221409" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7768" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7768/hovercard" href="https://github.com/caddyserver/caddy/pull/7768">#7768</a></li> <li>chore: add missing "is" in SECURITY.md by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/AliMickey/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/AliMickey">@AliMickey</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4603129803" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7802" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7802/hovercard" href="https://github.com/caddyserver/caddy/pull/7802">#7802</a></li> <li>reverseproxy: validate on weighted_round_robin loadbalancing policy by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/vijayvenkatj/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/vijayvenkatj">@vijayvenkatj</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4607527762" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7807" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7807/hovercard" href="https://github.com/caddyserver/caddy/pull/7807">#7807</a></li> <li>forwardauth: error on duplicate uri subdirective by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/vijayvenkatj/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/vijayvenkatj">@vijayvenkatj</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4633207560" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7814" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7814/hovercard" href="https://github.com/caddyserver/caddy/pull/7814">#7814</a></li> <li>encode: add standard benchmark and conformance harness by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ottenhoff/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ottenhoff">@ottenhoff</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4604516201" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7804" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7804/hovercard" href="https://github.com/caddyserver/caddy/pull/7804">#7804</a></li> <li>caddyhttp: restore allow_underscore_in_headers server option by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bluegate-studio/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bluegate-studio">@bluegate-studio</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4608969024" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7809" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7809/hovercard" href="https://github.com/caddyserver/caddy/pull/7809">#7809</a></li> <li>rewrite: fix wrong index check in trimPathPrefix by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/alhudz/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/alhudz">@alhudz</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4621309730" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7812" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7812/hovercard" href="https://github.com/caddyserver/caddy/pull/7812">#7812</a></li> <li>intercept: fix replace_status being silently dropped by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/oksusucha/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/oksusucha">@oksusucha</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4610535281" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7810" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7810/hovercard" href="https://github.com/caddyserver/caddy/pull/7810">#7810</a></li> <li>fileserver: append repeated hide subdirectives instead of overwriting by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/luccinmasirika/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/luccinmasirika">@luccinmasirika</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4655167436" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7817" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7817/hovercard" href="https://github.com/caddyserver/caddy/pull/7817">#7817</a></li> <li>rewrite: scope keyed query replace to its named key by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/alhudz/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/alhudz">@alhudz</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4656000475" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7818" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7818/hovercard" href="https://github.com/caddyserver/caddy/pull/7818">#7818</a></li> <li>reverseproxy: log status 499 instead of 0 when client disconnects by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/larrasket/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/larrasket">@larrasket</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4686254928" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7827" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7827/hovercard" href="https://github.com/caddyserver/caddy/pull/7827">#7827</a></li> <li>tracing: fix BatchSpanProcessor goroutine leak on config reload by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Dean2026/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Dean2026">@Dean2026</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4683400432" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7826" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7826/hovercard" href="https://github.com/caddyserver/caddy/pull/7826">#7826</a></li> <li>caddyhttp: normalize method names to uppercase in MatchMethod.Provision by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/yintaisha/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/yintaisha">@yintaisha</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4706546727" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7832" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7832/hovercard" href="https://github.com/caddyserver/caddy/pull/7832">#7832</a></li> <li>caddyhttp: add URL pattern request matcher by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dunglas/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dunglas">@dunglas</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4566223053" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7787" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7787/hovercard" href="https://github.com/caddyserver/caddy/pull/7787">#7787</a></li> <li>caddyhttp: fix escaped path matcher over-matching longer paths by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/alhudz/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/alhudz">@alhudz</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4692983938" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7828" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7828/hovercard" href="https://github.com/caddyserver/caddy/pull/7828">#7828</a></li> <li>core: preserve metrics registry in Context.WithValue by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dunglas/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dunglas">@dunglas</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4820096409" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7861" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7861/hovercard" href="https://github.com/caddyserver/caddy/pull/7861">#7861</a></li> <li>reverseproxy: compare sticky-session cookie hash in constant time by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/alhudz/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/alhudz">@alhudz</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4783378045" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7853" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7853/hovercard" href="https://github.com/caddyserver/caddy/pull/7853">#7853</a></li> <li>reverseproxy: fix misleading handle_response error for extra matcher args by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/TowyTowy/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/TowyTowy">@TowyTowy</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4850634471" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7869" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7869/hovercard" href="https://github.com/caddyserver/caddy/pull/7869">#7869</a></li> <li>reverseproxy: save dial info in a context key instead of a variable k… by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/WeidiDeng/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/WeidiDeng">@WeidiDeng</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4809110695" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7859" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7859/hovercard" href="https://github.com/caddyserver/caddy/pull/7859">#7859</a></li> <li>caddyhttp: fix path_regexp (MatchPathRE) Windows backslash bypass by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/thientd/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/thientd">@thientd</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4807492604" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7858" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7858/hovercard" href="https://github.com/caddyserver/caddy/pull/7858">#7858</a></li> <li>intercept: fix misleading handle_response error for extra matcher args by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/TowyTowy/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/TowyTowy">@TowyTowy</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4853862628" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7871" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7871/hovercard" href="https://github.com/caddyserver/caddy/pull/7871">#7871</a></li> <li>build(deps): bump cel-go from v0.28.1 to v0.29.2 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/techknowlogick/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/techknowlogick">@techknowlogick</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4857367127" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7872" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7872/hovercard" href="https://github.com/caddyserver/caddy/pull/7872">#7872</a></li> <li>reverseproxy: fix broken reservoir sampling in random_choose policy by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/TowyTowy/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/TowyTowy">@TowyTowy</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4864455657" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7873" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7873/hovercard" href="https://github.com/caddyserver/caddy/pull/7873">#7873</a></li> <li>caddyfile: treat quoted braces as literal arguments by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/elee1766/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/elee1766">@elee1766</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4864551952" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7875" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7875/hovercard" href="https://github.com/caddyserver/caddy/pull/7875">#7875</a></li> <li>logging: hash query parameter values in QueryFilter by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/PichuChen/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/PichuChen">@PichuChen</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4891522540" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7884" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7884/hovercard" href="https://github.com/caddyserver/caddy/pull/7884">#7884</a></li> <li>chore: fix sabotage spelling in nolint comments by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/futurehua/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/futurehua">@futurehua</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4917122727" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7892" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7892/hovercard" href="https://github.com/caddyserver/caddy/pull/7892">#7892</a></li> <li>pki: Handle error immediately after reading root from disk by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/hslatman/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/hslatman">@hslatman</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4924283427" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7896" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7896/hovercard" href="https://github.com/caddyserver/caddy/pull/7896">#7896</a></li> <li>log: support <code>d</code> (day) in <code>roll_interval</code> directive by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/mohammed90/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/mohammed90">@mohammed90</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4943005546" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7900" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7900/hovercard" href="https://github.com/caddyserver/caddy/pull/7900">#7900</a></li> <li>deps: update GitHub Actions and Go modules by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/steadytao/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/steadytao">@steadytao</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4864718844" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7876" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7876/hovercard" href="https://github.com/caddyserver/caddy/pull/7876">#7876</a></li> <li>build(deps): bump google.golang.org/grpc from 1.81.1 to 1.82.1 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="4974095790" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7908" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7908/hovercard" href="https://github.com/caddyserver/caddy/pull/7908">#7908</a></li> <li>core: reduce QUIC initial packet size for low-MTU paths by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Salynn/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Salynn">@Salynn</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4893669283" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7886" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7886/hovercard" href="https://github.com/caddyserver/caddy/pull/7886">#7886</a></li> <li>rewrite: preserve non-canonical path encoding after uri replace by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/larrasket/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/larrasket">@larrasket</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4972050954" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7907" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7907/hovercard" href="https://github.com/caddyserver/caddy/pull/7907">#7907</a></li> <li>caddyhttp: use canonical header key casing to avoid re-canonicalization by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dunglas/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dunglas">@dunglas</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4989156671" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7911" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7911/hovercard" href="https://github.com/caddyserver/caddy/pull/7911">#7911</a></li> <li>caddyconfig: Register nested named-route invokes transitively by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/SillyZir/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/SillyZir">@SillyZir</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4934903193" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7898" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7898/hovercard" href="https://github.com/caddyserver/caddy/pull/7898">#7898</a></li> <li>encode: reduce allocations in AcceptedEncodings by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jvoisin/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jvoisin">@jvoisin</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4769186702" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7847" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7847/hovercard" href="https://github.com/caddyserver/caddy/pull/7847">#7847</a></li> <li>encode: flush headers immediately for server-sent events responses by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/SillyZir/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/SillyZir">@SillyZir</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4964581298" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7905" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7905/hovercard" href="https://github.com/caddyserver/caddy/pull/7905">#7905</a></li> <li>fileserver: speed up directory browsing for large directories by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/firefart/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/firefart">@firefart</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4962716676" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7903" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7903/hovercard" href="https://github.com/caddyserver/caddy/pull/7903">#7903</a></li> <li>caddyauth: isolate provider responses to prevent cross-provider clobbering by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/SillyZir/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/SillyZir">@SillyZir</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4964533492" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7904" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7904/hovercard" href="https://github.com/caddyserver/caddy/pull/7904">#7904</a></li> <li>log: don't allow overwriting singly-assigned vals by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/mohammed90/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/mohammed90">@mohammed90</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5091865687" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7927" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7927/hovercard" href="https://github.com/caddyserver/caddy/pull/7927">#7927</a></li> <li>caddyconfig: cancel HTTP loader requests with context by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/cuishuang/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/cuishuang">@cuishuang</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5048287767" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7918" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7918/hovercard" href="https://github.com/caddyserver/caddy/pull/7918">#7918</a></li> <li>feat(fastcgi): populate SERVER_ADDR by default by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/renich/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/renich">@renich</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4992695830" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7912" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7912/hovercard" href="https://github.com/caddyserver/caddy/pull/7912">#7912</a></li> <li>reverseproxy: reduce allocation/CPU overhead in request hot paths by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jvoisin/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jvoisin">@jvoisin</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5089725907" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7925" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7925/hovercard" href="https://github.com/caddyserver/caddy/pull/7925">#7925</a></li> <li>reverseproxy: preallocate upstream slices with known sizes by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jvoisin/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jvoisin">@jvoisin</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5089801716" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7926" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7926/hovercard" href="https://github.com/caddyserver/caddy/pull/7926">#7926</a></li> <li>network_proxy: reject proxy URLs that resolve to a port with no host by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/r0h1tb/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/r0h1tb">@r0h1tb</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5069072770" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7922" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7922/hovercard" href="https://github.com/caddyserver/caddy/pull/7922">#7922</a></li> <li>caddyhttp: log recovered handler panics at ERROR level by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ousamabenyounes/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ousamabenyounes">@ousamabenyounes</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5082104971" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7924" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7924/hovercard" href="https://github.com/caddyserver/caddy/pull/7924">#7924</a></li> <li>caddyhttp: allocate the request UUID lazily instead of on every request by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jvoisin/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jvoisin">@jvoisin</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5111274482" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7936" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7936/hovercard" href="https://github.com/caddyserver/caddy/pull/7936">#7936</a></li> <li>caddyhttp: shield specific hostnames from a covering wildcard's client auth by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/SillyZir/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/SillyZir">@SillyZir</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5054270753" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7920" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7920/hovercard" href="https://github.com/caddyserver/caddy/pull/7920">#7920</a></li> <li>reverseproxy: isolate active health-check state per distinct check config by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/SillyZir/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/SillyZir">@SillyZir</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5045183679" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7916" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7916/hovercard" href="https://github.com/caddyserver/caddy/pull/7916">#7916</a></li> <li>logging: add set_cookie log filter for Set-Cookie response headers by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/steffenbusch/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/steffenbusch">@steffenbusch</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4902860438" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7888" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7888/hovercard" href="https://github.com/caddyserver/caddy/pull/7888">#7888</a></li> <li>caddyhttp: fix url_pattern authorization bypass via encoded-slash traversal by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dunglas/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dunglas">@dunglas</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5158642268" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7941" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7941/hovercard" href="https://github.com/caddyserver/caddy/pull/7941">#7941</a></li> <li>fix: close resources on error paths by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ittakestwo123/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ittakestwo123">@ittakestwo123</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5158356299" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7940" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7940/hovercard" href="https://github.com/caddyserver/caddy/pull/7940">#7940</a></li> <li>fastcgi: fix HTTPoxy vulnerability by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bzyy1024/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bzyy1024">@bzyy1024</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5110419971" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7934" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7934/hovercard" href="https://github.com/caddyserver/caddy/pull/7934">#7934</a></li> <li>caddyhttp: mitigate slowloris via idle read/write deadlines by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dunglas/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dunglas">@dunglas</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4997606826" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7913" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7913/hovercard" href="https://github.com/caddyserver/caddy/pull/7913">#7913</a></li> <li>chore: fix lint errors from newer golangci-lint by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/faiyazrahmann/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/faiyazrahmann">@faiyazrahmann</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5238065367" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7958" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7958/hovercard" href="https://github.com/caddyserver/caddy/pull/7958">#7958</a></li> <li>pki: honor skip_install_trust for explicit tls internal issuers by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/gautamrizwani/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/gautamrizwani">@gautamrizwani</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4923183225" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7894" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7894/hovercard" href="https://github.com/caddyserver/caddy/pull/7894">#7894</a></li> <li>caddyfile: clarify ArgErr documentation by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/0jaspahwa/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/0jaspahwa">@0jaspahwa</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5244855789" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7960" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7960/hovercard" href="https://github.com/caddyserver/caddy/pull/7960">#7960</a></li> <li>rewrite: fix URI splitting when a query or fragment arrives via a placeholder by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/francislavoie/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/francislavoie">@francislavoie</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5190345202" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7947" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7947/hovercard" href="https://github.com/caddyserver/caddy/pull/7947">#7947</a></li> <li>admin: normalize request path in remote admin access-control check (defense-in-depth) by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/AmariahAK/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/AmariahAK">@AmariahAK</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4987862943" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7910" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7910/hovercard" href="https://github.com/caddyserver/caddy/pull/7910">#7910</a></li> <li>fileserver: reject short names in every path component by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/DavidCarliez/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/DavidCarliez">@DavidCarliez</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5223576946" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7952" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7952/hovercard" href="https://github.com/caddyserver/caddy/pull/7952">#7952</a></li> <li>rewrite: fix strip_path_suffix ignoring percent-encoding by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/TowyTowy/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/TowyTowy">@TowyTowy</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4866199320" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7877" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7877/hovercard" href="https://github.com/caddyserver/caddy/pull/7877">#7877</a></li> <li>admin: stabilise log redaction test by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/steadytao/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/steadytao">@steadytao</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5163954670" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7942" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7942/hovercard" href="https://github.com/caddyserver/caddy/pull/7942">#7942</a></li> <li>chore: fix canonicalheader failures by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/steadytao/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/steadytao">@steadytao</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5276745542" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7964" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7964/hovercard" href="https://github.com/caddyserver/caddy/pull/7964">#7964</a></li> <li>cmd: upgrade automemlimit to v1.0.0 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dunglas/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dunglas">@dunglas</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5300785316" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7978" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7978/hovercard" href="https://github.com/caddyserver/caddy/pull/7978">#7978</a></li> <li>caddy: fix ParseNetworkAddress port-range span off-by-one by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/mohammed90/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/mohammed90">@mohammed90</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5293038972" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7975" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7975/hovercard" href="https://github.com/caddyserver/caddy/pull/7975">#7975</a></li> <li>usagepool: avoid lock inversion after constructor failure by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/kojah/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/kojah">@kojah</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5288571357" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7968" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7968/hovercard" href="https://github.com/caddyserver/caddy/pull/7968">#7968</a></li> <li>cmd: reject ambiguous module version separators by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/mohammed90/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/mohammed90">@mohammed90</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5293033985" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7974" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7974/hovercard" href="https://github.com/caddyserver/caddy/pull/7974">#7974</a></li> <li>admin: fix origin allow-list host comparison to be case-insensitive by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/mohammed90/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/mohammed90">@mohammed90</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5293027446" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7973" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7973/hovercard" href="https://github.com/caddyserver/caddy/pull/7973">#7973</a></li> <li>caddyfile: fix importGraph self-loop and stale-edge bugs by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/mohammed90/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/mohammed90">@mohammed90</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5293009104" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7971" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7971/hovercard" href="https://github.com/caddyserver/caddy/pull/7971">#7971</a></li> <li>caddyhttp: remove unused QUICConfig from the HTTP/3 server by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/faiyazrahmann/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/faiyazrahmann">@faiyazrahmann</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5303878480" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7980" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7980/hovercard" href="https://github.com/caddyserver/caddy/pull/7980">#7980</a></li> <li>fileserver: reject non-integer browse file_limit by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/SashaMIT/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/SashaMIT">@SashaMIT</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5342863957" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7988" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7988/hovercard" href="https://github.com/caddyserver/caddy/pull/7988">#7988</a></li> <li>caddyhttp: surface write timeout errors in access log by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/faiyazrahmann/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/faiyazrahmann">@faiyazrahmann</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5169960455" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7945" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7945/hovercard" href="https://github.com/caddyserver/caddy/pull/7945">#7945</a></li> <li>admin: fix host allow-list comparison to be case-insensitive by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/hktitof/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/hktitof">@hktitof</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5357895396" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7993" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7993/hovercard" href="https://github.com/caddyserver/caddy/pull/7993">#7993</a></li> <li>caddytls: synchronize storage cleaner with TLS.Stop via context and WaitGroup by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jum/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jum">@jum</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5235492338" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7954" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7954/hovercard" href="https://github.com/caddyserver/caddy/pull/7954">#7954</a></li> <li>httpcaddyfile: give each adaptation its own directive order by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/faiyazrahmann/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/faiyazrahmann">@faiyazrahmann</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5362786471" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7995" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7995/hovercard" href="https://github.com/caddyserver/caddy/pull/7995">#7995</a></li> <li>listen: don't wedge a reloaded listener sharing a socket on Windows by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/alexandre-daubois/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/alexandre-daubois">@alexandre-daubois</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5372621280" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7999" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7999/hovercard" href="https://github.com/caddyserver/caddy/pull/7999">#7999</a></li> <li>caddyhttp: demote Alt-Svc ErrNoAltSvcPort to debug level by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jum/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jum">@jum</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5378617444" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/8000" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/8000/hovercard" href="https://github.com/caddyserver/caddy/pull/8000">#8000</a></li> <li>events: skip dispatch setup when nothing is subscribed by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/u5surf/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/u5surf">@u5surf</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5363051936" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7997" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7997/hovercard" href="https://github.com/caddyserver/caddy/pull/7997">#7997</a></li> <li>reverseproxy: replace only known placeholders in health check body by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/IslamElsayed/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/IslamElsayed">@IslamElsayed</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5385411233" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/8003" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/8003/hovercard" href="https://github.com/caddyserver/caddy/pull/8003">#8003</a></li> <li>acmeserver: say when the CA database is locked by another process by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/faiyazrahmann/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/faiyazrahmann">@faiyazrahmann</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5408211091" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/8007" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/8007/hovercard" href="https://github.com/caddyserver/caddy/pull/8007">#8007</a></li> <li>fix: require module path boundaries when matching packages by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/wangjingshuiku/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/wangjingshuiku">@wangjingshuiku</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5237315129" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7957" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7957/hovercard" href="https://github.com/caddyserver/caddy/pull/7957">#7957</a></li> <li>caddyhttp: preserve unknown placeholders in static response headers by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/hktitof/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/hktitof">@hktitof</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5434758987" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/8014" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/8014/hovercard" href="https://github.com/caddyserver/caddy/pull/8014">#8014</a></li> <li>build(deps): bump google.golang.org/grpc from 1.82.1 to 1.83.1 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="5321489200" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7984" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7984/hovercard" href="https://github.com/caddyserver/caddy/pull/7984">#7984</a></li> <li>reverseproxy: propagate TCP half-close on upgraded streams by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/btncwn/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/btncwn">@btncwn</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5466403959" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/8027" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/8027/hovercard" href="https://github.com/caddyserver/caddy/pull/8027">#8027</a></li> <li>build(deps): bump google.golang.org/grpc from 1.83.1 to 1.83.2 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="5472807270" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/8028" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/8028/hovercard" href="https://github.com/caddyserver/caddy/pull/8028">#8028</a></li> <li>caddyfile: Expand imports inside named routes by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/XiaoleC05/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/XiaoleC05">@XiaoleC05</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5330292529" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7986" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7986/hovercard" href="https://github.com/caddyserver/caddy/pull/7986">#7986</a></li> <li>chore(deps): bump cel-go and switch import to new url by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/techknowlogick/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/techknowlogick">@techknowlogick</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5481486283" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/8030" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/8030/hovercard" href="https://github.com/caddyserver/caddy/pull/8030">#8030</a></li> <li>core: synchronize Stop with concurrent config reloads by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/H-XX-D/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/H-XX-D">@H-XX-D</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5511008946" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/8038" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/8038/hovercard" href="https://github.com/caddyserver/caddy/pull/8038">#8038</a></li> <li>reverse_proxy with versions 3 silently ignores tls_trust_pool and verifies against the system roots by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/tippexs/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/tippexs">@tippexs</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5517625712" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/8042" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/8042/hovercard" href="https://github.com/caddyserver/caddy/pull/8042">#8042</a></li> <li>admin: fix warnings and status code in /load API by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/amirdaraby/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/amirdaraby">@amirdaraby</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3434848369" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7267" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7267/hovercard" href="https://github.com/caddyserver/caddy/pull/7267">#7267</a></li> <li>fastcgi: explain 411 responses for unknown-length bodies by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Rohilalala/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Rohilalala">@Rohilalala</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5236612645" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7956" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7956/hovercard" href="https://github.com/caddyserver/caddy/pull/7956">#7956</a></li> <li>Move websocket header normalization later by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/nfreya/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/nfreya">@nfreya</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5067777580" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7921" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7921/hovercard" href="https://github.com/caddyserver/caddy/pull/7921">#7921</a></li> <li>chore: remove AI moderator workflow by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/mohammed90/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/mohammed90">@mohammed90</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5577854178" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/8059" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/8059/hovercard" href="https://github.com/caddyserver/caddy/pull/8059">#8059</a></li> <li>caddyhttp: surface 413 for oversized request body placeholders by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/hktitof/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/hktitof">@hktitof</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5292852808" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7969" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7969/hovercard" href="https://github.com/caddyserver/caddy/pull/7969">#7969</a></li> <li>reverseproxy: Fix partial response not flushed to clients by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/WeidiDeng/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/WeidiDeng">@WeidiDeng</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4773090360" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7849" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7849/hovercard" href="https://github.com/caddyserver/caddy/pull/7849">#7849</a></li> <li>caddyhttp: fix randString sameCase dictionary to match its docs by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/mohammed90/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/mohammed90">@mohammed90</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5293018561" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7972" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7972/hovercard" href="https://github.com/caddyserver/caddy/pull/7972">#7972</a></li> <li>requestbody: replace only known placeholders in the set body by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/hktitof/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/hktitof">@hktitof</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5410996145" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/8008" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/8008/hovercard" href="https://github.com/caddyserver/caddy/pull/8008">#8008</a></li> <li>internal: fix <code>MaxSizeSubjectsListForLog</code> off-by-one when <code>maxToDisplay</code> is <code>0</code> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/mohammed90/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/mohammed90">@mohammed90</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5292996840" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7970" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7970/hovercard" href="https://github.com/caddyserver/caddy/pull/7970">#7970</a></li> <li>caddyauth: only replace known placeholders in basic auth credentials by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/hktitof/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/hktitof">@hktitof</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5439555856" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/8017" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/8017/hovercard" href="https://github.com/caddyserver/caddy/pull/8017">#8017</a></li> <li>map: Distinguish duplicate literal and regexp inputs by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Indra55/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Indra55">@Indra55</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5592876447" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/8067" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/8067/hovercard" href="https://github.com/caddyserver/caddy/pull/8067">#8067</a></li> <li>map: reject malformed destination placeholders by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/sleet0922/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/sleet0922">@sleet0922</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5603700365" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/8074" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/8074/hovercard" href="https://github.com/caddyserver/caddy/pull/8074">#8074</a></li> <li>httpcaddyfile: new <code>tls_automate_names</code> global option by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/IslamElsayed/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/IslamElsayed">@IslamElsayed</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5439294735" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/8015" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/8015/hovercard" href="https://github.com/caddyserver/caddy/pull/8015">#8015</a></li> <li>build: bump all dependencies - (Go 1.26 floor) by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/steadytao/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/steadytao">@steadytao</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5550453857" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/8056" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/8056/hovercard" href="https://github.com/caddyserver/caddy/pull/8056">#8056</a></li> <li>caddyhttp: wait for servers from previous configs on exit by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dunglas/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dunglas">@dunglas</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5412028306" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/8009" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/8009/hovercard" href="https://github.com/caddyserver/caddy/pull/8009">#8009</a></li> <li>caddyhttp: use errors.AsType for request body limit errors by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/mholt/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/mholt">@mholt</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5650164471" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/8090" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/8090/hovercard" href="https://github.com/caddyserver/caddy/pull/8090">#8090</a></li> <li>ci: pin cosign to v2 for release signing by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/francislavoie/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/francislavoie">@francislavoie</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5653569026" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/8092" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/8092/hovercard" href="https://github.com/caddyserver/caddy/pull/8092">#8092</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/vijayvenkatj/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/vijayvenkatj">@vijayvenkatj</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4590935965" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7800" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7800/hovercard" href="https://github.com/caddyserver/caddy/pull/7800">#7800</a></li> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/AliMickey/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/AliMickey">@AliMickey</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4603129803" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7802" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7802/hovercard" href="https://github.com/caddyserver/caddy/pull/7802">#7802</a></li> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bluegate-studio/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bluegate-studio">@bluegate-studio</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4608969024" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7809" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7809/hovercard" href="https://github.com/caddyserver/caddy/pull/7809">#7809</a></li> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/alhudz/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/alhudz">@alhudz</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4621309730" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7812" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7812/hovercard" href="https://github.com/caddyserver/caddy/pull/7812">#7812</a></li> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/oksusucha/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/oksusucha">@oksusucha</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4610535281" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7810" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7810/hovercard" href="https://github.com/caddyserver/caddy/pull/7810">#7810</a></li> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/luccinmasirika/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/luccinmasirika">@luccinmasirika</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4655167436" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7817" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7817/hovercard" href="https://github.com/caddyserver/caddy/pull/7817">#7817</a></li> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/larrasket/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/larrasket">@larrasket</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4686254928" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7827" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7827/hovercard" href="https://github.com/caddyserver/caddy/pull/7827">#7827</a></li> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Dean2026/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Dean2026">@Dean2026</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4683400432" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7826" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7826/hovercard" href="https://github.com/caddyserver/caddy/pull/7826">#7826</a></li> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/yintaisha/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/yintaisha">@yintaisha</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4706546727" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7832" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7832/hovercard" href="https://github.com/caddyserver/caddy/pull/7832">#7832</a></li> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/TowyTowy/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/TowyTowy">@TowyTowy</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4850634471" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7869" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7869/hovercard" href="https://github.com/caddyserver/caddy/pull/7869">#7869</a></li> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/thientd/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/thientd">@thientd</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4807492604" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7858" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7858/hovercard" href="https://github.com/caddyserver/caddy/pull/7858">#7858</a></li> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/PichuChen/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/PichuChen">@PichuChen</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4891522540" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7884" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7884/hovercard" href="https://github.com/caddyserver/caddy/pull/7884">#7884</a></li> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/futurehua/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/futurehua">@futurehua</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4917122727" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7892" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7892/hovercard" href="https://github.com/caddyserver/caddy/pull/7892">#7892</a></li> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Salynn/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Salynn">@Salynn</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4893669283" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7886" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7886/hovercard" href="https://github.com/caddyserver/caddy/pull/7886">#7886</a></li> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/SillyZir/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/SillyZir">@SillyZir</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4934903193" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7898" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7898/hovercard" href="https://github.com/caddyserver/caddy/pull/7898">#7898</a></li> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jvoisin/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jvoisin">@jvoisin</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4769186702" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7847" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7847/hovercard" href="https://github.com/caddyserver/caddy/pull/7847">#7847</a></li> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/firefart/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/firefart">@firefart</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4962716676" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7903" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7903/hovercard" href="https://github.com/caddyserver/caddy/pull/7903">#7903</a></li> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/renich/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/renich">@renich</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4992695830" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7912" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7912/hovercard" href="https://github.com/caddyserver/caddy/pull/7912">#7912</a></li> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/r0h1tb/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/r0h1tb">@r0h1tb</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5069072770" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7922" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7922/hovercard" href="https://github.com/caddyserver/caddy/pull/7922">#7922</a></li> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ousamabenyounes/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ousamabenyounes">@ousamabenyounes</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5082104971" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7924" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7924/hovercard" href="https://github.com/caddyserver/caddy/pull/7924">#7924</a></li> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ittakestwo123/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ittakestwo123">@ittakestwo123</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5158356299" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7940" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7940/hovercard" href="https://github.com/caddyserver/caddy/pull/7940">#7940</a></li> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bzyy1024/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bzyy1024">@bzyy1024</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5110419971" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7934" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7934/hovercard" href="https://github.com/caddyserver/caddy/pull/7934">#7934</a></li> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/faiyazrahmann/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/faiyazrahmann">@faiyazrahmann</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5238065367" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7958" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7958/hovercard" href="https://github.com/caddyserver/caddy/pull/7958">#7958</a></li> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/gautamrizwani/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/gautamrizwani">@gautamrizwani</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4923183225" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7894" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7894/hovercard" href="https://github.com/caddyserver/caddy/pull/7894">#7894</a></li> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/0jaspahwa/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/0jaspahwa">@0jaspahwa</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5244855789" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7960" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7960/hovercard" href="https://github.com/caddyserver/caddy/pull/7960">#7960</a></li> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/AmariahAK/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/AmariahAK">@AmariahAK</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4987862943" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7910" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7910/hovercard" href="https://github.com/caddyserver/caddy/pull/7910">#7910</a></li> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/DavidCarliez/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/DavidCarliez">@DavidCarliez</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5223576946" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7952" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7952/hovercard" href="https://github.com/caddyserver/caddy/pull/7952">#7952</a></li> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/kojah/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/kojah">@kojah</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5288571357" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7968" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7968/hovercard" href="https://github.com/caddyserver/caddy/pull/7968">#7968</a></li> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/SashaMIT/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/SashaMIT">@SashaMIT</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5342863957" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7988" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7988/hovercard" href="https://github.com/caddyserver/caddy/pull/7988">#7988</a></li> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/hktitof/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/hktitof">@hktitof</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5357895396" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7993" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7993/hovercard" href="https://github.com/caddyserver/caddy/pull/7993">#7993</a></li> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/IslamElsayed/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/IslamElsayed">@IslamElsayed</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5385411233" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/8003" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/8003/hovercard" href="https://github.com/caddyserver/caddy/pull/8003">#8003</a></li> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/wangjingshuiku/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/wangjingshuiku">@wangjingshuiku</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5237315129" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7957" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7957/hovercard" href="https://github.com/caddyserver/caddy/pull/7957">#7957</a></li> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/btncwn/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/btncwn">@btncwn</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5466403959" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/8027" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/8027/hovercard" href="https://github.com/caddyserver/caddy/pull/8027">#8027</a></li> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/XiaoleC05/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/XiaoleC05">@XiaoleC05</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5330292529" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7986" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7986/hovercard" href="https://github.com/caddyserver/caddy/pull/7986">#7986</a></li> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/H-XX-D/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/H-XX-D">@H-XX-D</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5511008946" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/8038" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/8038/hovercard" href="https://github.com/caddyserver/caddy/pull/8038">#8038</a></li> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/tippexs/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/tippexs">@tippexs</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5517625712" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/8042" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/8042/hovercard" href="https://github.com/caddyserver/caddy/pull/8042">#8042</a></li> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/amirdaraby/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/amirdaraby">@amirdaraby</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3434848369" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7267" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7267/hovercard" href="https://github.com/caddyserver/caddy/pull/7267">#7267</a></li> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Rohilalala/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Rohilalala">@Rohilalala</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5236612645" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7956" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7956/hovercard" href="https://github.com/caddyserver/caddy/pull/7956">#7956</a></li> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/nfreya/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/nfreya">@nfreya</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5067777580" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/7921" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/7921/hovercard" href="https://github.com/caddyserver/caddy/pull/7921">#7921</a></li> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Indra55/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Indra55">@Indra55</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5592876447" data-permission-text="Title is private" data-url="https://github.com/caddyserver/caddy/issues/8067" data-hovercard-type="pull_request" data-hovercard-url="/caddyserver/caddy/pull/8067/hovercard" href="https://github.com/caddyserver/caddy/pull/8067">#8067</a></li> </ul> <p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/caddyserver/caddy/compare/v2.11.4...v2.11.6"><tt>v2.11.4...v2.11.6</tt></a></p> github-actions[bot] tag:github.com,2008:Repository/88200328/9.6.39 2026-10-01T17:27:58Z LibreraReader: 9.6.40 <ul> <li>MuPDF 1.28.5</li> <li>Small fixes</li> </ul> foobnix tag:github.com,2008:Repository/88200328/9.6.17 2026-10-01T13:58:21Z LibreraReader: 9.6.17 <ul> <li>Fixed crash</li> <li>LibreraX has been integrated for opening books</li> </ul> <p>If you enjoy Librera PRO, LibreraX PRO, donations are appreciated: <a href="https://www.patreon.com/librera" rel="nofollow">https://www.patreon.com/librera</a></p> <p>Please try the new LibreraX PRO app. Feedback is welcome at <a href="mailto:librera.reader@gmail.com">librera.reader@gmail.com</a><br> <a href="https://github.com/foobnix/LibreraReader/blob/master/LIBRERAX.md">https://github.com/foobnix/LibreraReader/blob/master/LIBRERAX.md</a></p> foobnix tag:github.com,2008:Repository/88200328/9.6.25 2026-10-01T13:57:54Z LibreraReader: 9.6.25 <ul> <li>Fixed crashes</li> <li>Cover radius 0-5 (0 returns to old UI style)</li> </ul> foobnix tag:github.com,2008:Repository/341787720/latest-commit 2026-10-01T11:43:07Z diffutils: latest-commit <p>commit: <a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/uutils/diffutils/commit/63a9c4affa6f7361073a0f3c3544470d98ea7e4e/hovercard" href="https://github.com/uutils/diffutils/commit/63a9c4affa6f7361073a0f3c3544470d98ea7e4e"><tt>63a9c4a</tt></a></p> github-actions[bot] tag:github.com,2008:Repository/1114168896/0.1.1 2026-10-01T01:29:27Z ZLSpectrumEqualizer: 0.1.1 <p>Revert the FFT analyze to the previous one &amp; Fix some Linux specific UI issues</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 the next MAJOR version, 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> <p>Bug fixes</p> <ul> <li>fix Linux combobox &amp; text editor interaction issue</li> </ul> <p>New Features</p> <ul> <li>add customized combobox alignment</li> <li>add customized FFT quality</li> </ul> <p>Other Changes</p> <ul> <li>change the default FFT quality to <code>Normal</code> to prevent lags</li> </ul> github-actions[bot] tag:github.com,2008:Repository/842499342/0.6.1 2026-10-01T01:28:24Z ZLCompressor: 0.6.1 <p>Revert the FFT analyze to the previous one &amp; Fix some Linux specific UI issues</p> <p>Also improve the over-sampling performance a LOT in this version :)</p> <p>We <em>may</em> see some UI adjustments in the future to make it more aligned with other plugins.</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 the next MAJOR version, 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> <p>Bug fixes</p> <ul> <li>fix Linux combobox &amp; text editor interaction issue</li> </ul> <p>New Features</p> <ul> <li>add customized combobox alignment</li> <li>add customized FFT quality</li> </ul> <p>Improvements</p> <ul> <li>improve over-sampling performance</li> </ul> <p>Other Changes</p> <ul> <li>change the default FFT quality to <code>Normal</code> to prevent lags</li> </ul> github-actions[bot] tag:github.com,2008:Repository/729959292/1.4.1 2026-10-01T01:26:15Z ZLEqualizer: 1.4.1 <p>Revert the FFT analyze to the previous one &amp; Fix some Linux specific UI issues</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 the next MAJOR version, 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> <p>Please read</p> <p>the manual: <a href="https://zl-audio.github.io/plugins/zlequalizer2/" rel="nofollow">https://zl-audio.github.io/plugins/zlequalizer2/</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> <p>Bug fixes</p> <ul> <li>fix Linux combobox &amp; text editor interaction issue</li> </ul> <p>New Features</p> <ul> <li>add customized combobox alignment</li> <li>add customized FFT quality</li> </ul> <p>Other Changes</p> <ul> <li>change the default FFT quality to <code>Normal</code> to prevent lags</li> </ul> github-actions[bot] tag:github.com,2008:Repository/1333271506/v1.10.1 2026-09-30T22:04:36Z overtonium: Overtonium v1.10.1 <h1>Overtonium 1.10.1</h1> <p>A 32-partial additive synthesiser laid out like a 32-channel mixer. Every channel is one sine oscillator locked to a harmonic of the played note, and every channel has its own tuning, envelope and modulation.</p> <h2>What is fixed in 1.10.1</h2> <p><strong>Removing the plugin could hang the host.</strong> In a host that unloads the plugin binary once no instances of it are left, taking the last one out could lock the host up, and the only way out was to end the process. It was reported in FL Studio and in Reaper, while hosts that keep the binary loaded were never affected.</p> <p>The texture the panels are drawn with is an image, built the first time a window opens and then shared by every window after it. It was being kept for the life of the process, which looks like a saving and is one everywhere except here. Under Windows that image lives on the graphics card, so letting go of it hands resources back to the driver, and keeping it in a static meant that happened while the host was unloading the binary. Windows holds a lock for the whole of an unload, and the driver work that releasing the image needs cannot run until that lock is free, so neither one finishes. The texture now belongs to the windows that use it and goes when the last of them closes, with the host running normally and nothing left to release at unload.</p> <p>If you never opened Overtonium's window in a session, you will not have seen this, because the texture is only built when a window first paints.</p> <p>Nothing else changed. There is no reason to update if you have not run into it, and no reason not to.</p> <h2>Upgrading</h2> <p>Install over the top. Sessions, presets and window sizes are unaffected, and nothing about the sound has changed.</p> <h2>Windows will warn you</h2> <p>The Windows installer is not signed, so SmartScreen says the publisher is unknown. Choose "More info" and then "Run anyway". If you would rather not, build from source: the readme says how, and it takes one CMake command.</p> <h2>macOS</h2> <p>The installer is signed and notarised, so it opens without a warning. It asks which of the three formats you want and installs only those.</p> <h2>Licence</h2> <p>AGPLv3, which follows from JUCE. The whole source is in this repository.</p> github-actions[bot] tag:github.com,2008:Repository/29207621/v2.11.5 2026-09-30T21:27:05Z caddy: v2.11.5 <p>Release v2.11.5</p> francislavoie tag:github.com,2008:Repository/1333271506/v1.10.0 2026-09-30T17:10:26Z overtonium: Overtonium v1.10.0 <h1>Overtonium 1.10.0</h1> <p>A 32-partial additive synthesiser laid out like a 32-channel mixer. Every channel is one sine oscillator locked to a harmonic of the played note, and every channel has its own tuning, envelope and modulation.</p> <h2>What is new in 1.10.0</h2> <p><strong>The echo is three machines, and so is the reverb.</strong> Both were a switch that turned one thing on. Both are now a button that says which machine is running, with an Off at the top of the list, and the panel underneath each is unchanged.</p> <p><em>Tape</em> is the loop that was already there. <em>BBD</em> is a line of buckets handing a charge along, and the thing that makes those worth keeping is that they get darker the longer you set them to: the line holds a fixed number of buckets, so a longer delay can only be had by clocking them more slowly, and the filter that reconstructs the signal has to come down with the clock. Short settings are nearly clean and long ones are murk, which is a second job TIME has on this type and on no other. <em>Digital</em> is the one that does not pretend to be anything, and it is the only ping-pong of the three: the input arrives in the middle and every repeat crosses to the other side, where the tape and the bucket brigade never cross at all.</p> <p>AGE is what makes three machines worth having rather than three names for one. It is the same knob on all of them and it asks each for the thing that machine gets worse at. On the tape that is wear: top end lost on every pass, motor wander, and how hard the tape leans over. On the bucket brigade it is the clock slowing and the compander breathing, so hiss swells in behind a chord and ducks away as the repeats die. On the digital it is bits and sample rate, down to six bits and an eighth of the host rate, so a tail starts as the signal and ends as a memory of it. At nothing the digital is exactly a copy, which is what a digital delay is for.</p> <p><em>Room</em> is the reverb that was already there. <em>Modulated plate</em> is a sheet of steel with no geometry to hear, so a hit spreads across all of it at once and the tail is dense from its first instant rather than arriving in stages: measured on a click, the first fiftieth of a second carries one and a half times the average of the whole tail where the room carries none of it. It is called modulated because it is. Its allpasses wander six times as far as the shape they come from gives them, and without that a long decay repeats its own pattern instead of washing, which is audible as a delay with some reverb on it. <em>Spring</em> is a tray of three helical springs, and what makes a spring a spring is that a helix carries the top of the band faster than the bottom, so a hit comes back not as a hit but as a chirp that starts high and falls. Every bounce adds another, so a spring gets less like what you played as it decays rather than merely quieter.</p> <p>DECAY, DAMP and PRE mean the same thing on all three reverbs, and that is checked rather than hoped for: at the same setting the three tails run 2.23, 2.38 and 2.46 seconds. The wet levels are matched to a hundredth of a decibel as well, so switching machines changes the character of a tail and not its length or its loudness.</p> <p><strong>The character now says how hard the mix is driven.</strong> The thirty-three channels were simply added together. They are now summed onto a bus that drives, by an amount belonging to the oscillator character, because the character is meant to say what circuit you are playing through and a summing amplifier is part of that circuit.</p> <p>It answers to level rather than to a setting, which is what a table baked into one partial's waveform cannot do: play quietly and it is barely there, lean on the keyboard and it arrives. Bulb asks for the most and Diode the least, Pure sums cleanly and does nothing at all, and there is no knob for it, because how hard a summing amplifier is driven is part of what choosing a character means. Every factory preset on a character therefore has a little more in it than it had, and that is the intended sound of them.</p> <p><strong>How fast you let a key go sets the level its tail starts from.</strong> On a keyboard that senses a release, the hardest lift doubles the key-off level and the softest halves it, geometrically, so two steps down and two steps up undo each other. There is no knob and no parameter: it is a property of the gesture the way velocity is, and nothing about a patch changes because of it. A keyboard that cannot sense a release changes nothing, including the two different things "no release velocity" looks like on the wire, a note-off carrying zero and a note-on of velocity zero, both of which are read as no information rather than as the softest possible lift.</p> <p><strong>The master volume is a glass fader lying across the output meter.</strong> It was a knob in a group of its own. It now lies over the lamps it is setting the level of, standing a little proud of them top and bottom the way the channel faders stand proud of their tracks, and the group it used to need is gone. The two converter readouts moved up with it and sit a little off the bottom of the panel rather than flush against it.</p> <p><strong>A thirty-second factory preset, and four others that reach for the new machines.</strong> <em>60s Organ</em> is a combo organ that has not been serviced: the partials are pulled off each other rather than tuned, so the stack beats against itself instead of fusing, and the noise channel is a few milliseconds of key click on every note. It runs into a bucket brigade at nearly eight tenths of feedback, driven far enough in that the repeats grow rather than fade, and falls into a spring long enough to still be ringing when the next chord arrives. It is also the first patch in the set to ask for Diode, which had come out of the character pass with nothing at all.</p> <p><em>Shimmer</em> and <em>Tape Choir</em> now ask for the plate rather than the room, which is what a long wet tail over a moving spectrum wants. <em>Cathedral</em> and <em>Struck Bell</em> stay on the room. The other twenty-seven use no reverb or echo at all and are unaffected.</p> <p><strong>LINK came back switched off.</strong> The scope and the curve were remembered with the session and the switch was not, so reopening a window gave you exactly the drag you had set up, turned off. All three are saved together now, and switching it off sticks as well, which is the half a fix that only wrote the setting when it was true would have missed.</p> <p><strong>Unfolding a section made the faders swell.</strong> On a window shrunk down until the faders were squeezed, folding a section behaved and unfolding it gave back twice the height it had taken, all of it to the faders, which on a Mac put them under the dock. Applying the window's new size limits is itself a resize, so the height was being measured after it had already moved and the same rows were counted twice. Folding never showed it, because folding lowers the limit rather than raising it and nothing gets constrained.</p> <p><strong>Fit all 32 channels left the window somewhere you could not drag it back to.</strong> It set a height 84 pixels below the shortest window the plugin would allow, so the faders came out shorter than any amount of dragging could make them, and then the first touch of the window edge snapped them back up. The floor was worked out for the narrowest window, where the top bar reflows onto three rows and takes 192 pixels, and then applied at every width. At a width that shows all 32 channels the bar takes one row and 66, so a wide window was being held 116 pixels taller than it needed to be. The floor now follows the width, which stops the snap and also means a wide window can be dragged 32 pixels shorter still, since the room the bar is not using belongs to the mixer.</p> <p><strong>A damaged session file could leave the plugin silent.</strong> A session carrying a value that is not a number, which is what a truncated or corrupted file can hold, put that value straight into a parameter and the instrument rendered nothing but silence from then on. Every other kind of nonsense in such a file was already clamped on the way in. This one was not, because the clamp is a pair of comparisons and both of them are false against a value that is not a number, so it passed through untouched. Those values now fall back to the parameter's default.</p> <p><strong>A host could hang when it unloaded the plugin.</strong> Removing the last instance and letting the host unload the binary could deadlock it, reported in FL Studio and in Reaper, with hosts that keep the binary loaded unaffected. The settings file holding the update-check preference was kept in an object that outlived every instance, so it was destroyed at unload, at which point it released the last reference to the thread JUCE runs timers on and waited for that thread to finish with no timeout. On Windows that wait is taken under the same lock a thread needs to exit, so it could never end. The file is now opened where it is read and closed again, and nothing in the plugin outlives the binary. Opening the window once was enough to trigger it, whether or not the update check had ever been turned on.</p> <p><strong>Draw the faders.</strong> A drag across the fader area sets every channel it passes over from the pointer's height, so a spectrum goes in with one stroke instead of thirty-two drags. Hold shift for it, or latch it on with the new DRAW switch under the LEVEL caption in the caption gutter, which is remembered with the session the way LINK is. The switch lights either way, so the panel says what a drag would do however it came to be armed.</p> <p>Armed, every fader lights in the same accent the switch does, so what a drag would reach is visible before you touch anything. That is the preview LINK already uses to answer the same question, rather than a second kind of highlight.</p> <p>It is not LINK under another name: LINK shares one relative move out across the channels by a rule, and this sets absolute values freehand, so neither can do the other's job. Columns the pointer crosses between one moment and the next are filled in, so a fast hand leaves no gaps, and the whole stroke is one step in the undo history however many faders it moved. The noise channel draws with the rest. While it is armed the pointer becomes a pencil and LINK reads as off, without being off: letting the tool go gives LINK back exactly as it was.</p> <p>It works on the faders alone, and that is a fact about faders rather than a corner cut. A fader's value is where it stands, which is what lets a pointer's height mean anything; a knob has no such reading, so there is nothing for a drawn drag to say to one.</p> <p><strong>A section folds from any strip, not just from the gutter.</strong> Pointing at one of the rules gives the same hand the gutter's headings do, and lights the band across every channel along with that section's caption and its disclosure mark, so it is visible what the click would fold before you make it. Pointing at the caption itself does the same, which it did not before: the caption column had always been lit by whichever strip the pointer was on rather than by itself.</p> <p>Every section draws a rule across all thirty-three columns, lined up with its heading in the caption gutter on the far left. Clicking one of those rules now folds that section, the same as clicking the heading. Reaching the gutter meant leaving the partial you were working on, crossing the mixer and finding your way back, and by then you had lost which column you were in. Nothing needed making clickable for it: the rules are the one part of a strip with nothing standing on them, and the lamps four of the five carry already let clicks through so the rule underneath reads as a line rather than a gap. The pointer shows the same hand over a rule as over a heading.</p> <p><strong>The bar says what each group is.</strong> A small caption under the button at the head of the character, echo and reverb groups. Those buttons show a value, so the bar reads OP-AMP, TAPE and ROOM with nothing saying what any of them is a choice of. That was tolerable while each was one fixed thing behind a switch, and it is not with three machines on each of two of them.</p> <p>With the caption doing that job, the button is free to say the one thing the caption cannot. It reads OFF when the effect is off, where it used to read ECHO or REVERB so that the group could still be found. The ring of lit ticks around that effect's four knobs goes dark at the same time: they keep their positions, so a setting can still be dialled in before the thing is switched on, but nothing on a stage that is not in the signal is lit.</p> <p><strong>The clipper has a switch on the bar.</strong> CLIP, under the output meter beside the two converter readouts, which are now a little larger and sit hard up under the meter. Those three are the whole of what happens to the signal on its way out, so they stand together. It was only in the Settings menu before, on the grounds that it is set once and left, which is true of where you end up and not of how you get there: whether the output is being caught is a question about what you are hearing right now. It is still in the menu as well, and both follow the one parameter.</p> <p><strong>A LINK drag that spreads a move uniformly now spreads it in decibels.</strong> On the fader row it was uniform in travel, which is not uniform in anything you can hear: dragging the loudest channel up put six or seven decibels on it and thirty on the quietest. It is the same number of decibels on every channel now, so the drag is a level change and not a change in the sound.</p> <h2>Fixed</h2> <p><strong>The first repeat of an echo came back clean.</strong> Every repeat after it was worn and the first was not, on both the tape and the bucket brigade, so the machine seemed to switch on only once you had heard it work. The output was being taken from the delay line ahead of the stage that ages it. Both now take the coloured signal.</p> <p><strong>Both echoes compressed everything they were handed.</strong> The tape's backstop, which exists so that a steady tone at ninety-five percent feedback cannot pile up, was set for a bus that ran near one. The bus runs at one and a half to nearly two on a full patch, so the backstop was permanently engaged and the repeats were squashed at every setting rather than only at the extreme it was there to catch. It is set for the level the bus actually reaches now, and both echoes are cleaner for it.</p> <p><strong>The digital delay had a tail that never went away</strong>, at any feedback from a half upwards, still audible twenty-five seconds later. A quantiser inside a feedback loop has a fixed point: one step times a feedback of a half rounds back up to one step. The wear is applied on the way out now rather than on the way round, which loses nothing, because the step stays the same size while the repeats get quieter, so a late repeat is still crushed against a coarser grid than an early one.</p> <p><strong>The plugin would not tell you which version it was.</strong> Not in the Settings menu, not on the panel, not anywhere, while the bug report template refused a report without a version and told people to read it off the Settings menu or the credit line under the wordmark. It was in neither and never had been. The menu now opens with the version as its first heading, and the templates say where to find it.</p> <p><strong>A scroll over a knob also dragged the mixer sideways</strong>, whenever the window was narrow enough for the series to need scrolling. Each strip watches everything inside it so that a pointer resting on a knob is reported by the strip rather than swallowed by the control, and a watcher like that is handed every event, wheels included, which it then passed on upward. So the knob took the scroll and the panel took it again. The wheel is how most of this instrument gets adjusted, so this was worth more than its size. A scroll on a strip's background still moves the series, which is the half a careless fix would have broken.</p> <p><strong>Right-clicking the gap between two sections opened two LINK menus</strong>, stacked on each other. Picking an item on the front one left the one behind it standing with its ticks unmoved, so the setting looked to have been refused while the instrument had already taken it. A strip watches everything inside it so that a right-click on a knob reaches the LINK menu rather than being swallowed by the control, and a watcher like that is handed the strip's own clicks as well as its children's, so a click on the strip itself arrived twice. Only the gaps between sections showed it, since everywhere else on a strip has a control over it.</p> <p><strong>The zoom menu ticked 100% whatever the zoom was.</strong> The zooming itself was right and the tick was not, so the menu disagreed with the window.</p> <p><strong><em>Sparkle Pad</em> was mixed low on purpose and no longer needs to be.</strong> Its channels were deliberately quiet to keep the tape echo's distortion down, which is the thing that was wrong above. They are back up, by the same number of decibels on every channel.</p> <h2>Under it</h2> <p><strong>Two parameters were added, 786 in all.</strong> Echo Type and Reverb Type, both on the end, so every automation lane written before this release still points at the control it was pointing at. The switch that turns each effect on is the older parameter and stayed where it was, which is why a patch made before this release loads with the tape it was made on and the room it was made in.</p> <p><strong>The bus drive runs at twice the sample rate</strong>, through a half-band filter, so nothing it makes folds back down. It is antiderivative antialiased on top of that, and two things about it had to be measured rather than reasoned about: moving the amount spiked the output, because the antiderivative was being carried across blocks instead of recomputed, and at small drives the gain was more than a decibel out, which was float cancellation rather than anything about the curve.</p> <p><strong>The op-amp's drive on the bus is a corner rather than a rate limit.</strong> A slew limit is the right model for an amplifier that cannot keep up and the wrong one for a bus, where it reacts to the sum's slope rather than to any one note: it broke up on high notes at settings that sounded fine on low ones, measuring around -60 dB of inharmonic rubbish across the keyboard. A cubic corner does what was wanted without the register deciding how much.</p> <p><strong>The spring is the one expensive thing here.</strong> Its dispersion is a chain of allpasses per spring and there are three springs, so it costs about as much as two voices where the room and the plate each cost a fraction of one. The chain started at a hundred sections and five percent of a core; sixty sections with steeper coefficients keep nine tenths of the chirp for under half the work, and the table of what was tried is in the source beside the number.</p> <h2>Upgrading from 1.9.0</h2> <p><strong>Presets on a character sound fuller</strong>, because the bus they are summed onto now drives. That is the intended sound of them and there is no switch to take it off, short of choosing Pure. A session is unaffected in the sense that every value it stored comes back, but the bus is part of the instrument rather than part of the patch, so a session on a character will have it too.</p> <p><strong>The echoes are cleaner and their first repeat is coloured.</strong> If you had a patch leaning on the tape echo's compression, it is not there any more.</p> <p><strong><em>Sparkle Pad</em> is louder</strong> and otherwise unchanged. Loading it gives what it ships as rather than what it was in 1.9.0; a session that had it loaded carries the values and is not affected.</p> <p><strong>A MIDI program change may name a different preset.</strong> Factory presets are numbered by their position in the alphabetical list, and <em>60s Organ</em> sorts second, so every preset after it has moved up by one. A clip or a foot controller sending a number will pick the sound above the one it used to. Sessions are not affected: a saved session carries the preset's name as well as its index, and the name is what decides.</p> <p><strong>Automation is unaffected.</strong> The two new parameters went on the end, and nothing else moved.</p> <p><strong>Your own patches get the tape and the room</strong>, which is what every patch written before this had, because the type is a new parameter and an old patch says nothing about it.</p> <h2>Installing</h2> <p>The <a href="https://benjamindehli.github.io/overtonium/install/#downloads" rel="nofollow">install page</a> has a row per file saying who each one is for. In short: take the installer for your platform, or the zip beside it if you have no administrator rights or keep plugins somewhere of your own.</p> <table> <thead> <tr> <th>Platform</th> <th>Installer</th> <th>Formats</th> </tr> </thead> <tbody> <tr> <td>macOS</td> <td><code>.pkg</code>, with a chooser</td> <td>VST3, Audio Unit, Standalone</td> </tr> <tr> <td>Windows</td> <td><code>.exe</code></td> <td>VST3, Standalone</td> </tr> <tr> <td>Linux</td> <td>none, use the zip</td> <td>VST3, LV2, Standalone</td> </tr> </tbody> </table> <p>The macOS build is a universal binary and runs on both Apple Silicon and Intel. Logic and GarageBand only look for new Audio Units when they start, so restart them after installing.</p> <p>On Linux the zip's contents go in <code>~/.vst3</code> and <code>~/.lv2</code>.</p> <p>If you installed an earlier version with the package, the installer replaces it. A plugin folder holding two copies of Overtonium is worth tidying: macOS registers one of them and the host uses whichever that is, which need not be the newer.</p> <h2>What has actually been tried</h2> <p>All three platforms are built on every push, run through both test suites, and put through pluginval at strictness 8. The VST3 also goes through Steinberg's own conformance validator, and both suites run again under the address and undefined behaviour sanitizers. macOS is the only platform where the plugin has been loaded into a real host, where the Audio Unit and the VST3 also pass <code>auval</code>. Nobody has run the Windows or Linux builds in a DAW yet, so treat those as untried and please open an issue with whatever you find.</p> <p>How much drive each character puts on the bus was decided by ear, at a keyboard, one character at a time, with a development control that is not in this build. There is no measurement behind those five numbers and there should not be. The same goes for which of the three echoes and which of the three reverbs any preset would want, which is why no preset was changed to ask for one: the new machines are there to be reached for rather than shipped switched on.</p> <p>Most of what is fixed above came back from playing rather than from a test, and the tests were written afterwards, which is the honest order. The first repeat coming back clean, the echoes squashing everything, the digital delay's tail that never went away, and the plate sounding like a delay at a long decay were all heard first. The plate is the one worth naming twice: it passed every test it had, and the test that would have caught it had to be invented to describe what was wrong with it.</p> <h2>Windows will warn you</h2> <p>The Windows installer is not signed, so SmartScreen says the publisher is unknown. Choose "More info" and then "Run anyway". If you would rather not, build from source: the readme says how, and it takes one CMake command.</p> <h2>macOS</h2> <p>The installer is signed and notarised, so it opens without a warning. It asks which of the three formats you want and installs only those.</p> <h2>Licence</h2> <p>AGPLv3, which follows from JUCE. The whole source is in this repository.</p> github-actions[bot] tag:github.com,2008:Repository/671654508/@biomejs/biome@2.5.15 2026-09-30T15:23:21Z biome: Biome CLI v2.5.15 <h2>2.5.15</h2> <h3>Patch Changes</h3> <ul> <li> <p><a href="https://github.com/biomejs/biome/pull/10634" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/10634/hovercard">#10634</a> <a href="https://github.com/biomejs/biome/commit/b436ba00de298d5002a3d3bb1fae1d2a882f6d58"><code>b436ba0</code></a> Thanks <a href="https://github.com/subaru-hello">@subaru-hello</a>! - Added the new nursery rule <a href="https://biomejs.dev/linter/rules/no-react-object-type-as-default-prop/" rel="nofollow"><code>noReactObjectTypeAsDefaultProp</code></a>, which disallows array, object, and function values as default props in React components.</p> <p>For example, the following snippet triggers the rule.</p> <div class="highlight highlight-source-js notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="function Component({ items = [] }) { return items; }"><pre><span class="pl-k">function</span> <span class="pl-v">Component</span><span class="pl-kos">(</span><span class="pl-kos">{</span> items <span class="pl-c1">=</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-k">return</span> <span class="pl-s1">items</span><span class="pl-kos">;</span> <span class="pl-kos">}</span></pre></div> </li> <li> <p><a href="https://github.com/biomejs/biome/pull/11956" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11956/hovercard">#11956</a> <a href="https://github.com/biomejs/biome/commit/faa8b374da7e196c937258c5442b4f773b4ba574"><code>faa8b37</code></a> Thanks <a href="https://github.com/dyc3">@dyc3</a>! - Added the nursery rule <a href="https://biomejs.dev/linter/rules/no-svelte-export-let/" rel="nofollow"><code>noSvelteExportLet</code></a>, which disallows declaring Svelte component props with the legacy <code>export let</code> syntax. Use the <code>$props()</code> rune instead.</p> <div class="highlight highlight-source-svelte notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="&lt;script&gt; export let name; &lt;/script&gt;"><pre>&lt;<span class="pl-ent">script</span>&gt;<span class="pl-s1"></span> <span class="pl-s1"> <span class="pl-k">export</span> <span class="pl-k">let</span> name;</span> <span class="pl-s1"></span>&lt;/<span class="pl-ent">script</span>&gt;</pre></div> </li> <li> <p><a href="https://github.com/biomejs/biome/pull/10816" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/10816/hovercard">#10816</a> <a href="https://github.com/biomejs/biome/commit/1b9479e4c85dd11af68ec14cbe43a5000edce86e"><code>1b9479e</code></a> Thanks <a href="https://github.com/Th3S4mur41">@Th3S4mur41</a>! - Added a new nursery rule <a href="https://biomejs.dev/linter/rules/use-logical-properties" rel="nofollow"><code>useLogicalProperties</code></a> that enforces the use of logical properties in CSS, promoting better internationalization and accessibility practices. The rule supports a <code>direction</code> option with <code>"ltr"</code> as the default and <code>"rtl"</code> as the alternative.<br> This is a first rule covering parts of <a href="https://github.com/biomejs/biome/issues/9034" data-hovercard-type="issue" data-hovercard-url="/biomejs/biome/issues/9034/hovercard">#9034</a></p> <div class="highlight highlight-source-json notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="{ &quot;linter&quot;: { &quot;rules&quot;: { &quot;nursery&quot;: { &quot;useLogicalProperties&quot;: { &quot;level&quot;: &quot;warn&quot;, &quot;options&quot;: { &quot;direction&quot;: &quot;rtl&quot; } } } } } }"><pre>{ <span class="pl-ent">"linter"</span>: { <span class="pl-ent">"rules"</span>: { <span class="pl-ent">"nursery"</span>: { <span class="pl-ent">"useLogicalProperties"</span>: { <span class="pl-ent">"level"</span>: <span class="pl-s"><span class="pl-pds">"</span>warn<span class="pl-pds">"</span></span>, <span class="pl-ent">"options"</span>: { <span class="pl-ent">"direction"</span>: <span class="pl-s"><span class="pl-pds">"</span>rtl<span class="pl-pds">"</span></span> } } } } } }</pre></div> </li> <li> <p><a href="https://github.com/biomejs/biome/pull/11960" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11960/hovercard">#11960</a> <a href="https://github.com/biomejs/biome/commit/1fdb5c2609fbb64bd3442099f88c40b814405931"><code>1fdb5c2</code></a> Thanks <a href="https://github.com/dyc3">@dyc3</a>! - Added the nursery rule <a href="https://biomejs.dev/linter/rules/use-svelte-kit-rune-imports/" rel="nofollow"><code>useSvelteKitRuneImports</code></a>, which reports imports from the deprecated <code>$app/stores</code> module and suggests <code>$app/state</code> instead.</p> <div class="highlight highlight-source-js notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="import { page } from &quot;$app/stores&quot;;"><pre><span class="pl-k">import</span> <span class="pl-kos">{</span> <span class="pl-s1">page</span> <span class="pl-kos">}</span> <span class="pl-k">from</span> <span class="pl-s">"$app/stores"</span><span class="pl-kos">;</span></pre></div> </li> <li> <p><a href="https://github.com/biomejs/biome/pull/11723" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11723/hovercard">#11723</a> <a href="https://github.com/biomejs/biome/commit/3b429d182588aa19d35190a935e4dcdc5b693e5e"><code>3b429d1</code></a> Thanks <a href="https://github.com/m1handr">@m1handr</a>! - Fixed <a href="https://github.com/biomejs/biome/issues/11656" data-hovercard-type="issue" data-hovercard-url="/biomejs/biome/issues/11656/hovercard">#11656</a>: <a href="https://biomejs.dev/linter/rules/no-astro-set-html-directive/" rel="nofollow"><code>noAstroSetHtmlDirective</code></a> now correctly reports <code>set:html</code> directives inside Astro template expressions.</p> </li> <li> <p><a href="https://github.com/biomejs/biome/pull/12023" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/12023/hovercard">#12023</a> <a href="https://github.com/biomejs/biome/commit/874d5aed43b2ae15e62e28b1909545eba5918f0b"><code>874d5ae</code></a> Thanks <a href="https://github.com/apps/codspeed">@codspeed</a>! - Improved the performance of the HTML formatter up to 4x.</p> </li> <li> <p><a href="https://github.com/biomejs/biome/pull/11761" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11761/hovercard">#11761</a> <a href="https://github.com/biomejs/biome/commit/a3462fee0a32a764dd30dbc01f24c072fafea75a"><code>a3462fe</code></a> Thanks <a href="https://github.com/saberoueslati">@saberoueslati</a>! - Fixed <a href="https://github.com/biomejs/biome/issues/11351" data-hovercard-type="issue" data-hovercard-url="/biomejs/biome/issues/11351/hovercard">#11351</a>: <a href="https://biomejs.dev/linter/rules/use-simplified-logic-expression/" rel="nofollow"><code>useSimplifiedLogicExpression</code></a> no longer reports boolean literals on the right side of <code>||</code> and <code>&amp;&amp;</code> outside boolean contexts, because removing them can change the result of the expression. For example, <code>y = x || false</code> is no longer reported, while <code>if (x || false)</code> still is.</p> </li> <li> <p><a href="https://github.com/biomejs/biome/pull/11732" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11732/hovercard">#11732</a> <a href="https://github.com/biomejs/biome/commit/ff4c4dd922c360fdc9386495d617e63821cc43ee"><code>ff4c4dd</code></a> Thanks <a href="https://github.com/dyc3">@dyc3</a>! - Added the nursery rule <a href="https://biomejs.dev/linter/rules/no-meaningless-void-operator/" rel="nofollow"><code>noMeaninglessVoidOperator</code></a>, which reports unnecessary uses of <code>void</code>, such as <code>void log()</code> when <code>log</code> returns <code>void</code>. The rule allows discarded call results, thenables, <code>void 0</code>, and calls returning <code>never</code>.</p> </li> <li> <p><a href="https://github.com/biomejs/biome/pull/11975" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11975/hovercard">#11975</a> <a href="https://github.com/biomejs/biome/commit/40dd3fb86d22ba155d0e1d081302abbcba0aa4ee"><code>40dd3fb</code></a> Thanks <a href="https://github.com/ematipico">@ematipico</a>! - Fixed the indentation of multiline Astro expressions, in templates and attribute values, when running <code>biome check --write</code>. Biome now formats Astro expressions with <code>biome format</code> too, and places them at the column of the surrounding markup.</p> <div class="highlight highlight-source-diff notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content=" &lt;div&gt; {items.map((item) =&gt; ( - &lt;span&gt;{item}&lt;/span&gt; -))} + &lt;span&gt;{item}&lt;/span&gt; + ))} &lt;/div&gt;"><pre> &lt;div&gt; {items.map((item) =&gt; ( <span class="pl-md"><span class="pl-md">-</span> &lt;span&gt;{item}&lt;/span&gt;</span> <span class="pl-md"><span class="pl-md">-</span>))}</span> <span class="pl-mi1"><span class="pl-mi1">+</span> &lt;span&gt;{item}&lt;/span&gt;</span> <span class="pl-mi1"><span class="pl-mi1">+</span> ))}</span> &lt;/div&gt;</pre></div> </li> <li> <p><a href="https://github.com/biomejs/biome/pull/12016" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/12016/hovercard">#12016</a> <a href="https://github.com/biomejs/biome/commit/09d4000ae7414226a10bcd968765f42ebb9ed13c"><code>09d4000</code></a> Thanks <a href="https://github.com/apps/codspeed">@codspeed</a>! - Improved the performance of indexing and analysis of big files up to 2x. The improvements are mostly visible in projects that make use of project and types lint rules.</p> </li> <li> <p><a href="https://github.com/biomejs/biome/pull/11750" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11750/hovercard">#11750</a> <a href="https://github.com/biomejs/biome/commit/089bde07e3849bd88ac24bf604ab0231672371b0"><code>089bde0</code></a> Thanks <a href="https://github.com/dyc3">@dyc3</a>! - Added the nursery rule <a href="https://biomejs.dev/linter/rules/use-strict-boolean-expressions/" rel="nofollow"><code>useStrictBooleanExpressions</code></a>, which reports ambiguous truthiness checks such as <code>if (value)</code> when <code>value</code> has type <code>number | undefined</code>. Non-nullable strings and numbers and nullable objects are allowed; the rule has no options.</p> </li> <li> <p><a href="https://github.com/biomejs/biome/pull/11494" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11494/hovercard">#11494</a> <a href="https://github.com/biomejs/biome/commit/ad5b362fd17e488f50934306534cc2742b0cf84e"><code>ad5b362</code></a> Thanks <a href="https://github.com/jp-knj">@jp-knj</a>! - Added the nursery rule <a href="https://biomejs.dev/linter/rules/no-astro-conflicting-set-directives/" rel="nofollow"><code>noAstroConflictingSetDirectives</code></a>, which reports Astro elements with multiple content sources, such as <code>set:html</code>, <code>set:text</code>, and child content.</p> <p>For example, <code>&lt;div set:html={html}&gt;content&lt;/div&gt;</code> triggers the rule.</p> </li> <li> <p><a href="https://github.com/biomejs/biome/pull/11878" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11878/hovercard">#11878</a> <a href="https://github.com/biomejs/biome/commit/84d1b3b045e8acfef730b4e5010baad4b7725d8f"><code>84d1b3b</code></a> Thanks <a href="https://github.com/dyc3">@dyc3</a>! - Fixed <a href="https://github.com/biomejs/biome/issues/11748" data-hovercard-type="issue" data-hovercard-url="/biomejs/biome/issues/11748/hovercard">#11748</a>: <a href="https://biomejs.dev/linter/rules/use-exhaustive-switch-cases/" rel="nofollow"><code>useExhaustiveSwitchCases</code></a> now reports missing cases for values created with the mapping overload of <code>Array.from</code>, including arrays imported from another module.</p> </li> <li> <p><a href="https://github.com/biomejs/biome/pull/11802" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11802/hovercard">#11802</a> <a href="https://github.com/biomejs/biome/commit/7d1f37ec11a58e2d972329cf89b5d91758b06f6b"><code>7d1f37e</code></a> Thanks <a href="https://github.com/dyc3">@dyc3</a>! - Tailwind classes will now be detected in Svelte, Vue, and Astro class attribute expressions that don't use a class merging function.</p> </li> <li> <p><a href="https://github.com/biomejs/biome/pull/11910" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11910/hovercard">#11910</a> <a href="https://github.com/biomejs/biome/commit/9e50ea2537c3d541f5b99dc3d4a6eb5120b1ba69"><code>9e50ea2</code></a> Thanks <a href="https://github.com/ematipico">@ematipico</a>! - Fixed <a href="https://github.com/biomejs/biome/issues/11504" data-hovercard-type="issue" data-hovercard-url="/biomejs/biome/issues/11504/hovercard">#11504</a>, a regression where Biome would silently ignore errors in the configuration file. Now errors are correctly retained and checked before executing any command.</p> </li> <li> <p><a href="https://github.com/biomejs/biome/pull/11921" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11921/hovercard">#11921</a> <a href="https://github.com/biomejs/biome/commit/d56863253fbed960b102f58e8fef475c22889301"><code>d568632</code></a> Thanks <a href="https://github.com/hirehamir">@hirehamir</a>! - Fixed <a href="https://github.com/biomejs/biome/issues/10846" data-hovercard-type="issue" data-hovercard-url="/biomejs/biome/issues/10846/hovercard">#10846</a>: when plugins fail to load, Biome now prints each failing plugin's path on its own line, instead of concatenating bare messages like <code>Cannot read file.Cannot read file.</code>.</p> </li> <li> <p><a href="https://github.com/biomejs/biome/pull/11930" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11930/hovercard">#11930</a> <a href="https://github.com/biomejs/biome/commit/82ea5a6175840bc2df0114c16fab0f6d6de06edd"><code>82ea5a6</code></a> Thanks <a href="https://github.com/dyc3">@dyc3</a>! - Fixed <a href="https://github.com/biomejs/biome/issues/11927" data-hovercard-type="issue" data-hovercard-url="/biomejs/biome/issues/11927/hovercard">#11927</a>: The HTML formatter no longer duplicates comments around Svelte blocks. This affected a comment after a block such as <code>{#if}</code> or <code>{#each}</code> at the end of an element, and a comment on the same line as the last element inside a block, before <code>{:else}</code>, <code>{/if}</code>, or a similar tag.</p> </li> <li> <p><a href="https://github.com/biomejs/biome/pull/11931" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11931/hovercard">#11931</a> <a href="https://github.com/biomejs/biome/commit/0cc46d8d7c300452159fa65546d1b576efadd605"><code>0cc46d8</code></a> Thanks <a href="https://github.com/dyc3">@dyc3</a>! - Fixed the indentation of comments at the end of a Svelte block's contents. A comment before <code>{:else}</code>, <code>{:then}</code>, <code>{/if}</code>, or a similar tag is now indented with the block's contents instead of with the tag.</p> <div class="highlight highlight-source-diff notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content=" {#if condition} &lt;span&gt;Text&lt;/span&gt; -&lt;!-- comment --&gt; + &lt;!-- comment --&gt; {/if}"><pre> {#if condition} &lt;span&gt;Text&lt;/span&gt; <span class="pl-md"><span class="pl-md">-</span>&lt;!-- comment --&gt;</span> <span class="pl-mi1"><span class="pl-mi1">+</span> &lt;!-- comment --&gt;</span> {/if}</pre></div> </li> <li> <p><a href="https://github.com/biomejs/biome/pull/12031" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/12031/hovercard">#12031</a> <a href="https://github.com/biomejs/biome/commit/ef0edd4a2fe3eaf29b2c52d5c9eb0c67f85e2ab5"><code>ef0edd4</code></a> Thanks <a href="https://github.com/dyc3">@dyc3</a>! - Fixed <a href="https://github.com/biomejs/biome/issues/12027" data-hovercard-type="issue" data-hovercard-url="/biomejs/biome/issues/12027/hovercard">#12027</a>: Biome's test rules no longer mistake regular method calls named <code>test</code>, <code>it</code>, or <code>describe</code> for tests. For example, <a href="https://biomejs.dev/linter/rules/use-valid-test-title/" rel="nofollow"><code>useValidTestTitle</code></a> used to report the following regular expression check as a test with an invalid title:</p> <div class="highlight highlight-source-js notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="const isComment = /^\s*#/.test(line);"><pre><span class="pl-k">const</span> <span class="pl-s1">isComment</span> <span class="pl-c1">=</span> <span class="pl-pds"><span class="pl-c1">/</span><span class="pl-cce">^</span><span class="pl-cce">\s</span><span class="pl-c1">*</span><span class="pl-s">#</span><span class="pl-c1">/</span></span><span class="pl-kos">.</span><span class="pl-en">test</span><span class="pl-kos">(</span><span class="pl-s1">line</span><span class="pl-kos">)</span><span class="pl-kos">;</span></pre></div> </li> <li> <p><a href="https://github.com/biomejs/biome/pull/11959" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11959/hovercard">#11959</a> <a href="https://github.com/biomejs/biome/commit/8477e610a8ba787234ee2d21efc05680a72beec2"><code>8477e61</code></a> Thanks <a href="https://github.com/dyc3">@dyc3</a>! - Fixed <a href="https://github.com/biomejs/biome/issues/11950" data-hovercard-type="issue" data-hovercard-url="/biomejs/biome/issues/11950/hovercard">#11950</a>: <a href="https://biomejs.dev/linter/rules/no-unused-variables/" rel="nofollow"><code>noUnusedVariables</code></a> now reports arrow functions with expression bodies that only reference themselves, such as <code>let h = () =&gt; h();</code>.</p> </li> <li> <p><a href="https://github.com/biomejs/biome/pull/11915" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11915/hovercard">#11915</a> <a href="https://github.com/biomejs/biome/commit/3260602e03dd44b79afbd36ec77a71a1e87b7ed7"><code>3260602</code></a> Thanks <a href="https://github.com/ematipico">@ematipico</a>! - Fixed <a href="https://github.com/biomejs/biome/issues/11841" data-hovercard-type="issue" data-hovercard-url="/biomejs/biome/issues/11841/hovercard">#11841</a>, where suppression comments had no effect on some parts of HTML-ish files and on snippets embedded in JavaScript files.</p> <p>Now the following suppression works as expected:</p> <div class="highlight highlight-text-html-vue notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="&lt;!-- biome-ignore lint/correctness/noUndeclaredVariables: intentionally external --&gt; &lt;div :title=&quot;missingValue&quot;&gt;&lt;/div&gt;"><pre><span class="pl-c"><span class="pl-c">&lt;!--</span> biome-ignore lint/correctness/noUndeclaredVariables: intentionally external <span class="pl-c">--&gt;</span></span> &lt;<span class="pl-ent">div</span> :<span class="pl-e">title</span>=<span class="pl-pds">"</span><span class="pl-s1"><span class="pl-smi">missingValue</span></span><span class="pl-pds">"</span>&gt;&lt;/<span class="pl-ent">div</span>&gt;</pre></div> </li> <li> <p><a href="https://github.com/biomejs/biome/pull/11952" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11952/hovercard">#11952</a> <a href="https://github.com/biomejs/biome/commit/b51040ee3ab66880c925298977229294248dc636"><code>b51040e</code></a> Thanks <a href="https://github.com/dyc3">@dyc3</a>! - Fixed <a href="https://github.com/biomejs/biome/issues/11951" data-hovercard-type="issue" data-hovercard-url="/biomejs/biome/issues/11951/hovercard">#11951</a>: the GritQL formatter no longer inserts a space after a <code>within</code> pattern without an <code>until</code> clause.</p> <div class="highlight highlight-source-diff notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="-$arg &lt;: within `bar($_)` , +$arg &lt;: within `bar($_)`,"><pre><span class="pl-md"><span class="pl-md">-</span>$arg &lt;: within `bar($_)` ,</span> <span class="pl-mi1"><span class="pl-mi1">+</span>$arg &lt;: within `bar($_)`,</span></pre></div> </li> <li> <p><a href="https://github.com/biomejs/biome/pull/11794" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11794/hovercard">#11794</a> <a href="https://github.com/biomejs/biome/commit/429cf950d29cfa852dfcbcdd9fdb219b2a01af9b"><code>429cf95</code></a> Thanks <a href="https://github.com/dyc3">@dyc3</a>! - Added the nursery rule <a href="https://biomejs.dev/linter/rules/no-tailwind-raw-colors/" rel="nofollow"><code>noTailwindRawColors</code></a> for JavaScript and HTML. It disallows Tailwind palette colors such as <code>bg-pink-500</code> and <code>text-white</code>, encouraging design system color utilities such as <code>bg-primary</code>.</p> </li> <li> <p><a href="https://github.com/biomejs/biome/pull/11837" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11837/hovercard">#11837</a> <a href="https://github.com/biomejs/biome/commit/f5e249b27d2ddf21f92fdd3a531adfd6c411c633"><code>f5e249b</code></a> Thanks <a href="https://github.com/dyc3">@dyc3</a>! - Fixed <a href="https://github.com/biomejs/biome/issues/11836" data-hovercard-type="issue" data-hovercard-url="/biomejs/biome/issues/11836/hovercard">#11836</a>: <code>biome check --write</code> no longer adds invalid parentheses around Svelte <code>{@const}</code> declarations when experimental HTML support and formatting are enabled.</p> </li> <li> <p><a href="https://github.com/biomejs/biome/pull/11978" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11978/hovercard">#11978</a> <a href="https://github.com/biomejs/biome/commit/8be0b9ed7617ccc53fd2554fb42c855b222b5a43"><code>8be0b9e</code></a> Thanks <a href="https://github.com/dyc3">@dyc3</a>! - Fixed <a href="https://github.com/biomejs/biome/issues/11817" data-hovercard-type="issue" data-hovercard-url="/biomejs/biome/issues/11817/hovercard">#11817</a>: Biome no longer crashes when its output is piped to a program that exits early, such as <code>head</code>. Output to the closed pipe is now discarded and Biome exits normally.</p> </li> <li> <p><a href="https://github.com/biomejs/biome/pull/11868" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11868/hovercard">#11868</a> <a href="https://github.com/biomejs/biome/commit/3841c26f45fa13998f6201921ee5ccd0b0063fb7"><code>3841c26</code></a> Thanks <a href="https://github.com/ematipico">@ematipico</a>! - Fixed <a href="https://github.com/biomejs/biome/issues/8986" data-hovercard-type="issue" data-hovercard-url="/biomejs/biome/issues/8986/hovercard">#8986</a>: Biome's language server now scopes all watched-file patterns to each workspace folder, falling back to the deprecated <code>rootUri</code> when no workspace folders are provided. Clients without relative-pattern support receive compatible absolute glob patterns.</p> </li> <li> <p><a href="https://github.com/biomejs/biome/pull/11928" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11928/hovercard">#11928</a> <a href="https://github.com/biomejs/biome/commit/001568183912d1a14bd22d0d20a46e7c7f6bcbb5"><code>0015681</code></a> Thanks <a href="https://github.com/dyc3">@dyc3</a>! - Restricted access to the Unix daemon socket to the user running Biome. The socket now lives in a <code>biome-daemon</code> directory inside Biome's cache directory that only this user can access, and the socket itself has mode <code>0600</code>.</p> </li> <li> <p><a href="https://github.com/biomejs/biome/pull/11835" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11835/hovercard">#11835</a> <a href="https://github.com/biomejs/biome/commit/589ca1a0dd9f93a3ef3f3dac98d01720ae78bdcf"><code>589ca1a</code></a> Thanks <a href="https://github.com/dyc3">@dyc3</a>! - Updated <a href="https://biomejs.dev/linter/rules/use-react-compiler/" rel="nofollow"><code>useReactCompiler</code></a>: Biome now reports React Compiler diagnostics regardless of the React version declared in <code>package.json</code>.</p> </li> <li> <p><a href="https://github.com/biomejs/biome/pull/11907" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11907/hovercard">#11907</a> <a href="https://github.com/biomejs/biome/commit/b7d903781c7968517675de39d3f086184d83faf7"><code>b7d9037</code></a> Thanks <a href="https://github.com/posido">@posido</a>! - Fixed <a href="https://github.com/withastro/compiler-rs/issues/194" data-hovercard-type="issue" data-hovercard-url="/withastro/compiler-rs/issues/194/hovercard">withastro/compiler-rs#194</a>: the HTML parser no longer treats a regex literal that starts with <code>&gt;</code> as the end of a self-closing tag. Astro frontmatter such as <code>const escaped = s.replace(/&gt;/g, "&amp;gt;");</code> no longer swallows the closing <code>---</code> fence, and the same regex inside a template expression no longer runs past its closing <code>}</code>. A regex literal after a keyword such as <code>return</code>, as in <code>return /&gt;'/.test(s)</code>, is now recognized too.</p> </li> <li> <p><a href="https://github.com/biomejs/biome/pull/12021" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/12021/hovercard">#12021</a> <a href="https://github.com/biomejs/biome/commit/59cc595c62882861ac1b1d166da155762a826abb"><code>59cc595</code></a> Thanks <a href="https://github.com/dyc3">@dyc3</a>! - Type inference performance has been significantly improved. Some popular libraries like Zod, Valibot, Arktype, Effect, Kysely, and Drizzle have gained a ~2-240x speedup in our benchmarks. This improvement affects all rules that use type information.</p> </li> <li> <p><a href="https://github.com/biomejs/biome/pull/12044" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/12044/hovercard">#12044</a> <a href="https://github.com/biomejs/biome/commit/c73fb915eb80f843cf6b2ff7f68f8ad3850be1b4"><code>c73fb91</code></a> Thanks <a href="https://github.com/dyc3">@dyc3</a>! - Fixed <a href="https://github.com/biomejs/biome/issues/12042" data-hovercard-type="issue" data-hovercard-url="/biomejs/biome/issues/12042/hovercard">#12042</a>: the HTML formatter no longer removes the space between text and an inline element on the next line when it joins the lines.</p> <div class="highlight highlight-source-diff notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="- &lt;p&gt;a &lt;em&gt;b&lt;/em&gt; c&lt;u&gt;d&lt;/u&gt;&lt;/p&gt; + &lt;p&gt;a &lt;em&gt;b&lt;/em&gt; c &lt;u&gt;d&lt;/u&gt;&lt;/p&gt;"><pre><span class="pl-md"><span class="pl-md">-</span> &lt;p&gt;a &lt;em&gt;b&lt;/em&gt; c&lt;u&gt;d&lt;/u&gt;&lt;/p&gt;</span> <span class="pl-mi1"><span class="pl-mi1">+</span> &lt;p&gt;a &lt;em&gt;b&lt;/em&gt; c &lt;u&gt;d&lt;/u&gt;&lt;/p&gt;</span></pre></div> </li> <li> <p><a href="https://github.com/biomejs/biome/pull/11965" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11965/hovercard">#11965</a> <a href="https://github.com/biomejs/biome/commit/f90bf384bd4d4237e74618e48704933915fa8a78"><code>f90bf38</code></a> Thanks <a href="https://github.com/ematipico">@ematipico</a>! - Fixed module resolution in long-running workspaces so imports reflect package manifest and TypeScript path-mapping changes without requiring the importing file to be edited.</p> </li> <li> <p><a href="https://github.com/biomejs/biome/pull/11860" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11860/hovercard">#11860</a> <a href="https://github.com/biomejs/biome/commit/0884e294b47a3486bbaf190792aecd095443d664"><code>0884e29</code></a> Thanks <a href="https://github.com/dyc3">@dyc3</a>! - Removed the <code>attributes</code> and <code>functions</code> options from the nursery rule <a href="https://biomejs.dev/linter/rules/no-tailwind-arbitrary-value/" rel="nofollow"><code>noTailwindArbitraryValue</code></a>. The rule now uses the same Tailwind detection as <a href="https://biomejs.dev/linter/rules/use-tailwind-shorthand-classes/" rel="nofollow"><code>useTailwindShorthandClasses</code></a>.</p> </li> <li> <p><a href="https://github.com/biomejs/biome/pull/11969" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11969/hovercard">#11969</a> <a href="https://github.com/biomejs/biome/commit/865cd30770b8e3060b7a5fdbcc09a44d25ed15d5"><code>865cd30</code></a> Thanks <a href="https://github.com/AlbinoGeek">@AlbinoGeek</a>! - Fixed <a href="https://github.com/biomejs/biome/issues/11962" data-hovercard-type="issue" data-hovercard-url="/biomejs/biome/issues/11962/hovercard">#11962</a>: <a href="https://biomejs.dev/linter/rules/no-unknown-type-selector/" rel="nofollow"><code>noUnknownTypeSelector</code></a> no longer reports view transition names inside view transition pseudo-elements, such as <code>page</code> in <code>::view-transition-group(page)</code>.</p> </li> <li> <p><a href="https://github.com/biomejs/biome/pull/11914" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11914/hovercard">#11914</a> <a href="https://github.com/biomejs/biome/commit/06ff47b16dee1dd3c0a7768b390074055d6d4afc"><code>06ff47b</code></a> Thanks <a href="https://github.com/dyc3">@dyc3</a>! - Fixed <a href="https://github.com/biomejs/biome/issues/11897" data-hovercard-type="issue" data-hovercard-url="/biomejs/biome/issues/11897/hovercard">#11897</a>: the safe fix for <a href="https://biomejs.dev/linter/rules/no-useless-string-concat/" rel="nofollow"><code>noUselessStringConcat</code></a> now escapes embedded double quotes when combining literals, preserving valid JavaScript and existing escape sequences.</p> </li> <li> <p><a href="https://github.com/biomejs/biome/pull/11997" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11997/hovercard">#11997</a> <a href="https://github.com/biomejs/biome/commit/af7825fd24783f4a41ed845b44dca5ce36ae59f8"><code>af7825f</code></a> Thanks <a href="https://github.com/apps/github-actions">@github-actions</a>! - The <a href="https://biomejs.dev/linter/rules/no-restricted-dependencies/" rel="nofollow">noRestrictedDependencies</a> rule has been updated with new module replacement data, it should now detect for more relevant replacements.</p> </li> <li> <p><a href="https://github.com/biomejs/biome/pull/11827" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11827/hovercard">#11827</a> <a href="https://github.com/biomejs/biome/commit/31bb6627e5c54c6840e51eb61c0aec9f0da6113e"><code>31bb662</code></a> Thanks <a href="https://github.com/dfedoryshchev">@dfedoryshchev</a>! - Fixed <a href="https://github.com/biomejs/biome/issues/11566" data-hovercard-type="issue" data-hovercard-url="/biomejs/biome/issues/11566/hovercard">#11566</a>: <a href="https://biomejs.dev/linter/rules/use-naming-convention/" rel="nofollow"><code>useNamingConvention</code></a> no longer reports a <code>namespace</code> declared inside <code>declare global</code> or inside an external module declaration. Both positions are documented as always ignored, and the rule offered a safe fix, so <code>biome check --write</code> renamed the declaration:</p> <div class="highlight highlight-source-ts notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="export {} declare global { // no longer renamed to `Jsx` namespace JSX {} }"><pre><span class="pl-k">export</span> <span class="pl-kos">{</span><span class="pl-kos">}</span> <span class="pl-k">declare</span> global <span class="pl-kos">{</span> <span class="pl-c">// no longer renamed to `Jsx`</span> <span class="pl-k">namespace</span> <span class="pl-c1">JSX</span> <span class="pl-kos">{</span><span class="pl-kos">}</span> <span class="pl-kos">}</span></pre></div> </li> <li> <p><a href="https://github.com/biomejs/biome/pull/11814" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11814/hovercard">#11814</a> <a href="https://github.com/biomejs/biome/commit/23ba25f191eb8ff91114f6b44bdb81cab5d6900e"><code>23ba25f</code></a> Thanks <a href="https://github.com/siketyan">@siketyan</a>! - Fixed type inference through generic type aliases that instantiate another generic type with a nested generic argument, such as <code>type Nested&lt;T&gt; = Box&lt;Wrapper&lt;T&gt;&gt;</code>. Type-aware rules now resolve members of such types:</p> <div class="highlight highlight-source-ts notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="declare const nested: Nested&lt;number&gt;; // noUnnecessaryConditions now reports that `??` is unnecessary. const inner = nested.value.inner ?? 1;"><pre><span class="pl-k">declare</span> <span class="pl-k">const</span> <span class="pl-s1">nested</span>: <span class="pl-smi">Nested</span><span class="pl-c1">&lt;</span><span class="pl-smi">number</span><span class="pl-c1">&gt;</span><span class="pl-kos">;</span> <span class="pl-c">// noUnnecessaryConditions now reports that `??` is unnecessary.</span> <span class="pl-k">const</span> <span class="pl-s1">inner</span> <span class="pl-c1">=</span> <span class="pl-s1">nested</span><span class="pl-kos">.</span><span class="pl-c1">value</span><span class="pl-kos">.</span><span class="pl-c1">inner</span> <span class="pl-c1">??</span> <span class="pl-c1">1</span><span class="pl-kos">;</span></pre></div> </li> <li> <p><a href="https://github.com/biomejs/biome/pull/11908" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11908/hovercard">#11908</a> <a href="https://github.com/biomejs/biome/commit/dd5a5cedf0e5bfdce8af0cd4f2b250a9f82848a4"><code>dd5a5ce</code></a> Thanks <a href="https://github.com/siketyan">@siketyan</a>! - Fixed <a href="https://github.com/biomejs/biome/issues/11880" data-hovercard-type="issue" data-hovercard-url="/biomejs/biome/issues/11880/hovercard">#11880</a>: Biome no longer misparses a <code>&lt;&lt;</code> expression followed by a later <code>&gt;&gt;&gt;</code> as TypeScript type arguments. For example, <code>const mask = 1 &lt;&lt; bits</code> followed by <code>const m = mask &gt;&gt;&gt; 0</code> on the next line now parses correctly.</p> </li> <li> <p><a href="https://github.com/biomejs/biome/pull/11882" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11882/hovercard">#11882</a> <a href="https://github.com/biomejs/biome/commit/28c817d16375bd451d29d1b18c2cf4419cf22ef8"><code>28c817d</code></a> Thanks <a href="https://github.com/mikehasa">@mikehasa</a>! - Fixed a bug in <a href="https://biomejs.dev/linter/rules/no-octal-escape/" rel="nofollow"><code>noOctalEscape</code></a> where the safe fix could silently change a string's value. A legacy octal escape is at most two digits when the leading digit is <code>4</code>-<code>7</code>, so <code>"\751"</code> is <code>"\75"</code> + <code>"1"</code> (i.e. <code>"=1"</code>) but was rewritten to the single character <code>ǩ</code>; it is now rewritten to <code>"\x3d1"</code>.</p> </li> <li> <p><a href="https://github.com/biomejs/biome/pull/11861" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11861/hovercard">#11861</a> <a href="https://github.com/biomejs/biome/commit/81b0adb8dc80a99bddc47f80cae61edfecdda214"><code>81b0adb</code></a> Thanks <a href="https://github.com/Netail">@Netail</a>! - Added the new nursery rule <a href="https://biomejs.dev/linter/rules/no-self-import/" rel="nofollow"><code>noSelfImport</code></a>, which forbids a module from importing itself.</p> <div class="highlight highlight-source-js notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="// foo.js import foo from &quot;./foo.js&quot;;"><pre><span class="pl-c">// foo.js</span> <span class="pl-k">import</span> <span class="pl-s1">foo</span> <span class="pl-k">from</span> <span class="pl-s">"./foo.js"</span><span class="pl-kos">;</span></pre></div> </li> <li> <p><a href="https://github.com/biomejs/biome/pull/12041" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/12041/hovercard">#12041</a> <a href="https://github.com/biomejs/biome/commit/5e1450901a405d1d62d1716789996e301ab5de22"><code>5e14509</code></a> Thanks <a href="https://github.com/ematipico">@ematipico</a>! - Fixed a stack overflow in type-aware lint rules, such as <a href="https://biomejs.dev/linter/rules/no-misused-promises/" rel="nofollow"><code>noMisusedPromises</code></a> and <a href="https://biomejs.dev/linter/rules/no-floating-promises/" rel="nofollow"><code>noFloatingPromises</code></a>, when generic types in files that import each other reference one another in their type parameters.</p> <div class="highlight highlight-source-ts notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="// entity.ts import type { Repository } from &quot;./repository&quot;; export interface Entity&lt;R extends Repository&lt;any&gt; = Repository&lt;any&gt;&gt; {} // repository.ts import type { Entity } from &quot;./entity&quot;; export interface Repository&lt;E extends Entity&lt;any&gt; = Entity&lt;any&gt;&gt; {}"><pre><span class="pl-c">// entity.ts</span> <span class="pl-k">import</span> <span class="pl-k">type</span> <span class="pl-kos">{</span> <span class="pl-v">Repository</span> <span class="pl-kos">}</span> <span class="pl-k">from</span> <span class="pl-s">"./repository"</span><span class="pl-kos">;</span> <span class="pl-k">export</span> <span class="pl-k">interface</span> <span class="pl-smi">Entity</span><span class="pl-c1">&lt;</span><span class="pl-smi">R</span> <span class="pl-k">extends</span> <span class="pl-smi">Repository</span><span class="pl-c1">&lt;</span><span class="pl-smi">any</span><span class="pl-c1">&gt;</span> <span class="pl-c1">=</span> <span class="pl-smi">Repository</span><span class="pl-c1">&lt;</span><span class="pl-smi">any</span><span class="pl-c1">&gt;</span><span class="pl-c1">&gt;</span> <span class="pl-kos">{</span><span class="pl-kos">}</span> <span class="pl-c">// repository.ts</span> <span class="pl-k">import</span> <span class="pl-k">type</span> <span class="pl-kos">{</span> <span class="pl-v">Entity</span> <span class="pl-kos">}</span> <span class="pl-k">from</span> <span class="pl-s">"./entity"</span><span class="pl-kos">;</span> <span class="pl-k">export</span> <span class="pl-k">interface</span> <span class="pl-smi">Repository</span><span class="pl-c1">&lt;</span><span class="pl-smi">E</span> <span class="pl-k">extends</span> <span class="pl-smi">Entity</span><span class="pl-c1">&lt;</span><span class="pl-smi">any</span><span class="pl-c1">&gt;</span> <span class="pl-c1">=</span> <span class="pl-smi">Entity</span><span class="pl-c1">&lt;</span><span class="pl-smi">any</span><span class="pl-c1">&gt;</span><span class="pl-c1">&gt;</span> <span class="pl-kos">{</span><span class="pl-kos">}</span></pre></div> </li> <li> <p><a href="https://github.com/biomejs/biome/pull/11838" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11838/hovercard">#11838</a> <a href="https://github.com/biomejs/biome/commit/9bbff0cdf3a5268db87a0d378dd9ffaaf04a3595"><code>9bbff0c</code></a> Thanks <a href="https://github.com/dyc3">@dyc3</a>! - Added the nursery rule <a href="https://biomejs.dev/linter/rules/use-promise-reject-errors/" rel="nofollow"><code>usePromiseRejectErrors</code></a>, which requires Error objects as Promise rejection reasons.</p> <div class="highlight highlight-source-js notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="Promise.reject(&quot;Request failed&quot;); new Promise((resolve, reject) =&gt; reject(42));"><pre><span class="pl-v">Promise</span><span class="pl-kos">.</span><span class="pl-en">reject</span><span class="pl-kos">(</span><span class="pl-s">"Request failed"</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-k">new</span> <span class="pl-v">Promise</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-s1">resolve</span><span class="pl-kos">,</span> <span class="pl-s1">reject</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-s1">reject</span><span class="pl-kos">(</span><span class="pl-c1">42</span><span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">;</span></pre></div> </li> <li> <p><a href="https://github.com/biomejs/biome/pull/11917" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11917/hovercard">#11917</a> <a href="https://github.com/biomejs/biome/commit/717db8c25737bacd0456c17bef9dda66f3c082c5"><code>717db8c</code></a> Thanks <a href="https://github.com/dyc3">@dyc3</a>! - Added the nursery rule <a href="https://biomejs.dev/linter/rules/no-misplaced-list-elements/" rel="nofollow"><code>noMisplacedListElements</code></a> for HTML and JSX, which requires <code>&lt;li&gt;</code> elements with an HTML element parent to be children of <code>&lt;ul&gt;</code>, <code>&lt;ol&gt;</code>, or <code>&lt;menu&gt;</code>. For example, <code>&lt;div&gt;&lt;li&gt;Item&lt;/li&gt;&lt;/div&gt;</code> is invalid.</p> </li> <li> <p><a href="https://github.com/biomejs/biome/pull/11919" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11919/hovercard">#11919</a> <a href="https://github.com/biomejs/biome/commit/8d0b990cb3dbb95354839e61561df8c14b86a273"><code>8d0b990</code></a> Thanks <a href="https://github.com/dyc3">@dyc3</a>! - Fixed <a href="https://github.com/biomejs/biome/issues/11899" data-hovercard-type="issue" data-hovercard-url="/biomejs/biome/issues/11899/hovercard">#11899</a>: disabling a domain no longer disables rules that also belong to another enabled domain. For example, with <code>"domains": { "react": "all", "next": "none" }</code>, <a href="https://biomejs.dev/linter/rules/use-exhaustive-dependencies/" rel="nofollow"><code>useExhaustiveDependencies</code></a> and <a href="https://biomejs.dev/linter/rules/use-hook-at-top-level/" rel="nofollow"><code>useHookAtTopLevel</code></a> are now enabled.<br> Rules enabled explicitly in the configuration also stay enabled when one of their domains is set to <code>"none"</code>.</p> </li> <li> <p><a href="https://github.com/biomejs/biome/pull/11814" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11814/hovercard">#11814</a> <a href="https://github.com/biomejs/biome/commit/23ba25f191eb8ff91114f6b44bdb81cab5d6900e"><code>23ba25f</code></a> Thanks <a href="https://github.com/siketyan">@siketyan</a>! - Fixed <a href="https://github.com/biomejs/biome/issues/11810" data-hovercard-type="issue" data-hovercard-url="/biomejs/biome/issues/11810/hovercard">#11810</a> and <a href="https://github.com/biomejs/biome/issues/11813" data-hovercard-type="issue" data-hovercard-url="/biomejs/biome/issues/11813/hovercard">#11813</a>: type-aware rules such as <a href="https://biomejs.dev/linter/rules/no-unnecessary-conditions/" rel="nofollow"><code>noUnnecessaryConditions</code></a> and <a href="https://biomejs.dev/linter/rules/no-floating-promises/" rel="nofollow"><code>noFloatingPromises</code></a> no longer take several seconds when a member is accessed on a recursive generic type alias, such as react-hook-form's <code>FieldPathValue</code> or zustand's <code>Mutate</code>.</p> </li> <li> <p><a href="https://github.com/biomejs/biome/pull/11983" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11983/hovercard">#11983</a> <a href="https://github.com/biomejs/biome/commit/cc3979413d3ab043f29764ba4502f7e20b460928"><code>cc39794</code></a> Thanks <a href="https://github.com/AlbinoGeek">@AlbinoGeek</a>! - Fixed <a href="https://github.com/biomejs/biome/issues/11939" data-hovercard-type="issue" data-hovercard-url="/biomejs/biome/issues/11939/hovercard">#11939</a>: the fix of <a href="https://biomejs.dev/linter/rules/use-regex-literals/" rel="nofollow"><code>useRegexLiterals</code></a> no longer escapes a slash that is already escaped. <code>new RegExp("\\/")</code> is now fixed to <code>/\//</code> instead of the invalid <code>/\\//</code>.</p> </li> <li> <p><a href="https://github.com/biomejs/biome/pull/11869" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11869/hovercard">#11869</a> <a href="https://github.com/biomejs/biome/commit/3a21c80bd00808685b88e03f477114d9f2a96251"><code>3a21c80</code></a> Thanks <a href="https://github.com/ematipico">@ematipico</a>! - Fixed <a href="https://github.com/biomejs/biome/issues/9105" data-hovercard-type="issue" data-hovercard-url="/biomejs/biome/issues/9105/hovercard"><code>#9105</code></a>: <code>vcs.useIgnoreFile</code> now evaluates parent directory patterns when matching child paths, preserving re-included directories such as <code>!/src</code> while ignoring their excluded siblings.</p> </li> <li> <p><a href="https://github.com/biomejs/biome/pull/11875" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11875/hovercard">#11875</a> <a href="https://github.com/biomejs/biome/commit/2cdd220cd8fc1303d045241d50d6ed33aa3213c2"><code>2cdd220</code></a> Thanks <a href="https://github.com/dyc3">@dyc3</a>! - Fixed <a href="https://github.com/biomejs/biome/issues/11867" data-hovercard-type="issue" data-hovercard-url="/biomejs/biome/issues/11867/hovercard">#11867</a>: <a href="https://biomejs.dev/linter/rules/no-undeclared-variables/" rel="nofollow"><code>noUndeclaredVariables</code></a> incorrectly reported Vue slot props declared with <code>v-slot</code> or its <code>#</code> shorthand, including destructured props.</p> </li> <li> <p><a href="https://github.com/biomejs/biome/pull/12021" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/12021/hovercard">#12021</a> <a href="https://github.com/biomejs/biome/commit/59cc595c62882861ac1b1d166da155762a826abb"><code>59cc595</code></a> Thanks <a href="https://github.com/dyc3">@dyc3</a>! - Type inference accuracy has been improved significantly. More global types, like <code>Array</code>, <code>Map</code>, <code>Set</code>, etc., are now fully defined. This should decrease false positives on all typed rules, since less types will be unknown.</p> </li> <li> <p><a href="https://github.com/biomejs/biome/pull/11929" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11929/hovercard">#11929</a> <a href="https://github.com/biomejs/biome/commit/aef690d673e657c6f783127cdf572175c7165f0e"><code>aef690d</code></a> Thanks <a href="https://github.com/Th3S4mur41">@Th3S4mur41</a>! - Fixed <a href="https://biomejs.dev/linter/rules/no-unknown-property/" rel="nofollow"><code>noUnknownProperty</code></a> to recognize the <code>frame-sizing</code> CSS property.</p> </li> <li> <p><a href="https://github.com/biomejs/biome/pull/12022" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/12022/hovercard">#12022</a> <a href="https://github.com/biomejs/biome/commit/6233eb2ad0a5e8e920e21123475fd137e3ab24b7"><code>6233eb2</code></a> Thanks <a href="https://github.com/dyc3">@dyc3</a>! - Fixed <a href="https://github.com/biomejs/biome/issues/12020" data-hovercard-type="issue" data-hovercard-url="/biomejs/biome/issues/12020/hovercard">#12020</a>: the HTML parser now reports an error for a mismatched closing tag like the <code>&lt;/span&gt;</code> in <code>&lt;p&gt;two&lt;/span&gt;&lt;/p&gt;</code>. Previously, it accepted <code>&lt;/span&gt;</code> as the end of <code>&lt;p&gt;</code> because <code>span</code> contains the letter <code>p</code>, and the formatter deleted everything after it. HTML tag names are matched case-insensitively, so <code>&lt;DIV&gt;&lt;/div&gt;</code> is no longer reported as mismatched.</p> <p>A closing tag with no opening tag at the top level of a file, like the second <code>&lt;/p&gt;</code> in <code>&lt;p&gt;a&lt;/p&gt;&lt;/p&gt;&lt;p&gt;b&lt;/p&gt;</code>, is now also reported as an error, instead of the formatter deleting it and everything after it.</p> </li> <li> <p><a href="https://github.com/biomejs/biome/pull/12037" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/12037/hovercard">#12037</a> <a href="https://github.com/biomejs/biome/commit/48cdbb86486cd21959352e945103d5fa0a3a746f"><code>48cdbb8</code></a> Thanks <a href="https://github.com/ff1451">@ff1451</a>! - Fixed <a href="https://github.com/biomejs/biome/issues/11898" data-hovercard-type="issue" data-hovercard-url="/biomejs/biome/issues/11898/hovercard">#11898</a>: <a href="https://biomejs.dev/linter/rules/no-useless-return/" rel="nofollow"><code>noUselessReturn</code></a> no longer offers a safe fix for a <code>return;</code> that is the body of an unbraced <code>if</code>, <code>else</code>, or label, because removing it produced invalid code. The safe fix now also keeps comments placed before or after the removed <code>return;</code>.</p> <div class="highlight highlight-source-js notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="function foo() { // Still reported, but the return is no longer removed if (aborted) return; }"><pre><span class="pl-k">function</span> <span class="pl-en">foo</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-c">// Still reported, but the return is no longer removed</span> <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-s1">aborted</span><span class="pl-kos">)</span> <span class="pl-k">return</span><span class="pl-kos">;</span> <span class="pl-kos">}</span></pre></div> </li> <li> <p><a href="https://github.com/biomejs/biome/pull/12030" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/12030/hovercard">#12030</a> <a href="https://github.com/biomejs/biome/commit/4ff83dd3ed3f265c9ae1e0c41e7a655511f1b264"><code>4ff83dd</code></a> Thanks <a href="https://github.com/ematipico">@ematipico</a>! - Fixed <a href="https://github.com/biomejs/biome/issues/9155" data-hovercard-type="issue" data-hovercard-url="/biomejs/biome/issues/9155/hovercard">#9155</a>: Biome no longer reports a parse error for typed slot props in Vue files, such as <code>v-slot="{ value }: { value: ValueType }"</code>. Types used in slot props annotations are now correctly detected as used by <a href="https://biomejs.dev/linter/rules/no-unused-variables/" rel="nofollow"><code>noUnusedVariables</code></a>.</p> </li> <li> <p><a href="https://github.com/biomejs/biome/pull/11955" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11955/hovercard">#11955</a> <a href="https://github.com/biomejs/biome/commit/088164f398f5edcf4c1c763514d4916d46c37119"><code>088164f</code></a> Thanks <a href="https://github.com/dyc3">@dyc3</a>! - Fixed <a href="https://github.com/biomejs/biome/issues/11946" data-hovercard-type="issue" data-hovercard-url="/biomejs/biome/issues/11946/hovercard">#11946</a>: <a href="https://biomejs.dev/linter/rules/no-unreachable/" rel="nofollow"><code>noUnreachable</code></a> and <a href="https://biomejs.dev/linter/rules/use-getter-return/" rel="nofollow"><code>useGetterReturn</code></a> now recognize <code>while</code> and <code>do...while</code> loops with truthy literal conditions as infinite unless control flow exits the loop.</p> </li> <li> <p><a href="https://github.com/biomejs/biome/pull/11958" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11958/hovercard">#11958</a> <a href="https://github.com/biomejs/biome/commit/6964bfc8a13c4bceed358da57d17f4ff4a728d8c"><code>6964bfc</code></a> Thanks <a href="https://github.com/erenbati">@erenbati</a>! - Fixed <a href="https://github.com/biomejs/biome/issues/11924" data-hovercard-type="issue" data-hovercard-url="/biomejs/biome/issues/11924/hovercard">#11924</a>: <a href="https://biomejs.dev/linter/rules/no-focused-tests/" rel="nofollow"><code>noFocusedTests</code></a> no longer reports chained method calls such as <code>builder.image(url).fit("max")</code> as focused tests.</p> </li> <li> <p><a href="https://github.com/biomejs/biome/pull/11908" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11908/hovercard">#11908</a> <a href="https://github.com/biomejs/biome/commit/dd5a5cedf0e5bfdce8af0cd4f2b250a9f82848a4"><code>dd5a5ce</code></a> Thanks <a href="https://github.com/siketyan">@siketyan</a>! - Fixed parsing of left shifts between TypeScript instantiation expressions. Biome now parses <code>f&lt;T&gt; &lt;&lt; f&lt;T&gt;</code> as a left shift of two instantiation expressions, matching TypeScript, instead of reporting a parse error.</p> </li> <li> <p><a href="https://github.com/biomejs/biome/pull/11877" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11877/hovercard">#11877</a> <a href="https://github.com/biomejs/biome/commit/5a53b2c87191ea531f6c426dc5e166241b6db621"><code>5a53b2c</code></a> Thanks <a href="https://github.com/dyc3">@dyc3</a>! - Fixed <a href="https://github.com/biomejs/biome/issues/11278" data-hovercard-type="issue" data-hovercard-url="/biomejs/biome/issues/11278/hovercard">#11278</a>: <a href="https://biomejs.dev/linter/rules/no-unnecessary-conditions/" rel="nofollow"><code>noUnnecessaryConditions</code></a> no longer incorrectly reports optional chaining on <code>RegExp.exec()</code> results, including patterns created with <code>new RegExp()</code>. Biome now infers the nullable <code>RegExpExecArray | null</code> return type, preserving necessary checks such as <code>new RegExp(pattern).exec(input)?.[1]</code>.</p> </li> <li> <p><a href="https://github.com/biomejs/biome/pull/11906" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11906/hovercard">#11906</a> <a href="https://github.com/biomejs/biome/commit/b87822d8b92d96fe226dc582b309a609a0c82974"><code>b87822d</code></a> Thanks <a href="https://github.com/dyc3">@dyc3</a>! - Fixed <a href="https://github.com/biomejs/biome/issues/11900" data-hovercard-type="issue" data-hovercard-url="/biomejs/biome/issues/11900/hovercard">#11900</a>: <a href="https://biomejs.dev/linter/rules/use-for-of/" rel="nofollow"><code>useForOf</code></a> no longer reports loops that update their index inside the body, including <code>i += 1</code> and <code>argv[++i]</code>.</p> </li> <li> <p><a href="https://github.com/biomejs/biome/pull/11834" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11834/hovercard">#11834</a> <a href="https://github.com/biomejs/biome/commit/f89dd4f2d52e4919133429fa4550912510517a9a"><code>f89dd4f</code></a> Thanks <a href="https://github.com/dyc3">@dyc3</a>! - Fixed incorrect type inference when generic parameters are reused across inherited types or swapped in recursive types.</p> </li> </ul> <h2>What's Changed</h2> <ul> <li>refactor(js_runtime): reduce code and binary size by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/siketyan/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/siketyan">@siketyan</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5414823929" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11721" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11721/hovercard" href="https://github.com/biomejs/biome/pull/11721">#11721</a></li> <li>feat(codegen): lower generic type constraints 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="5464064189" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11795" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11795/hovercard" href="https://github.com/biomejs/biome/pull/11795">#11795</a></li> <li>feat(codegen): lower Symbol static members 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="5464064744" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11796" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11796/hovercard" href="https://github.com/biomejs/biome/pull/11796">#11796</a></li> <li>feat(codegen): lower Symbol call signatures 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="5464065513" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11797" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11797/hovercard" href="https://github.com/biomejs/biome/pull/11797">#11797</a></li> <li>refactor(codegen): deduplicate local types 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="5464066169" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11798" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11798/hovercard" href="https://github.com/biomejs/biome/pull/11798">#11798</a></li> <li>fix(type_inference): skip non-generic references in substitutions by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/siketyan/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/siketyan">@siketyan</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5477063335" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11814" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11814/hovercard" href="https://github.com/biomejs/biome/pull/11814">#11814</a></li> <li>docs: replace retired VS Marketplace badges by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/siketyan/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/siketyan">@siketyan</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5477638926" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11816" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11816/hovercard" href="https://github.com/biomejs/biome/pull/11816">#11816</a></li> <li>perf(analyze): optimize useIndexOf callback traversal 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="5469358804" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11806" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11806/hovercard" href="https://github.com/biomejs/biome/pull/11806">#11806</a></li> <li>perf(noBeforeInteractiveScriptOutsideDocument): avoid hitting the filesystem, before easier checks 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="5469344617" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11805" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11805/hovercard" href="https://github.com/biomejs/biome/pull/11805">#11805</a></li> <li>fix(useNamingConvention): ignore namespaces inside declare global and external modules by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dfedoryshchev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dfedoryshchev">@dfedoryshchev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5488558264" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11827" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11827/hovercard" href="https://github.com/biomejs/biome/pull/11827">#11827</a></li> <li>fix(tailwind): detect tailwind classes in class expressions 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="5466613183" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11802" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11802/hovercard" href="https://github.com/biomejs/biome/pull/11802">#11802</a></li> <li>fix(useSimplifiedLogicExpression): don't simplify right-side boolean literals 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="5436750934" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11761" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11761/hovercard" href="https://github.com/biomejs/biome/pull/11761">#11761</a></li> <li>fix(useReactCompiler): remove React 19 version requirement 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="5493445488" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11835" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11835/hovercard" href="https://github.com/biomejs/biome/pull/11835">#11835</a></li> <li>fix(svelte): preserve const tag assignment 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="5494899089" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11837" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11837/hovercard" href="https://github.com/biomejs/biome/pull/11837">#11837</a></li> <li>feat(md): suppressions support 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="5499539756" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11840" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11840/hovercard" href="https://github.com/biomejs/biome/pull/11840">#11840</a></li> <li>feat(linter): add noReactObjectTypeAsDefaultProp rule by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/subaru-hello/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/subaru-hello">@subaru-hello</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4658566534" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/10634" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/10634/hovercard" href="https://github.com/biomejs/biome/pull/10634">#10634</a></li> <li>chore(skill): tests and codegen 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="5508881481" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11848" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11848/hovercard" href="https://github.com/biomejs/biome/pull/11848">#11848</a></li> <li>chore(tooling): publish crates 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="5510268749" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11850" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11850/hovercard" href="https://github.com/biomejs/biome/pull/11850">#11850</a></li> <li>release: crates v0.7.0 by @github-actions[bot] in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5510521090" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11853" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11853/hovercard" href="https://github.com/biomejs/biome/pull/11853">#11853</a></li> <li>chore(renovate): stop updating tailwindcss in the preset generator 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="5510476750" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11852" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11852/hovercard" href="https://github.com/biomejs/biome/pull/11852">#11852</a></li> <li>ci: fail when the Tailwind preset can't be generated or is out of date 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="5510398312" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11851" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11851/hovercard" href="https://github.com/biomejs/biome/pull/11851">#11851</a></li> <li>feat(codegen): lower array type 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="5464066744" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11799" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11799/hovercard" href="https://github.com/biomejs/biome/pull/11799">#11799</a></li> <li>feat(codegen): lower method generic parameters 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="5504516921" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11843" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11843/hovercard" href="https://github.com/biomejs/biome/pull/11843">#11843</a></li> <li>fix(noAstroSetHtmlDirective): report directive inside Astro template expressions by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/m1handr/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/m1handr">@m1handr</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5415698392" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11723" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11723/hovercard" href="https://github.com/biomejs/biome/pull/11723">#11723</a></li> <li>chore(useSortedClasses): update the Tailwind v4 preset to tailwindcss 4.3.3 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="5512674158" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11856" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11856/hovercard" href="https://github.com/biomejs/biome/pull/11856">#11856</a></li> <li>fix(rules_check): support HTML-like documentation snippets for JavaScript rules (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5435745502" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11755" data-hovercard-type="issue" data-hovercard-url="/biomejs/biome/issues/11755/hovercard" href="https://github.com/biomejs/biome/issues/11755">#11755</a>) by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/m1handr/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/m1handr">@m1handr</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5437260300" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11762" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11762/hovercard" href="https://github.com/biomejs/biome/pull/11762">#11762</a></li> <li>fix(noTailwindArbitraryValue): use shared syntax query 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="5514055058" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11860" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11860/hovercard" href="https://github.com/biomejs/biome/pull/11860">#11860</a></li> <li>feat: noSelfImport by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Netail/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Netail">@Netail</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5514575024" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11861" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11861/hovercard" href="https://github.com/biomejs/biome/pull/11861">#11861</a></li> <li>feat(lint/js): add usePromiseRejectErrors 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="5495035383" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11838" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11838/hovercard" href="https://github.com/biomejs/biome/pull/11838">#11838</a></li> <li>feat(lint): add noTailwindRawColors lint rule 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="5463172075" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11794" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11794/hovercard" href="https://github.com/biomejs/biome/pull/11794">#11794</a></li> <li>feat(yaml/fmt): suppression comments 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="5501780544" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11842" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11842/hovercard" href="https://github.com/biomejs/biome/pull/11842">#11842</a></li> <li>fix(vcs): checks for parent ignore 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="5525842811" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11869" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11869/hovercard" href="https://github.com/biomejs/biome/pull/11869">#11869</a></li> <li>fix(lsp): relative glob patterns 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="5525526718" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11868" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11868/hovercard" href="https://github.com/biomejs/biome/pull/11868">#11868</a></li> <li>chore(deps): update dependency @changesets/cli to v3.0.3 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="5521674421" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11864" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11864/hovercard" href="https://github.com/biomejs/biome/pull/11864">#11864</a></li> <li>fix(lint): recognize Vue slot bindings 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="5528330888" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11875" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11875/hovercard" href="https://github.com/biomejs/biome/pull/11875">#11875</a></li> <li>chore(deps): update dependency tombi to v1.5.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="5522461976" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11866" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11866/hovercard" href="https://github.com/biomejs/biome/pull/11866">#11866</a></li> <li>chore(deps): update dependency @types/node to v24.13.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="5521675375" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11865" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11865/hovercard" href="https://github.com/biomejs/biome/pull/11865">#11865</a></li> <li>feat(type_info): lower the Math global class 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="5512732480" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11857" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11857/hovercard" href="https://github.com/biomejs/biome/pull/11857">#11857</a></li> <li>feat(codegen): extend lowering to function types and overloaded call signatures 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="5504517449" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11844" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11844/hovercard" href="https://github.com/biomejs/biome/pull/11844">#11844</a></li> <li>feat(codegen): lower generic construct signatures 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="5511936526" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11855" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11855/hovercard" href="https://github.com/biomejs/biome/pull/11855">#11855</a></li> <li>feat(types): lower readonly types and infer const generics 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="5513325574" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11859" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11859/hovercard" href="https://github.com/biomejs/biome/pull/11859">#11859</a></li> <li>feat(codegen): lower builtin constructors and Iterable 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="5527361939" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11870" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11870/hovercard" href="https://github.com/biomejs/biome/pull/11870">#11870</a></li> <li>feat(codegen): resolve predefined types with generic arguments 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="5527362621" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11871" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11871/hovercard" href="https://github.com/biomejs/biome/pull/11871">#11871</a></li> <li>fix(types): lower RegExp declarations and preserve nullable exec results 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="5529335315" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11877" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11877/hovercard" href="https://github.com/biomejs/biome/pull/11877">#11877</a></li> <li>fix(codegen): lower Array.from 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="5529335742" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11878" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11878/hovercard" href="https://github.com/biomejs/biome/pull/11878">#11878</a></li> <li>fix(lint/noOctalEscape): preserve string value when fixing octal escapes with leading digit 4-7 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/mikehasa/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/mikehasa">@mikehasa</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5539291757" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11882" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11882/hovercard" href="https://github.com/biomejs/biome/pull/11882">#11882</a></li> <li>test(codegen): clean up useless 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="5541410374" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11885" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11885/hovercard" href="https://github.com/biomejs/biome/pull/11885">#11885</a></li> <li>feat(codegen): lower keyof type operators 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="5542054984" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11886" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11886/hovercard" href="https://github.com/biomejs/biome/pull/11886">#11886</a></li> <li>feat(codegen): lower indexed access types 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="5542152742" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11889" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11889/hovercard" href="https://github.com/biomejs/biome/pull/11889">#11889</a></li> <li>fix(parse/js): don't misparse <code>&lt;&lt;</code> as type arguments when the closing <code>&gt;</code> is missing by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/siketyan/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/siketyan">@siketyan</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5550410245" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11908" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11908/hovercard" href="https://github.com/biomejs/biome/pull/11908">#11908</a></li> <li>ci: silent verification job 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="5551289238" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11911" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11911/hovercard" href="https://github.com/biomejs/biome/pull/11911">#11911</a></li> <li>feat(lint): add useLogicalProperties rule by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Th3S4mur41/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Th3S4mur41">@Th3S4mur41</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4784697012" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/10816" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/10816/hovercard" href="https://github.com/biomejs/biome/pull/10816">#10816</a></li> <li>fix(html/parser): lex a regex that starts with <code>&gt;</code> as a regex by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/posido/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/posido">@posido</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5549851748" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11907" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11907/hovercard" href="https://github.com/biomejs/biome/pull/11907">#11907</a></li> <li>fix(lint/useForOf): ignore loops updating index in body 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="5548622406" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11906" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11906/hovercard" href="https://github.com/biomejs/biome/pull/11906">#11906</a></li> <li>feat(types): lower computed members and infer symbol-keyed access 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="5543606447" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11890" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11890/hovercard" href="https://github.com/biomejs/biome/pull/11890">#11890</a></li> <li>feat(type-inference): lower Intl namespace 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="5544685123" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11891" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11891/hovercard" href="https://github.com/biomejs/biome/pull/11891">#11891</a></li> <li>feat(type-inference): fully lower Date constructor members 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="5544686012" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11892" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11892/hovercard" href="https://github.com/biomejs/biome/pull/11892">#11892</a></li> <li>feat(codegen): lower global functions from source 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="5545947337" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11894" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11894/hovercard" href="https://github.com/biomejs/biome/pull/11894">#11894</a></li> <li>fix(cli): emit error if configuration has errors 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="5551083687" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11910" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11910/hovercard" href="https://github.com/biomejs/biome/pull/11910">#11910</a></li> <li>fix(lint/useAtIndex): preserve negative index expressions 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="5548593221" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11905" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11905/hovercard" href="https://github.com/biomejs/biome/pull/11905">#11905</a></li> <li>fix(noUselessStringConcat): escape quotes in string concat fixes 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="5553559453" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11914" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11914/hovercard" href="https://github.com/biomejs/biome/pull/11914">#11914</a></li> <li>feat(lint/js): add noMeaninglessVoidOperator 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="5425412774" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11732" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11732/hovercard" href="https://github.com/biomejs/biome/pull/11732">#11732</a></li> <li>fix(analyze): first class citizen snippets 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="5553938999" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11915" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11915/hovercard" href="https://github.com/biomejs/biome/pull/11915">#11915</a></li> <li>fix(service): show paths in plugin loading errors by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/hirehamir/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/hirehamir">@hirehamir</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5561014856" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11921" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11921/hovercard" href="https://github.com/biomejs/biome/pull/11921">#11921</a></li> <li>test(cli): print commands run 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="5565076089" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11923" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11923/hovercard" href="https://github.com/biomejs/biome/pull/11923">#11923</a></li> <li>ci: disallow pull request subjects ending with three periods 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="5569001805" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11926" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11926/hovercard" href="https://github.com/biomejs/biome/pull/11926">#11926</a></li> <li>fix(biome_css_analyzer): support the frame-sizing CSS property by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Th3S4mur41/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Th3S4mur41">@Th3S4mur41</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5570812812" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11929" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11929/hovercard" href="https://github.com/biomejs/biome/pull/11929">#11929</a></li> <li>fix: preserve rules enabled by overlapping domains 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="5558738871" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11919" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11919/hovercard" href="https://github.com/biomejs/biome/pull/11919">#11919</a></li> <li>fix(format/html): duplicate comments after svelte blocks 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="5572402637" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11930" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11930/hovercard" href="https://github.com/biomejs/biome/pull/11930">#11930</a></li> <li>fix(html/fmt): indent comments before svelte block closing tags 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="5572403320" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11931" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11931/hovercard" href="https://github.com/biomejs/biome/pull/11931">#11931</a></li> <li>fix(grit): omit trailing space when within has no until clause 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="5577686792" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11952" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11952/hovercard" href="https://github.com/biomejs/biome/pull/11952">#11952</a></li> <li>chore: fix git attributes metadata for generated files 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="5583301348" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11954" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11954/hovercard" href="https://github.com/biomejs/biome/pull/11954">#11954</a></li> <li>fix(noUnusedVariables): report unused recursive arrow functions 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="5585477425" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11959" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11959/hovercard" href="https://github.com/biomejs/biome/pull/11959">#11959</a></li> <li>fix(noFocusedTests): ignore chained .fit() method calls by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/erenbati/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/erenbati">@erenbati</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5584534142" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11958" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11958/hovercard" href="https://github.com/biomejs/biome/pull/11958">#11958</a></li> <li>fix(control_flow): recognize truthy literal conditions as infinite loops 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="5583418269" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11955" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11955/hovercard" href="https://github.com/biomejs/biome/pull/11955">#11955</a></li> <li>test(module_graph): add complex type inference benchmarks 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="5504816966" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11845" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11845/hovercard" href="https://github.com/biomejs/biome/pull/11845">#11845</a></li> <li>chore: update sponsors 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="5601586785" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11973" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11973/hovercard" href="https://github.com/biomejs/biome/pull/11973">#11973</a></li> <li>refactor(resolver): use salsa 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="5594278495" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11965" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11965/hovercard" href="https://github.com/biomejs/biome/pull/11965">#11965</a></li> <li>chore: fix CI 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="5605142148" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11976" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11976/hovercard" href="https://github.com/biomejs/biome/pull/11976">#11976</a></li> <li>chore(deps): update dependency @types/node to v24.13.6 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="5607592991" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11982" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11982/hovercard" href="https://github.com/biomejs/biome/pull/11982">#11982</a></li> <li>chore(deps): update rust crate bpaf to 0.9.28 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="5608221193" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11985" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11985/hovercard" href="https://github.com/biomejs/biome/pull/11985">#11985</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="5608209540" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11984" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11984/hovercard" href="https://github.com/biomejs/biome/pull/11984">#11984</a></li> <li>chore(deps): update rust crate camino to 1.2.6 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="5608422549" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11986" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11986/hovercard" href="https://github.com/biomejs/biome/pull/11986">#11986</a></li> <li>fix(noUnknownTypeSelector): ignore view transition names in pseudo-elements by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/AlbinoGeek/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/AlbinoGeek">@AlbinoGeek</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5598814047" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11969" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11969/hovercard" href="https://github.com/biomejs/biome/pull/11969">#11969</a></li> <li>chore(deps): update rust crate cfg-if to 1.0.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="5608423865" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11987" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11987/hovercard" href="https://github.com/biomejs/biome/pull/11987">#11987</a></li> <li>fix(useRegexLiterals): do not escape an already escaped slash by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/AlbinoGeek/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/AlbinoGeek">@AlbinoGeek</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5607965652" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11983" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11983/hovercard" href="https://github.com/biomejs/biome/pull/11983">#11983</a></li> <li>fix(deps): update <a class="user-mention notranslate" data-hovercard-type="organization" data-hovercard-url="/orgs/biomejs/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/biomejs">@biomejs</a> packages 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="5608862093" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11989" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11989/hovercard" href="https://github.com/biomejs/biome/pull/11989">#11989</a></li> <li>chore(deps): update pnpm to v12.6.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="5608864314" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11990" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11990/hovercard" href="https://github.com/biomejs/biome/pull/11990">#11990</a></li> <li>fix(scss): support unary expressions in query values 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="5603937915" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11974" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11974/hovercard" href="https://github.com/biomejs/biome/pull/11974">#11974</a></li> <li>chore(deps): update rust crate uuid to 1.26.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="5609622187" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11993" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11993/hovercard" href="https://github.com/biomejs/biome/pull/11993">#11993</a></li> <li>fix(cli): restrict Unix daemon socket permissions 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="5569458213" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11928" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11928/hovercard" href="https://github.com/biomejs/biome/pull/11928">#11928</a></li> <li>fix(core): astro fmt embedding 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="5604905405" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11975" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11975/hovercard" href="https://github.com/biomejs/biome/pull/11975">#11975</a></li> <li>chore(deps): update rust crate smallvec to 1.16.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="5609439506" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11992" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11992/hovercard" href="https://github.com/biomejs/biome/pull/11992">#11992</a></li> <li>feat(lint/js/svelte): add noSvelteExportLet 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="5584123820" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11956" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11956/hovercard" href="https://github.com/biomejs/biome/pull/11956">#11956</a></li> <li>feat(lint/js/svelte): add useSvelteKitRuneImports lint rule 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="5586802931" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11960" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11960/hovercard" href="https://github.com/biomejs/biome/pull/11960">#11960</a></li> <li>chore: update e18e module replacements data to 3.4.0 by @github-actions[bot] in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5615180437" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11997" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11997/hovercard" href="https://github.com/biomejs/biome/pull/11997">#11997</a></li> <li>fix(cli): don't crash when output is piped to a closed pipe 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="5605485467" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11978" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11978/hovercard" href="https://github.com/biomejs/biome/pull/11978">#11978</a></li> <li>refactor(codegen): remove all hard coded references in type lowering 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="5558120923" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11918" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11918/hovercard" href="https://github.com/biomejs/biome/pull/11918">#11918</a></li> <li>feat(lint/js): add useStrictBooleanExpressions 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="5433764924" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11750" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11750/hovercard" href="https://github.com/biomejs/biome/pull/11750">#11750</a></li> <li>chore: fix broken CI 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="5616641116" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/12002" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/12002/hovercard" href="https://github.com/biomejs/biome/pull/12002">#12002</a></li> <li>feat(scss): interpolation in container 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="5615365356" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11999" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11999/hovercard" href="https://github.com/biomejs/biome/pull/11999">#11999</a></li> <li>feat(scss): interpolation in layer 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="5615523212" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/12000" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/12000/hovercard" href="https://github.com/biomejs/biome/pull/12000">#12000</a></li> <li>feat(scss): interpolation in property names 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="5616877736" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/12003" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/12003/hovercard" href="https://github.com/biomejs/biome/pull/12003">#12003</a></li> <li>feat(scss): allow nested declarations 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="5617655570" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/12005" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/12005/hovercard" href="https://github.com/biomejs/biome/pull/12005">#12005</a></li> <li>feat(scss): interpolation in attr function 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="5617967232" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/12007" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/12007/hovercard" href="https://github.com/biomejs/biome/pull/12007">#12007</a></li> <li>test(type_inference): more complex benchmarks 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="5617901563" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/12006" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/12006/hovercard" href="https://github.com/biomejs/biome/pull/12006">#12006</a></li> <li>fix: unapproved merge by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Netail/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Netail">@Netail</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5615286651" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11998" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11998/hovercard" href="https://github.com/biomejs/biome/pull/11998">#11998</a></li> <li>fix(type_inference): preserve generic bindings during member lookup 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="5492398435" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11834" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11834/hovercard" href="https://github.com/biomejs/biome/pull/11834">#11834</a></li> <li>perf(type inference): replace promise classification HashSet with Brent cycle detection by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/codspeed/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/codspeed">@codspeed</a>[bot] in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5622138736" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/12011" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/12011/hovercard" href="https://github.com/biomejs/biome/pull/12011">#12011</a></li> <li>perf(type_inference): index namespace members once per module 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="5621531650" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/12008" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/12008/hovercard" href="https://github.com/biomejs/biome/pull/12008">#12008</a></li> <li>perf: read semantic binding ranges without resolving syntax nodes 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="5621532282" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/12009" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/12009/hovercard" href="https://github.com/biomejs/biome/pull/12009">#12009</a></li> <li>feat(scss): parse if inside url function 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="5626889640" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/12012" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/12012/hovercard" href="https://github.com/biomejs/biome/pull/12012">#12012</a></li> <li>feat(lint): add noMisplacedListElements 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="5557169670" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11917" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11917/hovercard" href="https://github.com/biomejs/biome/pull/11917">#11917</a></li> <li>perf(type_inference): memoize callable signature resolution 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="5628442582" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/12017" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/12017/hovercard" href="https://github.com/biomejs/biome/pull/12017">#12017</a></li> <li>perf(semantic): replace scope interval tree with pre-order index by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/codspeed/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/codspeed">@codspeed</a>[bot] in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5627813125" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/12016" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/12016/hovercard" href="https://github.com/biomejs/biome/pull/12016">#12016</a></li> <li>chore: type inference changesets 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="5629888750" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/12021" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/12021/hovercard" href="https://github.com/biomejs/biome/pull/12021">#12021</a></li> <li>chore: update codspeed logo in readme by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/adriencaccia/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/adriencaccia">@adriencaccia</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5629072561" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/12019" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/12019/hovercard" href="https://github.com/biomejs/biome/pull/12019">#12019</a></li> <li>ci(bench): plugins js and grit 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="5628901694" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/12018" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/12018/hovercard" href="https://github.com/biomejs/biome/pull/12018">#12018</a></li> <li>perf: optimize HTML child whitespace scanning by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/codspeed/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/codspeed">@codspeed</a>[bot] in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5631011108" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/12023" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/12023/hovercard" href="https://github.com/biomejs/biome/pull/12023">#12023</a></li> <li>perf(type_inference): memoize generic substitution 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="5632355735" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/12029" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/12029/hovercard" href="https://github.com/biomejs/biome/pull/12029">#12029</a></li> <li>fix(parse/html): compare complete opening and closing tag names 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="5630808371" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/12022" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/12022/hovercard" href="https://github.com/biomejs/biome/pull/12022">#12022</a></li> <li>test(lint/html/vue): wrap Vue fixtures in 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="5631292054" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/12024" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/12024/hovercard" href="https://github.com/biomejs/biome/pull/12024">#12024</a> </li><li>fix(vue): slots are now parsed with a new root 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="5632835361" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/12030" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/12030/hovercard" href="https://github.com/biomejs/biome/pull/12030">#12030</a></li> <li>perf(yaml): cut allocations and per-character decoding in lexer by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/codspeed/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/codspeed">@codspeed</a>[bot] in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5633745444" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/12032" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/12032/hovercard" href="https://github.com/biomejs/biome/pull/12032">#12032</a></li> <li>feat: adds <code>noAstroConflictingSetDirectives</code> rule for .astro by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jp-knj/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jp-knj">@jp-knj</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5235904616" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11494" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11494/hovercard" href="https://github.com/biomejs/biome/pull/11494">#11494</a></li> <li>fix(lint): only match test callees rooted in an identifier 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="5633045976" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/12031" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/12031/hovercard" href="https://github.com/biomejs/biome/pull/12031">#12031</a></li> <li>fix(lint): skip noUselessReturn fix for unbraced bodies and keep comments by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ff1451/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ff1451">@ff1451</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5639513657" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/12037" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/12037/hovercard" href="https://github.com/biomejs/biome/pull/12037">#12037</a></li> <li>fix(inference): keep context and avoid overflow 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="5645065864" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/12041" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/12041/hovercard" href="https://github.com/biomejs/biome/pull/12041">#12041</a></li> <li>fix(format/html): keep space when joining text and an inline element on the next 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="5646555908" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/12044" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/12044/hovercard" href="https://github.com/biomejs/biome/pull/12044">#12044</a></li> <li>docs: fix invalid markup in noMisplacedListElements, add lint for the mistake 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="5647127464" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/12045" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/12045/hovercard" href="https://github.com/biomejs/biome/pull/12045">#12045</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="5477565821" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11815" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11815/hovercard" href="https://github.com/biomejs/biome/pull/11815">#11815</a></li> <h2>New Contributors</h2> <ul> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/subaru-hello/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/subaru-hello">@subaru-hello</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4658566534" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/10634" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/10634/hovercard" href="https://github.com/biomejs/biome/pull/10634">#10634</a></li> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/mikehasa/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/mikehasa">@mikehasa</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5539291757" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11882" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11882/hovercard" href="https://github.com/biomejs/biome/pull/11882">#11882</a></li> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/posido/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/posido">@posido</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5549851748" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11907" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11907/hovercard" href="https://github.com/biomejs/biome/pull/11907">#11907</a></li> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/erenbati/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/erenbati">@erenbati</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5584534142" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11958" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11958/hovercard" href="https://github.com/biomejs/biome/pull/11958">#11958</a></li> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/AlbinoGeek/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/AlbinoGeek">@AlbinoGeek</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5598814047" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/11969" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/11969/hovercard" href="https://github.com/biomejs/biome/pull/11969">#11969</a></li> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/codspeed/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/codspeed">@codspeed</a>[bot] made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5622138736" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/12011" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/12011/hovercard" href="https://github.com/biomejs/biome/pull/12011">#12011</a></li> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/adriencaccia/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/adriencaccia">@adriencaccia</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5629072561" data-permission-text="Title is private" data-url="https://github.com/biomejs/biome/issues/12019" data-hovercard-type="pull_request" data-hovercard-url="/biomejs/biome/pull/12019/hovercard" href="https://github.com/biomejs/biome/pull/12019">#12019</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/biomejs/biome/compare/@biomejs/biome@2.5.14...@biomejs/biome@2.5.15">https://github.com/biomejs/biome/compare/@biomejs/biome@2.5.14...@biomejs/biome@2.5.15</a></p></ul> github-actions[bot] tag:github.com,2008:Repository/6201092/git-release 2026-09-29T23:14:47Z mpv: development build <p>Automated development build of the latest <code>master</code> branch.</p> <ul> <li>Version: <code>v0.41.0-1091-ga1f50f2c3</code></li> <li>Commit: <a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/mpv-player/mpv/commit/a1f50f2c38206dc943f331cf5a5b02f97a0ce219/hovercard" href="https://github.com/mpv-player/mpv/commit/a1f50f2c38206dc943f331cf5a5b02f97a0ce219"><tt>a1f50f2</tt></a></li> <li>Built: 2026-09-29 23:14:28 UTC</li> </ul> <h3>Windows</h3> <p>Full builds are static mingw-w64 builds with every optional feature, such as<br> DVD and Blu-ray playback. Clang builds are smaller made with the Windows SDK<br> and come with debug symbols, but does not include all optional features.</p> <ul> <li><a href="https://github.com/mpv-player/mpv/releases/download/git-release/mpv-v0.41.0-dev-ga1f50f2c3-36640285359-x86_64-w64-mingw32-full.zip">x86_64 (full)</a></li> <li><a href="https://github.com/mpv-player/mpv/releases/download/git-release/mpv-v0.41.0-dev-ga1f50f2c3-36640285359-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-ga1f50f2c3-36640285359-aarch64-w64-mingw32-full.zip">arm64 (full)</a></li> <li><a href="https://github.com/mpv-player/mpv/releases/download/git-release/mpv-v0.41.0-dev-ga1f50f2c3-36640285359-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-ga1f50f2c3-36640285359-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-ga1f50f2c3-36640285359-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-ga1f50f2c3-36640285359-aarch64-pc-windows-msvc-pdb.zip">arm64 (Clang, debug symbols)</a></li> </ul> <h3>libmpv (Windows)</h3> <p><code>libmpv-2.dll</code> with import library and headers. GPL builds are GPLv3, mpv<br> with all its GPL parts and FFmpeg with <code>--enable-gpl --enable-version3</code>.<br> LGPL builds are LGPLv3, made with <code>-Dgpl=false</code> against the LGPL FFmpeg<br> variant, for software that cannot link GPL.</p> <ul> <li><a href="https://github.com/mpv-player/mpv/releases/download/git-release/libmpv-v0.41.0-dev-ga1f50f2c3-36640285359-x86_64-w64-mingw32-gpl.zip">x86_64 (GPL)</a></li> <li><a href="https://github.com/mpv-player/mpv/releases/download/git-release/libmpv-v0.41.0-dev-ga1f50f2c3-36640285359-x86_64-w64-mingw32-lgpl.zip">x86_64 (LGPL)</a></li> <li><a href="https://github.com/mpv-player/mpv/releases/download/git-release/libmpv-v0.41.0-dev-ga1f50f2c3-36640285359-aarch64-w64-mingw32-gpl.zip">arm64 (GPL)</a></li> <li><a href="https://github.com/mpv-player/mpv/releases/download/git-release/libmpv-v0.41.0-dev-ga1f50f2c3-36640285359-aarch64-w64-mingw32-lgpl.zip">arm64 (LGPL)</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-ga1f50f2c3-36640285359-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-ga1f50f2c3-36640285359-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-ga1f50f2c3-36640285359-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-ga1f50f2c3-36640285359-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/450825576/nightly-9 2026-09-29T23:07:35Z Clock: 2.34 Nightly-9 <h2>Fixes</h2> <ul> <li>Fix alarm not stopping when dismissed or snoozed (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5625647156" data-permission-text="Title is private" data-url="https://github.com/BlackyHawky/Clock/issues/729" data-hovercard-type="issue" data-hovercard-url="/BlackyHawky/Clock/issues/729/hovercard" href="https://github.com/BlackyHawky/Clock/issues/729">#729</a>); <ul> <li>Note: Not all devices appeared to be affected by this problem;</li> </ul> </li> <li>Fix ghost dates in spinner date picker;</li> <li>Fix some city flags (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5597880190" data-permission-text="Title is private" data-url="https://github.com/BlackyHawky/Clock/issues/725" data-hovercard-type="issue" data-hovercard-url="/BlackyHawky/Clock/issues/725/hovercard" href="https://github.com/BlackyHawky/Clock/issues/725">#725</a>);</li> </ul> <h2>Improvements</h2> <h3>General</h3> <ul> <li>Improve some layouts;</li> </ul> <h3>Alarm</h3> <ul> <li>Add the ability to lock alarms (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5327558893" data-permission-text="Title is private" data-url="https://github.com/BlackyHawky/Clock/issues/685" data-hovercard-type="issue" data-hovercard-url="/BlackyHawky/Clock/issues/685/hovercard" href="https://github.com/BlackyHawky/Clock/issues/685">#685</a>); <ul> <li>Swipe-to-delete is disabled for these alarms;</li> <li>The alarm features cannot be modified;</li> <li>A padlock icon is displayed on the alarm card to differentiate them from other alarms;</li> <li>These alarms can be displayed at the top of the list (if enabled in the settings) and respect the sorting defined in the <em>"Sort the alarms"</em> and <em>"Display the enabled alarms first"</em> settings;</li> </ul> </li> <li>Add the ability to snooze alarms every "x" days; <ul> <li>Note: 31 days maximum (reasonable value);</li> </ul> </li> <li>Add the ability to hide info/warning icons in the alarm editing panel;</li> </ul> <h3>Timer</h3> <ul> <li>Add a new button to subtract time from the timer (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3267325081" data-permission-text="Title is private" data-url="https://github.com/BlackyHawky/Clock/issues/327" data-hovercard-type="issue" data-hovercard-url="/BlackyHawky/Clock/issues/327/hovercard" href="https://github.com/BlackyHawky/Clock/issues/327">#327</a>);</li> <li>Add the ability to display the timer <em>"Delete"</em> button on the card (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5616646994" data-permission-text="Title is private" data-url="https://github.com/BlackyHawky/Clock/issues/727" data-hovercard-type="issue" data-hovercard-url="/BlackyHawky/Clock/issues/727/hovercard" href="https://github.com/BlackyHawky/Clock/issues/727">#727</a>);</li> </ul> BlackyHawky tag:github.com,2008:Repository/1305551246/v2.0 2026-09-29T15:32:36Z gander: Gander 2.0 <p><strong>Gander is on Google Play:</strong> <a href="https://play.google.com/store/apps/details?id=com.arjun.gander" rel="nofollow">https://play.google.com/store/apps/details?id=com.arjun.gander</a></p> <p>Same app, same signing key. If you installed 2.0 or older from here, opening the Play listing and tapping Update moves your install over without losing recents or folder grants. Nothing about the GitHub releases changes: they carry on exactly as before, and Obtainium keeps working.</p> <p>Gander opens Word 97-2003, OpenDocument and Rich Text documents, zip archives and 3D models, and script inside a document can no longer run.</p> <p><a href="https://groups.google.com/g/gander-testers" rel="nofollow">Join the mailing list</a> for announcements.</p> <h3>New formats</h3> <ul> <li><strong>.doc, .odt and .rtf</strong> open with their formatting, tables, pictures and footnotes, read by code written for Gander. Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/celsoazevedo/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/celsoazevedo">@celsoazevedo</a> for <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5156475986" data-permission-text="Title is private" data-url="https://github.com/mokshablr/gander/issues/13" data-hovercard-type="issue" data-hovercard-url="/mokshablr/gander/issues/13/hovercard" href="https://github.com/mokshablr/gander/issues/13">#13</a>, and everyone who asked for .odt after <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5029794910" data-permission-text="Title is private" data-url="https://github.com/mokshablr/gander/issues/4" data-hovercard-type="issue" data-hovercard-url="/mokshablr/gander/issues/4/hovercard" href="https://github.com/mokshablr/gander/issues/4">#4</a>.</li> <li><strong>.zip</strong> opens like a folder, and each file in it opens in its own viewer, read straight out of the archive. Nothing is unzipped to the phone. Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/DEWE-ex/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/DEWE-ex">@DEWE-ex</a> for <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5497199894" data-permission-text="Title is private" data-url="https://github.com/mokshablr/gander/issues/30" data-hovercard-type="issue" data-hovercard-url="/mokshablr/gander/issues/30/hovercard" href="https://github.com/mokshablr/gander/issues/30">#30</a>.</li> <li><strong>.stl</strong> opens as a 3D model you can turn, zoom and flick, with its size in millimetres (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5592192811" data-permission-text="Title is private" data-url="https://github.com/mokshablr/gander/issues/36" data-hovercard-type="issue" data-hovercard-url="/mokshablr/gander/issues/36/hovercard" href="https://github.com/mokshablr/gander/issues/36">#36</a>).</li> <li>Office's macro-enabled files, templates and slide shows open in their family's viewer. Macros never run.</li> </ul> <h3>Security</h3> <ul> <li>Every viewer page runs under a Content Security Policy that allows only Gander's own code. A Word file could embed a web page whose script ran as the document opened. It could send nothing anywhere, since Gander has no internet permission, but it ran.</li> <li>Anything a page asks for that Gander does not serve is refused inside the app, so the missing internet permission is no longer the only wall.</li> <li>Another app can no longer have Gander open Gander's own files, such as its list of recent files.</li> </ul> <h3>Reading</h3> <ul> <li>A PDF reopens at the page you left it on. Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Rochey/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Rochey">@Rochey</a> for <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5376551166" data-permission-text="Title is private" data-url="https://github.com/mokshablr/gander/issues/25" data-hovercard-type="issue" data-hovercard-url="/mokshablr/gander/issues/25/hovercard" href="https://github.com/mokshablr/gander/issues/25">#25</a>.</li> <li>Videos fill the screen, and a wide one gets a full screen button (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5536342962" data-permission-text="Title is private" data-url="https://github.com/mokshablr/gander/issues/33" data-hovercard-type="issue" data-hovercard-url="/mokshablr/gander/issues/33/hovercard" href="https://github.com/mokshablr/gander/issues/33">#33</a>).</li> <li>A .json file opens laid out, one field to a line. Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Chris-z-su/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Chris-z-su">@Chris-z-su</a> for <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5515321601" data-permission-text="Title is private" data-url="https://github.com/mokshablr/gander/issues/32" data-hovercard-type="issue" data-hovercard-url="/mokshablr/gander/issues/32/hovercard" href="https://github.com/mokshablr/gander/issues/32">#32</a>.</li> <li>On a WebView too old for a file, Gander says so instead of showing an error. Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/XZY123lol/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/XZY123lol">@XZY123lol</a> for <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5510129614" data-permission-text="Title is private" data-url="https://github.com/mokshablr/gander/issues/31" data-hovercard-type="issue" data-hovercard-url="/mokshablr/gander/issues/31/hovercard" href="https://github.com/mokshablr/gander/issues/31">#31</a>.</li> <li>The icon takes part in themed icons on Android 13 and later. Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/IsakTheHacker/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/IsakTheHacker">@IsakTheHacker</a> for <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5567647407" data-permission-text="Title is private" data-url="https://github.com/mokshablr/gander/issues/35" data-hovercard-type="issue" data-hovercard-url="/mokshablr/gander/issues/35/hovercard" href="https://github.com/mokshablr/gander/issues/35">#35</a>.</li> </ul> <p>Everything else is in the <a href="https://github.com/mokshablr/gander/blob/main/CHANGELOG.md">changelog</a>.</p> <h3>Install</h3> <p><code>Gander-2.0.apk</code> runs on every phone. The app ships no native libraries, so there is no architecture to choose.</p> <p>Viewing PDFs needs Android System WebView 125 or newer (May 2024), Word documents 80 and Markdown files 92. Any phone still receiving WebView updates is well past all three.</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> <p>And the APK itself:</p> <div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="235b1b9bd8f272adedacc74e949e1df4077cc687401343a6edd1113a230595b4"><pre class="notranslate"><code>235b1b9bd8f272adedacc74e949e1df4077cc687401343a6edd1113a230595b4 </code></pre></div> mokshablr tag:github.com,2008:Repository/1238504280/v2.8.3 2026-09-28T03:48:28Z aria2-next: v2.8.3 - Download Isolation and Filename Resolution <h3>Breaking Changes</h3> <p><code>--continue</code> no longer adopts an existing file solely because its name or size matches. Stream recovery requires the original task GID, URL, output path and valid saved ranges. Preserve the saved session and recovery database when resuming interrupted tasks. Re-adding the URL as a new task follows the configured collision policy: rename, fail, or explicitly overwrite an inactive file.</p> <h2>Summary</h2> <p>Aria2 Next 2.8.3 isolates concurrent downloads that resolve to the same filename and keeps recovery records tied to their owning tasks. It also adds a filename-resolution RPC for clients that need to preview names before creating a download.</p> <h3>Fixed</h3> <ul> <li><strong>Same-name downloads:</strong> check active task reservations when selecting an output path or automatic suffix. Explicit overwrite permission no longer bypasses another active task's reservation.</li> <li><strong>Existing-file protection:</strong> use exclusive file creation for new outputs when overwrite is disabled, preventing a file created between path selection and opening from being truncated.</li> <li><strong>Incorrect completion and resume:</strong> remove file-size-based adoption, which could treat an unrelated file as complete or append downloaded bytes to it. Restore progress only from matching task recovery data.</li> <li><strong>Recovery isolation:</strong> remove recovery records by task GID during failures, restarts, media handoffs and cleanup, preventing one task from deleting another task's state merely because they share a path.</li> </ul> <h3>Added</h3> <ul> <li><code>aria2.resolveFilename(url, contentDispositionBytes)</code> returns a suggested basename using the engine's existing filename resolver. It accepts a URL and the original <code>Content-Disposition</code> header bytes, creates no task and makes no network request. Clients can detect support through <code>filename-resolution</code> in <code>aria2.getVersion().downloadFeatures</code>.</li> </ul> <h3>Downloads</h3> <p>The release workflow builds the following standalone executables and uploads SHA-256 checksums:</p> <table> <thead> <tr> <th>Platform</th> <th>Asset</th> </tr> </thead> <tbody> <tr> <td>Linux x86_64</td> <td><code>aria2-next-2.8.3-linux-x86_64</code></td> </tr> <tr> <td>Linux ARM64</td> <td><code>aria2-next-2.8.3-linux-aarch64</code></td> </tr> <tr> <td>macOS Apple Silicon</td> <td><code>aria2-next-2.8.3-macos-arm64</code></td> </tr> <tr> <td>macOS Intel</td> <td><code>aria2-next-2.8.3-macos-x86_64</code></td> </tr> <tr> <td>Windows x86_64</td> <td><code>aria2-next-2.8.3-windows-x86_64.exe</code></td> </tr> <tr> <td>Windows ARM64</td> <td><code>aria2-next-2.8.3-windows-arm64.exe</code></td> </tr> <tr> <td>Android ARM64</td> <td><code>aria2-next-2.8.3-android-arm64</code></td> </tr> <tr> <td>SHA-256 checksums</td> <td><code>aria2-next-2.8.3-checksums.sha256</code></td> </tr> </tbody> </table> <p>Full changelog: <a href="https://github.com/AnInsomniacy/aria2-next/compare/v2.8.2...v2.8.3">v2.8.2...v2.8.3</a></p> AnInsomniacy tag:github.com,2008:Repository/1160445603/v0.9.0 2026-09-27T19:39:50Z openwurli: v0.9.0 "DocWurlyMakesItLive" <p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/hal0zer0/openwurli/compare/v0.8.0...v0.9.0"><tt>v0.8.0...v0.9.0</tt></a></p> github-actions[bot] tag:github.com,2008:Repository/830127839/release-2026_09_27 2026-09-27T16:02:59Z gbe_fork: release-2026_09_27 <h1>LINUX ARTIFACTS ARE ARM!!! WILL BE FIXED LATER</h1> <h2>What's Changed</h2> <ul> <li>Fix potential deadlock on exit by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/NicknineTheEagle/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/NicknineTheEagle">@NicknineTheEagle</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5516168652" data-permission-text="Title is private" data-url="https://github.com/Detanup01/gbe_fork/issues/611" data-hovercard-type="pull_request" data-hovercard-url="/Detanup01/gbe_fork/pull/611/hovercard" href="https://github.com/Detanup01/gbe_fork/pull/611">#611</a></li> <li>Update Russian translation to current version. (2026.09.16) by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/kolan2222/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/kolan2222">@kolan2222</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5567504866" data-permission-text="Title is private" data-url="https://github.com/Detanup01/gbe_fork/issues/615" data-hovercard-type="pull_request" data-hovercard-url="/Detanup01/gbe_fork/pull/615/hovercard" href="https://github.com/Detanup01/gbe_fork/pull/615">#615</a></li> <li>Make Init use Init(false) by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Detanup01/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Detanup01">@Detanup01</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5558142153" data-permission-text="Title is private" data-url="https://github.com/Detanup01/gbe_fork/issues/614" data-hovercard-type="pull_request" data-hovercard-url="/Detanup01/gbe_fork/pull/614/hovercard" href="https://github.com/Detanup01/gbe_fork/pull/614">#614</a></li> <li>Linux ARM Support by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Detanup01/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Detanup01">@Detanup01</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5525663457" data-permission-text="Title is private" data-url="https://github.com/Detanup01/gbe_fork/issues/613" data-hovercard-type="pull_request" data-hovercard-url="/Detanup01/gbe_fork/pull/613/hovercard" href="https://github.com/Detanup01/gbe_fork/pull/613">#613</a></li> <li>Fix overlay lobby invites ignoring the lobby ID by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/gameclamp/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/gameclamp">@gameclamp</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5600884476" data-permission-text="Title is private" data-url="https://github.com/Detanup01/gbe_fork/issues/617" data-hovercard-type="pull_request" data-hovercard-url="/Detanup01/gbe_fork/pull/617/hovercard" href="https://github.com/Detanup01/gbe_fork/pull/617">#617</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/kolan2222/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/kolan2222">@kolan2222</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5567504866" data-permission-text="Title is private" data-url="https://github.com/Detanup01/gbe_fork/issues/615" data-hovercard-type="pull_request" data-hovercard-url="/Detanup01/gbe_fork/pull/615/hovercard" href="https://github.com/Detanup01/gbe_fork/pull/615">#615</a></li> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/gameclamp/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/gameclamp">@gameclamp</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5600884476" data-permission-text="Title is private" data-url="https://github.com/Detanup01/gbe_fork/issues/617" data-hovercard-type="pull_request" data-hovercard-url="/Detanup01/gbe_fork/pull/617/hovercard" href="https://github.com/Detanup01/gbe_fork/pull/617">#617</a></li> </ul> <p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/Detanup01/gbe_fork/compare/release-2026_09_16_2...release-2026_09_27"><tt>release-2026_09_16_2...release-2026_09_27</tt></a></p> Detanup01 tag:github.com,2008:Repository/1360526567/1.40 2026-09-27T13:51:26Z TapeStopper: 1.40 <ul> <li>Added SEQ timings: 1/2T, 1/4T</li> <li>Added slider timings: 1/8T</li> </ul> sl2365 tag:github.com,2008:Repository/1321990649/1.0.1 2026-09-26T12:24:40Z conNCW-NG: 1.0.1 <p>1.0.0: initial release<br> 1.0.1: fix corrupt ncw file could crash the whole process. Now the corrupt file is bypassed and processing can continue.</p> manzing tag:github.com,2008:Repository/450825576/2.33 2026-09-25T16:14:37Z Clock: 2.33 <h2>Fixes</h2> <ul> <li>Fix the alarm triggering issue introduced in version 2.32;</li> <li>Fix the creation of alarms from other apps (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5509368467" data-permission-text="Title is private" data-url="https://github.com/BlackyHawky/Clock/issues/713" data-hovercard-type="issue" data-hovercard-url="/BlackyHawky/Clock/issues/713/hovercard" href="https://github.com/BlackyHawky/Clock/issues/713">#713</a>);</li> <li>Fix vibrations when the alarm is snoozed or dismissed;</li> <li>Fix the alarm mission display when clicking the <em>"Dismiss"</em> button (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5515833148" data-permission-text="Title is private" data-url="https://github.com/BlackyHawky/Clock/issues/715" data-hovercard-type="issue" data-hovercard-url="/BlackyHawky/Clock/issues/715/hovercard" href="https://github.com/BlackyHawky/Clock/issues/715">#715</a>);</li> <li>Fix the compact timer layout (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5495964749" data-permission-text="Title is private" data-url="https://github.com/BlackyHawky/Clock/issues/710" data-hovercard-type="issue" data-hovercard-url="/BlackyHawky/Clock/issues/710/hovercard" href="https://github.com/BlackyHawky/Clock/issues/710">#710</a>): <ul> <li>The remaining time no longer overlaps the <em>"Reset"</em> button;</li> <li>The <em>"Reset"</em> button now retains its rounded shape;</li> </ul> </li> <li>Fix resetting expired timers by clicking on the timer circle (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5505903216" data-permission-text="Title is private" data-url="https://github.com/BlackyHawky/Clock/issues/711" data-hovercard-type="issue" data-hovercard-url="/BlackyHawky/Clock/issues/711/hovercard" href="https://github.com/BlackyHawky/Clock/issues/711">#711</a>);</li> <li>Fix dialog icons for Right-to-Left languages;</li> </ul> <h2>Improvements</h2> <h3>General</h3> <ul> <li>Add the ability to display country flags next to city names (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5486654275" data-permission-text="Title is private" data-url="https://github.com/BlackyHawky/Clock/issues/709" data-hovercard-type="issue" data-hovercard-url="/BlackyHawky/Clock/issues/709/hovercard" href="https://github.com/BlackyHawky/Clock/issues/709">#709</a>): <ul> <li>This applies to world cities, time zones, and the <em>"Digital clock"</em> widget;</li> </ul> </li> <li>Add the ability to customize the size of the floating action buttons;</li> <li>Restore alarms, timers and stopwatch on debug redeploys;</li> <li>Update to SDK 37 to ensure full compatibility with the latest Android versions;</li> <li>Improve the code in order to improve the overall performance and fluidity of the application;</li> <li>Update translations;</li> </ul> <h3>Alarm</h3> <ul> <li>Improve alarm notifications (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3960463397" data-permission-text="Title is private" data-url="https://github.com/BlackyHawky/Clock/issues/508" data-hovercard-type="issue" data-hovercard-url="/BlackyHawky/Clock/issues/508/hovercard" href="https://github.com/BlackyHawky/Clock/issues/508">#508</a>): <ul> <li>Remove <em>"Today"</em> or <em>"Tomorrow"</em> from the upcoming and the snooze alarm notifications;</li> <li>The time/date is displayed instead because the notification cannot update automatically;</li> <li>If the alarm is set for today: display only the time; if it's set for a different year: display the full date + the time; if it's set for a different day in the same year: display the date without the year + the time;</li> </ul> </li> </ul> <h3>Timer</h3> <ul> <li>Improve timer notifications: <ul> <li>Do not display the <em>"Add Time"</em> button if its value is set to 0;</li> </ul> </li> </ul> <h2>Notes</h2> <h3>Checksums</h3> <table> <thead> <tr> <th align="center">Version</th> <th align="center">SHA-256</th> </tr> </thead> <tbody> <tr> <td align="center">Release</td> <td align="center">8ba618e7be68b30aea4f2b38e2dacb9fd7c7be52870fef1b644ee8e9807cff1c</td> </tr> <tr> <td align="center">Debug</td> <td align="center">ac75ec6ce137308483935630119e9179f69b3bb24cb93a88fcf84a2bb5d019c1</td> </tr> </tbody> </table> BlackyHawky tag:github.com,2008:Repository/259488212/nightly 2026-09-24T21:25:00Z f2: Development build (master) <p>This build is directly sourced from the <code>master</code> branch in active development. As such, it may include experimental features and potential bugs.</p> github-actions[bot] tag:github.com,2008:Repository/172927874/v2.7.0 2026-09-24T17:21:15Z AudioAnchor: v2.7.0 <ul> <li>Add home screen widgets</li> <li>Pressing play on a finished track now restarts it from the beginning</li> <li>Playback position is now saved periodically while playing</li> <li>Track titles are now sorted naturally, so "Track 2" comes before "Track 10"</li> <li>Fix: The play queue used for autoplay and skip now matches the order tracks are shown in (including pins and sort order)</li> <li>Library sync is faster, especially for long .webm/.mkv files, and no longer creates duplicate entries in the library</li> </ul> flackbash tag:github.com,2008:Repository/1215362023/2.5.71 2026-09-24T14:14:34Z PolyHostInterface: 2.5.71 <ul> <li>Increased integration with Seqwencer plugin so you can modulate parameters using up to 8 sequencers at once.</li> <li>Attempted fix for higher resolution screens causing overlap of plugin gui onto keyboard.</li> </ul> sl2365 tag:github.com,2008:Repository/1215362023/2.5.70 2026-09-24T13:11:29Z PolyHostInterface: 2.5.70 <p>Add files via upload</p> sl2365 tag:github.com,2008:Repository/52729242/2.8.0-beta1 2026-09-24T09:49:00Z keepassxc: Release 2.8.0-beta1 <h3>New Features</h3> <ul> <li>Add remote database synchronization and import using external tools [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1077925604" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/7222" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/7222/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/7222">#7222</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2353086987" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/10896" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/10896/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/10896">#10896</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2530974460" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/11271" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/11271/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/11271">#11271</a>]</li> <li>Allow configuring keyboard shortcuts [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1807255822" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/9643" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/9643/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/9643">#9643</a>]</li> <li>SSH Agent: Add support for generating RSA, ECDSA, and Ed25519 keys [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1077164286" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/7215" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/7215/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/7215">#7215</a>]</li> <li>Linux: Add Wayland Auto-Type support using XDG Desktop Portals [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4475950480" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/13359" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/13359/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/13359">#13359</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4714456059" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/13449" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/13449/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/13449">#13449</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5108322909" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/13579" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/13579/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/13579">#13579</a>]</li> <li>Linux: Add Quick Unlock using Polkit [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1531020342" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/8983" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/8983/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/8983">#8983</a>]</li> <li>macOS: Allow Quick Unlock using the device password when Touch ID is unavailable [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2612107469" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/11410" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/11410/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/11410">#11410</a>]</li> <li>Windows: Add native Arm64 builds [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5462493340" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/13678" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/13678/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/13678">#13678</a>]</li> </ul> <h3>Major Changes</h3> <ul> <li>Migrate to Qt 6 [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2782517047" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/11651" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/11651/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/11651">#11651</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1191045633" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/7783" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/7783/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/7783">#7783</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4732119113" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/13456" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/13456/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/13456">#13456</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4762374125" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/13473" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/13473/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/13473">#13473</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5479531792" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/13684" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/13684/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/13684">#13684</a>]</li> <li>Linux: Store application state in XDG_STATE_HOME instead of XDG_CACHE_HOME [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1856298511" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/9755" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/9755/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/9755">#9755</a>]</li> <li>Build: Bundle build features under a single KPXC_MINIMAL CMake option [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2381825247" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/11003" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/11003/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/11003">#11003</a>]</li> </ul> <h3>Security Fixes</h3> <ul> <li>Fix use-after-free when importing crafted KDB files (CVE-2026-69150; Credits: A. Ramos (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/aramosf/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/aramosf">@aramosf</a>)) [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4815670209" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/13500" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/13500/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/13500">#13500</a>]</li> <li>Browser: Prevent entry reference injection when creating or updating entries via browser extension (CVE-PENDING; Credits: Davonte (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/BadPingHere/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/BadPingHere">@BadPingHere</a>)) [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5109344346" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/13580" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/13580/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/13580">#13580</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5439810051" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/13670" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/13670/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/13670">#13670</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5496208118" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/13688" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/13688/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/13688">#13688</a>]</li> <li>Browser: Fix out-of-bounds writes when encrypting and decrypting native messaging messages (CVE-PENDING; Credits: <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/sigure21/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/sigure21">@sigure21</a>) [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5464947699" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/13679" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/13679/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/13679">#13679</a>]</li> <li>Windows: Randomize shared memory mapping names when sending SSH keys to Pageant (CVE-PENDING; Credits: NATO Cyber Security Centre (NCSC), Viktor Markopoulos NCIA/NCSC) [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5465613276" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/13680" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/13680/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/13680">#13680</a>]</li> <li>Fix integer overflow and out-of-bounds read in legacy KDB importer (CVE-PENDING; Credits: NATO Cyber Security Centre (NCSC), Viktor Markopoulos NCIA/NCSC) [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5472395876" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/13682" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/13682/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/13682">#13682</a>]</li> <li>Secret Service: Exclude protected attributes from attribute listings (Credits: Koda Reef (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/kodareef5/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/kodareef5">@kodareef5</a>)) [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5449221139" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/13674" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/13674/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/13674">#13674</a>]</li> <li>Windows: Fix clipboard exclusion format name (Credits: <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ByeWhiteLists/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ByeWhiteLists">@ByeWhiteLists</a>) [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4464443485" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/13352" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/13352/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/13352">#13352</a>]</li> <li>Improve clearing of decrypted database fragments from memory used by zlib [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5461116653" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/13677" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/13677/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/13677">#13677</a>]</li> </ul> <h3>Changes</h3> <ul> <li>Change Clone Entry shortcut to Ctrl+D [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2354789647" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/10903" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/10903/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/10903">#10903</a>]</li> <li>Show suggestions when adding or renaming additional attributes [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5293304419" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/13633" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/13633/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/13633">#13633</a>]</li> <li>Add passkey and TOTP entry counts to database statistics in GUI and CLI [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5292321260" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/13632" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/13632/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/13632">#13632</a>]</li> <li>Remove legacy KeePassHTTP attribute conversion [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1224371711" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/8007" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/8007/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/8007">#8007</a>]</li> <li>Browser: Support get-database-entries request to list entry titles, URLs, and UUIDs [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1105115464" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/7292" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/7292/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/7292">#7292</a>]</li> <li>CLI: Reduce GUI library dependencies and simplify line reader code [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1838233354" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/9701" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/9701/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/9701">#9701</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4413437283" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/13330" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/13330/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/13330">#13330</a>]</li> <li>Proton Pass Importer: Support Wi-Fi, SSH keys, and unknown entry types [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4077032250" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/13148" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/13148/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/13148">#13148</a>]</li> <li>Update translations and clean up code [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1838398617" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/9702" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/9702/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/9702">#9702</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3565978506" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/12611" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/12611/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/12611">#12611</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4296236089" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/13258" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/13258/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/13258">#13258</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1224508136" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/8008" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/8008/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/8008">#8008</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1222554244" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/7999" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/7999/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/7999">#7999</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1222553603" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/7998" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/7998/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/7998">#7998</a>]</li> </ul> <h3>Fixes</h3> <ul> <li>Fix application lockups on systems with one or two CPU cores [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4359870174" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/13296" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/13296/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/13296">#13296</a>]</li> <li>Preserve entry custom data in newly created history items [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5084087724" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/13573" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/13573/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/13573">#13573</a>]</li> <li>Fix password strength evaluation for referenced passwords [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4771632400" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/13479" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/13479/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/13479">#13479</a>]</li> <li>Respect password generator settings when auto-generating passwords for new entries [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4325684210" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/13277" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/13277/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/13277">#13277</a>]</li> <li>Fix case-sensitive search with the + prefix modifier [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4803084561" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/13493" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/13493/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/13493">#13493</a>]</li> <li>Fix directory creation error handling [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4838173588" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/13508" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/13508/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/13508">#13508</a>]</li> <li>Fix favicon download redirect limit being ignored [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5423832892" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/13663" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/13663/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/13663">#13663</a>]</li> <li>Fix showing challenge-response credentials without a password [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5230528542" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/13615" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/13615/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/13615">#13615</a>]</li> <li>Fix key file selection link not being clickable when translated incorrectly [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4554634283" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/13396" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/13396/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/13396">#13396</a>]</li> <li>Prevent database unlock controls from shrinking vertically [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4655228105" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/13428" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/13428/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/13428">#13428</a>]</li> <li>Prevent mouse wheel scrolling from changing the unfocused alternative save method setting [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4473343028" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/13358" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/13358/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/13358">#13358</a>]</li> <li>Fix password font size not following application font size [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5415131844" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/13658" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/13658/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/13658">#13658</a>]</li> <li>Fix typos and documentation links [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2054281274" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/10124" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/10124/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/10124">#10124</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2351826625" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/10893" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/10893/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/10893">#10893</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1977967472" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/9993" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/9993/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/9993">#9993</a>]</li> <li>Fix null pointer dereference in Secret Service integration [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5375650701" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/13655" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/13655/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/13655">#13655</a>]</li> <li>Auto-Type: Support {PGDN} placeholder [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4739625363" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/13463" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/13463/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/13463">#13463</a>]</li> <li>Auto-Type: Refactor Auto-Type plugins to integrate them into the main binary [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4749478694" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/13469" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/13469/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/13469">#13469</a>]</li> <li>Browser: Fix showing and closing the password generator [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1977210424" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/9984" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/9984/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/9984">#9984</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1851313412" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/9743" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/9743/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/9743">#9743</a>]</li> <li>CSV Import: Fix automatic column mapping for English headers with non-English UI languages [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4925101908" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/13531" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/13531/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/13531">#13531</a>]</li> <li>Secret Service: Fix crash when a database locks while the item access dialog is open [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5177125935" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/13598" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/13598/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/13598">#13598</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5184435871" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/13602" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/13602/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/13602">#13602</a>]</li> <li>SSH Agent: Prevent recursive updates when changing entry settings and attachments [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3958062013" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/13068" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/13068/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/13068">#13068</a>]</li> <li>Linux: Improve AppImage desktop integration [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4751393559" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/13470" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/13470/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/13470">#13470</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4765654105" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/13476" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/13476/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/13476">#13476</a>]</li> <li>Linux: Include keyutils in Snap builds [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2282040093" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/10687" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/10687/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/10687">#10687</a>]</li> <li>Linux: Fix race condition in dark mode detection at startup [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4503685139" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/13366" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/13366/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/13366">#13366</a>]</li> <li>macOS: Improve window tray hide and restore behaviour [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="5357314326" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/13645" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/13645/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/13645">#13645</a>]</li> <li>macOS: Use the native temporary directory for the browser integration socket [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4786684963" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/13484" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/13484/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/13484">#13484</a>]</li> <li>macOS: Prevent deleting entries and groups while a modal dialog is open [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4534033613" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/13383" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/13383/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/13383">#13383</a>]</li> <li>macOS: Prevent hiding the menu bar [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4076933578" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/13147" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/13147/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/13147">#13147</a>]</li> <li>macOS: Fix application icon installation for IDE builds [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3627495607" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/12679" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/12679/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/12679">#12679</a>]</li> <li>Windows: Fix SSH Agent builds with MSYS2 [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1428435219" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/8708" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/8708/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/8708">#8708</a>]</li> <li>Build: Fix build-system-related issues [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4327678158" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/13278" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/13278/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/13278">#13278</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4322488392" data-permission-text="Title is private" data-url="https://github.com/keepassxreboot/keepassxc/issues/13275" data-hovercard-type="pull_request" data-hovercard-url="/keepassxreboot/keepassxc/pull/13275/hovercard" href="https://github.com/keepassxreboot/keepassxc/pull/13275">#13275</a>]</li> </ul> phoerious tag:github.com,2008:Repository/1238504280/v2.8.2 2026-09-24T06:38:59Z aria2-next: v2.8.2 - Crash Recovery and HTTP Range Controls <h2>Summary</h2> <p>Aria2 Next 2.8.2 fixes completed downloads returning after a crash, prevents duplicate torrent submissions from failing the original task, and adds an optional HTTP range-size limit.</p> <h3>Fixed</h3> <ul> <li><strong>Crash recovery:</strong> save terminal task state before releasing HTTP recovery data or reporting completion. Failed session writes remain pending and are retried, rather than being treated as saved.</li> <li><strong>Session changes:</strong> persist pause, resume, removal and task-option changes when session saving is configured. Report write failures to RPC clients and retain recovery data until the corresponding state has been committed.</li> <li><strong>Duplicate torrents:</strong> route libtorrent's add result to the submitting task, so a duplicate-add error cannot mark the existing torrent as failed.</li> <li><strong>Changing HTTP resources:</strong> with automatic range sizing, a changed ETag, Last-Modified value or resource size can trigger one restart of an engine-owned partial download from zero, using a single full request. Bytes from different representations are never combined; files without matching recovery ownership remain protected.</li> </ul> <h3>Added</h3> <ul> <li><code>--stream-max-range-size=&lt;SIZE&gt;</code> limits individual HTTP byte-range requests, including the initial request and retries. It applies to single- and multi-connection downloads, accepts byte counts or <code>K</code>, <code>M</code>, <code>G</code> suffixes, and supports values up to <code>1G</code>. The default, <code>0</code>, keeps automatic range sizing.</li> </ul> <p>For servers that reject requests larger than 5 MiB:</p> <div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="aria2-next --stream-max-range-size=5M &quot;https://example.com/file.iso&quot;"><pre>aria2-next --stream-max-range-size=5M <span class="pl-s"><span class="pl-pds">"</span>https://example.com/file.iso<span class="pl-pds">"</span></span></pre></div> <p>With a nonzero limit, a server that ignores <code>Range</code> causes an explicit failure; the engine will not bypass the limit with a whole-file request. SFTP transfers, media segment requests and torrent piece sizes are unaffected.</p> <h3>Downloads</h3> <p>The release workflow builds standalone executables and uploads these assets with SHA-256 checksums:</p> <table> <thead> <tr> <th>Platform</th> <th>Asset</th> </tr> </thead> <tbody> <tr> <td>Linux x86_64</td> <td><code>aria2-next-2.8.2-linux-x86_64</code></td> </tr> <tr> <td>Linux ARM64</td> <td><code>aria2-next-2.8.2-linux-aarch64</code></td> </tr> <tr> <td>macOS Apple Silicon</td> <td><code>aria2-next-2.8.2-macos-arm64</code></td> </tr> <tr> <td>macOS Intel</td> <td><code>aria2-next-2.8.2-macos-x86_64</code></td> </tr> <tr> <td>Windows x86_64</td> <td><code>aria2-next-2.8.2-windows-x86_64.exe</code></td> </tr> <tr> <td>Windows ARM64</td> <td><code>aria2-next-2.8.2-windows-arm64.exe</code></td> </tr> <tr> <td>Android ARM64</td> <td><code>aria2-next-2.8.2-android-arm64</code></td> </tr> <tr> <td>SHA-256 checksums</td> <td><code>aria2-next-2.8.2-checksums.sha256</code></td> </tr> </tbody> </table> <p>Full changelog: <a href="https://github.com/AnInsomniacy/aria2-next/compare/v2.8.1...v2.8.2">v2.8.1...v2.8.2</a></p> AnInsomniacy tag:github.com,2008:Repository/1333271506/v1.9.0 2026-09-23T22:43:51Z overtonium: Overtonium v1.9.0 <h1>Overtonium 1.9.0</h1> <p>A 32-partial additive synthesiser laid out like a 32-channel mixer. Every channel is one sine oscillator locked to a harmonic of the played note, and every channel has its own tuning, envelope and modulation.</p> <h2>What is new in 1.9.0</h2> <p><strong>Which oscillator the partials are.</strong> A new control at the head of the series group on the bar, offering six of them, each named for the part that makes it what it is. All six are sine oscillators. What differs is how each one fails to be one, which is the only thing that ever told two analogue oscillators apart: no circuit makes a mathematically perfect sine, and the ways each design misses are what people mean when they call one warm and another sterile.</p> <p><em>Pure</em> is the sine every partial already was, and is what a patch gets unless it asks for something else.</p> <p><em>Bulb</em> is a Wien bridge held steady by a lamp. It adds no harmonics at all, which is honest to the circuit, because holding the level steady is the lamp's whole job. What the lamp costs is time: it takes about half a second to settle, and the gain the loop needs changes with the frequency, so the level walks behind every move of the pitch. It answers gestures rather than sitting there. A vibrato is heard in the level as well as in the pitch, a bend dips and recovers as the lamp catches up, and a held note whose pitch is still sounds exactly like Pure.</p> <p><em>Rail</em> is a phase-shift oscillator grown into its own supply rail, with a third harmonic at -23 dB and no even ones, since a limit that clips both halves alike cannot make them.</p> <p><em>Diode</em> is a triangle bent into a sine by two of them that do not match, so one half of the wave is a different shape from the other. That asymmetry puts a second, third and fourth harmonic on it, all near -32 dB, which is a kink rather than a warmth.</p> <p><em>Valve</em> is a triode biased so one half leans over before the other. It is the only one here whose loudest addition is an octave above the partial rather than a twelfth, which is the whole of what people mean by valve warmth.</p> <p><em>Op-amp</em> is an amplifier that cannot move as fast as a fast note asks it to. It is the one that changes as you play: below a kilohertz nothing is being limited, and above it the partials lose first their corners and then everything but their slopes, which is a triangle. So the top of the series hardens as it climbs while the bottom stays where it was, and a chord played high is a different instrument from the same chord played low.</p> <p>Each of them is a rack of thirty-two rather than one oscillator used thirty-two times. Units built to the same spec do not come out the same, so every character but Pure puts each partial a couple of cents and a fraction of a decibel off what it was asked for: a cent and a half and a tenth of a decibel for Bulb, which has a lamp holding its level and nothing holding its pitch, out to three cents for Valve and half a decibel for Rail, whose level is wherever its amplifier ran out of supply. It is a fixed spread and not DRIFT: the same rack every time you load the patch, in every host and on every machine. Partial 1 is the one the other thirty-one were tuned against and is left exactly where it is, so a note lands on the key you played and choosing a character does not change how loud the patch is.</p> <p>No two of them distort by quite the same amount either. Each unit's circuit is built to one of three drives, fifteen percent either side of the nominal, so a run of channels is a rack rather than one circuit repeated: across the three, the rail's third harmonic runs from -25.8 to -21.6 dB and the valve's second from -22.0 to -18.6. Three rather than a figure per channel because the drive is baked into a table, and a table per channel would have a note reading thirty-two of them per sample where the reason a character costs nothing is that they all read one.</p> <p>Because this is an additive instrument, those harmonics land among the partials you are already mixing, at exact multiples of the partial that made them. The rack's own spread has moved the real partials off those exact ratios, and TUNE and STRETCH move them further, so the two beat against each other rather than adding up, which is what makes a character sound like a circuit rather than like a tone control.</p> <p>It is part of the patch rather than part of the setup, so a preset can change it and saving one carries it.</p> <p><strong>Twenty-five of the thirty-one factory presets now ask for one.</strong> That is the other half of this release: the six were played against every preset rather than added and left for you to find. Eleven are on Bulb, eight on Op-amp, four on Valve and two on Rail, and six stay Pure. Three of those six are Pure deliberately rather than by default: Init, which is the neutral patch, and Just Saw and Equal Saw, which this site plays against each other to demonstrate tuning and which would be demonstrating something else if their timbre moved.</p> <p><strong>A MIDI program change loads a factory preset.</strong> By its position in the alphabetical Factory list, counting from zero, so a keyboard, a foot controller or a clip can change the sound without anyone touching the menu. A number past the last preset is ignored rather than wrapping, and it arrives on any channel, MPE included. The preset loads whether or not it is the one already showing, which is what a program change does on an instrument with a panel, so a clip that opens with one sounds the same on every pass and anything you had changed by hand is replaced. Presets of your own have no number to be called by.</p> <p><strong>The converter readouts say what they are counting.</strong> They read <code>48.0 kHz</code> and <code>8 bit</code> where they used to have room for the figure alone. LINK moved to make that room: it now stands at the top of the caption column on the left, over the rows it gangs, and it is the one control that is not on the bar. With it gone from there the bar also fits on one row at the width the window opens at, where it used to take two, which gives the mixer 58 px of window back.</p> <p><strong>Every switch on the panel lights its word rather than its face.</strong> The two effect toggles, LINK, the character button and the M and S on all thirty-three channels. The face stays exactly as it is when the switch is off, and the word comes up lit with its light spilling onto the button around it. The character button lights in its own colour, from the yellow at the top of the mixer's own band for Bulb down to the red of channel 3 for Op-amp, and not at all for Pure. The mute went from an orange to a red at the same time, which is also now the colour of the top of the output meter.</p> <p><strong>Every screen and every lamp is set into the panel.</strong> The cents readout, the shape glyph, the four activity lamps and the pitch needle each carry the lip of the opening they sit in: dark along the top and the left, lit along the bottom and the right. That is the pair a hole cut in a panel lit from the top left shows, where a raised channel shows the other two, which is why a strip is lit on its left edge and a hole in one is lit on its right. Nothing moved to make room for it. Each of them was already standing in a margin of its own that nothing was using, so the lip costs a pixel on each side that the margin already held and no screen lost any of its picture.</p> <p><strong>The standalone wears the instrument's own window.</strong> Its title bar is JUCE's rather than the platform's, so it used to be the grey-green every unstyled JUCE application wears, with a red cross and a yellow dash on it. It is now the same lit and grained panel as everything below it, with the name across the middle and the two marks drawn the way every other small mark here is: dim until the pointer is on them, and then lit.</p> <p><strong>A modulator can be one circuit the whole keyboard hears.</strong> Both of them belong to the note by default, so striking a chord a note at a time gives you three tremolos that each started where their own key did and breathe out of step, which is what a digital instrument does and what most of these patches want. The new entry at the foot of a shape button's menu, one for each modulator, hands the phase to the channel instead: a note arriving late joins whatever is already running, and a chord breathes as one thing however it was played. That is what an instrument with one tremolo circuit in it does.</p> <p>Each channel keeps its own rate and its own shape either way. What gets shared is one circuit per channel rather than one for the instrument, so a patch built on thirty-two rates that never line up still sounds like itself with the switch on.</p> <p>The group's heading in the gutter lights when its modulator is shared, so it is on the panel rather than only in the menu it is set from. That matters here because the switch travels in a preset: without it a patch could arrive with a shared tremolo and nothing would say so.</p> <p>Two of the factory presets ask for it, which is why it exists: <em>Wurli</em> shares its tremolo, since a 200A's wobble is in the amplifier after the reeds, and <em>StyloPoly</em> shares its vibrato, since a Stylophone has one oscillator and nothing for it to be out of step with. Both of them sound different from their 1.8.0 selves for that reason as well as for their character.</p> <p><strong>A window dragged narrow can be put back.</strong> Settings has an entry under the zoom that sets the window to the width that shows all 32 channels, and to whatever height the rows you have left unfolded need. A window remembers what it was last left at, which is what a window should do and is also a one-way trip: pull it in to see what is behind it, close it, and every session after that opens on half a mixer.</p> <h2>Fixed</h2> <p><strong>Undo took a step several times a second while you were still turning a knob.</strong> A gesture was meant to be one step in the history however many values it moved and however long it went on, and it was, for a LINK drag across 32 channels. For one knob it was not: the history filled with the values the knob passed through on its way, so getting back to where you started took as many undos as the drag took seconds. It was most obvious with a scroll wheel, which is how most of this instrument gets adjusted.</p> <p>The history now holds gestures rather than writes. Every control on the panel says when a move begins and ends, which is how a host is told to start and stop recording a lane, so the plugin listens to its own parameters for that, takes a note of where everything stood when the first one opens, and puts whatever actually moved into the history as one step when the last one closes. A drag, a scroll wheel and a LINK drag across all 32 channels are one step each, however many values they passed through and however long they took, and a gesture that ends where it began is not a step at all.</p> <p><strong>And a host playing an automation lane filled the history too.</strong> Every write to the parameter tree went into it, and most writes are not somebody editing: a lane that moves a fader for three minutes is three minutes of history, and the undo you actually wanted is a hundred steps behind that. Automation leaves no history now, because it sets values without ever saying a move has begun. The same line decides what a program change does: choosing a preset from the menu is one step you can undo, and a clip firing a program change at the same preset is not, because one of them is editing and the other is playing.</p> <p><strong>Four controls on the bar had no name for a screen reader.</strong> The knobs and the strips have always been named carefully, and the bar's buttons were not: the preset button and the character button read out as whatever they currently say, "Big Saw" and "RAIL", with nothing to say what that is the name of. They now read as Preset and Character with their value after it. The two converter readouts were worse off, being neither named nor reachable: they are ordinary components with the digits painted on rather than written, so there was nothing there to read and nothing to press. Both now announce themselves as buttons, say what they are counting and what they currently read, and can be pressed to open their menus.</p> <h2>Under it</h2> <p><strong>Three parameters were added, 784 in all.</strong> Character, and the two switches that say whether each modulator is one circuit the whole keyboard hears. All three went on the end rather than among the existing ones, so every automation lane written before this release still points at the control it was pointing at.</p> <p><strong>The length of every list a host can automate is now written down in a test.</strong> A host stores a choice as a value between nought and one, and what that value means depends on how long the list is: with three entries the top of the range is the third, with four it is the fourth. So adding an entry to a list that has already shipped quietly moves every lane ever written against it, and a lane that said "Werckmeister III" comes back saying something else in somebody's finished piece. The nine on the bar, the two modulator shape lists on all 32 channels and the noise channel's are each pinned to the number they have, with the reason beside them. Adding a parameter stays free, which is why Character could be added at all: it goes on the end, it is found by its own id, and nothing that exists moves.</p> <p><strong>A character costs nothing per sample.</strong> The oscillator is one interpolated table read, an envelope tick and a gain, running 512 times per sample at 16 voices, so a waveshaper in that loop would be the whole engine again and the oversampling needed to stop it aliasing would be three more. Instead each circuit is run over a sine once at startup, the harmonics it leaves are read off, and a table is built from them. Measured against Pure at eight voices: Diode costs two percent more, Rail and Valve three, and Op-amp six, because one note's partials fall in different bands and read several tables where the others read one. What says those are worth reading at all is Bulb, which reads the same plain sine table Pure does and comes out within two percent, so that is the width of the ruler.</p> <p>The harmonics alias like any others, so each character is built several times over, each stopping at a different harmonic, and a partial reads the highest one that still fits under Nyquist at the pitch it is at that moment. A partial near the top of the range plays a plain sine whatever is chosen. The tables come to about 400 kB and take about 8 ms to build, once, when the plugin is prepared.</p> <h2>Upgrading from 1.8.0</h2> <p><strong>Nothing you have made moves.</strong> A session stores every value it was left with, so it opens sounding as it did, and a preset of your own says nothing about the character and therefore gets Pure, which is the oscillator every partial already was.</p> <p><strong>Twenty-five of the factory presets do sound different</strong>, because they now ask for a character. Loading one gives what it ships as rather than what it was in 1.8.0. A session that had one loaded is not affected, since a session carries the values rather than the name, and setting the character back to Pure after loading gives the 1.8.0 version of any of them but <em>Synth Ensemble</em>, which was reworked further: its velocity amounts now take more of the series, so a soft chord arrives with less above the first few partials, and its reverb sits a third in rather than a quarter.</p> <p><strong>Automation is unaffected.</strong> The one new parameter went on the end, and nothing else moved.</p> <p><strong>The standalone remembers its window size</strong>, as it always has, because the editor's size travels in the plugin's state. If you left it small it opens small. Drag it out once and that sticks, or pick "Fit all 32 channels" in Settings, or on macOS delete <code>~/Library/Application Support/Overtonium.settings</code> to start again.</p> <h2>Installing</h2> <p>The <a href="https://benjamindehli.github.io/overtonium/install/#downloads" rel="nofollow">install page</a> has a row per file saying who each one is for. In short: take the installer for your platform, or the zip beside it if you have no administrator rights or keep plugins somewhere of your own.</p> <table> <thead> <tr> <th>Platform</th> <th>Installer</th> <th>Formats</th> </tr> </thead> <tbody> <tr> <td>macOS</td> <td><code>.pkg</code>, with a chooser</td> <td>VST3, Audio Unit, Standalone</td> </tr> <tr> <td>Windows</td> <td><code>.exe</code></td> <td>VST3, Standalone</td> </tr> <tr> <td>Linux</td> <td>none, use the zip</td> <td>VST3, LV2, Standalone</td> </tr> </tbody> </table> <p>The macOS build is a universal binary and runs on both Apple Silicon and Intel. Logic and GarageBand only look for new Audio Units when they start, so restart them after installing.</p> <p>On Linux the zip's contents go in <code>~/.vst3</code> and <code>~/.lv2</code>.</p> <p>If you installed an earlier version with the package, the installer replaces it. A plugin folder holding two copies of Overtonium is worth tidying: macOS registers one of them and the host uses whichever that is, which need not be the newer.</p> <h2>What has actually been tried</h2> <p>All three platforms are built on every push, run through both test suites, and put through pluginval at strictness 8. The VST3 also goes through Steinberg's own conformance validator, and both suites run again under the address and undefined behaviour sanitizers. macOS is the only platform where the plugin has been loaded into a real host, where the Audio Unit and the VST3 also pass <code>auval</code>. Nobody has run the Windows or Linux builds in a DAW yet, so treat those as untried and please open an issue with whatever you find.</p> <p>Which character each factory preset gets was decided by ear, on a keyboard, one preset at a time, and by nothing else. There is no measurement behind any of those thirty-one choices and there should not be.</p> <p>Two other things here came back from playing rather than from a test. The undo fix was reported as a scroll wheel filling the history, and the lamp in Bulb was inaudible on its first pass: a model faithful to a bench oscillator does nothing at the scale this instrument moves pitch at, which is cents rather than the decade a frequency dial is swept across. Both have tests now, written after the fact, which is the honest order.</p> <h2>Windows will warn you</h2> <p>The Windows installer is not signed, so SmartScreen says the publisher is unknown. Choose "More info" and then "Run anyway". If you would rather not, build from source: the readme says how, and it takes one CMake command.</p> <h2>macOS</h2> <p>The installer is signed and notarised, so it opens without a warning. It asks which of the three formats you want and installs only those.</p> <h2>Licence</h2> <p>AGPLv3, which follows from JUCE. The whole source is in this repository.</p> github-actions[bot] tag:github.com,2008:Repository/1160445603/v0.7.0 2026-09-23T18:20:44Z openwurli: v0.7.0 "ResponsiblePractical" <p>The drawn-topology revision: instrumented re-reads of schematic<br> #203720-S-3 overturned six circuit readings the model was built on, and<br> this release rebuilds the preamp, pickup, and tremolo on the verified<br> circuit. Every correction was cross-checked by at least two independent<br> methods (instrumented drawing reads, independent SPICE, independent hand<br> derivation, real-instrument DC measurements) before any code moved.</p> <h3>Changed — the circuit</h3> <ul> <li><strong>Preamp rebuilt on the verified topology</strong> (9-node MNA): R-2 is 1 MEG<br> from the +150V polarizing line on the PICKUP side of the input cap<br> (the old "2 MEG to the base" was a misreading, and the "380K measured<br> input impedance" that justified it was circular); R-3 (470K) returns<br> from TR-1's base to TR-2's emitter divider — a DC-feedback servo that<br> is the base's only bias path; C-7 spans both emitter resistors (stage<br> 2 is the high-gain stage: A1 ≈ 8, A2 ≈ 130, not 420/2.2); C-6 (4.7 µF)<br> AC-couples the output — the R-9/R-10 node sits at 0 V DC. Supply<br> corrected to +14.5 V (service-manual text; resolves a collector-current<br> imbalance in the schematic's own annotations). DC now matches the<br> real-instrument measurement set the old topology could never reach.</li> <li><strong>Pickup corner corrected 2312 Hz → ≈880 Hz.</strong> C-1 is a short at<br> audio, so C-2's 220 pF sits in parallel with the plate capacitance —<br> the old model missed this and over-filtered the bass by ~8 dB below<br> 400 Hz (some 2026-07 downstream bass voicing was compensating for it).<br> Bass fundamentals are restored at the source.</li> <li><strong>Pickup nonlinearity moved to the physical source.</strong> The 1/(1−y)<br> bark mechanism now lives in the moving reed's charge injection; the<br> network is nearly LTI (one ~3 pF reed against the ~240 pF node). The<br> old model modulated the entire node capacitance — ~80× the physical<br> depth — which generated inharmonic intermodulation hash (measured<br> ~13 dB of it removed at C2 ff), had its asymmetry inverted, and lost<br> all harmonic generation above the corner. Displacement scaling now<br> means what its name says (gap fraction), and the hard clamp became a<br> soft saturation (the derivative discontinuity was audible).</li> <li><strong>Levels re-balanced</strong> for the hotter, bass-restored voice:<br> DS re-fit (C4 anchor back at its ear-blessed value), post-speaker gain<br> re-trimmed, and the vol=1.0 worst-case peak invariant preserved. The<br> DS-vs-loudness tradeoff curve is documented in-commit for future<br> voicing (≈1.5 dB of level per dB of C4 H2).</li> <li><strong>Tremolo LED path corrected</strong>: R-18 (680 Ω) drives the LG-1 LED (it<br> was wrongly modeled inside the LDR leg), R-17 is the VIBRATO ADJUST<br> depth trimmer, and the light law is now built from the oscillator's<br> LED current through a period-datasheet intensity law into the existing<br> CdS cell dynamics — with zero fitted constants (the shipped depth<br> ladder emerged within +0.22 dB). Measured result: the cell's time<br> constants, not the LED drive, own the tremolo's shape — the audible<br> character is unchanged by design.</li> <li><strong>Shadow-pump subtraction retired.</strong> The tremolo bias pump it<br> compensated does not exist in the real circuit (C-6 blocks DC from<br> the LDR leg; measured 0.000 mV). Null-tested to the 24-bit LSB before<br> removal. Whole-engine CPU −22%.</li> <li><strong>Volume-pot documentation corrected</strong>: the 200A uses a 10K main pot<br> plus a 25K reed-bar trimmer (the "3K" in older docs is a Model 200<br> part). No code change (volume is post-amp by design).</li> </ul> <h3>Added</h3> <ul> <li>Regression guards: C-6 pump guard (any bias pump under LDR cycling is<br> now a failure), tremolo-ladder and light-law gates, DC operating-point<br> test pinned to the cross-verified table, Nyquist-mode numerics test.</li> <li><code>spice/</code>: netlists, subcircuits, models, and testbenches migrated to<br> the drawn topology at 14.5 V, with a per-bench triage record<br> (<code>spice/testbench/REVISION-NOTES.md</code>). The generated solvers are<br> regenerated against the revised decks (upstream pin advanced to<br> v0.1.7; integrator author-pinned per deck).</li> <li>Research docs rewritten on the verified circuit (<code>preamp-circuit.md</code><br> with a superseded-readings appendix so no overturned reading can<br> silently return; <code>dk-preamp-derivation.md</code> for the 9-node solver;<br> <code>pickup-system.md</code>, <code>output-stage.md</code>, <code>signal-chain-architecture.md</code><br> refreshed; schematic provenance clarified in <code>SCHEMATIC_SOURCE.md</code>).</li> </ul> <h3>Fixed</h3> <ul> <li>MLP: consumption of never-trained decay heads no longer clamps to a<br> 0.3 rail (a 3.3× decay error on the opt-in path); level compensation<br> uses the real pickup corner; weights retrained on the revised physics<br> (corrections remain default-OFF).</li> <li>preamp-bench: the harmonic estimator was an un-windowed DFT measuring<br> spectral leakage (~1000× THD overstatement) — now windowed and<br> bin-aligned with a 0.00009% verified floor.</li> <li>Community "6 dB tremolo boost" figure documented with its provenance<br> (a single aged-unit measurement with the depth trimmer at minimum),<br> not treated as a spec.</li> </ul> <h3>Known issues</h3> <ul> <li>The hand solver's BJT kernel is forward-active only: far above any<br> reachable drive it diverges rather than saturating. Inaudible;<br> documented; blocks one internal probe until a kernel extension.</li> <li>C_TOTAL (240 pF) and C-2's return node remain hardware-unverified;<br> the pickup corner scales with the former and forks on the latter<br> (880 vs ~1400 Hz). Bench measurements are in progress.</li> </ul> <p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/hal0zer0/openwurli/compare/v0.6.2...v0.7.0"><tt>v0.6.2...v0.7.0</tt></a></p> github-actions[bot] tag:github.com,2008:Repository/1160445603/v0.8.0 2026-09-23T18:20:43Z openwurli: v0.8.0 "WeAreStardust" <p>The gain-staging release: an end-to-end external circuit review of<br> v0.7.0 (every netlist against the drawing, every shipping DSP block<br> against its netlist) found the last places where the model departed<br> from the circuit for a desired result, and this release removes them.<br> The volume control is back where the drawing puts it, the power amp<br> has its drawn bass shelf, and the plugin's output is referenced to the<br> amplifier's rail rather than trimmed to a target. Levels are lower and<br> the dynamic range is the instrument's own; level-to-taste belongs<br> downstream.</p> <h3>Changed — the sound</h3> <ul> <li><strong>Volume is the drawn pot.</strong> The control now sets the position of the<br> 10K main volume pot between the preamp and the power amp, solved as<br> drawn and loaded: preamp output → R-9 → R-11 reed-bar trimmer → pot →<br> wiper against the amp's R-27 input, with C-9 as the volume-dependent<br> treble pole. Since 2026-04 the amp's drive had been pinned and volume<br> applied after the speaker so that full volume could never clip the<br> amp; that was a level-convenience departure from the circuit and is<br> retired. The amp's operating point now follows the pot, as on the<br> instrument, and its clip knee is reachable at full volume with a hot<br> trim. Default position 0.80.</li> <li><strong>Power amp bass shelf.</strong> The behavioral amp models the drawn R-30 /<br> C-10 feedback leg inside its loop: 69× in band, unity at DC, −3 dB at<br> 33 Hz, −1.3 dB at the lowest A. The amp is split-rail and DC-coupled,<br> so this is the circuit's only bass roll-off; the model had none.</li> <li><strong>Output referenced to the rail.</strong> The post-speaker gain is retired as<br> a gain: the output mapping is stated in circuit units, 22 V at the amp<br> output (its clip ceiling) = 0 dBFS. An "over" can therefore only ever<br> mean the amp clipped, and the output cannot exceed full scale at any<br> setting (a structural test sweeps trim, tremolo and speaker character<br> to prove it; the residual ~1 % is the decimator's response to a<br> clipped edge). At the defaults a fortissimo six-note chord peaks<br> −11.6 dBFS and a fortissimo single note −18.8, speaker bypassed.</li> <li><strong>Keyboard balance re-trimmed</strong> on this chain through the real engine<br> at two velocities; bass and mid anchors move by up to 1.3 dB. The top<br> octave keeps a residual velocity split that no trim can close.</li> <li><strong>Speaker character 0 is a true passthrough.</strong> The 20 Hz and 20 kHz<br> "bypass" filters no longer run at zero; neither is a circuit element,<br> and the lowpass overshot rail-clipped edges by up to 0.7 dB.</li> </ul> <h3>Added</h3> <ul> <li><strong>Reed Bar Trim</strong> parameter (0–25 kΩ): R-11, the per-unit factory<br> trimmer ahead of the volume pot. The A-series board has no documented<br> setting, and every 200A left the factory somewhere on its travel, so it<br> is exposed as the per-unit setting it is. Its default (17.2K) reproduces<br> the manufacturer's end-to-end sensitivity calibration for the preceding<br> Model 200 board (60 mV in → 4.75 V into 8 Ω at full volume), whose<br> trimmer a drawing trace showed to be the same element — an inference,<br> outranked by a bench reading when one exists. Toward 0 Ω the amp<br> reaches its clip knee on fortissimo chords at full volume.</li> <li><code>alias-audit --volume</code> and <code>render-midi --r11</code> in preamp-bench.</li> </ul> <h3>Changed — SPICE</h3> <ul> <li><strong>Pickup deck rewritten to a current-source interface</strong>: the polarizing<br> voltage is internal, the plate is an AC node, and R-1 is external, so<br> the pickup and preamp subcircuits no longer instantiate the input<br> network twice in the full-chain and harmonic-audit benches. The<br> pickup → R-1 → base corner measures 836 Hz at the base (987 Hz at the<br> plate); the code's 880 Hz reference is left as is, and the discrepancy<br> is recorded as open.</li> <li><strong>Power-amp deck corrected to the drawing</strong> (both copies, landed<br> atomically with the sidecar-validation mirror): R-28's tail returns to<br> the +15 V regulated rail, C-13/C-14 across the drivers, and the R-40 /<br> C-15 output Zobel. The opt-in generated solver is regenerated at the<br> pinned compiler. The deck still idles near class B against the<br> manual's 10 mA set point; a sourced card for the house-number driver<br> parts is the outstanding fix.</li> </ul> <h3>Fixed</h3> <ul> <li>preamp-bench's hand-rolled output chains (render, calibrate, two<br> audits) still ran the pre-2026-04 volume-squared topology; they now<br> follow the engine.</li> <li>Documentation drift across the research docs and source comments:<br> shipping defaults, gain-staging figures (re-measured), the tremolo LED<br> path, the VAS designator, the pickup corner-scaling figures, the<br> oscillator deck header, and the 10 mA output-bias target now sourced<br> to the service manual.</li> <li>tb_power_amp's −3 dB measure never evaluated (braces are literal in a<br> control block).</li> </ul> <h3>Known issues</h3> <ul> <li>The behavioral amp's crossover notch is the wrong shape and size for<br> this stage (measured on the deck at the factory bias band: shallower<br> and 10–80× wider than modeled), and its open-loop gain lacks the<br> Miller pole. With the pot in the circuit the default drive sits where<br> that residual dominates the click band. Next release.</li> <li>Reed Bar Trim default and the pot taper are inferences pending a bench<br> measurement; so are the pickup capacitance and C-2's return.</li> </ul> <p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/hal0zer0/openwurli/compare/v0.7.0...v0.8.0"><tt>v0.7.0...v0.8.0</tt></a></p> github-actions[bot]