Commit Graph

12501 Commits

Author SHA1 Message Date
dependabot[bot]
fee46e1100 chore(deps): bump gitpython from 3.1.57 to 3.1.59
Bumps [gitpython](https://github.com/gitpython-developers/GitPython) from 3.1.57 to 3.1.59.
- [Release notes](https://github.com/gitpython-developers/GitPython/releases)
- [Changelog](https://github.com/gitpython-developers/GitPython/blob/main/CHANGES)
- [Commits](https://github.com/gitpython-developers/GitPython/compare/3.1.57...3.1.59)

---
updated-dependencies:
- dependency-name: gitpython
  dependency-version: 3.1.59
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-09-09 12:56:30 +00:00
Caleb_Meadows
0842216571 fix: preserve FSRS unlock timeout across mounts (#5536)
## Linked issue (required)

Fixes #5516

## Summary / motivation (required)

Make the existing FSRS parameter unlock timing API available before the
parameter editor is mounted, and retain the host's chosen timeout when
FSRS is disabled and enabled again. Register the API and store its
timeout in the component's module script; keep click tracking local to
each editor instance.

## Steps to reproduce (required, use N/A if not applicable)

1. Open the deck-options page with FSRS disabled.
2. In that page's JavaScript console, run
`anki.setParameterUnlockClickTimeoutMs(1000)`.
3. Before this fix, the call throws `TypeError:
anki.setParameterUnlockClickTimeoutMs is not a function`.

## How to test (required)

### Checklist (minimum)

- [x] I ran `just check` locally.
- [x] I added a browser regression for the changed behavior.

### Details

- The regression failed on the original implementation at the pre-mount
setter call and passes with the fix.
- It checks configuration before the first mount, retention across
remounts, updates while absent and present, the three-click gate, the
default timeout, and reset after page reload. Playwright's clock
controls the click intervals.
- `just test-ts`: 61 tests passed.
- `just test-e2e`: 27 tests passed, using the repository's disposable
Anki harness.
- `just check`: passed, including 572 Rust tests and the Python,
formatting, lint, and type checks.
- The Qt checks emitted an audio-thread warning (`mw` was `None` in
`qt/aqt/sound.py`); all 93 Qt tests passed and `just check` exited
successfully.

## Before / after behavior (optional)

Before: the API exists only after the editor mounts, and mounting a new
editor resets the timeout to 500 ms.

After: the API exists when the deck-options JavaScript loads, and the
selected timeout lasts for the page's lifetime.

## Risk / compatibility / migration (optional)

Existing API names, the 500 ms default, and the three-click requirement
are preserved. Click counts and pending timers remain local to each
editor. No stored data or scheduling behavior changes.

## UI evidence (required for visual changes; otherwise N/A)

N/A.

## Scope

- [x] This PR is focused on one change.

Developed with assistance from Codex.
2026-09-08 21:42:14 +01:00
Fernando Lins
bfad9474d4 test: cover the decks service layer (#5514)
## Linked issue

Closes #5383

## Summary / motivation

`rslib/src/decks/service.rs`: the Protobuf entry point for all deck
operations, it had 0% test coverage. This PR adds a golden
`#[cfg(test)]` suite that exercises the happy path, error paths,
boundary cases, and key invariants of the `DecksService` layer and its
proto↔domain conversions.

No production code was changed: the module is a thin routing/conversion
layer with no logic that warranted refactoring. Testing at this boundary
is additive rather than duplicative: `reparent_decks`,
`remove_decks_and_child_decks` and the proto↔domain conversions had no
direct unit tests before.

Coverage of `decks/service.rs` goes from **0% → ~99.7% of lines**

## How to test
### Details

- `just check` passes (fmt, clippy, rust_test, and the rest of the
suite).
- Run just this module: `cargo test -p anki decks::service::tests`.
- Coverage inspected with `just test-rust --coverage --html`
- `decks/service.rs` reports ~99.7% line coverage.

Scenarios covered:
- proto↔domain conversions: full-field `Deck` round trip for both kinds,
`missing kind → InvalidInput`, `FilteredDeckForUpdate` field
preservation and `config: None → default`.
- create/retrieve, update (common + kind-specific persistence), rename
with descendant cascade, delete + card removal, reparent (incl.
`new_parent == 0`).
- name/tree listing: `include_filtered`, empty vs non-empty default
skipping, child-name filtering, `deck_tree` counts by `now`, legacy tree
JSON.
- current deck, collapsed-scope isolation, legacy JSON paths (incl.
`preserve_usn_and_mtime`), and filtered-deck build.
- Error paths assert the specific `AnkiError` variant (`NotFound` /
`InvalidInput`), not just `is_err()`.
2026-09-08 17:10:11 -03:00
Abdo
39a36fc47c test: Improve coverage of notes service (#5509)
## Linked issue

Closes #5386

## Summary

This increases test coverage of `rslib/src/notes/service.rs` and some
related modules (`rslib/src/adding.rs` and `rslib/src/notes/mod.rs`).

## How to test

Run `just test-rust --coverage --html` and view coverage reports.
2026-09-08 22:15:17 +03:00
Abdo
b758186f25 fix: Add compatibility shims for AnkiPackageImporter/AnkiPackageExporter (#5547)
## Linked issue

Closes #5541

## Summary

Add compatibility wrappers for AnkiPackageImporter/AnkiPackageExporter
to redirect the calls to the new APIs. This is intended as a temporary
compatibility workaround for the
[AnkiConnect](https://ankiweb.net/shared/info/2055492159) add-on, not as
a general wrapper for all removed APIs.

## Steps to reproduce (before)

Install AnkiConnect and confirm it fails at startup due to the removed
`anki.importing` and `anki.exporting` modules.

## How to test (after)

Export a sample apkg and run this script in the same directory to test
AnkiConnect's importPackage/exportPackage APIs.

```python
import json
import urllib.request
from pathlib import Path


def request(action, **params):
    return {'action': action, 'params': params, 'version': 6}

def invoke(action, **params):
    payload = json.dumps(request(action, **params)).encode('utf-8')
    response = json.load(urllib.request.urlopen(urllib.request.Request('http://127.0.0.1:8765', payload)))
    if len(response) != 2:
        raise Exception('response has an unexpected number of fields')
    if 'error' not in response:
        raise Exception('response is missing required error field')
    if 'result' not in response:
        raise Exception('response is missing required result field')
    if response['error'] is not None:
        raise Exception(response['error'])
    return response['result']

result = invoke('importPackage', path=str(Path(__file__).parent / 'sample.apkg'))
assert result is True

decks = invoke('deckNamesAndIds')
deck_to_export = next(name for name in decks if name != 'Default')

result = invoke('exportPackage', deck=deck_to_export, path=str(Path(__file__).parent / 'exported.apkg'), includeSched=True)
assert result is True

```
2026-09-08 21:30:34 +03:00
Abdo
43482ea2ae feat: Set up fault handler (#5546)
## Linked issue

Closes #5542

## Summary

This sets up Python's faulthandler to write tracebacks to the crash.log
file in the base folder.

## How to test

- Revert #5537
- Run the stress test linked in #5534 on Windows:
`out/pyenv/Scripts/python.exe stress_webviews.py`.
- Anki should crash after a few iterations and you should see some
tracebacks in the out/stress_base/crash.log file.
2026-09-08 21:30:09 +03:00
Abdo
9f71d0e832 feat: Update to Briefcase 0.4.5 (#5545)
## Linked issue

Closes #5369

## Summary

This updates to Briefcase 0.4.5 for some improvements:
- Fix signal handling (#5369).
- Pin Python support packages and stub binaries to known hashes
(https://github.com/beeware/briefcase/issues/2980).
- Use uv for setting up the Briefcase environment and installing
dependencies (https://github.com/beeware/briefcase/issues/2231).

## Steps to reproduce (before)

Confirm #5369 is fixed using the example code in the linked forum post.

## How to test (after)

- Run `./ninja installer` to test the build.
- Run Python tests: `just test-py`.
- Test the CI build artifacts:
https://github.com/ankitects/anki/actions/runs/34235392781
2026-09-08 19:20:44 +03:00
Abdo
b484b79165 chore: Update browser compatibility database (#5520)
## Linked issue

Closes #5361

## Summary

This bumps `eslint-plugin-compat` and the transitive dependency
`browser-compat-data` for up-to-date data for the
[browserslist](https://www.npmjs.com/package/browserslist) check.

## Steps to reproduce

#5343 is failing with the error `DragEvent is not supported in iOS
Safari 14.5-14.8 compat/compat` but this is not accurate according to
[MDN](https://developer.mozilla.org/en-US/docs/Web/API/DragEvent#browser_compatibility)
and [caniuse.com](https://caniuse.com/?search=DragEvent). The issue was
that we're using an outdated compatibility database. The update also
uncovered an unrelated compatibility issue with `crypto.randomUUID`,
which we started using in the editor in #4384 - this function does not
meet our minimum Chrome version set in package.json, which we cannot
update yet [^1], so the fix is to revert #4384.

## How to test

Run `./ninja check`.

[^1]: AnkiMobile [targets iOS
15.4](75e02cac40/anki.xcodeproj/project.pbxproj (L1240)),
which supports the API, but AnkiDroid [targets Chrome
85](35903b666e/AnkiDroid/src/main/java/com/ichi2/utils/WebViewUtils.kt (L51)).
2026-09-08 19:10:00 +03:00
a.r
a389f00409 fix: relax CSP for untrusted media to load its own presentation (#5525)
## Linked issue (required)

Closes #4898.

## Summary / motivation (required)

Untrusted media embedded via `<object>`/`<iframe>` (e.g. an SVG) is a
document of its own, so unlike media shown in an `<img>`, it needs to
fetch the presentation it ships with — for example a stylesheet, image,
or font sitting beside it in the media folder. Our CSP previously
blocked all of that.

This PR relaxes `UNTRUSTED_MEDIA_CSP` in `qt/aqt/mediasrv.py` to allow
`style-src`, `img-src`, `font-src`, and `media-src` from `'self'` only.
None of these can execute code, and `'self'` keeps requests within the
media server, so a card still can't phone home. `script-src`,
`connect-src`, `object-src`, and `frame-src` remain `'none'`.

Relaxing the sandbox to permit same-origin resource loads had a side
effect: with site isolation enabled, Chromium puts an opaque-origin
document in its own process and never delivers the hover-out event to
it, leaving `:hover` stuck on for an embedded SVG once the mouse passes
over it. QtWebEngine disables site isolation by default so this was
latent for most users, but it's reproducible on Qt 6.11 with
`QTWEBENGINE_CHROMIUM_FLAGS=--site-per-process
--enable-features=IsolateSandboxedIframes`. The second commit fixes this
by adding `allow-same-origin` to the `sandbox` directive, keeping the
embedded document in-process. Scripting stays blocked both by the
sandbox (no `allow-scripts`) and by `script-src 'none'`, so media still
can't make use of the origin.

Full discussion and background:
https://github.com/ankitects/anki/issues/4898

## Steps to reproduce (required, use N/A if not applicable)

1. Add a card with an SVG that references an external
stylesheet/image/font in the same media folder (e.g. via
`<?xml-stylesheet?>` or `<image href="...">`).
2. Display the card — before this fix, the referenced resources fail to
load because the CSP blocks them.
3. With `QTWEBENGINE_CHROMIUM_FLAGS=--site-per-process
--enable-features=IsolateSandboxedIframes` set and only the first commit
applied, hover over the embedded SVG and move the mouse away — `:hover`
styling stays stuck on.

## How to test (required)

### Checklist (minimum)

- [x] I ran `./ninja check` or an equivalent relevant check locally.
- [x] I added or updated tests when the change is non-trivial or
behavior changed.

### Details

- `qt/tests/test_mediasrv.py`: unit tests asserting the new CSP
directives (`style-src`, `img-src`, `font-src`, `media-src` limited to
`'self'`; `sandbox` includes `allow-same-origin`; no directive allows
remote origins).
- `qt/tests/qwebengine_csp_smoke.py`: manual QtWebEngine smoke test
extended to load an SVG with a same-origin stylesheet/image and a script
tag, and to assert the embedded document stays same-origin
(`contentDocument` accessible) and that a remote stylesheet reference is
never fetched. Run manually with `python
qt/tests/qwebengine_csp_smoke.py`.

## Before / after behavior (optional)

Before: untrusted media couldn't load co-located
stylesheets/images/fonts, and (unrelated to the CSP relaxation but fixed
alongside it) embedded SVGs could get stuck showing `:hover` styling
under site isolation.

After: untrusted media can load passive same-origin resources it ships
with; scripting and remote network access remain fully blocked; embedded
documents stay same-origin so hover state clears correctly.

## Risk / compatibility / migration (optional)

Low risk — the CSP is still deny-by-default for scripts, remote origins,
and network connections. Only same-origin passive resource loading is
newly permitted.

## UI evidence (required for visual changes; otherwise N/A)

N/A

## Scope

- [x] This PR is focused on one change (no unrelated edits).

---------

Co-authored-by: Abdo <abdo@abdnh.net>
2026-09-08 14:27:50 +03:00
Abdo
445b835e36 Fix webview crash in unhook() by using weak references (#5537)
## Linked issue

Closes #5534

## Summary

#5255 attached AnkiWebView's destroyed signal to a closure, which
apparently made it possible for Python's garbage collector (which Anki
triggers manually via a timer) to clean up the closure before the
destroyed signal is emitted, then Qt tries to call the destroyed closure
and causes a crash.

The solution here is to avoid using the destroyed signal and instead
clean up hooks on the next call when the webview is destroyed. Same as
#5234 but with the difference that the callbacks are wrapped in weak
references so they don't prevent the webview from being garbage
collected.

## Steps to reproduce (before)

Run the stress_webviews.py script attached to the issue. I could
reproduce the crash after two iterations.

## How to test (after)

Run the stress test and confirm it completes all iterations without
crashes.
2026-09-08 12:56:11 +03:00
Zaveshaa
5edc31694f fix: rename markdown deck description label (#5489)
## Linked issue

Fixes #5481

## Summary / motivation

The deck description checkbox is currently labelled "Anki 2.1.41+
handling". The version reference is long outdated — 2.1.41 came out more
than five years ago, so the label just looks confusing to users. This
renames it to plain "Markdown", which actually describes what the option
does.

I also dropped the matching hint line about "Markdown will appear as
text on Anki 2.1.40 and below", since the whole point of the old label
was to warn about that version, and it's no longer relevant.

## Steps to reproduce

N/A

## How to test

1. Open a deck's options.
2. Open the description editor via the Description button.
3. Confirm the checkbox is labelled "Markdown" and the tooltip no longer
mentions 2.1.40.

### Checklist

- [ ] I ran `./ninja check` or an equivalent relevant check locally.
(String-only change; verified by inspecting the generated UI strings and
existing tests still passing.)
- [ ] I added or updated tests when the change is non-trivial or
behavior changed. (String rename, no test changes needed.)

## Before / after behavior

Before: checkbox labelled "Anki 2.1.41+ handling", tooltip mentions Anki
2.1.40.
After: checkbox labelled "Markdown", tooltip only explains markdown/HTML
handling.

## Risk / compatibility / migration

N/A — UI string only.

## UI evidence

String-only change. UI is verified by the string descriptions above;
happy to add a screenshot if preferred.

## Scope

- [x] This PR is focused on one change (no unrelated edits).
2026-09-04 16:02:58 +03:00
dependabot[bot]
20c475f110 chore(deps): bump browserslist from 4.24.2 to 4.28.8 (#5508)
Bumps [browserslist](https://github.com/browserslist/browserslist) from
4.24.2 to 4.28.8.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/browserslist/browserslist/releases">browserslist's
releases</a>.</em></p>
<blockquote>
<h2>4.28.8</h2>
<ul>
<li>Fixed <code>including kaios</code> in baseline queries (by <a
href="https://github.com/Jaybhade"><code>@​Jaybhade</code></a>).</li>
</ul>
<h2>4.28.7</h2>
<ul>
<li>Improved parsing performance.</li>
<li>Fixed unbounded memory growth (by <a
href="https://github.com/alanturing881"><code>@​alanturing881</code></a>).</li>
<li>Fixed prototype write issue (by <a
href="https://github.com/alanturing881"><code>@​alanturing881</code></a>).</li>
</ul>
<h2>4.28.6</h2>
<ul>
<li>Fixed Electron version queries (by <a
href="https://github.com/spokodev"><code>@​spokodev</code></a>).</li>
</ul>
<h2>4.28.5</h2>
<ul>
<li>Fixed <code>&gt;</code> and <code>&gt;=</code> queries (by <a
href="https://github.com/spokodev"><code>@​spokodev</code></a>).</li>
</ul>
<h2>4.28.4</h2>
<ul>
<li>Fixed <code>SyntaxError</code> regression of 4.28.3.</li>
</ul>
<h2>4.28.3</h2>
<ul>
<li>Fixed baseline query case-insensitivity (by <a
href="https://github.com/swwind"><code>@​swwind</code></a>).</li>
</ul>
<h2>4.28.2</h2>
<ul>
<li>Fix prototype pollution (by <a
href="https://github.com/chluo1997"><code>@​chluo1997</code></a>).</li>
</ul>
<h2>4.28.1</h2>
<ul>
<li>Removed Baseline warning since we have it own warning.</li>
</ul>
<h2>4.27.0</h2>
<ul>
<li>Added <code>BROWSERSLIST_TRACE_WARNING</code> environment
variable.</li>
</ul>
<h2>4.26.3</h2>
<ul>
<li>Fixed <code>throwOnMissing</code> with <code>extends</code> query
(by <a
href="https://github.com/alexander-akait"><code>@​alexander-akait</code></a>).</li>
</ul>
<h2>4.26.2</h2>
<ul>
<li>Fixed <code>baseline-browser-mapping</code> version
requirement.</li>
</ul>
<h2>4.26.1</h2>
<ul>
<li>Updated Firefox ESR.</li>
</ul>
<h2>4.26.0</h2>
<ul>
<li>Added Baseline queries (by <a
href="https://github.com/tonypconway"><code>@​tonypconway</code></a>).</li>
</ul>
<h2>4.25.4</h2>
<ul>
<li>Fixed Windows support for custom stats (by <a
href="https://github.com/torgeilo"><code>@​torgeilo</code></a>).</li>
</ul>
<h2>4.25.3</h2>
<ul>
<li>Fixed ReDoS (by <a
href="https://github.com/ericcornelissen"><code>@​ericcornelissen</code></a>).</li>
</ul>
<h2>4.25.2</h2>
<ul>
<li>Fixed Node.js <code>--permission</code> support (by <a
href="https://github.com/broofa"><code>@​broofa</code></a>).</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/browserslist/browserslist/blob/main/CHANGELOG.md">browserslist's
changelog</a>.</em></p>
<blockquote>
<h2>4.28.8</h2>
<ul>
<li>Fixed <code>including kaios</code> in baseline queries (by <a
href="https://github.com/Jaybhade"><code>@​Jaybhade</code></a>).</li>
</ul>
<h2>4.28.7</h2>
<ul>
<li>Improved parsing performance.</li>
<li>Fixed unbounded memory growth (by <a
href="https://github.com/alanturing881"><code>@​alanturing881</code></a>).</li>
<li>Fixed prototype write issue (by <a
href="https://github.com/alanturing881"><code>@​alanturing881</code></a>).</li>
</ul>
<h2>4.28.6</h2>
<ul>
<li>Fixed Electron version queries (by <a
href="https://github.com/spokodev"><code>@​spokodev</code></a>).</li>
</ul>
<h2>4.28.5</h2>
<ul>
<li>Fixed <code>&gt;</code> and <code>&gt;=</code> queries (by <a
href="https://github.com/spokodev"><code>@​spokodev</code></a>).</li>
</ul>
<h2>4.28.4</h2>
<ul>
<li>Fixed <code>SyntaxError</code> regression of 4.28.3.</li>
</ul>
<h2>4.28.3</h2>
<ul>
<li>Fixed baseline query case-insensitivity (by <a
href="https://github.com/swwind"><code>@​swwind</code></a>).</li>
</ul>
<h2>4.28.2</h2>
<ul>
<li>Fix prototype pollution (by <a
href="https://github.com/chluo1997"><code>@​chluo1997</code></a>).</li>
</ul>
<h2>4.28.1</h2>
<ul>
<li>Removed Baseline warning since we have it own warning.</li>
</ul>
<h2>4.48.0</h2>
<ul>
<li>Added <code>firefox &gt;= esr</code> query support (by <a
href="https://github.com/SethFalco"><code>@​SethFalco</code></a>).</li>
<li>Fixed docs (by <a
href="https://github.com/SethFalco"><code>@​SethFalco</code></a>).</li>
</ul>
<h2>4.27.0</h2>
<ul>
<li>Added <code>BROWSERSLIST_TRACE_WARNING</code> environment
variable.</li>
</ul>
<h2>4.26.3</h2>
<ul>
<li>Fixed <code>throwOnMissing</code> with <code>extends</code> query
(by <a
href="https://github.com/alexander-akait"><code>@​alexander-akait</code></a>).</li>
</ul>
<h2>4.26.2</h2>
<ul>
<li>Fixed <code>baseline-browser-mapping</code> version
requirement.</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="f2f2e6cfb0"><code>f2f2e6c</code></a>
Release 4.28.8 version</li>
<li><a
href="d0787c88fa"><code>d0787c8</code></a>
Update dependencies</li>
<li><a
href="fcf8fa9857"><code>fcf8fa9</code></a>
Merge pull request <a
href="https://redirect.github.com/browserslist/browserslist/issues/939">#939</a>
from Jaybhade/fix/baseline-kaios-without-downstream</li>
<li><a
href="57ecd64454"><code>57ecd64</code></a>
fix: support &quot;including kaios&quot; without downstream</li>
<li><a
href="093a0f67bb"><code>093a0f6</code></a>
Update EM banner</li>
<li><a
href="b637868045"><code>b637868</code></a>
Release 4.28.7 version</li>
<li><a
href="313f4659b9"><code>313f465</code></a>
Update dependencies</li>
<li><a
href="c935c5a206"><code>c935c5a</code></a>
Fix regexp performance</li>
<li><a
href="d7e9e653cb"><code>d7e9e65</code></a>
Rewrite structure parsing to make it always fast</li>
<li><a
href="ec4a55efd7"><code>ec4a55e</code></a>
Fix import order</li>
<li>Additional commits viewable in <a
href="https://github.com/browserslist/browserslist/compare/4.24.2...4.28.8">compare
view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by <a
href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new
releaser for browserslist since your current version.</p>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=browserslist&package-manager=npm_and_yarn&previous-version=4.24.2&new-version=4.28.8)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/ankitects/anki/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-09-02 19:52:09 +03:00
jamesliuai
9e32ad8849 fix: refresh reviewer toolbar background after theme changes (#5241)
## Linked issue (required)

Fixes #5240 

## Summary / motivation (required)

During review, the top toolbar copies the main reviewer webview's
computed background so that the card background continues behind the
toolbar. When the theme changes, the webviews update their theme
classes, but the toolbar's copied inline `background` remains unchanged.
This leaves the top of the reviewer using the previous theme's
background.

This PR clears the stale inline background when the theme changes and
schedules it to be copied again after the webviews have queued their
theme-class updates. The additional behavior is limited to the review
screen.

Tests cover refreshing the background during review and ensuring that
the background-copying behavior is not triggered on other screens.

This is narrower than the general live-theme issue addressed by #1471
and #1497. The reviewer toolbar's computed-background behavior was
introduced later as part of #2262.

## Steps to reproduce (required, use N/A if not applicable)

1. Start Anki and open **Preferences**.
2. Set **Theme** to **Light**.
3. Ensure **Minimalist mode** and **Hide top bar during review** are
disabled.
4. Close Preferences and start reviewing a deck.
5. While the question side of a card is displayed, reopen Preferences.
6. Change **Theme** from **Light** to **Dark**.
7. Close Preferences without showing the answer or moving to another
card.
8. Observe that the reviewer changes to the dark theme, but the
background behind the top toolbar remains light.

The issue can also be reproduced in the opposite direction, and when
Anki follows the system theme while the operating system changes between
light and dark appearance.

## How to test (required)

### Checklist (minimum)

- [x] I ran `just check` locally.
- [x] I added or updated tests when the change is non-trivial or
behavior changed.

### Details

Automated testing:

- `just fmt`
- `just test-py`
- `just check`

Manual testing:

1. Launched the fixed build with `just run`.
2. Repeated the reproduction steps above.
3. Confirmed that the top toolbar background immediately matches the
rest of the reviewer after switching from light to dark.
4. Repeated the test from dark to light.
5. Confirmed that changing themes outside the reviewer continues to
behave as before.

## Before / after behavior (optional)

Before: the reviewer updates to the new theme, but the background behind
the top toolbar retains the previous theme's color.

After: the top toolbar background is recalculated after the theme
changes and matches the rest of the reviewer.

## Risk / compatibility / migration (optional)

Low risk. The change only adds theme-change handling to `TopWebView`
while Anki is in the review state. It calls the existing base
theme-change handler and reuses the existing background-copying method.

## UI evidence (required for visual changes; otherwise N/A)

### Light to dark

**Before**

<img width="400" alt="image"
src="https://github.com/user-attachments/assets/a04bb77b-5a34-459e-896c-d00a66601b83"
/>

**After**

<img width="400" alt="Screenshot 2026-07-30 at 13 52 49"
src="https://github.com/user-attachments/assets/481871b5-a4bb-43bc-8cbc-8400c447fae3"
/>

### Dark to light

**Before**

<img width="400" alt="image"
src="https://github.com/user-attachments/assets/9a94f926-f4fc-440c-8f63-7a94feae9e71"
/>

**After**

<img width="400" alt="Screenshot 2026-07-30 at 13 52 39"
src="https://github.com/user-attachments/assets/c48a32d3-da0c-4593-b751-cdcd8a0487f6"
/>

## Scope

- [x] This PR is focused on one change (no unrelated edits).
2026-09-02 17:10:51 +03:00
Asuka Minato
b9d69a0abd bump fsrs to 6.6.2 (#5494)
closes #5495
2026-09-02 12:41:04 +03:00
Luc Mcgrady
9f2e75d215 Fix: Change deck modifies all cards in deck (#5500)
fixes #5414

The DeckIdsWithoutChildren search is not surrounded by parentheses.

d80273ea71/rslib/src/search/sqlwriter.rs (L127-L129)

Maybe it would be best to surround all these searches with parentheses
to be safe?
2026-09-01 20:17:54 +03:00
Zaveshaa
0218af9bef Hide FSRS-only sort orders in filtered deck dialog when FSRS is disabled (#5407)
Fixes #5397.

Selecting ascending/descending retrievability (or relative overdueness)
for a filtered deck while FSRS is disabled raises a `SQLITE` error,
because `build_retrievability_query()` returns an empty order fragment
without FSRS (`order by , fnvhash(...)`), and the overdueness expression
reads FSRS memory state regardless.

As suggested in the issue by Luc, this hides those three orders in the
filtered deck dialog when FSRS is off, the same way deck options already
handles review order.

The combo box rows are mapped through the list of actually offered
orders instead of assuming row == enum value, so stored configs stay
valid. If a stored config references one of the hidden orders (e.g. FSRS
was turned off after it was built), the dialog falls back to Random
rather than showing a broken selection. I checked that the mapping
round-trips correctly with FSRS on and off, including the fallback path.
2026-09-01 13:45:01 -03:00
llama
d83596149c fix: add cache-bust to load_sveltekit_page for stats (#5486)
## Linked issue (required)

Closes #5485

## Summary / motivation (required)

Reproduced, bisected to
5a9b54e938.
I think qt 6.10 introduced (stronger?) caching for the webengine, which
this pr accounts for by cache-busting. Doesn't look like we use
`load_sveltekit_page` for refreshing/reloading anywhere else other than
for stats

## Steps to reproduce (required, use N/A if not applicable)

See linked issue

## How to test (required)

Try the stats' page's deck selector button and see that it works now

### Checklist (minimum)

- [x] I ran `./ninja check` or an equivalent relevant check locally.
- [ ] I added or updated tests when the change is non-trivial or
behavior changed.

## Scope

- [x] This PR is focused on one change (no unrelated edits).
2026-09-01 19:41:17 +03:00
Fernando Lins
4214dc5ee0 fix(ci): correct paginate mapFn in prune-coverage-cache workflow (#5504)
## Linked issue

Fixes #5501

## Summary / motivation

`github.paginate` hoists the `actions_caches` array directly onto
`response.data` for `getActionsCacheList`, so the `mapFn` returning
`response.data.actions_caches` yielded `undefined`. That produced
`[undefined]`, bypassing the `length === 0` guard and crashing on
`keep.key` (`TypeError: Cannot read properties of undefined`).
Fixed by returning `response.data`.

## Steps to reproduce 

1. A `CI` run completes on `main` and triggers the prune workflow.
2. The `prune` job fails with `TypeError: Cannot read properties of
undefined (reading 'key')`.

## How to test
### Details

Reproduced against the real API with the same octokit `paginate`: old
mapFn → `[undefined]` → crash; new mapFn → real caches array → works.
The `workflow_run` trigger only fires on `main`, so it can't be
exercised from a branch/PR.
2026-09-01 19:28:45 +03:00
Carlos Mendez
5a58c8516f feat: improved error message for CSV import (#5484)
<!--
Title (for the Pull Request title field at the top):
Use a short prefix so the change type is obvious. You do not need to
repeat it in the body below.

Examples:
- fix: — bugfix
- feat: — feature
- refactor: — internal change without user-facing feature
- docs: — documentation only
- chore: — tooling, CI, deps, build housekeeping
- test: — tests only
-->

## Linked issue (required)

<!-- Fixes #123 / Closes #123 -->
Fixes #4346 

## Summary / motivation (required)

<!-- What this PR does and why. For larger changes, add enough context
for reviewers. -->
Improves the CSV import error experience for empty or invalid CSV files.

Previously, the import error page exposed an HTTP status code and did
not provide a clear way for the user to dismiss the error and return to
the main Anki window.

Changes:
- displays the import error without exposing the HTTP status code
- adds an "Okay" button to dismiss the error
- use Anki frontend RPC architecture to close the active import dialog
- handles CSV import loader errors with a try/catch and displays them
through the shared ErrorPage component

The solution uses the existing `ImportDialog.reject()` path so the
dialog box performs normal clean up before closing.

This implementation was inspired by the previous discussion and earlier
work in #4383. Thank you @medProgAyat and @josod827. Your discussion and
implementations were a great assest to helping me solve and implement a
solution.

## Steps to reproduce (required, use N/A if not applicable)

<!-- Steps to reproduce: how to trigger the bug in the broken state (the
"before").
 - Mainly for bugfixes;
    - For bugs: numbered steps before the fix. For non-bugs: write N/A.
 - use N/A for features, refactors, docs, chore, etc.
-->

1. open Anki and click on import button
2. select a empty csv
3. error page should open

## How to test (required)

<!--- How to test: how you verified the change (checks, unit tests,
manual steps, edge cases — the "after" or general validation). --->

### Checklist (minimum)

- [ x] I ran `./ninja check` or an equivalent relevant check locally.
- [ ] I added or updated tests when the change is non-trivial or
behavior changed.

### Details

<!-- Commands, manual steps, edge cases, and what you observed -->
Manual testing:
1. Imported an empty CSV file.
2. Confirmed the custom error page is displayed.
3. Confirmed the HTTP status code is not displayed to the user.
4. Confirmed clicking the "Okay" button closes the import dialog and
returns to the main Anki window.
5. Imported a valid CSV file and confirmed the normal CSV import flow
still works.

## Before / after behavior (optional)

<!-- For bugfixes: behavior before vs after. For other types: N/A or a
short note. -->

Before:
- Empty CSV imports display an error without a clear dismissal action.
- Development error output may include the HTTP status code.

After:
- The error is displayed through the shared error UI.
- The user can click "Okay" to close the import dialog.
- The close action is handled through a frontend RPC.

## Risk / compatibility / migration (optional)

<!-- Breaking changes, rollout notes, or N/A for small / low-risk PRs
-->

Low risk. The change is limited to CSV import error handling and the
import dialog close path.


## UI evidence (required for visual changes; otherwise N/A)

<!-- Screenshot or short video -->

before:
<img width="800" height="800" alt="image"
src="https://github.com/user-attachments/assets/4fe77689-3ebd-4a98-9bd9-4916214bbb29"
/>

after:
<img width="788" height="818" alt="image"
src="https://github.com/user-attachments/assets/8451f465-894a-4f52-a11b-459fc6840326"
/>


## Scope

- [x ] This PR is focused on one change (no unrelated edits).
2026-09-01 15:43:18 +03:00
趙子賢
ce26e216f1 fix: only attach handler to add-on's root logger (#5497)
<!--
Title (for the Pull Request title field at the top):
Use a short prefix so the change type is obvious. You do not need to
repeat it in the body below.

Examples:
- fix: — bugfix
- feat: — feature
- refactor: — internal change without user-facing feature
- docs: — documentation only
- chore: — tooling, CI, deps, build housekeeping
- test: — tests only
-->

## Linked issue (required)

Fixes #5487.

## Summary / motivation (required)

<!-- What this PR does and why. For larger changes, add enough context
for reviewers. -->

When deriving a child logger from an add-on logger, both of them got
`TimedRotatingFileHandler` attached to the loggers handler. This makes
log messages duplicated in log file and cause `PermissionError:
[WinError 32]` when rotating log files on Windows.

To solve this issue, the new `get_logger` only attaches
`TimedRotatingFileHandler` to the add-on logger (`addon.name`), not the
child one (`addon.name.child`). Besides, when a child logger is created
with `logging.getLogger("addon.name.child")`, the add-on logger
(`addon.name`) is created if not existed.
The add-on logger becomes the one and only logger that has
`TimedRotatingFileHandler` handler down the hierarchy from itself.

I also fixes a minor bug of `module` variable. In the previous
implementation, the `module` only contained part of the module name if
the name contained `addon.`. I use `removeprefix` to solve it.

## Steps to reproduce (required, use N/A if not applicable)

<!-- Steps to reproduce: how to trigger the bug in the broken state (the
"before").
 - Mainly for bugfixes;
    - For bugs: numbered steps before the fix. For non-bugs: write N/A.
 - use N/A for features, refactors, docs, chore, etc.
-->

`Anki2/addons21/test_logger/__init__.py`:
```python
from aqt.addons import AddonManager

logger = AddonManager.get_logger(__name__)
child_logger = logger.getChild("child")

child_logger.info("This info messages is duplicated in log file.")
```

When the log file is rotated on Windows, it raises `PermissionError:
[WinError 32]`. Please check #5487 for detailed bug report.

## How to test (required)

<!--- How to test: how you verified the change (checks, unit tests,
manual steps, edge cases — the "after" or general validation). --->

### Checklist (minimum)

- [x] I ran `./ninja check` or an equivalent relevant check locally.
- [x] I added or updated tests when the change is non-trivial or
behavior changed.

### Details

<!-- Commands, manual steps, edge cases, and what you observed -->

Just create a test add-on to check this behavior as the "Steps to
reproduce" above.

## Before / after behavior (optional)

<!-- For bugfixes: behavior before vs after. For other types: N/A or a
short note. -->

### Before
1. When deriving a child logger from an add-on logger, both of them got
`TimedRotatingFileHandler` attached to the loggers handler. The log
messages duplicated in log file and cause `PermissionError: [WinError
32]` when rotating log files on Windows.
2. If the logger name contains `addon.`, characters after `addon.` are
stripped.

### After
1. When an add-on logger is created no matter it is an add-on logger
(`addon.name`) or a child logger (`addon.name.child`), the add-on logger
is created with `TimedRotatingFileHandler` handler, and the child logger
is created as a normal logger.

## UI evidence (required for visual changes; otherwise N/A)

N/A

## Scope

- [x] This PR is focused on one change (no unrelated edits).
2026-09-01 10:51:54 +03:00
Fernando Lins
4aa9c08369 fix(ci): prevent silent skip of PR coverage-regression check on evicted baseline (#5480)
## Linked issue

Fixes #5418

## Summary / motivation

Every push to `main` creates a new `coverage-baseline-linux-<sha>` cache
entry. Without a pruning step, these entries accumulate until GitHub's
LRU eviction removes old ones. When the baseline a PR needs has been
evicted, `check-coverage-regression.py` silently skips the check instead
of failing, which could mask genuine coverage regressions.

Two changes together close the gap:

1. **`prune-coverage-cache.yml`**: a new workflow triggered by
`workflow_run` on every successful CI run on `main`. It keeps exactly
one `coverage-baseline-linux-*` cache (the one just created) and deletes
all older entries via the GitHub Actions API. With a single,
always-fresh entry, eviction becomes practically impossible.

2. **`check-coverage-regression.py`**: turns the silent "no baseline —
skipping" path into an explicit failure (`exit 2`). If somehow a
baseline is still absent, the check now surfaces the problem visibly
instead of passing silently.

## Steps to reproduce

1. Allow several pushes to `main` to accumulate
`coverage-baseline-linux-*` cache entries until GitHub evicts the most
recent one.
2. Open a PR: `check-coverage-regression.py` prints `no baseline —
skipping` and exits 0, even if coverage dropped.

## How to test

### Details

- After merging, verify via **Actions → Prune coverage baseline caches**
that the job runs after a `CI` completion on `main` and leaves exactly
one `coverage-baseline-linux-*` entry (`gh cache list -R ankitects/anki
--key coverage-baseline-linux-`).
- Confirm that a PR with a missing baseline now receives exit code 2
(visible failure) instead of exit code 0.

## Before / after behavior

**Before:** evicted baseline → `check-coverage-regression.py` skips
silently, coverage regressions go undetected.

**After:** only one baseline exists at a time (no eviction risk); if it
is somehow absent, the script exits with code 2 and the CI step fails
visibly.
2026-08-30 21:07:18 -03:00
Abdo
af3bd9d052 test: Improve test coverage of notes.py and tags.py (#5412)
## Linked issue

Closes #5388

## Summary

This adds tests for notes.py and tags.py, increasing test coverage above
the target 80%.


## How to test

Run `just test-py --coverage --html` and inspect the coverage report.
2026-08-28 17:51:15 +03:00
dependabot[bot]
c03a747a19 chore(deps): bump brace-expansion from 1.1.16 to 1.1.18 (#5479)
Bumps [brace-expansion](https://github.com/juliangruber/brace-expansion)
from 1.1.16 to 1.1.18.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="758fcd6d18"><code>758fcd6</code></a>
1.1.18</li>
<li><a
href="27fbeed22b"><code>27fbeed</code></a>
Merge commit from fork</li>
<li><a
href="5c57cc2519"><code>5c57cc2</code></a>
1.1.17</li>
<li><a
href="d757f1dde7"><code>d757f1d</code></a>
npm ignore <code>.claude</code></li>
<li><a
href="cb4b9e47cc"><code>cb4b9e4</code></a>
fix: backport GHSA-mh99-v99m-4gvg (<a
href="https://redirect.github.com/juliangruber/brace-expansion/issues/129">#129</a>)</li>
<li>See full diff in <a
href="https://github.com/juliangruber/brace-expansion/compare/v1.1.16...v1.1.18">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=brace-expansion&package-manager=npm_and_yarn&previous-version=1.1.16&new-version=1.1.18)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/ankitects/anki/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-27 14:30:55 -03:00
llama
38f3603d1f fix: avoid re-loading mathjax (#5416)
## Linked issue (required)

Closes: #5415

## Summary / motivation (required)

The template editor and previewer were still eagerly loading mathjax,
which lazy loading didnt account for, which this pr fixes

## Steps to reproduce (required, use N/A if not applicable)

See linked issue

## How to test (required)

Card content for cards with and without mathjax are visible in the
template editor and previewer again

### Checklist (minimum)

- [x] I ran `./ninja check` or an equivalent relevant check locally.
- [ ] I added or updated tests when the change is non-trivial or
behavior changed.

## Scope

- [x] This PR is focused on one change (no unrelated edits).
2026-08-27 19:17:41 +03:00
llama
7412627f90 fix: explicitly specify qmenu arrow width (#5475)
## Linked issue (required)

Closes: #5420 

## Summary / motivation (required)

I looked at 6.11.1's changelog and think its due to [QTBUG-144914's
fix](00675242b7).
Providing a size
([width](7df3244774/src/widgets/styles/qstylesheetstyle.cpp (L2333))
in this case) gets us back to expected behaviour

It's also possible to increase `QMenu::item`'s right padding instead to
account for the arrow, but then it isn't vertically aligned anymore. Not
sure if this is intended or a bug (not fixed by 6.11.2)

## Steps to reproduce (required, use N/A if not applicable)

See linked issue

## How to test (required)

See linked issue

### Checklist (minimum)

- [x] I ran `./ninja check` or an equivalent relevant check locally.
- [ ] I added or updated tests when the change is non-trivial or
behavior changed.

## Scope

- [x] This PR is focused on one change (no unrelated edits).
2026-08-27 19:11:54 +03:00
Luc Mcgrady
709689209b fix: constant font size for simulator graph (#5099)
<!--
Title (for the Pull Request title field at the top):
Use a short prefix so the change type is obvious. You do not need to
repeat it in the body below.

Examples:
- fix: — bugfix
- feat: — feature
- refactor: — internal change without user-facing feature
- docs: — documentation only
- chore: — tooling, CI, deps, build housekeeping
- test: — tests only
-->
## Linked issue (required)

<!-- Fixes #123 / Closes #123 / Refs #123 -->
closes #4168

## Summary / motivation (required)

This PR makes it so that the font size of the text in the simulator
graph is consistent no matter how large the graph is.


## How to test (required)

Resize the graph in the simulator modals and the font size should remain
consistent

### Checklist (minimum)

- [X] I ran `./ninja check` or an equivalent relevant check locally.
- [ ] I added or updated tests when the change is non-trivial or
behavior changed.

### Details

<!-- Commands, manual steps, edge cases, and what you observed -->

## Before / after behavior (optional)

<!-- For bugfixes: behavior before vs after. For other types: N/A or a
short note. -->

## Risk / compatibility / migration (optional)

<!-- Breaking changes, rollout notes, or N/A for small / low-risk PRs
-->

## UI evidence (required for visual changes; otherwise N/A)

<!-- Screenshot or short video -->

Before:


[Screencast_20260703_204727.webm](https://github.com/user-attachments/assets/fe918dfb-18f1-4102-bc15-2ea48ad56b97)

After:


[Screencast_20260703_204516.webm](https://github.com/user-attachments/assets/c8a8db4c-6d3c-4868-b1a4-a03d81b91036)


## Scope

- [X] This PR is focused on one change (no unrelated edits).

---------

Co-authored-by: Lee Doughty <32392044+leedoughty@users.noreply.github.com>
2026-08-27 16:28:14 +01:00
Luc Mcgrady
608fa0b19c Fix: Ignore cards reviewed before settable to future values (#5294)
closes #5284

> (self quote) As I see it. I can't think of a use for setting the
ignore_reviews_before value in the future. It also seems to result in
undefined behaviour so I think we should prevent it from being set like
that.

---------

Co-authored-by: Fernando Lins <1887601+fernandolins@users.noreply.github.com>
2026-08-27 16:25:03 +01:00
Abdo
657ff481a3 chore: Avoid setting default isLegacy in the editor (#5403)
https://github.com/ankitects/anki/pull/5330#discussion_r3851488284
2026-08-27 18:22:27 +03:00
Fernando Lins
a7f3ffb63a PoC: evaluate SonarCloud as a code quality and coverage tool (#4996)
## Linked issue

Closes #4995

## Summary / motivation

Bedges available:

[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=ankitects_anki&metric=coverage)](https://sonarcloud.io/summary/new_code?id=ankitects_anki)
[![Duplicated Lines
(%)](https://sonarcloud.io/api/project_badges/measure?project=ankitects_anki&metric=duplicated_lines_density)](https://sonarcloud.io/summary/new_code?id=ankitects_anki)
[![Code
Smells](https://sonarcloud.io/api/project_badges/measure?project=ankitects_anki&metric=code_smells)](https://sonarcloud.io/summary/new_code?id=ankitects_anki)

[![Bugs](https://sonarcloud.io/api/project_badges/measure?project=ankitects_anki&metric=bugs)](https://sonarcloud.io/summary/new_code?id=ankitects_anki)
[![Quality Gate
Status](https://sonarcloud.io/api/project_badges/measure?project=ankitects_anki&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=ankitects_anki)

[![Reliability](https://sonarcloud.io/api/project_badges/measure?project=ankitects_anki&metric=reliability_rating)](https://sonarcloud.io/summary/new_code?id=ankitects_anki)

[![Security](https://sonarcloud.io/api/project_badges/measure?project=ankitects_anki&metric=security_rating)](https://sonarcloud.io/summary/new_code?id=ankitects_anki)


**[SONAR
DASHBOARD](https://sonarcloud.io/project/overview?id=ankitects_anki)**

Integrates SonarCloud into the CI pipeline as a proof of concept to
evaluate whether
it surfaces actionable quality and security insights for this codebase.

Changes:
- Added `sonar-project.properties` configuring sources (`pylib`, `qt`,
`ts`, `rslib`)
  and coverage report paths
- Extended `tools/coverage/coverage-py` (and `.bat`) to emit
`coverage.xml` (Cobertura)
- Extended `tools/coverage/coverage-ts` (and `.bat`) to emit `lcov.info`
via the V8 provider
- Extended `tools/coverage/coverage-rust` (and `.bat`) to emit
`lcov.info` via
  `cargo-llvm-cov report`
- Added a `SonarCloud Scan` step to the `check-linux` CI job, running
after all
  checks pass and before the build cache is saved

## How to test

### Details

**1. Install sonar-scanner**
```bash
brew install sonar-scanner
```

**2. Generate and configure a token**

Go to [sonarcloud.io](https://sonarcloud.io/) → My Account → Security →
Generate Token
Copy the generated token and export it in your shell:
```
export SONAR_TOKEN=your_token_here
```

**3. Generate coverage reports**
```
just test --coverage
```
Expected output files:

 - out/coverage/python-pylib/coverage.xml
 - out/coverage/python-qt/coverage.xml
 - out/coverage/typescript/lcov.info
 - out/coverage/rust/lcov.info

**4. Run the scanner manually**
```
sonar-scanner
```
Results will appear in the SonarCloud dashboard

To test coverage generation locally:
```bash
just coverage
# verify files exist:
# out/coverage/python-pylib/coverage.xml
# out/coverage/python-qt/coverage.xml
# out/coverage/typescript/lcov.info
# out/coverage/rust/lcov.info
```
2026-08-26 15:48:45 -03:00
dependabot[bot]
2bf602d575 chore(deps): bump the npm-minor-patch group across 1 directory with 13 updates (#5309)
Bumps the npm-minor-patch group with 13 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
|
[@floating-ui/dom](https://github.com/floating-ui/floating-ui/tree/HEAD/packages/dom)
| `1.7.6` | `1.8.0` |
| [@playwright/test](https://github.com/microsoft/playwright) | `1.60.0`
| `1.62.1` |
|
[@sveltejs/kit](https://github.com/sveltejs/kit/tree/HEAD/packages/kit)
| `2.60.1` | `2.70.3` |
|
[@types/bootstrap](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/bootstrap)
| `5.2.10` | `5.2.11` |
| [caniuse-lite](https://github.com/browserslist/caniuse-lite) |
`1.0.30001799` | `1.0.30001809` |
| [dprint](https://github.com/dprint/dprint) | `0.54.0` | `0.56.0` |
| [esbuild](https://github.com/evanw/esbuild) | `0.28.1` | `0.28.2` |
| [prettier](https://github.com/prettier/prettier) | `3.8.3` | `3.9.6` |
| [sass](https://github.com/sass/dart-sass) | `1.99.0` | `1.102.0` |
| [svelte](https://github.com/sveltejs/svelte/tree/HEAD/packages/svelte)
| `5.55.7` | `5.56.9` |
| [svelte-check](https://github.com/sveltejs/language-tools) | `4.4.8` |
`4.7.6` |
| [svelte-preprocess](https://github.com/sveltejs/svelte-preprocess) |
`6.0.3` | `6.0.5` |
| [tsx](https://github.com/privatenumber/tsx) | `4.22.0` | `4.23.12` |


Updates `@floating-ui/dom` from 1.7.6 to 1.8.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/floating-ui/floating-ui/releases">@​floating-ui/dom's
releases</a>.</em></p>
<blockquote>
<h2><code>@​floating-ui/dom</code><a
href="https://github.com/1"><code>@​1</code></a>.8.0</h2>
<h3>Minor Changes</h3>
<ul>
<li>feat: add <code>'layoutViewport'</code> string option to
<code>rootBoundary</code>. Unlike the visual <code>'viewport'</code>
boundary, it remains stable while pinch-zooming or when a mobile
software keyboard is open, and unlike a manually passed
<code>Rect</code> of the documentElement's client size, it accounts for
space reserved by <code>scrollbar-gutter: stable</code>.</li>
</ul>
<h3>Patch Changes</h3>
<ul>
<li>fix: remove redundant passive options from scroll listeners</li>
<li>fix: support explicit <code>undefined</code> for optional properties
with <code>exactOptionalPropertyTypes</code></li>
<li>fix(autoUpdate): update immediately instead of waiting for the 1s
<code>layoutShift</code> refresh throttle when the reference moved
during an observer refresh</li>
<li>fix(getClippingRect): correct clipping-ancestor filtering for
fixed-position elements</li>
<li>perf(dom): reduce bundle size and skip redundant per-call work in
positioning utilities</li>
<li>fix(getViewportRect): account for <code>scrollbar-gutter: stable
both-edges</code> reserved space</li>
<li>fix(getViewportRect): don't overflow past a left-side document
scrollbar</li>
<li>fix(platform): don't throw in <code>getClientRects</code> when a
virtual element without a <code>getClientRects</code> method is used
with the <code>inline()</code> middleware</li>
<li>fix(autoUpdate): refresh layout shift observer on root resize</li>
<li>Update dependencies: <code>@floating-ui/core@1.8.0</code>,
<code>@floating-ui/utils@0.2.12</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/floating-ui/floating-ui/blob/master/packages/dom/CHANGELOG.md">@​floating-ui/dom's
changelog</a>.</em></p>
<blockquote>
<h2>1.8.0</h2>
<h3>Minor Changes</h3>
<ul>
<li>feat: add <code>'layoutViewport'</code> string option to
<code>rootBoundary</code>. Unlike the visual <code>'viewport'</code>
boundary, it remains stable while pinch-zooming or when a mobile
software keyboard is open, and unlike a manually passed
<code>Rect</code> of the documentElement's client size, it accounts for
space reserved by <code>scrollbar-gutter: stable</code>.</li>
</ul>
<h3>Patch Changes</h3>
<ul>
<li>fix: remove redundant passive options from scroll listeners</li>
<li>fix: support explicit <code>undefined</code> for optional properties
with <code>exactOptionalPropertyTypes</code></li>
<li>fix(autoUpdate): update immediately instead of waiting for the 1s
<code>layoutShift</code> refresh throttle when the reference moved
during an observer refresh</li>
<li>fix(getClippingRect): correct clipping-ancestor filtering for
fixed-position elements</li>
<li>perf(dom): reduce bundle size and skip redundant per-call work in
positioning utilities</li>
<li>fix(getViewportRect): account for <code>scrollbar-gutter: stable
both-edges</code> reserved space</li>
<li>fix(getViewportRect): don't overflow past a left-side document
scrollbar</li>
<li>fix(platform): don't throw in <code>getClientRects</code> when a
virtual element without a <code>getClientRects</code> method is used
with the <code>inline()</code> middleware</li>
<li>fix(autoUpdate): refresh layout shift observer on root resize</li>
<li>Update dependencies: <code>@floating-ui/core@1.8.0</code>,
<code>@floating-ui/utils@0.2.12</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="12d9473847"><code>12d9473</code></a>
chore: version packages (<a
href="https://github.com/floating-ui/floating-ui/tree/HEAD/packages/dom/issues/3480">#3480</a>)</li>
<li><a
href="ad0a73f1f1"><code>ad0a73f</code></a>
fix(getViewportRect): account for <code>scrollbar-gutter: stable
both-edges</code> reser...</li>
<li><a
href="9887c96799"><code>9887c96</code></a>
fix(types): restore bivariant parameters for optional callbacks</li>
<li><a
href="28bc9c11b0"><code>28bc9c1</code></a>
fix(autoUpdate): avoid duplicate update on window resize</li>
<li><a
href="5976f20ad9"><code>5976f20</code></a>
test(dom): run unit tests in vitest browser mode</li>
<li><a
href="705a03cb8f"><code>705a03c</code></a>
fix(platform): support virtual elements without getClientRects in
inline() (#...</li>
<li><a
href="3785f3b2b9"><code>3785f3b</code></a>
feat: add <code>layoutViewport</code> string option to
<code>rootBoundary</code> (<a
href="https://github.com/floating-ui/floating-ui/tree/HEAD/packages/dom/issues/3486">#3486</a>)</li>
<li><a
href="0d0e88ecf5"><code>0d0e88e</code></a>
fix(inline): no-op on empty client rects and detect RTL disjoined line
rects ...</li>
<li><a
href="73c1f762a2"><code>73c1f76</code></a>
fix(types): support <code>exactOptionalPropertyTypes</code> (<a
href="https://github.com/floating-ui/floating-ui/tree/HEAD/packages/dom/issues/3456">#3456</a>)</li>
<li><a
href="cd58dd258a"><code>cd58dd2</code></a>
fix(getClippingRect): correct clipping-ancestor filtering for
fixed-position ...</li>
<li>Additional commits viewable in <a
href="https://github.com/floating-ui/floating-ui/commits/@floating-ui/dom@1.8.0/packages/dom">compare
view</a></li>
</ul>
</details>
<br />

Updates `@playwright/test` from 1.60.0 to 1.62.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/microsoft/playwright/releases">@​playwright/test's
releases</a>.</em></p>
<blockquote>
<h2>v1.62.1</h2>
<h3>Bug Fixes</h3>
<ul>
<li><a
href="https://redirect.github.com/microsoft/playwright/issues/41989">#41989</a>
[Regression]: tsconfig &quot;extends&quot; bare specifier isn't resolved
via node_modules walk-up like tsc (fatal since 1.62)</li>
<li><a
href="https://redirect.github.com/microsoft/playwright/issues/41998">#41998</a>
[Regression]: directory-form tsconfig project references
(&quot;path&quot;: &quot;../pkg&quot;) fail to resolve (fatal since
1.62)</li>
<li><a
href="https://redirect.github.com/microsoft/playwright/issues/41985">#41985</a>
Accessibility snapshot drops button name when text is nested inside
spans with aria-hidden SVG</li>
<li><a
href="https://redirect.github.com/microsoft/playwright/issues/42000">#42000</a>
[Regression]: page.evaluate() arg of a branded primitive type (string
&amp; { brand }) no longer type-checks since 1.62</li>
<li><a
href="https://redirect.github.com/microsoft/playwright/issues/42013">#42013</a>
[BUG]Image-type actionable elements are not presented in the
snapshot.</li>
</ul>
<h2>v1.62.0</h2>
<h2>🧱 New component testing model</h2>
<p><a href="https://playwright.dev/docs/test-components">Component
testing</a> moves to a <strong>stories and galleries</strong> model.
A <strong>story</strong> wraps your component in one specific scenario —
hard-coded props, mock data, providers — and a <strong>gallery</strong>
page that you serve renders stories on demand.
The new <a
href="https://playwright.dev/docs/api/class-fixtures#fixtures-mount">fixtures.mount()</a>
fixture navigates to the gallery, mounts a story by id, and returns a <a
href="https://playwright.dev/docs/api/class-locator">Locator</a> scoped
to the story's root element:</p>
<pre lang="js"><code>test('click should expand', async ({ mount }) =&gt;
{
  const component = await mount('components/Expandable/Stateful');
  await component.getByRole('button').click();
  await expect(component.getByTestId('expanded')).toHaveValue('true');
});
</code></pre>
<p>Pass a story type as a template argument to type-check its props, and
use <code>update(props)</code> / <code>unmount()</code> on the returned
locator to re-render or tear down within a test.</p>
<h2>🛑 Cancel operations with AbortSignal</h2>
<p>Most operations and web-first assertions now accept a
<code>signal</code> option that takes an <a
href="https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal"><code>AbortSignal</code></a>,
letting you cancel long-running actions, navigations, waits, and
assertions:</p>
<pre lang="js"><code>const controller = new AbortController();
setTimeout(() =&gt; controller.abort(), 1000);
<p>await page.getByRole('button', { name: 'Submit' }).click({ signal:
controller.signal });
await expect(page.getByText('Done')).toBeVisible({ signal:
controller.signal });
</code></pre></p>
<p>Providing a signal does not disable the default timeout; pass
<code>timeout: 0</code> to disable it.</p>
<h2>🖼️ WebP screenshots</h2>
<p><a
href="https://playwright.dev/docs/api/class-pageassertions#page-assertions-to-have-screenshot-1">expect(page).toHaveScreenshot()</a>
and <a
href="https://playwright.dev/docs/api/class-locatorassertions#locator-assertions-to-have-screenshot-1">expect(locator).toHaveScreenshot()</a>
can now store snapshots in the WebP format — just give the snapshot a
<code>.webp</code> name:</p>
<pre lang="js"><code>// Visual comparisons store the golden snapshot as
lossless WebP.
await expect(page).toHaveScreenshot('homepage.webp');
<p>// Standalone screenshots can trade quality for size with lossy WebP.
await page.screenshot({ path: 'homepage.webp', quality: 50 });
&lt;/tr&gt;&lt;/table&gt;
</code></pre></p>
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="26a9e470a7"><code>26a9e47</code></a>
cherry-pick(<a
href="https://redirect.github.com/microsoft/playwright/issues/42043">#42043</a>):
docs: release notes for v1.62 Python, Java, and .NET (<a
href="https://redirect.github.com/microsoft/playwright/issues/4">#4</a>...</li>
<li><a
href="0a81d5d09b"><code>0a81d5d</code></a>
cherry-pick(<a
href="https://redirect.github.com/microsoft/playwright/issues/42040">#42040</a>):
docs(release-notes): mention the isolated headless clipb...</li>
<li><a
href="83768264e6"><code>8376826</code></a>
cherry-pick(<a
href="https://redirect.github.com/microsoft/playwright/issues/42034">#42034</a>):
fix(aria): keep icon-only clickable elements in ai snaps...</li>
<li><a
href="66c5cc92a6"><code>66c5cc9</code></a>
chore: mark v1.62.1 (<a
href="https://redirect.github.com/microsoft/playwright/issues/42020">#42020</a>)</li>
<li><a
href="9672bc3f2a"><code>9672bc3</code></a>
cherry-pick(<a
href="https://redirect.github.com/microsoft/playwright/issues/42009">#42009</a>):
fix(types): support branded primitives in evaluate argum...</li>
<li><a
href="4325804427"><code>4325804</code></a>
cherry-pick(<a
href="https://redirect.github.com/microsoft/playwright/issues/41988">#41988</a>):
fix(aria): preserve names from collapsed text contributors</li>
<li><a
href="9632f8ecbc"><code>9632f8e</code></a>
cherry-pick(<a
href="https://redirect.github.com/microsoft/playwright/issues/42005">#42005</a>):
fix(tsconfig): do not throw when
&quot;extends&quot;/&quot;references&quot; ...</li>
<li><a
href="e3950d9c14"><code>e3950d9</code></a>
chore: mark v1.62.0 (<a
href="https://redirect.github.com/microsoft/playwright/issues/41981">#41981</a>)</li>
<li><a
href="f07e0f720f"><code>f07e0f7</code></a>
cherry-pick(<a
href="https://redirect.github.com/microsoft/playwright/issues/41940">#41940</a>):
docs: release notes for v1.62 (<a
href="https://redirect.github.com/microsoft/playwright/issues/41967">#41967</a>)</li>
<li><a
href="05a306c78f"><code>05a306c</code></a>
cherry-pick(<a
href="https://redirect.github.com/microsoft/playwright/issues/41964">#41964</a>):
Revert &quot;feat(routeFromHar): add interceptAPIRequests opt...</li>
<li>Additional commits viewable in <a
href="https://github.com/microsoft/playwright/compare/v1.60.0...v1.62.1">compare
view</a></li>
</ul>
</details>
<br />

Updates `@sveltejs/kit` from 2.60.1 to 2.70.3
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/sveltejs/kit/releases">@​sveltejs/kit's
releases</a>.</em></p>
<blockquote>
<h2><code>@​sveltejs/kit</code><a
href="https://github.com/2"><code>@​2</code></a>.70.3</h2>
<h3>Patch Changes</h3>
<ul>
<li>fix: avoid eagerly reading <code>$app/state</code> dependencies
during module initialization (<a
href="b61018d052"><code>b61018d</code></a>)</li>
</ul>
<h2><code>@​sveltejs/kit</code><a
href="https://github.com/2"><code>@​2</code></a>.70.2</h2>
<h3>Patch Changes</h3>
<ul>
<li>fix: prevent quadratic backtracking in <code>Accept</code> header
content negotiation (<a
href="https://redirect.github.com/homebase-garage/igeclouds.github.io/pull/1">#1</a>)</li>
</ul>
<h2><code>@​sveltejs/kit</code><a
href="https://github.com/2"><code>@​2</code></a>.70.1</h2>
<h3>Patch Changes</h3>
<ul>
<li>docs: update links to hooks documentation (<a
href="https://redirect.github.com/sveltejs/kit/pull/16417">#16417</a>)</li>
</ul>
<h2><code>@​sveltejs/kit</code><a
href="https://github.com/2"><code>@​2</code></a>.70.0</h2>
<h3>Minor Changes</h3>
<ul>
<li>feat: move <code>defineEnvVars</code> to
<code>@sveltejs/kit/env</code> (<a
href="https://redirect.github.com/sveltejs/kit/pull/16378">#16378</a>)</li>
</ul>
<h3>Patch Changes</h3>
<ul>
<li>fix: enable CSRF protection in builds with a non-production
<code>NODE_ENV</code> value (<a
href="https://redirect.github.com/sveltejs/kit/pull/16313">#16313</a>)</li>
</ul>
<h2><code>@​sveltejs/kit</code><a
href="https://github.com/2"><code>@​2</code></a>.69.3</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p>fix: detect destructured <code>load</code> and <code>actions</code>
exports during type generation (<a
href="https://redirect.github.com/sveltejs/kit/pull/16329">#16329</a>)</p>
</li>
<li>
<p>fix: ensure CSS URL references are absolute when
<code>paths.relative</code> is <code>false</code> (<a
href="https://redirect.github.com/sveltejs/kit/pull/16315">#16315</a>)</p>
</li>
<li>
<p>fix: align MAX_COOKIE_SIZE with RFC 6265bis (<a
href="https://redirect.github.com/sveltejs/kit/pull/16322">#16322</a>)</p>
</li>
</ul>
<h2><code>@​sveltejs/kit</code><a
href="https://github.com/2"><code>@​2</code></a>.69.2</h2>
<h3>Patch Changes</h3>
<ul>
<li>fix: set <code>define</code> values on <code>globalThis</code> when
running Vitest (<a
href="https://redirect.github.com/sveltejs/kit/pull/16246">#16246</a>)</li>
</ul>
<h2><code>@​sveltejs/kit</code><a
href="https://github.com/2"><code>@​2</code></a>.69.1</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p>fix: prevent prototype pollution when deleting file inputs (<a
href="https://redirect.github.com/sveltejs/kit/pull/16218">#16218</a>)</p>
</li>
<li>
<p>fix: prevent unhandled promise rejection (<a
href="https://redirect.github.com/sveltejs/kit/pull/16219">#16219</a>)</p>
</li>
</ul>
<h2><code>@​sveltejs/kit</code><a
href="https://github.com/2"><code>@​2</code></a>.69.0</h2>
<h3>Minor Changes</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/sveltejs/kit/blob/version-3/packages/kit/CHANGELOG.md">@​sveltejs/kit's
changelog</a>.</em></p>
<blockquote>
<h2>2.70.3</h2>
<h3>Patch Changes</h3>
<ul>
<li>fix: avoid eagerly reading <code>$app/state</code> dependencies
during module initialization (<a
href="b61018d052"><code>b61018d</code></a>)</li>
</ul>
<h2>2.70.2</h2>
<h3>Patch Changes</h3>
<ul>
<li>fix: prevent quadratic backtracking in <code>Accept</code> header
content negotiation (<a
href="82712fc02c"><code>82712fc</code></a>)</li>
</ul>
<h2>2.70.1</h2>
<h3>Patch Changes</h3>
<ul>
<li>docs: update links to hooks documentation (<a
href="https://redirect.github.com/sveltejs/kit/pull/16417">#16417</a>)</li>
</ul>
<h2>2.70.0</h2>
<h3>Minor Changes</h3>
<ul>
<li>feat: move <code>defineEnvVars</code> to
<code>@sveltejs/kit/env</code> (<a
href="https://redirect.github.com/sveltejs/kit/pull/16378">#16378</a>)</li>
</ul>
<h3>Patch Changes</h3>
<ul>
<li>fix: enable CSRF protection in builds with a non-production
<code>NODE_ENV</code> value (<a
href="https://redirect.github.com/sveltejs/kit/pull/16313">#16313</a>)</li>
</ul>
<h2>2.69.3</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p>fix: detect destructured <code>load</code> and <code>actions</code>
exports during type generation (<a
href="https://redirect.github.com/sveltejs/kit/pull/16329">#16329</a>)</p>
</li>
<li>
<p>fix: ensure CSS URL references are absolute when
<code>paths.relative</code> is <code>false</code> (<a
href="https://redirect.github.com/sveltejs/kit/pull/16315">#16315</a>)</p>
</li>
<li>
<p>fix: align MAX_COOKIE_SIZE with RFC 6265bis (<a
href="https://redirect.github.com/sveltejs/kit/pull/16322">#16322</a>)</p>
</li>
</ul>
<h2>2.69.2</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p>fix: detect destructured <code>load</code> and <code>actions</code>
exports during type generation (<a
href="https://redirect.github.com/sveltejs/kit/pull/16329">#16329</a>)</p>
</li>
<li>
<p>fix: ensure CSS URL references are absolute when
<code>paths.relative</code> is <code>false</code> (<a
href="https://redirect.github.com/sveltejs/kit/pull/16315">#16315</a>)</p>
</li>
<li>
<p>fix: exclude deleted cookies from <code>cookies.getAll()</code> so it
stays consistent with <code>cookies.get()</code> (<a
href="https://redirect.github.com/sveltejs/kit/pull/16297">#16297</a>)</p>
</li>
<li>
<p>fix: reset failed <code>&lt;svelte:boundary&gt;</code> on client
navigation so a stale <code>+error.svelte</code> is torn down (<a
href="https://redirect.github.com/sveltejs/kit/pull/16296">#16296</a>)</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="39e8e1fbd4"><code>39e8e1f</code></a>
Version Packages (<a
href="https://github.com/sveltejs/kit/tree/HEAD/packages/kit/issues/16771">#16771</a>)</li>
<li><a
href="b61018d052"><code>b61018d</code></a>
fix: avoid eagerly reading <code>$app/state</code> dependencies during
module</li>
<li><a
href="1ad0d437e1"><code>1ad0d43</code></a>
chore: get Vercel split platform tests running (<a
href="https://github.com/sveltejs/kit/tree/HEAD/packages/kit/issues/16666">#16666</a>)</li>
<li><a
href="a297affcec"><code>a297aff</code></a>
Version Packages (<a
href="https://github.com/sveltejs/kit/tree/HEAD/packages/kit/issues/16571">#16571</a>)</li>
<li><a
href="82712fc02c"><code>82712fc</code></a>
Merge commit from fork</li>
<li><a
href="4c2355f9fd"><code>4c2355f</code></a>
Version Packages (<a
href="https://github.com/sveltejs/kit/tree/HEAD/packages/kit/issues/16418">#16418</a>)</li>
<li><a
href="c1665b9cd4"><code>c1665b9</code></a>
docs: update hooks page (<a
href="https://github.com/sveltejs/kit/tree/HEAD/packages/kit/issues/16417">#16417</a>)</li>
<li><a
href="4da36e64aa"><code>4da36e6</code></a>
Version Packages (<a
href="https://github.com/sveltejs/kit/tree/HEAD/packages/kit/issues/16343">#16343</a>)</li>
<li><a
href="78f28f16f8"><code>78f28f1</code></a>
feat: move <code>defineEnvVars</code> to <code>@sveltejs/kit/env</code>
(<a
href="https://github.com/sveltejs/kit/tree/HEAD/packages/kit/issues/16378">#16378</a>)</li>
<li><a
href="ffa0e3b06e"><code>ffa0e3b</code></a>
fix: don't disable CSRF protection in builds with a non-production
NODE_ENV (...</li>
<li>Additional commits viewable in <a
href="https://github.com/sveltejs/kit/commits/@sveltejs/kit@2.70.3/packages/kit">compare
view</a></li>
</ul>
</details>
<br />

Updates `@types/bootstrap` from 5.2.10 to 5.2.11
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/bootstrap">compare
view</a></li>
</ul>
</details>
<br />

Updates `caniuse-lite` from 1.0.30001799 to 1.0.30001809
<details>
<summary>Commits</summary>
<ul>
<li><a
href="369a550d87"><code>369a550</code></a>
Update caniuse-db 1.0.30001809</li>
<li><a
href="92bee19a0d"><code>92bee19</code></a>
Update caniuse-db 1.0.30001807</li>
<li><a
href="ee692af63d"><code>ee692af</code></a>
Allow to use latest caniuse-db</li>
<li><a
href="61386fc378"><code>61386fc</code></a>
Move back to the latest pnpm 11</li>
<li><a
href="3c48481a6e"><code>3c48481</code></a>
Update caniuse-db 1.0.30001806</li>
<li><a
href="cb047fc441"><code>cb047fc</code></a>
Update CI practice</li>
<li><a
href="e6acac858d"><code>e6acac8</code></a>
Temporary fix pnpm issue</li>
<li><a
href="325cd2fffa"><code>325cd2f</code></a>
Update dependencies</li>
<li><a
href="7fa21d2486"><code>7fa21d2</code></a>
Update caniuse-db 1.0.30001805</li>
<li><a
href="973b1119cb"><code>973b111</code></a>
Update caniuse-db 1.0.30001803</li>
<li>Additional commits viewable in <a
href="https://github.com/browserslist/caniuse-lite/compare/1.0.30001799...1.0.30001809">compare
view</a></li>
</ul>
</details>
<br />

Updates `dprint` from 0.54.0 to 0.56.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/dprint/dprint/releases">dprint's
releases</a>.</em></p>
<blockquote>
<h2>0.56.0</h2>
<h2>Changes</h2>
<ul>
<li>feat: prefer plugins on the npm registry (<a
href="https://redirect.github.com/dprint/dprint/issues/1215">#1215</a>)</li>
<li>feat: add path completion hints to CLI args (<a
href="https://redirect.github.com/dprint/dprint/issues/1217">#1217</a>)</li>
<li>feat: support formatting directory args (<a
href="https://redirect.github.com/dprint/dprint/issues/1196">#1196</a>)</li>
<li>feat: format explicit paths outside the working directory (<a
href="https://redirect.github.com/dprint/dprint/issues/1204">#1204</a>)</li>
<li>fix: keep a duplicate plugin's checksum when deduping plugin sources
(<a
href="https://redirect.github.com/dprint/dprint/issues/1211">#1211</a>)</li>
<li>fix: don't duplicate a plugin specified in both a config and its
extended config (<a
href="https://redirect.github.com/dprint/dprint/issues/1043">#1043</a>)
(<a
href="https://redirect.github.com/dprint/dprint/issues/1208">#1208</a>)</li>
<li>fix: apply implicit <code>node_modules</code> exclude and unanchored
patterns in rebased scopes (<a
href="https://redirect.github.com/dprint/dprint/issues/1210">#1210</a>)</li>
<li>fix: resolve literal file and directory args without directory
traversal (<a
href="https://redirect.github.com/dprint/dprint/issues/1207">#1207</a>)</li>
<li>fix: handle overflow panic in progress bars (<a
href="https://redirect.github.com/dprint/dprint/issues/1223">#1223</a>)</li>
</ul>
<h2>Install</h2>
<p>Run <code>dprint upgrade</code> or see <a
href="https://dprint.dev/install/">https://dprint.dev/install/</a></p>
<h2>Checksums</h2>
<table>
<thead>
<tr>
<th align="left">Artifact</th>
<th align="left">SHA-256 Checksum</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">dprint-x86_64-apple-darwin.zip</td>
<td
align="left">466dd67e15fca266f3749008ef5d23ea7a6c657ef8204257dbb8c23636fc9aca</td>
</tr>
<tr>
<td align="left">dprint-aarch64-apple-darwin.zip</td>
<td
align="left">79f5c80a3ddebb4717a89a25a79ec1c50947d4cef141df243757925cb47d32e1</td>
</tr>
<tr>
<td align="left">dprint-x86_64-pc-windows-msvc.zip</td>
<td
align="left">cbcb0c6fdbb72289e895c3857720eb769046d42069973f38655b6aee16c01c73</td>
</tr>
<tr>
<td align="left">dprint-x86_64-pc-windows-msvc-installer.exe</td>
<td
align="left">795de3adb60187bad989b330f8c8ec03c7a4a69509b1a8d47dc3025266e0158a</td>
</tr>
<tr>
<td align="left">dprint-aarch64-pc-windows-msvc.zip</td>
<td
align="left">c4356e5f9e1b6edce345bd2de902384e3a51e46b0b98775db7011f0996b6b230</td>
</tr>
<tr>
<td align="left">dprint-x86_64-unknown-linux-gnu.zip</td>
<td
align="left">49fe9d970cdbe0f742e18187c221a7a1dd985d35d4fa9bf4740f7a261c08d96c</td>
</tr>
<tr>
<td align="left">dprint-x86_64-unknown-linux-musl.zip</td>
<td
align="left">e958bfa3fec5256e72c2e4e028fa5674e43023eaff80d704ca96827af2eba240</td>
</tr>
<tr>
<td align="left">dprint-aarch64-unknown-linux-gnu.zip</td>
<td
align="left">a0dcf153cce38096f43bdde36fdd32cfd11c2227b6a04c2202fa83573fe517a6</td>
</tr>
<tr>
<td align="left">dprint-aarch64-unknown-linux-musl.zip</td>
<td
align="left">2e7d50e342d9d9d85b811635a04f3d49abdf7ec96d5b346cda932a7c4d42a7ab</td>
</tr>
<tr>
<td align="left">dprint-riscv64gc-unknown-linux-gnu.zip</td>
<td
align="left">c888b0e2f559341a62fa666b1609ec957e609bfc146b5ee0ab7898723ebbe231</td>
</tr>
<tr>
<td align="left">dprint-loongarch64-unknown-linux-gnu.zip</td>
<td
align="left">d86a6d3fc063992d152237885f51053748b60361228d851ca6aeaec65d84fb8e</td>
</tr>
<tr>
<td align="left">dprint-loongarch64-unknown-linux-musl.zip</td>
<td
align="left">d781022e4fbfec13688db1dd3d0fb9da964f6f5cf79b31ffcf5196d364f22cf0</td>
</tr>
<tr>
<td align="left">dprint-powerpc64le-unknown-linux-gnu.zip</td>
<td
align="left">935e117e23650a9874b444a7a6445ec7a8d593778e514f34ebea72dd88180599</td>
</tr>
<tr>
<td align="left">dprint-powerpc64le-unknown-linux-musl.zip</td>
<td
align="left">93d03c5f3b615955c9fce64a4867b8aa5959988646bfebd1bfd74b5618a1f2ed</td>
</tr>
<tr>
<td align="left">dprint-aarch64-linux-android.zip</td>
<td
align="left">718707dcd1637d312d2b430ae6313550bac7f21143d9344cd8fd80bf2ec5bf25</td>
</tr>
<tr>
<td align="left">dprint-x86_64-linux-android.zip</td>
<td
align="left">2b09284549bd96dfa2389d85237da15bacbae9076cdec0e849ec3fb50b804923</td>
</tr>
</tbody>
</table>
<h2>0.55.2</h2>
<h2>Changes</h2>
<ul>
<li>fix: build linux gnu binaries against glibc 2.17 (<a
href="https://redirect.github.com/dprint/dprint/pull/1203">dprint/dprint#1203</a>)</li>
</ul>
<h2>Install</h2>
<p>Run <code>dprint upgrade</code> or see <a
href="https://dprint.dev/install/">https://dprint.dev/install/</a></p>
<h2>Checksums</h2>
<p>|Artifact|SHA-256 Checksum|</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="dbabbe9bee"><code>dbabbe9</code></a>
0.56.0</li>
<li><a
href="8ca223e8aa"><code>8ca223e</code></a>
fix: handle overflow panic in progress bars (<a
href="https://redirect.github.com/dprint/dprint/issues/1223">#1223</a>)</li>
<li><a
href="55254cc0ea"><code>55254cc</code></a>
chore: fix ci (<a
href="https://redirect.github.com/dprint/dprint/issues/1221">#1221</a>)</li>
<li><a
href="96cc5d244e"><code>96cc5d2</code></a>
docs: add Panache plugin documentation (<a
href="https://redirect.github.com/dprint/dprint/issues/1214">#1214</a>)</li>
<li><a
href="eaecd3647d"><code>eaecd36</code></a>
feat: prefer plugins on the npm registry (<a
href="https://redirect.github.com/dprint/dprint/issues/1215">#1215</a>)</li>
<li><a
href="634704ef24"><code>634704e</code></a>
docs: add swift plugin (<a
href="https://redirect.github.com/dprint/dprint/issues/1191">#1191</a>)</li>
<li><a
href="aee638520a"><code>aee6385</code></a>
feat: add path completion hints to CLI args (<a
href="https://redirect.github.com/dprint/dprint/issues/1217">#1217</a>)</li>
<li><a
href="f4f50ff861"><code>f4f50ff</code></a>
feat(core): let a caller declare a separated value as already multi-line
(<a
href="https://redirect.github.com/dprint/dprint/issues/1220">#1220</a>)</li>
<li><a
href="f825df7353"><code>f825df7</code></a>
perf(core): keep value resolutions when a separated values group only
moves d...</li>
<li><a
href="1c54115179"><code>1c54115</code></a>
perf(core): push_str (<a
href="https://redirect.github.com/dprint/dprint/issues/1218">#1218</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/dprint/dprint/compare/0.54.0...0.56.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `esbuild` from 0.28.1 to 0.28.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/evanw/esbuild/releases">esbuild's
releases</a>.</em></p>
<blockquote>
<h2>v0.28.2</h2>
<ul>
<li>
<p>Fix tree shaking bug due to TypeScript import alias (<a
href="https://redirect.github.com/evanw/esbuild/issues/4507">#4507</a>)</p>
<p>This release fixes a bug that could cause esbuild to incorrectly
tree-shake imports that are used in a TypeScript type alias under
certain circumstances. Affected code uses a TypeScript-specific
<code>import</code> assignment and looks something like this:</p>
<pre lang="ts"><code>import Base from './dep.js';
import Alias = Base.SomeType;
</code></pre>
</li>
<li>
<p>Fix CSS minification bug involving <code>&amp;</code> (<a
href="https://redirect.github.com/evanw/esbuild/issues/4497">#4497</a>)</p>
<p>This release fixes a bug where esbuild's CSS minifier incorrectly
removed a <code>&amp;</code> when it was unsafe to do so. Here is an
example:</p>
<pre lang="css"><code>/* Original code */
.a .b {
  &amp; .b:not(&amp; .c) {
    color: red;
  }
}
<p>/* Old output (with --minify) */<br />
.a .b{.b:not(&amp; .c){color:red}}</p>
<p>/* New output (with --minify) */<br />
.a .b{&amp; .b:not(&amp; .c){color:red}}<br />
</code></pre></p>
<p>This should match <code>&lt;span class=&quot;a&quot;&gt;&lt;span
class=&quot;b&quot;&gt;&lt;span
class=&quot;b&quot;&gt;yes&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;</code>
but not <code>&lt;span class=&quot;a&quot;&gt;&lt;span
class=&quot;b&quot;&gt;no&lt;/span&gt;&lt;/span&gt;</code>. The old
output incorrectly matched both.</p>
</li>
<li>
<p>Avoid overwriting input files without <code>--allow-overwrite</code>
(<a
href="https://redirect.github.com/evanw/esbuild/issues/4484">#4484</a>)</p>
<p>For example: <code>esbuild input.js --outfile=input.js</code> tells
esbuild to overwrite <code>input.js</code> with the output of running
esbuild on it. This was supposed to already be prevented by default, but
it accidentally regressed in version 0.17.0 and apparently didn't have
any test coverage. The error message was being printed but the input
file was still being overwritten. Oops.</p>
<p>This release puts the original behavior back. With this release,
esbuild should now actually avoid overwriting input files unless
<code>--allow-overwrite</code> is explicitly present. This is done by
not writing out any files when a build error is encountered.</p>
</li>
<li>
<p>Fix incorrect code generated when using top-level await (<a
href="https://redirect.github.com/evanw/esbuild/issues/4498">#4498</a>)</p>
<p>Previously esbuild could generate code containing a syntax error in
complex scenarios involving top-level await used in a dependency cycle.
The problem was a missing <code>async</code> on one or more module
wrapper closures. With this release, esbuild now uses a fixed-point
iteration algorithm to correctly annotate all dependencies in the cycle
as needing an <code>async</code> module wrapper.</p>
</li>
<li>
<p>Fix a minification bug with lowered logical assignment operators (<a
href="https://redirect.github.com/evanw/esbuild/issues/4508">#4508</a>)</p>
<p>This release fixes a bug that could cause esbuild to generate
incorrect code for logical assignment operators when lowering them to an
older target environment. Specifically the lowering process requires
duplicating the left-hand side, but esbuild incorrectly failed to count
the duplicate as a new usage when the left-hand side is an identifier.
That then caused the minifier to believe that the left-hand side was
only used once and could attempt to incorrectly inline an initializer
into the first usage. This bug has now been fixed:</p>
<pre lang="js"><code>// Original code
function foo() {
  let x
  bar(x ||= {})
</code></pre>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/evanw/esbuild/blob/main/CHANGELOG.md">esbuild's
changelog</a>.</em></p>
<blockquote>
<h2>0.28.2</h2>
<ul>
<li>
<p>Fix tree shaking bug due to TypeScript import alias (<a
href="https://redirect.github.com/evanw/esbuild/issues/4507">#4507</a>)</p>
<p>This release fixes a bug that could cause esbuild to incorrectly
tree-shake imports that are used in a TypeScript type alias under
certain circumstances. Affected code uses a TypeScript-specific
<code>import</code> assignment and looks something like this:</p>
<pre lang="ts"><code>import Base from './dep.js';
import Alias = Base.SomeType;
</code></pre>
</li>
<li>
<p>Fix CSS minification bug involving <code>&amp;</code> (<a
href="https://redirect.github.com/evanw/esbuild/issues/4497">#4497</a>)</p>
<p>This release fixes a bug where esbuild's CSS minifier incorrectly
removed a <code>&amp;</code> when it was unsafe to do so. Here is an
example:</p>
<pre lang="css"><code>/* Original code */
.a .b {
  &amp; .b:not(&amp; .c) {
    color: red;
  }
}
<p>/* Old output (with --minify) */<br />
.a .b{.b:not(&amp; .c){color:red}}</p>
<p>/* New output (with --minify) */<br />
.a .b{&amp; .b:not(&amp; .c){color:red}}<br />
</code></pre></p>
<p>This should match <code>&lt;span class=&quot;a&quot;&gt;&lt;span
class=&quot;b&quot;&gt;&lt;span
class=&quot;b&quot;&gt;yes&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;</code>
but not <code>&lt;span class=&quot;a&quot;&gt;&lt;span
class=&quot;b&quot;&gt;no&lt;/span&gt;&lt;/span&gt;</code>. The old
output incorrectly matched both.</p>
</li>
<li>
<p>Avoid overwriting input files without <code>--allow-overwrite</code>
(<a
href="https://redirect.github.com/evanw/esbuild/issues/4484">#4484</a>)</p>
<p>For example: <code>esbuild input.js --outfile=input.js</code> tells
esbuild to overwrite <code>input.js</code> with the output of running
esbuild on it. This was supposed to already be prevented by default, but
it accidentally regressed in version 0.17.0 and apparently didn't have
any test coverage. The error message was being printed but the input
file was still being overwritten. Oops.</p>
<p>This release puts the original behavior back. With this release,
esbuild should now actually avoid overwriting input files unless
<code>--allow-overwrite</code> is explicitly present. This is done by
not writing out any files when a build error is encountered.</p>
</li>
<li>
<p>Fix incorrect code generated when using top-level await (<a
href="https://redirect.github.com/evanw/esbuild/issues/4498">#4498</a>)</p>
<p>Previously esbuild could generate code containing a syntax error in
complex scenarios involving top-level await used in a dependency cycle.
The problem was a missing <code>async</code> on one or more module
wrapper closures. With this release, esbuild now uses a fixed-point
iteration algorithm to correctly annotate all dependencies in the cycle
as needing an <code>async</code> module wrapper.</p>
</li>
<li>
<p>Fix a minification bug with lowered logical assignment operators (<a
href="https://redirect.github.com/evanw/esbuild/issues/4508">#4508</a>)</p>
<p>This release fixes a bug that could cause esbuild to generate
incorrect code for logical assignment operators when lowering them to an
older target environment. Specifically the lowering process requires
duplicating the left-hand side, but esbuild incorrectly failed to count
the duplicate as a new usage when the left-hand side is an identifier.
That then caused the minifier to believe that the left-hand side was
only used once and could attempt to incorrectly inline an initializer
into the first usage. This bug has now been fixed:</p>
<pre lang="js"><code>// Original code
function foo() {
  let x
</code></pre>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="609683d892"><code>609683d</code></a>
publish 0.28.2 to npm</li>
<li><a
href="11b1fe48df"><code>11b1fe4</code></a>
add to release notes</li>
<li><a
href="ab50d91559"><code>ab50d91</code></a>
css: fix green/blue channel swap in oklch gamut mapping (<a
href="https://redirect.github.com/evanw/esbuild/issues/4488">#4488</a>)</li>
<li><a
href="04627b6cf9"><code>04627b6</code></a>
fix <a
href="https://redirect.github.com/evanw/esbuild/issues/4498">#4498</a>:
<code>async</code> TLA checks need a worklist</li>
<li><a
href="5c15177a30"><code>5c15177</code></a>
disable <code>gopls</code> in the <code>go</code> folder</li>
<li><a
href="fc2ee9babc"><code>fc2ee9b</code></a>
css: adjust parser to allow <code>--foo: {...}</code></li>
<li><a
href="209db54371"><code>209db54</code></a>
release notes for css nesting bugfix</li>
<li><a
href="c625d31bf0"><code>c625d31</code></a>
fix <a
href="https://redirect.github.com/evanw/esbuild/issues/4497">#4497</a>:
preserve nested ampersands during minification (<a
href="https://redirect.github.com/evanw/esbuild/issues/4500">#4500</a>)</li>
<li><a
href="34474e2785"><code>34474e2</code></a>
better isolation of current part in js parser</li>
<li><a
href="07f6e8c506"><code>07f6e8c</code></a>
fix <a
href="https://redirect.github.com/evanw/esbuild/issues/4507">#4507</a>:
<code>import</code> assignment tree-shaking bug</li>
<li>Additional commits viewable in <a
href="https://github.com/evanw/esbuild/compare/v0.28.1...v0.28.2">compare
view</a></li>
</ul>
</details>
<br />

Updates `prettier` from 3.8.3 to 3.9.6
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/prettier/prettier/releases">prettier's
releases</a>.</em></p>
<blockquote>
<h2>3.9.6</h2>
<h2>What's Changed</h2>
<ul>
<li>Preserve quotes for methods named <code>new</code> (<a
href="https://redirect.github.com/prettier/prettier/pull/19621">prettier/prettier#19621</a>
by <a href="https://github.com/kovsu"><code>@​kovsu</code></a>)</li>
<li>Support <code>import defer</code> in <code>typescript</code> parser
(<a
href="https://redirect.github.com/prettier/prettier/pull/19624">prettier/prettier#19624</a>,
<a
href="https://redirect.github.com/prettier/prettier/pull/19675">prettier/prettier#19675</a>
by <a href="https://github.com/fisker"><code>@​fisker</code></a>)</li>
<li>Added a new official plugin <a
href="https://github.com/prettier/prettier/tree/3.9.6/packages/plugin-yuku"><code>@prettier/plugin-yuku</code>
🚀</a> (<a
href="https://redirect.github.com/prettier/prettier/pull/19628">prettier/prettier#19628</a>,
<a
href="https://redirect.github.com/prettier/prettier/pull/19629">prettier/prettier#19629</a>
by <a href="https://github.com/fisker"><code>@​fisker</code></a>)</li>
</ul>
<p>🔗 <a
href="https://github.com/prettier/prettier/blob/3.9.6/CHANGELOG.md#396">Changelog</a></p>
<h2>3.9.5</h2>
<p>🔗 <a
href="https://github.com/prettier/prettier/blob/3.9.5/CHANGELOG.md#395">Changelog</a></p>
<h2>3.9.4</h2>
<ul>
<li>Angular: Format <code>@content(name)</code> -&gt; <code>@content
(name)</code> to align with other block syntax (<a
href="https://redirect.github.com/prettier/prettier/pull/19499">#19499</a>
by <a href="https://github.com/fisker"><code>@​fisker</code></a>)</li>
</ul>
<p>🔗 <a
href="https://github.com/prettier/prettier/blob/3.9.4/CHANGELOG.md#394">Changelog</a></p>
<h2>3.9.3</h2>
<ul>
<li>Markdown: Fix unexpected removal of characters in liquid syntax (<a
href="https://redirect.github.com/prettier/prettier/pull/19489">prettier/prettier#19489</a>
by <a href="https://github.com/seiyab"><code>@​seiyab</code></a>)</li>
<li>TypeScript: Allow decorators to be used with declare on class fields
(<a
href="https://redirect.github.com/prettier/prettier/pull/19492">prettier/prettier#19492</a>
by <a
href="https://github.com/evoactivity"><code>@​evoactivity</code></a>)</li>
</ul>
<p>🔗 <a
href="https://github.com/prettier/prettier/blob/3.9.3/CHANGELOG.md#393">Changelog</a></p>
<h2>3.9.1</h2>
<ul>
<li>CLI: Fix ignored file has been cached incorrectly (<a
href="https://redirect.github.com/prettier/prettier/pull/19483">#19483</a>
by <a href="https://github.com/kovsu"><code>@​kovsu</code></a>)</li>
</ul>
<p>🔗 <a
href="https://github.com/prettier/prettier/blob/3.9.1/CHANGELOG.md#391">Changelog</a></p>
<h2>3.9.0</h2>
<p><a
href="https://github.com/prettier/prettier/compare/3.8.5...3.9.0">diff</a></p>
<p>🔗 <a href="https://prettier.io/blog/2026/06/27/3.9.0">Prettier 3.9:
Major parser upgrades and Formatting improvements</a></p>
<h2>3.8.5</h2>
<ul>
<li>Fix Flow variance annotation print (<a
href="https://redirect.github.com/prettier/prettier/pull/19022">#19022</a>
by <a
href="https://github.com/marcoww6"><code>@​marcoww6</code></a>)</li>
</ul>
<p>🔗 <a
href="https://github.com/prettier/prettier/blob/3.8.5/CHANGELOG.md#385">Changelog</a></p>
<h2>3.8.4</h2>
<ul>
<li>Markdown: Fix blank lines between list items and nested sub-lists
being removed in Markdown/MDX (<a
href="https://redirect.github.com/prettier/prettier/pull/17746">prettier/prettier#17746</a>
by <a
href="https://github.com/byplayer"><code>@​byplayer</code></a>)</li>
</ul>
<p>🔗 <a
href="https://github.com/prettier/prettier/blob/3.8.4/CHANGELOG.md#384">Changelog</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/prettier/prettier/blob/main/CHANGELOG.md">prettier's
changelog</a>.</em></p>
<blockquote>
<h1>3.9.6</h1>
<p><a
href="https://github.com/prettier/prettier/compare/3.9.5...3.9.6">diff</a></p>
<h4>TypeScript: Preserve quotes for methods named <code>new</code> (<a
href="https://redirect.github.com/prettier/prettier/pull/19621">#19621</a>
by <a href="https://github.com/kovsu"><code>@​kovsu</code></a>)</h4>
<!-- raw HTML omitted -->
<pre lang="tsx"><code>// Input
interface Container {
  &quot;new&quot;(id: string): number;
}
<p>// Prettier 3.9.5<br />
interface Container {<br />
new(id: string): number;<br />
}</p>
<p>// Prettier 3.9.6<br />
interface Container {<br />
&quot;new&quot;(id: string): number;<br />
}<br />
</code></pre></p>
<h4>TypeScript: Support <code>import defer</code> (<a
href="https://redirect.github.com/prettier/prettier/pull/19624">#19624</a>,
<a
href="https://redirect.github.com/prettier/prettier/pull/19675">#19675</a>
by <a href="https://github.com/fisker"><code>@​fisker</code></a>)</h4>
<!-- raw HTML omitted -->
<pre lang="tsx"><code>// Input
import defer * as foo from &quot;foo&quot;;
<p>// Prettier 3.9.5<br />
import * as foo from &quot;foo&quot;;</p>
<p>// Prettier 3.9.6<br />
import defer * as foo from &quot;foo&quot;;<br />
</code></pre></p>
<h4>JavaScript: Added a new official plugin
<code>@prettier/plugin-yuku</code> (<a
href="https://redirect.github.com/prettier/prettier/pull/19628">#19628</a>,
<a
href="https://redirect.github.com/prettier/prettier/pull/19629">#19629</a>
by <a href="https://github.com/fisker"><code>@​fisker</code></a>)</h4>
<p><code>@prettier/plugin-yuku</code> is powered by <a
href="https://yuku.fyi/">Yuku</a> (A high-performance
JavaScript/TypeScript compiler toolchain written in Zig).</p>
<p>This plugin includes two new parsers: <code>yuku</code> (JavaScript
syntax) and <code>yuku-ts</code> (TypeScript syntax).</p>
<p><strong>To use this plugin:</strong></p>
<ol>
<li>
<p>Install the plugin:</p>
<pre lang="bash"><code>yarn add --dev prettier @prettier/plugin-yuku
</code></pre>
</li>
</ol>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="8f0c95057c"><code>8f0c950</code></a>
Release 3.9.6</li>
<li><a
href="e9107647d0"><code>e910764</code></a>
Update changelog</li>
<li><a
href="ec3f1c7bd7"><code>ec3f1c7</code></a>
Update typescript-eslint to v8.65.0 (<a
href="https://redirect.github.com/prettier/prettier/issues/19675">#19675</a>)</li>
<li><a
href="73d2efc2c6"><code>73d2efc</code></a>
Update Yuku parser to v0.7.0 (<a
href="https://redirect.github.com/prettier/prettier/issues/19664">#19664</a>)</li>
<li><a
href="dd5e24eabe"><code>dd5e24e</code></a>
Preserve quotes for <code>TSMethodSignature</code> nodes named
<code>new</code> (<a
href="https://redirect.github.com/prettier/prettier/issues/19621">#19621</a>)</li>
<li><a
href="c03ab4e71c"><code>c03ab4e</code></a>
Update dependency eslint-plugin-unicorn to v72 (<a
href="https://redirect.github.com/prettier/prettier/issues/19633">#19633</a>)</li>
<li><a
href="b74dd53076"><code>b74dd53</code></a>
Update Yuku parser to v0.6.5 (<a
href="https://redirect.github.com/prettier/prettier/issues/19654">#19654</a>)</li>
<li><a
href="f1b594ea1d"><code>f1b594e</code></a>
Update dependency eslint-plugin-simple-import-sort to v14 (<a
href="https://redirect.github.com/prettier/prettier/issues/19655">#19655</a>)</li>
<li><a
href="0d9dfb6153"><code>0d9dfb6</code></a>
Update Yuku parser to v0.6.4 (<a
href="https://redirect.github.com/prettier/prettier/issues/19650">#19650</a>)</li>
<li><a
href="3bbb8159eb"><code>3bbb815</code></a>
Remove <code>typescript-only</code> directory (<a
href="https://redirect.github.com/prettier/prettier/issues/19636">#19636</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/prettier/prettier/compare/3.8.3...3.9.6">compare
view</a></li>
</ul>
</details>
<br />

Updates `sass` from 1.99.0 to 1.102.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/sass/dart-sass/releases">sass's
releases</a>.</em></p>
<blockquote>
<h2>Dart Sass 1.102.0</h2>
<p>To install Sass 1.102.0, download one of the packages below and <a
href="https://katiek2.github.io/path-doc/">add it to your PATH</a>, or
see <a href="https://sass-lang.com/install">the Sass website</a> for
full installation instructions.</p>
<h1>Changes</h1>
<ul>
<li>Use the 2.4 gamma transfer function for rec2020, as specified by the
latest draft of CSS Color 4.</li>
</ul>
<p>See the <a
href="https://github.com/sass/dart-sass/blob/master/CHANGELOG.md#11020">full
changelog</a> for changes in earlier releases.</p>
<h2>Dart Sass 1.101.7</h2>
<p>To install Sass 1.101.7, download one of the packages below and <a
href="https://katiek2.github.io/path-doc/">add it to your PATH</a>, or
see <a href="https://sass-lang.com/install">the Sass website</a> for
full installation instructions.</p>
<h1>Changes</h1>
<ul>
<li>No user-visible changes.</li>
</ul>
<p>See the <a
href="https://github.com/sass/dart-sass/blob/master/CHANGELOG.md#11017">full
changelog</a> for changes in earlier releases.</p>
<h2>Dart Sass 1.101.6</h2>
<p>To install Sass 1.101.6, download one of the packages below and <a
href="https://katiek2.github.io/path-doc/">add it to your PATH</a>, or
see <a href="https://sass-lang.com/install">the Sass website</a> for
full installation instructions.</p>
<h1>Changes</h1>
<ul>
<li>No user-visible changes.</li>
</ul>
<p>See the <a
href="https://github.com/sass/dart-sass/blob/master/CHANGELOG.md#11016">full
changelog</a> for changes in earlier releases.</p>
<h2>Dart Sass 1.101.5</h2>
<p>To install Sass 1.101.5, download one of the packages below and <a
href="https://katiek2.github.io/path-doc/">add it to your PATH</a>, or
see <a href="https://sass-lang.com/install">the Sass website</a> for
full installation instructions.</p>
<h1>Changes</h1>
<ul>
<li>No user-visible changes.</li>
</ul>
<p>See the <a
href="https://github.com/sass/dart-sass/blob/master/CHANGELOG.md#11015">full
changelog</a> for changes in earlier releases.</p>
<h2>Dart Sass 1.101.4</h2>
<p>To install Sass 1.101.4, download one of the packages below and <a
href="https://katiek2.github.io/path-doc/">add it to your PATH</a>, or
see <a href="https://sass-lang.com/install">the Sass website</a> for
full installation instructions.</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/sass/dart-sass/blob/main/CHANGELOG.md">sass's
changelog</a>.</em></p>
<blockquote>
<h2>1.102.0</h2>
<ul>
<li>Use the 2.4 gamma transfer function for rec2020, as specified by the
latest
draft of CSS Color 4.</li>
</ul>
<h2>1.101.7</h2>
<ul>
<li>No user-visible changes.</li>
</ul>
<h2>1.101.6</h2>
<ul>
<li>No user-visible changes.</li>
</ul>
<h2>1.101.5</h2>
<ul>
<li>No user-visible changes.</li>
</ul>
<h2>1.101.4</h2>
<ul>
<li>
<p>Avoid emitting <code>rgb()</code> or <code>rgba()</code> functions
with non-percent decimal
channels. Older browsers only support integer values or (potentially
decimal)
percentages for these functions, so in order to preserve
backwards-compatibility while retaining full precision for modern
browsers,
legacy colors that contain at least one non-integer channel will now use
percentages for their channels (for example, <code>rgb(0%, 100%,
50%)</code> rather than
<code>rgb(0, 255, 127.5)</code>).</p>
</li>
<li>
<p>Fix a bug where the values of plain-CSS <code>if()</code> expressions
were emitted using
their <code>meta.inspect()</code> format rather than their CSS
serialization format.</p>
</li>
</ul>
<h2>1.101.3</h2>
<ul>
<li>No user-visible changes.</li>
</ul>
<h2>1.101.2</h2>
<ul>
<li>Fix a bug where the deprecation warning for vendor-prefixed
<code>expression()</code>
functions would incorrectly indicate whether or not the function would
be
invalid Sass in Dart Sass 2.0.0.</li>
</ul>
<h2>1.101.1</h2>
<ul>
<li>Sass stack trace entries are now always either absolute URLs,
absolute paths,
or paths relative to the current working directory. Previously, if a
stylesheet was loaded using a relative URL (as from a load path), that
relative URL was listed even if it couldn't be resolved relative to the
current working directory. However, this created potential ambiguities,
so
this behavior has been removed.</li>
</ul>
<h3>Command Line Interface</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="45d1efe651"><code>45d1efe</code></a>
Use gamma 2.40 for display-referred rec2020 (<a
href="https://redirect.github.com/sass/dart-sass/issues/2729">#2729</a>)</li>
<li><a
href="96aa29183f"><code>96aa291</code></a>
Persist credentials on all repos we push to (<a
href="https://redirect.github.com/sass/dart-sass/issues/2812">#2812</a>)</li>
<li><a
href="5af0b897d5"><code>5af0b89</code></a>
Set the Git committer for release tasks (<a
href="https://redirect.github.com/sass/dart-sass/issues/2811">#2811</a>)</li>
<li><a
href="2cecbbb46b"><code>2cecbbb</code></a>
Fix more issues downstream from Zizmor (<a
href="https://redirect.github.com/sass/dart-sass/issues/2809">#2809</a>)</li>
<li><a
href="a16f014e9f"><code>a16f014</code></a>
Emit floating-point <code>rgb()</code> values as percentages (<a
href="https://redirect.github.com/sass/dart-sass/issues/2800">#2800</a>)</li>
<li><a
href="4ed2c883a6"><code>4ed2c88</code></a>
Serialize <code>if()</code> values as CSS, not as inspected values (<a
href="https://redirect.github.com/sass/dart-sass/issues/2808">#2808</a>)</li>
<li><a
href="9dfde3db6b"><code>9dfde3d</code></a>
Fix more post-Zizmor failures (<a
href="https://redirect.github.com/sass/dart-sass/issues/2806">#2806</a>)</li>
<li><a
href="e8c12331ea"><code>e8c1233</code></a>
Fix some GitHub actions issues introduced by the Zizmor refactor (<a
href="https://redirect.github.com/sass/dart-sass/issues/2798">#2798</a>)</li>
<li><a
href="d676118ace"><code>d676118</code></a>
Merge pull request <a
href="https://redirect.github.com/sass/dart-sass/issues/2797">#2797</a>
from sass/lints</li>
<li><a
href="548e6604c5"><code>548e660</code></a>
Prefer interpolation to compose strings</li>
<li>Additional commits viewable in <a
href="https://github.com/sass/dart-sass/compare/1.99.0...1.102.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `svelte` from 5.55.7 to 5.56.9
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/sveltejs/svelte/releases">svelte's
releases</a>.</em></p>
<blockquote>
<h2>svelte@5.56.9</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p>fix: skip controlled each fast path while another batch is pending
(<a
href="https://redirect.github.com/sveltejs/svelte/pull/18625">#18625</a>)</p>
</li>
<li>
<p>fix: better whitespace handling inside printer (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18638">#18638</a>)</p>
</li>
<li>
<p>fix: don't duplicate comments in attributes (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18636">#18636</a>)</p>
</li>
<li>
<p>fix: preserve CSS comments in the AST printer (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18637">#18637</a>)</p>
</li>
</ul>
<h2>svelte@5.56.8</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p>fix: call <code>onerror</code> and provide a working
<code>reset</code> when hydrating a failed boundary (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18556">#18556</a>)</p>
</li>
<li>
<p>fix: preserve select selection when spread attributes omit value (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18561">#18561</a>)</p>
</li>
</ul>
<h2>svelte@5.56.7</h2>
<h3>Patch Changes</h3>
<ul>
<li>chore: provide <code>indent</code> option for <code>print</code> (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18474">#18474</a>)</li>
</ul>
<h2>svelte@5.56.6</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p>perf: skip unnecessary blocker analysis when compiling components
without top-level await (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18548">#18548</a>)</p>
</li>
<li>
<p>fix: rerun derived that had an abort controller on reconnection (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18551">#18551</a>)</p>
</li>
</ul>
<h2>svelte@5.56.5</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p>chore: drop dead code that make TSGO fail (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18496">#18496</a>)</p>
</li>
<li>
<p>fix: don't (re)connect deriveds when read inside branch/root effects
(<a
href="https://redirect.github.com/sveltejs/svelte/pull/18527">#18527</a>)</p>
</li>
<li>
<p>fix: skip unnecessary derived effect in earlier batch (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18525">#18525</a>)</p>
</li>
<li>
<p>fix: avoid declaration tag warning in event handlers (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18500">#18500</a>)</p>
</li>
<li>
<p>fix: abort deriveds own AbortSignal when it disconnects (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18400">#18400</a>)</p>
</li>
<li>
<p>fix: ensure <code>$state.eager()</code> is correctly transormed for
SSR output (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18530">#18530</a>)</p>
</li>
<li>
<p>fix: correctly transform declaration tags during SSR (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18492">#18492</a>)</p>
</li>
<li>
<p>fix: transform computed keys in keyed <code>{#each}</code>
destructuring patterns (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18521">#18521</a>)</p>
</li>
<li>
<p>fix: chain preprocessor sourcemaps with an empty
<code>sources[0]</code> instead of dropping them (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18518">#18518</a>)</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/sveltejs/svelte/blob/main/packages/svelte/CHANGELOG.md">svelte's
changelog</a>.</em></p>
<blockquote>
<h2>5.56.9</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p>fix: skip controlled each fast path while another batch is pending
(<a
href="https://redirect.github.com/sveltejs/svelte/pull/18625">#18625</a>)</p>
</li>
<li>
<p>fix: better whitespace handling inside printer (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18638">#18638</a>)</p>
</li>
<li>
<p>fix: don't duplicate comments in attributes (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18636">#18636</a>)</p>
</li>
<li>
<p>fix: preserve CSS comments in the AST printer (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18637">#18637</a>)</p>
</li>
</ul>
<h2>5.56.8</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p>fix: call <code>onerror</code> and provide a working
<code>reset</code> when hydrating a failed boundary (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18556">#18556</a>)</p>
</li>
<li>
<p>fix: preserve select selection when spread attributes omit value (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18561">#18561</a>)</p>
</li>
</ul>
<h2>5.56.7</h2>
<h3>Patch Changes</h3>
<ul>
<li>chore: provide <code>indent</code> option for <code>print</code> (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18474">#18474</a>)</li>
</ul>
<h2>5.56.6</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p>perf: skip unnecessary blocker analysis when compiling components
without top-level await (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18548">#18548</a>)</p>
</li>
<li>
<p>fix: rerun derived that had an abort controller on reconnection (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18551">#18551</a>)</p>
</li>
</ul>
<h2>5.56.5</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p>chore: drop dead code that make TSGO fail (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18496">#18496</a>)</p>
</li>
<li>
<p>fix: don't (re)connect deriveds when read inside branch/root effects
(<a
href="https://redirect.github.com/sveltejs/svelte/pull/18527">#18527</a>)</p>
</li>
<li>
<p>fix: skip unnecessary derived effect in earlier batch (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18525">#18525</a>)</p>
</li>
<li>
<p>fix: avoid declaration tag warning in event handlers (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18500">#18500</a>)</p>
</li>
<li>
<p>fix: abort deriveds own AbortSignal when it disconnects (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18400">#18400</a>)</p>
</li>
<li>
<p>fix: ensure <code>$state.eager()</code> is correctly transormed for
SSR output (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18530">#18530</a>)</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="20b341f100"><code>20b341f</code></a>
Version Packages (<a
href="https://github.com/sveltejs/svelte/tree/HEAD/packages/svelte/issues/18628">#18628</a>)</li>
<li><a
href="ee6dff80ca"><code>ee6dff8</code></a>
fix: better whitespace handling inside printer (<a
href="https://github.com/sveltejs/svelte/tree/HEAD/packages/svelte/issues/18638">#18638</a>)</li>
<li><a
href="a1d5035d17"><code>a1d5035</code></a>
fix: preserve CSS comments in the AST printer (<a
href="https://github.com/sveltejs/svelte/tree/HEAD/packages/svelte/issues/18637">#18637</a>)</li>
<li><a
href="https://github.com/sveltejs/svelte/commit/3ed9db4ba78f61792b87...

_Description has been truncated_

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Fernando Lins <1887601+fernandolins@users.noreply.github.com>
2026-08-26 15:33:41 -03:00
Abdo
202a70f2fa CI: Remove RELEASE_TOKEN GHA secret (#5372)
## Linked issue

A follow-up to #5273

## Summary / motivation

#5273 replaced the prepare-release.yml workflow with a script that can
be run locally, which removed the need for the RELEASE_TOKEN personal
access token. This removes the last usage of the token for creating the
draft release, which was not necessary in any case as the default
`github.token` has the necessary permissions to create releases.

## Before / after behavior

- The release author will now be `github-actions[bot]` instead of
@andrewsanchez
- Some release events won't fire, but we don't rely on any at the
moment: https://github.com/orgs/community/discussions/16244
2026-08-26 21:19:01 +03:00
Abdo
8e1c571bd1 docs: Document the anki-audio package (#5411)
Some notes about updating the `anki-audio` package.
2026-08-26 21:18:43 +03:00
Abdo
c3188ebb67 docs: Fix broken links in dev docs (#5410)
## Linked issue

Closes #5335
Closes #5350

## Summary

Fix broken links in docs/ by replacing relative links (`./linux.md`)
with absolute ones (`/developers/linux`).


## How to test

Confirm all internal links in docs/ work
2026-08-26 21:17:56 +03:00
dependabot[bot]
a0efdd7827 chore(deps): bump starlette from 1.0.0 to 1.3.1 (#5194)
Bumps [starlette](https://github.com/Kludex/starlette) from 1.0.0 to
1.3.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/Kludex/starlette/releases">starlette's
releases</a>.</em></p>
<blockquote>
<h2>Version 1.3.1</h2>
<h2>What's Changed</h2>
<ul>
<li>Use <code>StarletteDeprecationWarning</code> instead of
<code>DeprecationWarning</code> by <a
href="https://github.com/Kludex"><code>@​Kludex</code></a> in <a
href="https://redirect.github.com/Kludex/starlette/pull/3119">Kludex/starlette#3119</a></li>
<li>Enforce <code>max_fields</code> and <code>max_part_size</code> in
<code>FormParser</code> by <a
href="https://github.com/Kludex"><code>@​Kludex</code></a> in <a
href="https://redirect.github.com/Kludex/starlette/pull/3329">Kludex/starlette#3329</a></li>
<li>Enforce <code>FormParser</code> limits in parser callbacks by <a
href="https://github.com/Kludex"><code>@​Kludex</code></a> in <a
href="https://redirect.github.com/Kludex/starlette/pull/3331">Kludex/starlette#3331</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/Kludex/starlette/compare/1.3.0...1.3.1">https://github.com/Kludex/starlette/compare/1.3.0...1.3.1</a></p>
<h2>Version 1.3.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Clamp oversized suffix ranges in <code>FileResponse</code> by <a
href="https://github.com/jiyujie2006"><code>@​jiyujie2006</code></a> in
<a
href="https://redirect.github.com/Kludex/starlette/pull/3307">Kludex/starlette#3307</a></li>
<li>Catch <code>OSError</code> alongside <code>MultiPartException</code>
when closing temp files by <a
href="https://github.com/N3XT3R1337"><code>@​N3XT3R1337</code></a> in <a
href="https://redirect.github.com/Kludex/starlette/pull/3191">Kludex/starlette#3191</a></li>
<li>Add <code>httpx2</code> to the <code>full</code> extra by <a
href="https://github.com/Kludex"><code>@​Kludex</code></a> in <a
href="https://redirect.github.com/Kludex/starlette/pull/3323">Kludex/starlette#3323</a></li>
<li>Adjust testclient typing and warnings by <a
href="https://github.com/waketzheng"><code>@​waketzheng</code></a> in <a
href="https://redirect.github.com/Kludex/starlette/pull/3322">Kludex/starlette#3322</a></li>
<li>Fix IndexError in URL.replace() on a URL with no authority by <a
href="https://github.com/LeSingh1"><code>@​LeSingh1</code></a> in <a
href="https://redirect.github.com/Kludex/starlette/pull/3317">Kludex/starlette#3317</a></li>
<li>Annotate URLPath protocol parameter with Literal by <a
href="https://github.com/Chang-LeHung"><code>@​Chang-LeHung</code></a>
in <a
href="https://redirect.github.com/Kludex/starlette/pull/3285">Kludex/starlette#3285</a></li>
<li>avoid collapsing exception groups from user code by <a
href="https://github.com/graingert"><code>@​graingert</code></a> in <a
href="https://redirect.github.com/Kludex/starlette/pull/2830">Kludex/starlette#2830</a></li>
<li>Use <code>removeprefix</code> to strip weak ETag indicator in
<code>is_not_modified</code> by <a
href="https://github.com/gnosyslambda"><code>@​gnosyslambda</code></a>
in <a
href="https://redirect.github.com/Kludex/starlette/pull/3193">Kludex/starlette#3193</a></li>
<li>Build <code>request.url</code> from structured components by <a
href="https://github.com/Kludex"><code>@​Kludex</code></a> in <a
href="https://redirect.github.com/Kludex/starlette/pull/3326">Kludex/starlette#3326</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/jiyujie2006"><code>@​jiyujie2006</code></a>
made their first contribution in <a
href="https://redirect.github.com/Kludex/starlette/pull/3307">Kludex/starlette#3307</a></li>
<li><a
href="https://github.com/N3XT3R1337"><code>@​N3XT3R1337</code></a> made
their first contribution in <a
href="https://redirect.github.com/Kludex/starlette/pull/3191">Kludex/starlette#3191</a></li>
<li><a
href="https://github.com/leestana01"><code>@​leestana01</code></a> made
their first contribution in <a
href="https://redirect.github.com/Kludex/starlette/pull/3319">Kludex/starlette#3319</a></li>
<li><a href="https://github.com/LeSingh1"><code>@​LeSingh1</code></a>
made their first contribution in <a
href="https://redirect.github.com/Kludex/starlette/pull/3317">Kludex/starlette#3317</a></li>
<li><a
href="https://github.com/EmmanuelNiyonshuti"><code>@​EmmanuelNiyonshuti</code></a>
made their first contribution in <a
href="https://redirect.github.com/Kludex/starlette/pull/3204">Kludex/starlette#3204</a></li>
<li><a
href="https://github.com/Chang-LeHung"><code>@​Chang-LeHung</code></a>
made their first contribution in <a
href="https://redirect.github.com/Kludex/starlette/pull/3285">Kludex/starlette#3285</a></li>
<li><a
href="https://github.com/gnosyslambda"><code>@​gnosyslambda</code></a>
made their first contribution in <a
href="https://redirect.github.com/Kludex/starlette/pull/3193">Kludex/starlette#3193</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/Kludex/starlette/compare/1.2.1...1.3.0">https://github.com/Kludex/starlette/compare/1.2.1...1.3.0</a></p>
<h2>Version 1.2.1</h2>
<h2>What's Changed</h2>
<ul>
<li>Use <code>httpx2</code> for type checking in the
<code>testclient</code> module by <a
href="https://github.com/leifwar"><code>@​leifwar</code></a> in <a
href="https://redirect.github.com/Kludex/starlette/pull/3304">Kludex/starlette#3304</a></li>
<li>Add assert error for requires() when request param is not Request
type by <a
href="https://github.com/KeeganOP"><code>@​KeeganOP</code></a> in <a
href="https://redirect.github.com/Kludex/starlette/pull/3298">Kludex/starlette#3298</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/leifwar"><code>@​leifwar</code></a> made
their first contribution in <a
href="https://redirect.github.com/Kludex/starlette/pull/3304">Kludex/starlette#3304</a></li>
<li><a href="https://github.com/diskeu"><code>@​diskeu</code></a> made
their first contribution in <a
href="https://redirect.github.com/Kludex/starlette/pull/3243">Kludex/starlette#3243</a></li>
<li><a href="https://github.com/KeeganOP"><code>@​KeeganOP</code></a>
made their first contribution in <a
href="https://redirect.github.com/Kludex/starlette/pull/3298">Kludex/starlette#3298</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/Kludex/starlette/compare/1.2.0...1.2.1">https://github.com/Kludex/starlette/compare/1.2.0...1.2.1</a></p>
<h2>Version 1.2.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Support httpx2 in the test client by <a
href="https://github.com/Kludex"><code>@​Kludex</code></a> in <a
href="https://redirect.github.com/Kludex/starlette/pull/3291">Kludex/starlette#3291</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/Kludex/starlette/compare/1.1.0...1.2.0">https://github.com/Kludex/starlette/compare/1.1.0...1.2.0</a></p>
<h2>Version 1.1.0</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/Kludex/starlette/blob/main/docs/release-notes.md">starlette's
changelog</a>.</em></p>
<blockquote>
<h2>1.3.1 (June 12, 2026)</h2>
<h4>Fixed</h4>
<ul>
<li>Enforce <code>max_fields</code> and <code>max_part_size</code> in
<code>FormParser</code> <a
href="https://redirect.github.com/encode/starlette/pull/3329">#3329</a>.</li>
<li>Enforce <code>FormParser</code> limits in parser callbacks <a
href="https://redirect.github.com/encode/starlette/pull/3331">#3331</a>.</li>
</ul>
<h2>1.3.0 (June 11, 2026)</h2>
<h4>Added</h4>
<ul>
<li>Add <code>httpx2</code> to the <code>full</code> extra <a
href="https://redirect.github.com/encode/starlette/pull/3323">#3323</a>.</li>
<li>Annotate the <code>URLPath</code> <code>protocol</code> parameter
with <code>Literal</code> <a
href="https://redirect.github.com/encode/starlette/pull/3285">#3285</a>.</li>
</ul>
<h4>Fixed</h4>
<ul>
<li>Build <code>request.url</code> from structured components <a
href="https://redirect.github.com/encode/starlette/pull/3326">#3326</a>.</li>
<li>Clamp oversized suffix ranges in <code>FileResponse</code> <a
href="https://redirect.github.com/encode/starlette/pull/3307">#3307</a>.</li>
<li>Catch <code>OSError</code> alongside <code>MultiPartException</code>
when closing temp files <a
href="https://redirect.github.com/encode/starlette/pull/3191">#3191</a>.</li>
<li>Avoid collapsing exception groups raised from user code <a
href="https://redirect.github.com/encode/starlette/pull/2830">#2830</a>.</li>
<li>Use <code>removeprefix</code> to strip the weak <code>ETag</code>
indicator in <code>is_not_modified</code> <a
href="https://redirect.github.com/encode/starlette/pull/3193">#3193</a>.</li>
<li>Fix <code>IndexError</code> in <code>URL.replace()</code> on a URL
with no authority <a
href="https://redirect.github.com/encode/starlette/pull/3317">#3317</a>.</li>
<li>Adjust <code>testclient</code> typing and warnings <a
href="https://redirect.github.com/encode/starlette/pull/3322">#3322</a>.</li>
</ul>
<h2>1.2.1 (May 31, 2026)</h2>
<h4>Fixed</h4>
<ul>
<li>Use <code>httpx2</code> for type checking in the
<code>testclient</code> module <a
href="https://redirect.github.com/encode/starlette/pull/3304">#3304</a>.</li>
<li>Add assert error for <code>requires()</code> when the request
parameter is not a <code>Request</code> type <a
href="https://redirect.github.com/encode/starlette/pull/3298">#3298</a>.</li>
</ul>
<h2>1.2.0 (May 28, 2026)</h2>
<h4>Added</h4>
<ul>
<li>Support httpx2 in the test client <a
href="https://redirect.github.com/encode/starlette/pull/3291">#3291</a>.</li>
</ul>
<h2>1.1.0 (May 23, 2026)</h2>
<h4>Added</h4>
<ul>
<li>Use <code>&quot;application/octet-stream&quot;</code> as the
<code>FileResponse</code> media type fallback <a
href="https://redirect.github.com/encode/starlette/pull/3283">#3283</a>.</li>
</ul>
<h4>Fixed</h4>
<ul>
<li>Only dispatch standard HTTP verbs in <code>HTTPEndpoint</code> <a
href="https://redirect.github.com/encode/starlette/pull/3286">#3286</a>.</li>
<li>Reject absolute paths in <code>StaticFiles.lookup_path</code> <a
href="https://redirect.github.com/encode/starlette/pull/3287">#3287</a>.</li>
</ul>
<h2>1.0.1 (May 21, 2026)</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="8ebffd0678"><code>8ebffd0</code></a>
Version 1.3.1 (<a
href="https://redirect.github.com/Kludex/starlette/issues/3330">#3330</a>)</li>
<li><a
href="25b8e179d8"><code>25b8e17</code></a>
Enforce <code>FormParser</code> limits in parser callbacks (<a
href="https://redirect.github.com/Kludex/starlette/issues/3331">#3331</a>)</li>
<li><a
href="dba1c4babc"><code>dba1c4b</code></a>
Enforce <code>max_fields</code> and <code>max_part_size</code> in
<code>FormParser</code> (<a
href="https://redirect.github.com/Kludex/starlette/issues/3329">#3329</a>)</li>
<li><a
href="45e51dcf99"><code>45e51dc</code></a>
Use <code>StarletteDeprecationWarning</code> instead of
<code>DeprecationWarning</code> (<a
href="https://redirect.github.com/Kludex/starlette/issues/3119">#3119</a>)</li>
<li><a
href="5f8610c386"><code>5f8610c</code></a>
Version 1.3.0 (<a
href="https://redirect.github.com/Kludex/starlette/issues/3327">#3327</a>)</li>
<li><a
href="167b5850e8"><code>167b585</code></a>
Build <code>request.url</code> from structured components (<a
href="https://redirect.github.com/Kludex/starlette/issues/3326">#3326</a>)</li>
<li><a
href="37309255b4"><code>3730925</code></a>
Use <code>removeprefix</code> to strip weak ETag indicator in
<code>is_not_modified</code> (<a
href="https://redirect.github.com/Kludex/starlette/issues/3193">#3193</a>)</li>
<li><a
href="e6f7ad1ab8"><code>e6f7ad1</code></a>
avoid collapsing exception groups from user code (<a
href="https://redirect.github.com/Kludex/starlette/issues/2830">#2830</a>)</li>
<li><a
href="115228fcdc"><code>115228f</code></a>
Annotate URLPath protocol parameter with Literal (<a
href="https://redirect.github.com/Kludex/starlette/issues/3285">#3285</a>)</li>
<li><a
href="113f193a34"><code>113f193</code></a>
docs: replace inline ASGI server list with link to canonical implemen…
(<a
href="https://redirect.github.com/Kludex/starlette/issues/3204">#3204</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/Kludex/starlette/compare/1.0.0...1.3.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=starlette&package-manager=uv&previous-version=1.0.0&new-version=1.3.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

You can trigger a rebase of this PR by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/ankitects/anki/network/alerts).

</details>

> **Note**
> Automatic rebases have been disabled on this pull request as it has
been open for over 30 days.

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Fernando Lins <1887601+fernandolins@users.noreply.github.com>
2026-08-26 14:10:54 -03:00
dependabot[bot]
4b8a194042 chore(deps): bump soupsieve from 2.7 to 2.8.4 (#5139)
Bumps [soupsieve](https://github.com/facelessuser/soupsieve) from 2.7 to
2.8.4.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/facelessuser/soupsieve/releases">soupsieve's
releases</a>.</em></p>
<blockquote>
<h2>2.8.4</h2>
<ul>
<li><strong>FIX</strong>: Fix another inefficient attribute pattern (<a
href="https://github.com/mauriceng98"><code>@​mauriceng98</code></a>).</li>
<li><strong>FIX</strong>: Limit total number of selectors processed in a
pattern to prevent massive selector requests (<a
href="https://github.com/mauriceng98"><code>@​mauriceng98</code></a>).</li>
</ul>
<h2>2.8.3</h2>
<ul>
<li><strong>FIX</strong>: Fix inefficient attribute pattern.</li>
</ul>
<h2>2.8.2</h2>
<ul>
<li><strong>FIX</strong>: Ensure custom selectors or namespace
dictionaries reject non-string keys (<a
href="https://github.com/mundanevision20"><code>@​mundanevision20</code></a>).</li>
<li><strong>FIX</strong>: Fix handling of <code>:in-range</code> and
<code>:out-of-range</code> with end of year weeks (<a
href="https://github.com/mundanevision20"><code>@​mundanevision20</code></a>).</li>
<li><strong>FIX</strong>: Fix a potential infinite loop in the pretty
printing debug function (<a
href="https://github.com/mundanevision20"><code>@​mundanevision20</code></a>).</li>
</ul>
<h2>2.8.1</h2>
<ul>
<li><strong>FIX</strong>: Changes in tests to accommodate latest Python
HTML parser changes.</li>
</ul>
<h2>2.8</h2>
<ul>
<li><strong>NEW</strong>: Drop support for Python 3.8.</li>
<li><strong>NEW</strong>: Add support for Python 3.14.</li>
<li><strong>NEW</strong>: Deploy with PyPI's &quot;Trusted
Publisher&quot;.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="28108ab805"><code>28108ab</code></a>
Limit excessive selectors</li>
<li><a
href="ef188721d6"><code>ef18872</code></a>
Fix test for Windows</li>
<li><a
href="eb43976187"><code>eb43976</code></a>
Merge commit from fork</li>
<li><a
href="3a661b23b2"><code>3a661b2</code></a>
Fix typo in pseudo-classes.md (<a
href="https://redirect.github.com/facelessuser/soupsieve/issues/294">#294</a>)</li>
<li><a
href="0cb533d83b"><code>0cb533d</code></a>
Update hatchling version requirement in pyproject.toml (<a
href="https://redirect.github.com/facelessuser/soupsieve/issues/290">#290</a>)</li>
<li><a
href="5aedc41804"><code>5aedc41</code></a>
Update doc theme</li>
<li><a
href="d7c47842a4"><code>d7c4784</code></a>
Attribute pattern fix (<a
href="https://redirect.github.com/facelessuser/soupsieve/issues/289">#289</a>)</li>
<li><a
href="09e106dc0f"><code>09e106d</code></a>
Fix grammar</li>
<li><a
href="09b27696ad"><code>09b2769</code></a>
Update docs</li>
<li><a
href="c6e80fcab9"><code>c6e80fc</code></a>
Various fixes by <a
href="https://github.com/mundanevision20"><code>@​mundanevision20</code></a>
(<a
href="https://redirect.github.com/facelessuser/soupsieve/issues/288">#288</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/facelessuser/soupsieve/compare/2.7...2.8.4">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=soupsieve&package-manager=uv&previous-version=2.7&new-version=2.8.4)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

You can trigger a rebase of this PR by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/ankitects/anki/network/alerts).

</details>

> **Note**
> Automatic rebases have been disabled on this pull request as it has
been open for over 30 days.

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Fernando Lins <1887601+fernandolins@users.noreply.github.com>
2026-08-26 14:09:08 -03:00
dependabot[bot]
2b06dd0371 chore(deps): bump urllib3 from 2.6.3 to 2.7.0 (#4989)
Bumps [urllib3](https://github.com/urllib3/urllib3) from 2.6.3 to 2.7.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/urllib3/urllib3/releases">urllib3's
releases</a>.</em></p>
<blockquote>
<h2>2.7.0</h2>
<h2>🚀 urllib3 is fundraising for HTTP/2 support</h2>
<p><a
href="https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support">urllib3
is raising ~$40,000 USD</a> to release HTTP/2 support and ensure
long-term sustainable maintenance of the project after a sharp decline
in financial support. If your company or organization uses Python and
would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and
thousands of other projects <a
href="https://opencollective.com/urllib3">please consider contributing
financially</a> to ensure HTTP/2 support is developed sustainably and
maintained for the long-haul.</p>
<p>Thank you for your support.</p>
<h2>Security</h2>
<p>Addressed high-severity security issues. Impact was limited to
specific use cases detailed in the accompanying advisories; overall user
exposure was estimated to be marginal.</p>
<ul>
<li>
<p>Decompression-bomb safeguards of the streaming API were bypassed:</p>
<ol>
<li>When <code>HTTPResponse.drain_conn()</code> was called after the
response had been read and decompressed partially. (Reported by <a
href="https://github.com/Cycloctane"><code>@​Cycloctane</code></a>)</li>
<li>During the second <code>HTTPResponse.read(amt=N)</code> or
<code>HTTPResponse.stream(amt=N)</code> call when the response was
decompressed using the official <a
href="https://pypi.org/project/brotli/">Brotli</a> library. (Reported by
<a
href="https://github.com/kimkou2024"><code>@​kimkou2024</code></a>)</li>
</ol>
<p>See GHSA-mf9v-mfxr-j63j for details.</p>
</li>
<li>
<p>HTTP pools created using
<code>ProxyManager.connection_from_url</code> did not strip sensitive
headers specified in <code>Retry.remove_headers_on_redirect</code> when
redirecting to a different host. (GHSA-qccp-gfcp-xxvc reported by <a
href="https://github.com/christos-spearbit"><code>@​christos-spearbit</code></a>)</p>
</li>
</ul>
<h2>Deprecations and Removals</h2>
<ul>
<li>Used <code>FutureWarning</code> instead of
<code>DeprecationWarning</code> for better visibility of existing
deprecation notices. Rescheduled the removal of deprecated features to
version 3.0. (<a
href="https://redirect.github.com/urllib3/urllib3/issues/3763">urllib3/urllib3#3763</a>)</li>
<li>Removed support for end-of-life Python 3.9. (<a
href="https://redirect.github.com/urllib3/urllib3/issues/3720">urllib3/urllib3#3720</a>)</li>
<li>Removed support for end-of-life PyPy3.10. (<a
href="https://redirect.github.com/urllib3/urllib3/issues/4979">urllib3/urllib3#4979</a>)</li>
<li>Bumped the minimum supported pyOpenSSL version to 19.0.0. (<a
href="https://redirect.github.com/urllib3/urllib3/issues/3777">urllib3/urllib3#3777</a>)</li>
</ul>
<h2>Bugfixes</h2>
<ul>
<li>Fixed a bug where <code>HTTPResponse.read(amt=None)</code> was
ignoring decompressed data buffered from previous partial reads. (<a
href="https://redirect.github.com/urllib3/urllib3/issues/3636">urllib3/urllib3#3636</a>)</li>
<li>Fixed a bug where <code>HTTPResponse.read()</code> could cache only
part of the response after a partial read when
<code>cache_content=True</code>. (<a
href="https://redirect.github.com/urllib3/urllib3/issues/4967">urllib3/urllib3#4967</a>)</li>
<li>Fixed <code>HTTPResponse.stream()</code> and
<code>HTTPResponse.read_chunked()</code> to handle <code>amt=0</code>.
(<a
href="https://redirect.github.com/urllib3/urllib3/issues/3793">urllib3/urllib3#3793</a>)</li>
<li>Updated <code>_TYPE_BODY</code> type alias to include missing
<code>Iterable[str]</code>, matching the documented and runtime behavior
of chunked request bodies. (<a
href="https://redirect.github.com/urllib3/urllib3/issues/3798">urllib3/urllib3#3798</a>)</li>
<li>Fixed <code>LocationParseError</code> when paths resembling
schemeless URIs were passed to
<code>HTTPConnectionPool.urlopen()</code>. (<a
href="https://redirect.github.com/urllib3/urllib3/issues/3352">urllib3/urllib3#3352</a>)</li>
<li>Fixed <code>BaseHTTPResponse.readinto()</code> type annotation to
accept <code>memoryview</code> in addition to <code>bytearray</code>,
matching the <code>io.RawIOBase.readinto</code> contract and enabling
use with <code>io.BufferedReader</code> without type errors. (<a
href="https://redirect.github.com/urllib3/urllib3/issues/3764">urllib3/urllib3#3764</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/urllib3/urllib3/blob/main/CHANGES.rst">urllib3's
changelog</a>.</em></p>
<blockquote>
<h1>2.7.0 (2026-05-07)</h1>
<h2>Security</h2>
<p>Addressed high-severity security issues.
Impact was limited to specific use cases detailed in the accompanying
advisories; overall user exposure was estimated to be marginal.</p>
<ul>
<li>
<p>Decompression-bomb safeguards of the streaming API were bypassed:</p>
<ol>
<li>When <code>HTTPResponse.drain_conn()</code> was called after the
response had been
read and decompressed partially.</li>
<li>During the second <code>HTTPResponse.read(amt=N)</code> or
<code>HTTPResponse.stream(amt=N)</code> call when the response was
decompressed
using the official <code>Brotli
&lt;https://pypi.org/project/brotli/&gt;</code>__ library.</li>
</ol>
<p>See <code>GHSA-mf9v-mfxr-j63j
&lt;https://github.com/urllib3/urllib3/security/advisories/GHSA-mf9v-mfxr-j63j&gt;</code>__
for details.</p>
</li>
<li>
<p>HTTP pools created using
<code>ProxyManager.connection_from_url</code> did not strip
sensitive headers specified in
<code>Retry.remove_headers_on_redirect</code> when
redirecting to a different host.
(<code>GHSA-qccp-gfcp-xxvc
&lt;https://github.com/urllib3/urllib3/security/advisories/GHSA-qccp-gfcp-xxvc&gt;</code>__)</p>
</li>
</ul>
<h2>Deprecations and Removals</h2>
<ul>
<li>Used <code>FutureWarning</code> instead of
<code>DeprecationWarning</code> for better
visibility of existing deprecation notices. Rescheduled the removal of
deprecated features to version 3.0.
(<code>[#3763](https://github.com/urllib3/urllib3/issues/3763)
&lt;https://github.com/urllib3/urllib3/issues/3763&gt;</code>__)</li>
<li>Removed support for end-of-life Python 3.9.
(<code>[#3720](https://github.com/urllib3/urllib3/issues/3720)
&lt;https://github.com/urllib3/urllib3/issues/3720&gt;</code>__)</li>
<li>Removed support for end-of-life PyPy3.10.
(<code>[#4979](https://github.com/urllib3/urllib3/issues/4979)
&lt;https://github.com/urllib3/urllib3/issues/4979&gt;</code>__)</li>
<li>Bumped the minimum supported pyOpenSSL version to 19.0.0.
(<code>[#3777](https://github.com/urllib3/urllib3/issues/3777)
&lt;https://github.com/urllib3/urllib3/issues/3777&gt;</code>__)</li>
</ul>
<h2>Bugfixes</h2>
<ul>
<li>Fixed a bug where <code>HTTPResponse.read(amt=None)</code> was
ignoring decompressed
data buffered from previous partial reads.
(<code>[#3636](https://github.com/urllib3/urllib3/issues/3636)
&lt;https://github.com/urllib3/urllib3/issues/3636&gt;</code>__)</li>
<li>Fixed a bug where <code>HTTPResponse.read()</code> could cache only
part of the
response after a partial read when <code>cache_content=True</code>.</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="9a950b92d9"><code>9a950b9</code></a>
Release 2.7.0</li>
<li><a
href="5ec0de499b"><code>5ec0de4</code></a>
Merge commit from fork</li>
<li><a
href="2bdcc44d1e"><code>2bdcc44</code></a>
Merge commit from fork</li>
<li><a
href="f45b0df09d"><code>f45b0df</code></a>
Fix a misleading example for <code>ProxyManager</code> (<a
href="https://redirect.github.com/urllib3/urllib3/issues/4970">#4970</a>)</li>
<li><a
href="577193ca02"><code>577193c</code></a>
Switch to nightly PyPy3.11 in CI for now (<a
href="https://redirect.github.com/urllib3/urllib3/issues/4984">#4984</a>)</li>
<li><a
href="e90af45bb0"><code>e90af45</code></a>
Avoid infinite loop in <code>HTTPResponse.read_chunked</code> when
<code>amt=0</code> (<a
href="https://redirect.github.com/urllib3/urllib3/issues/4974">#4974</a>)</li>
<li><a
href="67ed74fdae"><code>67ed74f</code></a>
Bump dev dependencies (<a
href="https://redirect.github.com/urllib3/urllib3/issues/4972">#4972</a>)</li>
<li><a
href="3abd481097"><code>3abd481</code></a>
Upgrade mypy to version 1.20.2 (<a
href="https://redirect.github.com/urllib3/urllib3/issues/4978">#4978</a>)</li>
<li><a
href="2b8725dfca"><code>2b8725d</code></a>
Drop support for EOL PyPy3.10 (<a
href="https://redirect.github.com/urllib3/urllib3/issues/4979">#4979</a>)</li>
<li><a
href="2944b2a0a6"><code>2944b2a</code></a>
Upgrade <code>setup-chrome</code> and <code>setup-firefox</code> to fix
warnings (<a
href="https://redirect.github.com/urllib3/urllib3/issues/4973">#4973</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/urllib3/urllib3/compare/2.6.3...2.7.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=urllib3&package-manager=uv&previous-version=2.6.3&new-version=2.7.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

You can trigger a rebase of this PR by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/ankitects/anki/network/alerts).

</details>

> **Note**
> Automatic rebases have been disabled on this pull request as it has
been open for over 30 days.

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Fernando Lins <1887601+fernandolins@users.noreply.github.com>
2026-08-26 12:27:17 -03:00
dependabot[bot]
381d6b98d3 chore(deps): bump postcss from 8.5.10 to 8.5.24 (#5271)
Bumps [postcss](https://github.com/postcss/postcss) from 8.5.10 to
8.5.24.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/postcss/postcss/releases">postcss's
releases</a>.</em></p>
<blockquote>
<h2>8.5.24</h2>
<ul>
<li>Preserve the BOM after the processing (by <a
href="https://github.com/hdimer"><code>@​hdimer</code></a>).</li>
</ul>
<h2>8.5.23</h2>
<ul>
<li>Do not load source map without <code>opts.from</code> for security
reasons.</li>
</ul>
<h2>8.5.22</h2>
<ul>
<li>Fixed custom property losing semicolon before a comment (by <a
href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li>
</ul>
<h2>8.5.21</h2>
<ul>
<li>Fixed childless at-rule losing semicolon before comment (by <a
href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li>
<li>Fixed docs (by <a
href="https://github.com/isker"><code>@​isker</code></a>).</li>
</ul>
<h2>8.5.20</h2>
<ul>
<li>Fixed missing space if <code>AtRule#params</code> is set after (by
<a
href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li>
<li>Fixed mixing AST error on warnings (by <a
href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li>
</ul>
<h2>8.5.19</h2>
<ul>
<li>Fixed cleaning <code>before</code> for new nodes inserted to
<code>Root</code> (by <a
href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li>
</ul>
<h2>8.5.18</h2>
<ul>
<li>Restricted loading previous source maps file to the
<code>opts.from</code> folder for security reasons (use <code>unsafeMap:
true</code> to disable the check).</li>
</ul>
<h2>8.5.17</h2>
<ul>
<li>Fixed <code>Maximum call stack size exceeded</code> error.</li>
<li>Fixed Prototype hijacking for <code>postcss.fromJSON()</code>.</li>
<li>Fixed <code>Input#origin()</code> for unmapped end position (by <a
href="https://github.com/chatman-media"><code>@​chatman-media</code></a>).</li>
</ul>
<h2>8.5.16</h2>
<ul>
<li>Fixed <code>Input#origin()</code> position (by <a
href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li>
<li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a
href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li>
<li>Fixed putting parent-less node in <code>nodes</code> of new node (by
<a
href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li>
<li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by
<a
href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li>
<li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a
href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li>
</ul>
<h2>8.5.15</h2>
<ul>
<li>Fixed declaration parsing performance (by <a
href="https://github.com/homanp"><code>@​homanp</code></a>).</li>
</ul>
<h2>8.5.14</h2>
<ul>
<li>Fixed custom syntax regression (by <a
href="https://github.com/43081j"><code>@​43081j</code></a>).</li>
</ul>
<h2>8.5.13</h2>
<ul>
<li>Fixed <code>postcss-scss</code> commend regression.</li>
</ul>
<h2>8.5.12</h2>
<ul>
<li>Fixed reading any file via user-generated CSS.</li>
<li>Added <code>opts.unsafeMap</code> to disable checks.</li>
</ul>
<h2>8.5.11</h2>
<ul>
<li>Fixed nested brackets parsing performance (by <a
href="https://github.com/offset"><code>@​offset</code></a>).</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/postcss/postcss/blob/main/CHANGELOG.md">postcss's
changelog</a>.</em></p>
<blockquote>
<h2>8.5.24</h2>
<ul>
<li>Preserve the BOM after the processing (by <a
href="https://github.com/hdimer"><code>@​hdimer</code></a>).</li>
</ul>
<h2>8.5.23</h2>
<ul>
<li>Do not load source map without <code>opts.from</code> for security
reasons.</li>
</ul>
<h2>8.5.22</h2>
<ul>
<li>Fixed custom property losing semicolon before a comment (by <a
href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li>
</ul>
<h2>8.5.21</h2>
<ul>
<li>Fixed childless at-rule losing semicolon before comment (by <a
href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li>
<li>Fixed docs (by <a
href="https://github.com/isker"><code>@​isker</code></a>).</li>
</ul>
<h2>8.5.20</h2>
<ul>
<li>Fixed missing space if <code>AtRule#params</code> is set after (by
<a
href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li>
<li>Fixed mixing AST error on warnings (by <a
href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li>
</ul>
<h2>8.5.19</h2>
<ul>
<li>Fixed cleaning <code>before</code> for new nodes inserted to
<code>Root</code> (by <a
href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li>
</ul>
<h2>8.5.18</h2>
<ul>
<li>Restricted loading previous source maps file to the
<code>opts.from</code> folder for security reasons (use <code>unsafeMap:
true</code> to disable the check).</li>
</ul>
<h2>8.5.17</h2>
<ul>
<li>Fixed <code>Maximum call stack size exceeded</code> error.</li>
<li>Fixed Prototype hijacking for <code>postcss.fromJSON()</code>.</li>
<li>Fixed <code>Input#origin()</code> for unmapped end position (by <a
href="https://github.com/chatman-media"><code>@​chatman-media</code></a>).</li>
</ul>
<h2>8.5.16</h2>
<ul>
<li>Fixed <code>Input#origin()</code> position (by <a
href="https://github.com/mizdra"><code>@​mizdra</code></a>).</li>
<li>Fixed <code>raws</code> after rehydrating a JSON AST (by <a
href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li>
<li>Fixed putting parent-less node in <code>nodes</code> of new node (by
<a
href="https://github.com/MahinAnowar"><code>@​MahinAnowar</code></a>).</li>
<li>Fixed computing <code>offset</code> in <code>positionBy()</code> (by
<a
href="https://github.com/greymoth-jp"><code>@​greymoth-jp</code></a>).</li>
<li>Fixed <code>rangeBy()</code> on <code>index: 0</code> (by <a
href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a>).</li>
</ul>
<h2>8.5.15</h2>
<ul>
<li>Fixed declaration parsing performance (by <a
href="https://github.com/homanp"><code>@​homanp</code></a>).</li>
</ul>
<h2>8.5.14</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="0ebe8ad591"><code>0ebe8ad</code></a>
Release 8.5.24 version</li>
<li><a
href="73218c6424"><code>73218c6</code></a>
Update dependencies</li>
<li><a
href="9a114f62b0"><code>9a114f6</code></a>
Preserve the BOM when stringifying (<a
href="https://redirect.github.com/postcss/postcss/issues/2119">#2119</a>)</li>
<li><a
href="9069261912"><code>9069261</code></a>
Fix types check</li>
<li><a
href="eb9e1fe793"><code>eb9e1fe</code></a>
Release 8.5.23 version</li>
<li><a
href="9d19c78ac9"><code>9d19c78</code></a>
Update dependencies</li>
<li><a
href="7beca139e7"><code>7beca13</code></a>
Does no load source map file without opts.from</li>
<li><a
href="decea51421"><code>decea51</code></a>
Typo</li>
<li><a
href="c18e30d126"><code>c18e30d</code></a>
Update EM banner</li>
<li><a
href="98a39ad73d"><code>98a39ad</code></a>
Update EM banner</li>
<li>Additional commits viewable in <a
href="https://github.com/postcss/postcss/compare/8.5.10...8.5.24">compare
view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by <a
href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new
releaser for postcss since your current version.</p>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=postcss&package-manager=npm_and_yarn&previous-version=8.5.10&new-version=8.5.24)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/ankitects/anki/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Fernando Lins <1887601+fernandolins@users.noreply.github.com>
2026-08-26 12:17:18 -03:00
dependabot[bot]
4a705a12e6 chore(deps): bump gitpython from 3.1.49 to 3.1.57 (#5268)
Bumps [gitpython](https://github.com/gitpython-developers/GitPython)
from 3.1.49 to 3.1.57.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/gitpython-developers/GitPython/releases">gitpython's
releases</a>.</em></p>
<blockquote>
<h2>3.1.57 - Security and Fixes</h2>
<h2>What's Changed</h2>
<ul>
<li>Merge gitdb and smmap into the GitPython repository by <a
href="https://github.com/Byron"><code>@​Byron</code></a> in <a
href="https://redirect.github.com/gitpython-developers/GitPython/pull/2179">gitpython-developers/GitPython#2179</a></li>
<li>build(deps): bump actions/setup-python from 6 to 7 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/gitpython-developers/GitPython/pull/2185">gitpython-developers/GitPython#2185</a></li>
<li>build(deps): bump the pre-commit group with 2 updates by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/gitpython-developers/GitPython/pull/2186">gitpython-developers/GitPython#2186</a></li>
<li>Bump Vampire/setup-wsl from 6.0.0 to 7.0.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/gitpython-developers/GitPython/pull/2124">gitpython-developers/GitPython#2124</a></li>
<li>Render protected Traversable methods in the reference by <a
href="https://github.com/pick7"><code>@​pick7</code></a> in <a
href="https://redirect.github.com/gitpython-developers/GitPython/pull/2192">gitpython-developers/GitPython#2192</a></li>
<li>Use standard prefixes for parsed patch diffs by <a
href="https://github.com/pick7"><code>@​pick7</code></a> in <a
href="https://redirect.github.com/gitpython-developers/GitPython/pull/2191">gitpython-developers/GitPython#2191</a></li>
<li>Honor kill_after_timeout with output streams by <a
href="https://github.com/pick7"><code>@​pick7</code></a> in <a
href="https://redirect.github.com/gitpython-developers/GitPython/pull/2189">gitpython-developers/GitPython#2189</a></li>
<li>Redact Authorization extra headers from command errors by <a
href="https://github.com/pick7"><code>@​pick7</code></a> in <a
href="https://redirect.github.com/gitpython-developers/GitPython/pull/2188">gitpython-developers/GitPython#2188</a></li>
<li>Improve RemoteProgress parse return typing by <a
href="https://github.com/pick7"><code>@​pick7</code></a> in <a
href="https://redirect.github.com/gitpython-developers/GitPython/pull/2187">gitpython-developers/GitPython#2187</a></li>
<li>Adopt basedpyright with a legacy baseline by <a
href="https://github.com/Byron"><code>@​Byron</code></a> in <a
href="https://redirect.github.com/gitpython-developers/GitPython/pull/2194">gitpython-developers/GitPython#2194</a></li>
<li>Block unsafe Git file and URL options by <a
href="https://github.com/Byron"><code>@​Byron</code></a> in <a
href="https://redirect.github.com/gitpython-developers/GitPython/pull/2193">gitpython-developers/GitPython#2193</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/pick7"><code>@​pick7</code></a> made
their first contribution in <a
href="https://redirect.github.com/gitpython-developers/GitPython/pull/2192">gitpython-developers/GitPython#2192</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/gitpython-developers/GitPython/compare/3.1.56...3.1.57">https://github.com/gitpython-developers/GitPython/compare/3.1.56...3.1.57</a></p>
<h2>3.1.56 - SECURITY</h2>
<h2>What's Changed</h2>
<ul>
<li>Add support for Python 3.15 by <a
href="https://github.com/hugovk"><code>@​hugovk</code></a> in <a
href="https://redirect.github.com/gitpython-developers/GitPython/pull/2183">gitpython-developers/GitPython#2183</a></li>
<li>fix: reject unsafe output options in Commit.count by <a
href="https://github.com/Byron"><code>@​Byron</code></a> in <a
href="https://redirect.github.com/gitpython-developers/GitPython/pull/2184">gitpython-developers/GitPython#2184</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/gitpython-developers/GitPython/compare/3.1.55...3.1.56">https://github.com/gitpython-developers/GitPython/compare/3.1.55...3.1.56</a></p>
<h2>3.1.55 - Security</h2>
<h2>What's Changed</h2>
<ul>
<li>fix: prevent environment expansion in remote URLs by <a
href="https://github.com/Byron"><code>@​Byron</code></a> in <a
href="https://redirect.github.com/gitpython-developers/GitPython/pull/2181">gitpython-developers/GitPython#2181</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/gitpython-developers/GitPython/compare/3.1.54...3.1.55">https://github.com/gitpython-developers/GitPython/compare/3.1.54...3.1.55</a></p>
<h2>3.1.54 - Security</h2>
<h2>What's Changed</h2>
<ul>
<li>Harden unsafe Git option validation by <a
href="https://github.com/Byron"><code>@​Byron</code></a> in <a
href="https://redirect.github.com/gitpython-developers/GitPython/pull/2180">gitpython-developers/GitPython#2180</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/gitpython-developers/GitPython/compare/3.1.53...3.1.54">https://github.com/gitpython-developers/GitPython/compare/3.1.53...3.1.54</a></p>
<h2>3.1.53 - Security</h2>
<h2>What's Changed</h2>
<ul>
<li>feat(submodule): add deinit method to Submodule (<a
href="https://redirect.github.com/gitpython-developers/GitPython/issues/2014">#2014</a>)
by <a href="https://github.com/mvanhorn"><code>@​mvanhorn</code></a> in
<a
href="https://redirect.github.com/gitpython-developers/GitPython/pull/2129">gitpython-developers/GitPython#2129</a></li>
<li>typing: introduce sensible basedpyright defaults by <a
href="https://github.com/Byron"><code>@​Byron</code></a> in <a
href="https://redirect.github.com/gitpython-developers/GitPython/pull/2174">gitpython-developers/GitPython#2174</a></li>
<li>fix: make <code>submodule.update()</code> after
<code>submodule.deinit()</code> work by <a
href="https://github.com/Byron"><code>@​Byron</code></a> in <a
href="https://redirect.github.com/gitpython-developers/GitPython/pull/2175">gitpython-developers/GitPython#2175</a></li>
<li>Fix commit hooks respecting core.hooksPath by <a
href="https://github.com/Siesta0217"><code>@​Siesta0217</code></a> in <a
href="https://redirect.github.com/gitpython-developers/GitPython/pull/2159">gitpython-developers/GitPython#2159</a></li>
<li>fix: validate config section delimiters by <a
href="https://github.com/Byron"><code>@​Byron</code></a> in <a
href="https://redirect.github.com/gitpython-developers/GitPython/pull/2176">gitpython-developers/GitPython#2176</a></li>
</ul>
<h2>New Contributors</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="ccbd573ac4"><code>ccbd573</code></a>
prepare for new release</li>
<li><a
href="d1a631d096"><code>d1a631d</code></a>
Merge pull request <a
href="https://redirect.github.com/gitpython-developers/GitPython/issues/2193">#2193</a>
from gitpython-developers/more-unsafe-options</li>
<li><a
href="ab33e331d5"><code>ab33e33</code></a>
Merge pull request <a
href="https://redirect.github.com/gitpython-developers/GitPython/issues/2194">#2194</a>
from gitpython-developers/fix-basedpyright</li>
<li><a
href="52199b39ce"><code>52199b3</code></a>
address review comments</li>
<li><a
href="60dec718ae"><code>60dec71</code></a>
Adopt basedpyright with a legacy baseline</li>
<li><a
href="7a4f5dcb7b"><code>7a4f5dc</code></a>
Block unsafe archive additions and bundle URI</li>
<li><a
href="3af0c2516c"><code>3af0c25</code></a>
Block unsafe checkout-index and tag file options</li>
<li><a
href="fb5d584831"><code>fb5d584</code></a>
Merge pull request <a
href="https://redirect.github.com/gitpython-developers/GitPython/issues/2187">#2187</a>
from pick7/codex/remote-progress-return-type</li>
<li><a
href="951cc44045"><code>951cc44</code></a>
Merge pull request <a
href="https://redirect.github.com/gitpython-developers/GitPython/issues/2188">#2188</a>
from pick7/codex/redact-http-extraheader</li>
<li><a
href="2e5b13ff72"><code>2e5b13f</code></a>
Merge pull request <a
href="https://redirect.github.com/gitpython-developers/GitPython/issues/2189">#2189</a>
from pick7/codex/output-stream-timeout</li>
<li>Additional commits viewable in <a
href="https://github.com/gitpython-developers/GitPython/compare/3.1.49...3.1.57">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=gitpython&package-manager=uv&previous-version=3.1.49&new-version=3.1.57)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/ankitects/anki/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Fernando Lins <1887601+fernandolins@users.noreply.github.com>
2026-08-26 12:13:14 -03:00
dependabot[bot]
244aaf13d9 chore(deps): bump ws from 8.20.1 to 8.21.0 (#5027)
Bumps [ws](https://github.com/websockets/ws) from 8.20.1 to 8.21.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/websockets/ws/releases">ws's
releases</a>.</em></p>
<blockquote>
<h2>8.21.0</h2>
<h1>Features</h1>
<ul>
<li>Introduced the <code>maxBufferedChunks</code> and
<code>maxFragments</code> options (2b2abd45).</li>
</ul>
<h1>Bug fixes</h1>
<ul>
<li>Fixed a remote memory exhaustion DoS vulnerability (2b2abd45).</li>
</ul>
<p>A high volume of tiny fragments and data chunks could be sent by a
peer, using
modest network traffic, to crash a <code>ws</code> server or client due
to OOM.</p>
<pre lang="js"><code>import { WebSocket, WebSocketServer } from 'ws';
<p>const wss = new WebSocketServer({ port: 0 }, function () {
const data = Buffer.alloc(1);
const options = { fin: false };
const { port } = wss.address();
const ws = new WebSocket(<code>ws://localhost:${port}</code>);</p>
<p>ws.on('open', function () {
(function send() {
ws.send(data, options, function (err) {
if (err) return;
send();
});
})();
});</p>
<p>ws.on('error', console.error);
ws.on('close', function (code, reason) {
console.log(<code>client close - code: ${code} reason:
${reason.toString()}</code>);
});
});</p>
<p>wss.on('connection', function (ws) {
ws.on('error', console.error);
ws.on('close', function (code, reason) {
console.log(<code>server close - code: ${code} reason:
${reason.toString()}</code>);
});
});
</code></pre></p>
<p>The vulnerability was responsibly disclosed and fixed by <a
href="https://github.com/Nadav0077">Nadav Magier</a>.</p>
<p>In vulnerable versions, the issue can be mitigated by lowering the
value of the
<code>maxPayload</code> option if possible.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="bca91adf15"><code>bca91ad</code></a>
[dist] 8.21.0</li>
<li><a
href="2b2abd458a"><code>2b2abd4</code></a>
[security] Limit retained message parts</li>
<li><a
href="78eabe2a66"><code>78eabe2</code></a>
[security] Add latest vulnerability to SECURITY.md</li>
<li>See full diff in <a
href="https://github.com/websockets/ws/compare/8.20.1...8.21.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=ws&package-manager=npm_and_yarn&previous-version=8.20.1&new-version=8.21.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

You can trigger a rebase of this PR by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/ankitects/anki/network/alerts).

</details>

> **Note**
> Automatic rebases have been disabled on this pull request as it has
been open for over 30 days.

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Fernando Lins <1887601+fernandolins@users.noreply.github.com>
2026-08-26 12:12:00 -03:00
dependabot[bot]
923e976d31 chore(deps): bump quinn-proto from 0.11.14 to 0.11.16 (#5221)
Bumps [quinn-proto](https://github.com/quinn-rs/quinn) from 0.11.14 to
0.11.16.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/quinn-rs/quinn/releases">quinn-proto's
releases</a>.</em></p>
<blockquote>
<h2>quinn-proto-0.11.16</h2>
<h2>What's Changed</h2>
<ul>
<li>0.11.x: upgrade dependencies by <a
href="https://github.com/djc"><code>@​djc</code></a> in <a
href="https://redirect.github.com/quinn-rs/quinn/pull/2707">quinn-rs/quinn#2707</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="a96949f6cd"><code>a96949f</code></a>
Take semver-compatible update for anyhow</li>
<li><a
href="5429f60d0e"><code>5429f60</code></a>
udp: bump version to 0.5.15</li>
<li><a
href="262a493629"><code>262a493</code></a>
proto: bump version to 0.11.16</li>
<li><a
href="c19b63a04c"><code>c19b63a</code></a>
Upgrade rustls-platform-verifier to 0.7</li>
<li><a
href="aff3652c43"><code>aff3652</code></a>
Disable default features for fastbloom</li>
<li><a
href="01b2eee2c6"><code>01b2eee</code></a>
Upgrade fastbloom to 0.17</li>
<li><a
href="2c82013a8c"><code>2c82013</code></a>
Switch BBR RNG to PCG</li>
<li><a
href="544dd9ebab"><code>544dd9e</code></a>
Upgrade to rand 0.10.1</li>
<li><a
href="a7499b8439"><code>a7499b8</code></a>
Bump versions for release</li>
<li><a
href="7c1970f19b"><code>7c1970f</code></a>
proto: yield error on too many gaps in assembler</li>
<li>Additional commits viewable in <a
href="https://github.com/quinn-rs/quinn/compare/quinn-proto-0.11.14...quinn-proto-0.11.16">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=quinn-proto&package-manager=cargo&previous-version=0.11.14&new-version=0.11.16)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/ankitects/anki/network/alerts).

</details>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Fernando Lins <1887601+fernandolins@users.noreply.github.com>
2026-08-25 17:24:36 -03:00
dependabot[bot]
924ccf4257 chore(deps): bump form-data from 4.0.4 to 4.0.6 (#5200)
Bumps [form-data](https://github.com/form-data/form-data) from 4.0.4 to
4.0.6.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/form-data/form-data/blob/master/CHANGELOG.md">form-data's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/form-data/form-data/compare/v4.0.5...v4.0.6">v4.0.6</a>
- 2026-06-12</h2>
<h3>Commits</h3>
<ul>
<li>[Fix] escape CR, LF, and <code>&quot;</code> in field names and
filenames <a
href="8dff42c6da"><code>8dff42c</code></a></li>
<li>[Dev Deps] update <code>@ljharb/eslint-config</code>,
<code>auto-changelog</code>, <code>tape</code> <a
href="f31d21ef10"><code>f31d21e</code></a></li>
<li>[Deps] update <code>hasown</code>, <code>mime-types</code> <a
href="92ae0eb5da"><code>92ae0eb</code></a></li>
<li>[Dev Deps] update <code>js-randomness-predictor</code> <a
href="67b0f65c2e"><code>67b0f65</code></a></li>
</ul>
<h2><a
href="https://github.com/form-data/form-data/compare/v4.0.4...v4.0.5">v4.0.5</a>
- 2025-11-17</h2>
<h3>Commits</h3>
<ul>
<li>[Tests] Switch to newer v8 prediction library; enable node 24
testing <a
href="16e0076534"><code>16e0076</code></a></li>
<li>[Dev Deps] update <code>@ljharb/eslint-config</code>,
<code>eslint</code> <a
href="5822467f0e"><code>5822467</code></a></li>
<li>[Fix] set Symbol.toStringTag in the proper place <a
href="76d0dee439"><code>76d0dee</code></a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="64190db548"><code>64190db</code></a>
v4.0.6</li>
<li><a
href="92ae0eb5da"><code>92ae0eb</code></a>
[Deps] update <code>hasown</code>, <code>mime-types</code></li>
<li><a
href="f31d21ef10"><code>f31d21e</code></a>
[Dev Deps] update <code>@ljharb/eslint-config</code>,
<code>auto-changelog</code>, <code>tape</code></li>
<li><a
href="8dff42c6da"><code>8dff42c</code></a>
[Fix] escape CR, LF, and <code>&quot;</code> in field names and
filenames</li>
<li><a
href="67b0f65c2e"><code>67b0f65</code></a>
[Dev Deps] update <code>js-randomness-predictor</code></li>
<li><a
href="68ff7dda88"><code>68ff7dd</code></a>
v4.0.5</li>
<li><a
href="5822467f0e"><code>5822467</code></a>
[Dev Deps] update <code>@ljharb/eslint-config</code>,
<code>eslint</code></li>
<li><a
href="76d0dee439"><code>76d0dee</code></a>
[Fix] set Symbol.toStringTag in the proper place</li>
<li><a
href="16e0076534"><code>16e0076</code></a>
[Tests] Switch to newer v8 prediction library; enable node 24
testing</li>
<li>See full diff in <a
href="https://github.com/form-data/form-data/compare/v4.0.4...v4.0.6">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=form-data&package-manager=npm_and_yarn&previous-version=4.0.4&new-version=4.0.6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

You can trigger a rebase of this PR by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/ankitects/anki/network/alerts).

</details>

> **Note**
> Automatic rebases have been disabled on this pull request as it has
been open for over 30 days.

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Fernando Lins <1887601+fernandolins@users.noreply.github.com>
2026-08-25 17:02:59 -03:00
dependabot[bot]
a2301c1aa5 chore(deps): bump svgo from 3.3.3 to 3.3.4 (#5195)
Bumps [svgo](https://github.com/svg/svgo) from 3.3.3 to 3.3.4.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/svg/svgo/releases">svgo's
releases</a>.</em></p>
<blockquote>
<h2>v3.3.4</h2>
<h2>What's Changed</h2>
<h3>Security</h3>
<ul>
<li><a
href="https://svgo.dev/docs/plugins/removeScripts/">removeScriptElement</a>,
remove JavaScript URIs case-insensitively and make
<code>&lt;script&gt;</code> handling namespace aware. By <a
href="https://github.com/SethFalco"><code>@​SethFalco</code></a></li>
</ul>
<h2>Support</h2>
<p>SVGO v3 is not officially supported, please consider upgrading to
SVGO v4 instead. We've backported this fix as there are security
implications, but there is no commitment to do this for more complex
changes in future.</p>
<p>Consider reading our <a
href="https://svgo.dev/docs/migrations/migration-from-v3-to-v4/">Migration
Guide from v3 to v4</a> which should ease the process.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="72a23886b4"><code>72a2388</code></a>
Merge commit from fork</li>
<li>See full diff in <a
href="https://github.com/svg/svgo/compare/v3.3.3...v3.3.4">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=svgo&package-manager=npm_and_yarn&previous-version=3.3.3&new-version=3.3.4)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

You can trigger a rebase of this PR by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/ankitects/anki/network/alerts).

</details>

> **Note**
> Automatic rebases have been disabled on this pull request as it has
been open for over 30 days.

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Fernando Lins <1887601+fernandolins@users.noreply.github.com>
2026-08-25 16:55:02 -03:00
dependabot[bot]
6c7f9f2030 chore(deps): bump immutable from 5.1.5 to 5.1.9 (#5191)
Bumps [immutable](https://github.com/immutable-js/immutable-js) from
5.1.5 to 5.1.9.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/immutable-js/immutable-js/releases">immutable's
releases</a>.</em></p>
<blockquote>
<h2>v5.1.9</h2>
<h2>What's Changed</h2>
<ul>
<li>fix(List): preserve undefined values when grown past 32 elements by
<a href="https://github.com/spokodev"><code>@​spokodev</code></a> / <a
href="https://github.com/jdeniau"><code>@​jdeniau</code></a> in <a
href="https://redirect.github.com/immutable-js/immutable-js/pull/2235">immutable-js/immutable-js#2235</a>
(originated from <a
href="https://redirect.github.com/immutable-js/immutable-js/pull/2230">immutable-js/immutable-js#2230</a>
)</li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/immutable-js/immutable-js/compare/v5.1.8...v5.1.9">https://github.com/immutable-js/immutable-js/compare/v5.1.8...v5.1.9</a></p>
<h2>v5.1.8</h2>
<h2>What's Changed</h2>
<ul>
<li>fix(List): guard oversized bounds in setListBounds. Fixes CVE <a
href="https://github.com/immutable-js/immutable-js/security/advisories/GHSA-v56q-mh7h-f735">https://github.com/immutable-js/immutable-js/security/advisories/GHSA-v56q-mh7h-f735</a></li>
<li>perf(Map): index large hash-collision buckets for faster lookups.
Fixes CVE <a
href="https://github.com/immutable-js/immutable-js/security/advisories/GHSA-xvcm-6775-5m9r">https://github.com/immutable-js/immutable-js/security/advisories/GHSA-xvcm-6775-5m9r</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/immutable-js/immutable-js/compare/v5.1.7...v5.1.8">https://github.com/immutable-js/immutable-js/compare/v5.1.7...v5.1.8</a></p>
<h2>v5.1.7</h2>
<h2>What's Changed</h2>
<ul>
<li>fix(Repeat): lastIndexOf returned size instead of size - 1 by <a
href="https://github.com/chatman-media"><code>@​chatman-media</code></a>
in <a
href="https://redirect.github.com/immutable-js/immutable-js/pull/2227">immutable-js/immutable-js#2227</a></li>
</ul>
<h2>internal</h2>
<ul>
<li>Backport tests from 6.x branch by <a
href="https://github.com/jdeniau"><code>@​jdeniau</code></a> in <a
href="https://redirect.github.com/immutable-js/immutable-js/pull/2199">immutable-js/immutable-js#2199</a></li>
<li>fix(IndexedCollection): <code>has(index)</code> on a lazy
<code>Seq</code> of unknown size now checks index existence instead of
searching for a value equal to the index by <a
href="https://github.com/jdeniau"><code>@​jdeniau</code></a> in <a
href="https://redirect.github.com/immutable-js/immutable-js/pull/2203">immutable-js/immutable-js#2203</a></li>
<li>Better type for reduce if not ininitial value is given by <a
href="https://github.com/jdeniau"><code>@​jdeniau</code></a> in <a
href="https://redirect.github.com/immutable-js/immutable-js/pull/2205">immutable-js/immutable-js#2205</a></li>
<li>Backport test from <a
href="https://redirect.github.com/immutable-js/immutable-js/issues/2193">#2193</a>
by <a href="https://github.com/jdeniau"><code>@​jdeniau</code></a> in <a
href="https://redirect.github.com/immutable-js/immutable-js/pull/2207">immutable-js/immutable-js#2207</a></li>
<li>backport tests from 6.x by <a
href="https://github.com/jdeniau"><code>@​jdeniau</code></a> in <a
href="https://redirect.github.com/immutable-js/immutable-js/pull/2213">immutable-js/immutable-js#2213</a></li>
<li>Firefox link to non-French page by <a
href="https://github.com/jdeniau"><code>@​jdeniau</code></a> in <a
href="https://redirect.github.com/immutable-js/immutable-js/pull/2219">immutable-js/immutable-js#2219</a></li>
<li>Bump esbuild and <code>@​size-limit/preset-small-lib</code> by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/immutable-js/immutable-js/pull/2217">immutable-js/immutable-js#2217</a></li>
<li>backport tests from <a
href="https://redirect.github.com/immutable-js/immutable-js/issues/2210">#2210</a>
by <a href="https://github.com/jdeniau"><code>@​jdeniau</code></a> in <a
href="https://redirect.github.com/immutable-js/immutable-js/pull/2214">immutable-js/immutable-js#2214</a></li>
<li>Bump shell-quote from 1.8.2 to 1.8.4 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/immutable-js/immutable-js/pull/2211">immutable-js/immutable-js#2211</a></li>
<li>Bump <code>@​tootallnate/once</code> from 2.0.0 to 2.0.1 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/immutable-js/immutable-js/pull/2190">immutable-js/immutable-js#2190</a></li>
<li>Bump minimatch from 9.0.5 to 9.0.9 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/immutable-js/immutable-js/pull/2189">immutable-js/immutable-js#2189</a></li>
<li>Bump <code>@​codemirror/theme-one-dark</code> from 6.1.2 to 6.1.3 by
<a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/immutable-js/immutable-js/pull/2168">immutable-js/immutable-js#2168</a></li>
<li>Bump form-data from 4.0.5 to 4.0.6 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/immutable-js/immutable-js/pull/2220">immutable-js/immutable-js#2220</a></li>
<li>Bump typescript-eslint from 8.33.0 to 8.61.1 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/immutable-js/immutable-js/pull/2222">immutable-js/immutable-js#2222</a></li>
<li>Bump <code>@​rollup/plugin-commonjs</code> from 28.0.2 to 29.0.3 by
<a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/immutable-js/immutable-js/pull/2224">immutable-js/immutable-js#2224</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/chatman-media"><code>@​chatman-media</code></a>
made their first contribution in <a
href="https://redirect.github.com/immutable-js/immutable-js/pull/2227">immutable-js/immutable-js#2227</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/immutable-js/immutable-js/compare/v5.1.6...v5.1.7">https://github.com/immutable-js/immutable-js/compare/v5.1.6...v5.1.7</a></p>
<h2>v5.1.6</h2>
<h2>What's Changed</h2>
<ul>
<li>fix(reverseFactory): read reversedSequence.size in __iterator
instead of this by <a
href="https://github.com/jdeniau"><code>@​jdeniau</code></a> in <a
href="https://redirect.github.com/immutable-js/immutable-js/pull/2196">immutable-js/immutable-js#2196</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/immutable-js/immutable-js/blob/main/CHANGELOG.md">immutable's
changelog</a>.</em></p>
<blockquote>
<h2>5.1.9</h2>
<ul>
<li>fix(List): a <code>List</code> grown past 32 elements while all its
values are <code>undefined</code> no longer reads those values back as
<code>null</code> (affected <code>get</code>, iteration,
<code>toArray</code>, <code>equals</code> and
<code>hashCode</code>)</li>
</ul>
<h2>5.1.8</h2>
<ul>
<li>fix(List): guard oversized bounds in setListBounds. Fixes CVE <a
href="https://github.com/immutable-js/immutable-js/security/advisories/GHSA-v56q-mh7h-f735">https://github.com/immutable-js/immutable-js/security/advisories/GHSA-v56q-mh7h-f735</a></li>
<li>perf(Map): index large hash-collision buckets for faster lookups.
Fixes CVE <a
href="https://github.com/immutable-js/immutable-js/security/advisories/GHSA-xvcm-6775-5m9r">https://github.com/immutable-js/immutable-js/security/advisories/GHSA-xvcm-6775-5m9r</a></li>
</ul>
<h2>4.3.9</h2>
<ul>
<li>fix(List): guard oversized bounds in setListBounds. Fixes CVE <a
href="https://github.com/immutable-js/immutable-js/security/advisories/GHSA-v56q-mh7h-f735">https://github.com/immutable-js/immutable-js/security/advisories/GHSA-v56q-mh7h-f735</a></li>
<li>perf(Map): index large hash-collision buckets for faster lookups.
Fixes CVE <a
href="https://github.com/immutable-js/immutable-js/security/advisories/GHSA-xvcm-6775-5m9r">https://github.com/immutable-js/immutable-js/security/advisories/GHSA-xvcm-6775-5m9r</a></li>
</ul>
<h2>5.1.7</h2>
<ul>
<li>fix(Repeat): lastIndexOf returned size instead of size - 1 by <a
href="https://github.com/chatman-media"><code>@​chatman-media</code></a>
in <a
href="https://redirect.github.com/immutable-js/immutable-js/pull/2227">immutable-js/immutable-js#2227</a>.
Fixes CVE <a
href="https://github.com/immutable-js/immutable-js/security/advisories/GHSA-wf6x-7x77-mvgw">CVE-2026-29063
</a></li>
<li>fix(IndexedCollection): <code>has(index)</code> on a lazy
<code>Seq</code> of unknown size now checks index existence instead of
searching for a value equal to the index <a
href="https://redirect.github.com/immutable-js/immutable-js/pull/2203">#2203</a></li>
<li>[TypeScript]: <code>reduce</code>/<code>reduceRight</code> without
an initial value now infer the result type from the collection's values
when the reducer returns a value (e.g. <code>list.reduce((a, b) =&gt; a
+ b)</code> infers <code>number</code>), matching
<code>Array#reduce</code>. Previously an explicit type argument was
required. <a
href="https://redirect.github.com/immutable-js/immutable-js/pull/2205">#2205</a></li>
</ul>
<h2>5.1.6</h2>
<ul>
<li>fix(reverseFactory): read <code>reversedSequence.size</code> in
<code>__iterator</code> instead of this <a
href="https://redirect.github.com/immutable-js/immutable-js/pull/2196">#2196</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="329f7a680e"><code>329f7a6</code></a>
5.1.9</li>
<li><a
href="21fabd92bc"><code>21fabd9</code></a>
changelog</li>
<li><a
href="009164facb"><code>009164f</code></a>
Merge pull request <a
href="https://redirect.github.com/immutable-js/immutable-js/issues/2235">#2235</a>
from immutable-js/fix/avoid-null-when-setsize33</li>
<li><a
href="5b65bfbd58"><code>5b65bfb</code></a>
fix(List): preserve undefined values when grown past 32 elements</li>
<li><a
href="50bf39e941"><code>50bf39e</code></a>
Update CHANGELOG.md for versions 5.1.8 and 4.3.9</li>
<li><a
href="6496539bd1"><code>6496539</code></a>
5.1.8</li>
<li><a
href="808a83a071"><code>808a83a</code></a>
Merge commit from fork</li>
<li><a
href="e51d49fc61"><code>e51d49f</code></a>
perf(Map): index large hash-collision buckets for faster lookups</li>
<li><a
href="25c58b094f"><code>25c58b0</code></a>
fix typescript in tests</li>
<li><a
href="a1a1ee412d"><code>a1a1ee4</code></a>
Merge commit from fork</li>
<li>Additional commits viewable in <a
href="https://github.com/immutable-js/immutable-js/compare/v5.1.5...v5.1.9">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=immutable&package-manager=npm_and_yarn&previous-version=5.1.5&new-version=5.1.9)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

You can trigger a rebase of this PR by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/ankitects/anki/network/alerts).

</details>

> **Note**
> Automatic rebases have been disabled on this pull request as it has
been open for over 30 days.

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Fernando Lins <1887601+fernandolins@users.noreply.github.com>
2026-08-25 16:43:03 -03:00
dependabot[bot]
a9683a92e6 chore(deps): bump brace-expansion from 1.1.12 to 1.1.16 (#5179)
Bumps [brace-expansion](https://github.com/juliangruber/brace-expansion)
from 1.1.12 to 1.1.16.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/juliangruber/brace-expansion/releases">brace-expansion's
releases</a>.</em></p>
<blockquote>
<h2>v1.1.15</h2>
<ul>
<li>Backport v5.0.6 change to v1 (<a
href="https://redirect.github.com/juliangruber/brace-expansion/issues/111">#111</a>)
0b09384</li>
</ul>
<hr />
<p><a
href="https://github.com/juliangruber/brace-expansion/compare/v1.1.14...v1.1.15">https://github.com/juliangruber/brace-expansion/compare/v1.1.14...v1.1.15</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="447763a91a"><code>447763a</code></a>
1.1.16</li>
<li><a
href="d74e63030c"><code>d74e630</code></a>
fix: v1 backport for CVE-2026-13149 (<a
href="https://redirect.github.com/juliangruber/brace-expansion/issues/122">#122</a>)</li>
<li><a
href="2203f4f489"><code>2203f4f</code></a>
1.1.15</li>
<li><a
href="0b09384107"><code>0b09384</code></a>
Backport v5.0.6 change to v1 (<a
href="https://redirect.github.com/juliangruber/brace-expansion/issues/111">#111</a>)</li>
<li><a
href="10c05fcf36"><code>10c05fc</code></a>
1.1.14</li>
<li><a
href="1afa1b22ea"><code>1afa1b2</code></a>
Add opt-in { max } mitigation to v1 legacy line (<a
href="https://redirect.github.com/juliangruber/brace-expansion/issues/103">#103</a>)</li>
<li><a
href="2fbb6a2aa0"><code>2fbb6a2</code></a>
Revert &quot;Backport fix for GHSA-7h2j-956f-4vf2 to v1 (<a
href="https://redirect.github.com/juliangruber/brace-expansion/issues/101">#101</a>)&quot;
(<a
href="https://redirect.github.com/juliangruber/brace-expansion/issues/102">#102</a>)</li>
<li><a
href="0d7652e309"><code>0d7652e</code></a>
Backport fix for GHSA-7h2j-956f-4vf2 to v1 (<a
href="https://redirect.github.com/juliangruber/brace-expansion/issues/101">#101</a>)</li>
<li><a
href="6c353caf23"><code>6c353ca</code></a>
1.1.13</li>
<li><a
href="7fd684f89f"><code>7fd684f</code></a>
Backport fix for GHSA-f886-m6hf-6m8v (<a
href="https://redirect.github.com/juliangruber/brace-expansion/issues/95">#95</a>)</li>
<li>See full diff in <a
href="https://github.com/juliangruber/brace-expansion/compare/v1.1.12...v1.1.16">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=brace-expansion&package-manager=npm_and_yarn&previous-version=1.1.12&new-version=1.1.16)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

You can trigger a rebase of this PR by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/ankitects/anki/network/alerts).

</details>

> **Note**
> Automatic rebases have been disabled on this pull request as it has
been open for over 30 days.

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Fernando Lins <1887601+fernandolins@users.noreply.github.com>
2026-08-25 16:30:23 -03:00
dependabot[bot]
6752a7fd99 chore(deps): bump pip from 26.1 to 26.1.2 (#5132)
Bumps [pip](https://github.com/pypa/pip) from 26.1 to 26.1.2.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pypa/pip/blob/main/NEWS.rst">pip's
changelog</a>.</em></p>
<blockquote>
<h1>26.1.2 (2026-05-31)</h1>
<h2>Bug Fixes</h2>
<ul>
<li>Reject <code>console_scripts</code> and <code>gui_scripts</code>
entry points whose name would
install a script outside the scripts directory.
(<code>[#14000](https://github.com/pypa/pip/issues/14000)
&lt;https://github.com/pypa/pip/issues/14000&gt;</code>_)</li>
<li>Fix installation incorrectly failing when the target path contains a
doubled
slash, such as with <code>pip install --root //...</code>.
(<code>[#14001](https://github.com/pypa/pip/issues/14001)
&lt;https://github.com/pypa/pip/issues/14001&gt;</code>_)</li>
<li>Send a consistent <code>Accept-Encoding</code> header to avoid a
spurious <code>Cache entry deserialization failed</code> warning.
(<code>[#14012](https://github.com/pypa/pip/issues/14012)
&lt;https://github.com/pypa/pip/issues/14012&gt;</code>_)</li>
</ul>
<h1>26.1.1 (2026-05-04)</h1>
<h2>Bug Fixes</h2>
<ul>
<li>Fix issue where uninstallation left behind empty directories. Revert
the
removal of the adjacent <code>__pycache__</code> directory when a .py
file is removed.
(<code>[#13973](https://github.com/pypa/pip/issues/13973)
&lt;https://github.com/pypa/pip/issues/13973&gt;</code>_)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="31d7d16895"><code>31d7d16</code></a>
Bump for release</li>
<li><a
href="79f348c86a"><code>79f348c</code></a>
Update AUTHORS.txt</li>
<li><a
href="237a925881"><code>237a925</code></a>
Merge pull request <a
href="https://redirect.github.com/pypa/pip/issues/14001">#14001</a> from
notatallshaw/fix-is-within-directory</li>
<li><a
href="34d0285d54"><code>34d0285</code></a>
Merge pull request <a
href="https://redirect.github.com/pypa/pip/issues/14006">#14006</a> from
laymonage/fix-requirements_from_scripts-space-...</li>
<li><a
href="09d3e07066"><code>09d3e07</code></a>
Merge pull request <a
href="https://redirect.github.com/pypa/pip/issues/14012">#14012</a> from
notatallshaw/stable-accept-encoding</li>
<li><a
href="fa7854f6b3"><code>fa7854f</code></a>
Use is_within_directory for entry point check</li>
<li><a
href="d01b46c273"><code>d01b46c</code></a>
NEWS ENTRY</li>
<li><a
href="7ff8bdd81e"><code>7ff8bdd</code></a>
Fix is_within_directory for doubled-slash roots</li>
<li><a
href="7ea3466fb5"><code>7ea3466</code></a>
NEWS ENTRY</li>
<li><a
href="85673eaa10"><code>85673ea</code></a>
Fix Accept-Encoding to gzip, deflate</li>
<li>Additional commits viewable in <a
href="https://github.com/pypa/pip/compare/26.1...26.1.2">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pip&package-manager=uv&previous-version=26.1&new-version=26.1.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

You can trigger a rebase of this PR by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/ankitects/anki/network/alerts).

</details>

> **Note**
> Automatic rebases have been disabled on this pull request as it has
been open for over 30 days.

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Fernando Lins <1887601+fernandolins@users.noreply.github.com>
2026-08-25 16:20:26 -03:00
dependabot[bot]
d9ebf2ed0d chore(deps): bump vite from 6.4.2 to 6.4.3 (#5026)
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite)
from 6.4.2 to 6.4.3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/vitejs/vite/releases">vite's
releases</a>.</em></p>
<blockquote>
<h2>v6.4.3</h2>
<p>Please refer to <a
href="https://github.com/vitejs/vite/blob/v6.4.3/packages/vite/CHANGELOG.md">CHANGELOG.md</a>
for details.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/vitejs/vite/blob/v6.4.3/packages/vite/CHANGELOG.md">vite's
changelog</a>.</em></p>
<blockquote>
<h2><!-- raw HTML omitted -->6.4.3 (2026-06-01)<!-- raw HTML omitted
--></h2>
<ul>
<li>fix: backport <a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/22572">#22572</a>,
reject windows alternate paths (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/22576">#22576</a>)
(<a
href="96b0c10162">96b0c10</a>),
closes <a
href="https://redirect.github.com/vitejs/vite/issues/22572">#22572</a>
<a
href="https://redirect.github.com/vitejs/vite/issues/22576">#22576</a></li>
<li>fix(deps): backport <a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/22571">#22571</a>,
reject UNC paths for launch-editor-middleware (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/22575">#22575</a>)
(<a
href="8fed5cf540">8fed5cf</a>),
closes <a
href="https://redirect.github.com/vitejs/vite/issues/22571">#22571</a>
<a
href="https://redirect.github.com/vitejs/vite/issues/22575">#22575</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="6c2c881f15"><code>6c2c881</code></a>
release: v6.4.3</li>
<li><a
href="96b0c10162"><code>96b0c10</code></a>
fix: backport <a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/22572">#22572</a>,
reject windows alternate paths (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/22576">#22576</a>)</li>
<li><a
href="8fed5cf540"><code>8fed5cf</code></a>
fix(deps): backport <a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/22571">#22571</a>,
reject UNC paths for launch-editor-middleware (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/2">#2</a>...</li>
<li>See full diff in <a
href="https://github.com/vitejs/vite/commits/v6.4.3/packages/vite">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=vite&package-manager=npm_and_yarn&previous-version=6.4.2&new-version=6.4.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

You can trigger a rebase of this PR by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/ankitects/anki/network/alerts).

</details>

> **Note**
> Automatic rebases have been disabled on this pull request as it has
been open for over 30 days.

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Fernando Lins <1887601+fernandolins@users.noreply.github.com>
2026-08-25 16:11:04 -03:00
dependabot[bot]
3ca08551f1 chore(deps): bump esbuild from 0.28.0 to 0.28.1 (#5008)
Bumps [esbuild](https://github.com/evanw/esbuild) from 0.28.0 to 0.28.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/evanw/esbuild/releases">esbuild's
releases</a>.</em></p>
<blockquote>
<h2>v0.28.1</h2>
<ul>
<li>
<p>Disallow <code>\</code> in local development server HTTP requests (<a
href="https://github.com/evanw/esbuild/security/advisories/GHSA-g7r4-m6w7-qqqr">GHSA-g7r4-m6w7-qqqr</a>)</p>
<p>This release fixes a security issue where HTTP requests to esbuild's
local development server could traverse outside of the serve directory
on Windows using a <code>\</code> backslash character. It happened due
to the use of Go's <code>path.Clean()</code> function, which only
handles Unix-style <code>/</code> characters. HTTP requests with paths
containing <code>\</code> are no longer allowed.</p>
<p>Thanks to <a
href="https://github.com/dellalibera"><code>@​dellalibera</code></a> for
reporting this issue.</p>
</li>
<li>
<p>Add integrity checks to the Deno API (<a
href="https://github.com/evanw/esbuild/security/advisories/GHSA-gv7w-rqvm-qjhr">GHSA-gv7w-rqvm-qjhr</a>)</p>
<p>The previous release of esbuild added integrity checks to esbuild's
npm install script. This release also adds integrity checks to esbuild's
Deno install script. Now esbuild's Deno API will also fail with an error
if the downloaded esbuild binary contains something other than the
expected content.</p>
<p>Note that esbuild's Deno API installs from
<code>registry.npmjs.org</code> by default, but allows the
<code>NPM_CONFIG_REGISTRY</code> environment variable to override this
with a custom package registry. This change means that the esbuild
executable served by <code>NPM_CONFIG_REGISTRY</code> must now match the
expected content.</p>
<p>Thanks to <a
href="https://github.com/sondt99"><code>@​sondt99</code></a> for
reporting this issue.</p>
</li>
<li>
<p>Avoid inlining <code>using</code> and <code>await using</code>
declarations (<a
href="https://redirect.github.com/evanw/esbuild/issues/4482">#4482</a>)</p>
<p>Previously esbuild's minifier sometimes incorrectly inlined
<code>using</code> and <code>await using</code> declarations into
subsequent uses of that declaration, which then fails to dispose of the
resource correctly. This bug happened because inlining was done for
<code>let</code> and <code>const</code> declarations by avoiding doing
it for <code>var</code> declarations, which no longer worked when more
declaration types were added. Here's an example:</p>
<pre lang="js"><code>// Original code
{
  using x = new Resource()
  x.activate()
}
<p>// Old output (with --minify)<br />
new Resource().activate();</p>
<p>// New output (with --minify)<br />
{using e=new Resource;e.activate()}<br />
</code></pre></p>
</li>
<li>
<p>Fix module evaluation when an error is thrown (<a
href="https://redirect.github.com/evanw/esbuild/issues/4461">#4461</a>,
<a
href="https://redirect.github.com/evanw/esbuild/pull/4467">#4467</a>)</p>
<p>If an error is thrown during module evaluation, esbuild previously
didn't preserve the state of the module for subsequent module
references. This was observable if <code>import()</code> or
<code>require()</code> is used to import a module multiple times. The
thrown error is supposed to be thrown by every call to
<code>import()</code> or <code>require()</code>, not just the first.
With this release, esbuild will now throw the same error every time you
call <code>import()</code> or <code>require()</code> on a module that
throws during its evaluation.</p>
</li>
<li>
<p>Fix some edge cases around the <code>new</code> operator (<a
href="https://redirect.github.com/evanw/esbuild/issues/4477">#4477</a>)</p>
<p>Previously esbuild incorrectly printed certain edge cases involving
complex expressions inside the target of a <code>new</code> expression
(specifically an optional chain and/or a tagged template literal). The
generated code for the <code>new</code> target was not correctly wrapped
with parentheses, and either contained a syntax error or had different
semantics. These edge cases have been fixed so that they now correctly
wrap the <code>new</code> target in parentheses. Here is an example of
some affected code:</p>
<pre lang="js"><code>// Original code
new (foo()`bar`)()
new (foo()?.bar)()
<p>// Old output<br />
new foo()<code>bar</code>();<br />
new (foo())?.bar();</p>
<p></code></pre></p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/evanw/esbuild/blob/main/CHANGELOG.md">esbuild's
changelog</a>.</em></p>
<blockquote>
<h2>0.28.1</h2>
<ul>
<li>
<p>Disallow <code>\</code> in local development server HTTP requests (<a
href="https://github.com/evanw/esbuild/security/advisories/GHSA-g7r4-m6w7-qqqr">GHSA-g7r4-m6w7-qqqr</a>)</p>
<p>This release fixes a security issue where HTTP requests to esbuild's
local development server could traverse outside of the serve directory
on Windows using a <code>\</code> backslash character. It happened due
to the use of Go's <code>path.Clean()</code> function, which only
handles Unix-style <code>/</code> characters. HTTP requests with paths
containing <code>\</code> are no longer allowed.</p>
<p>Thanks to <a
href="https://github.com/dellalibera"><code>@​dellalibera</code></a> for
reporting this issue.</p>
</li>
<li>
<p>Add integrity checks to the Deno API (<a
href="https://github.com/evanw/esbuild/security/advisories/GHSA-gv7w-rqvm-qjhr">GHSA-gv7w-rqvm-qjhr</a>)</p>
<p>The previous release of esbuild added integrity checks to esbuild's
npm install script. This release also adds integrity checks to esbuild's
Deno install script. Now esbuild's Deno API will also fail with an error
if the downloaded esbuild binary contains something other than the
expected content.</p>
<p>Note that esbuild's Deno API installs from
<code>registry.npmjs.org</code> by default, but allows the
<code>NPM_CONFIG_REGISTRY</code> environment variable to override this
with a custom package registry. This change means that the esbuild
executable served by <code>NPM_CONFIG_REGISTRY</code> must now match the
expected content.</p>
<p>Thanks to <a
href="https://github.com/sondt99"><code>@​sondt99</code></a> for
reporting this issue.</p>
</li>
<li>
<p>Avoid inlining <code>using</code> and <code>await using</code>
declarations (<a
href="https://redirect.github.com/evanw/esbuild/issues/4482">#4482</a>)</p>
<p>Previously esbuild's minifier sometimes incorrectly inlined
<code>using</code> and <code>await using</code> declarations into
subsequent uses of that declaration, which then fails to dispose of the
resource correctly. This bug happened because inlining was done for
<code>let</code> and <code>const</code> declarations by avoiding doing
it for <code>var</code> declarations, which no longer worked when more
declaration types were added. Here's an example:</p>
<pre lang="js"><code>// Original code
{
  using x = new Resource()
  x.activate()
}
<p>// Old output (with --minify)<br />
new Resource().activate();</p>
<p>// New output (with --minify)<br />
{using e=new Resource;e.activate()}<br />
</code></pre></p>
</li>
<li>
<p>Fix module evaluation when an error is thrown (<a
href="https://redirect.github.com/evanw/esbuild/issues/4461">#4461</a>,
<a
href="https://redirect.github.com/evanw/esbuild/pull/4467">#4467</a>)</p>
<p>If an error is thrown during module evaluation, esbuild previously
didn't preserve the state of the module for subsequent module
references. This was observable if <code>import()</code> or
<code>require()</code> is used to import a module multiple times. The
thrown error is supposed to be thrown by every call to
<code>import()</code> or <code>require()</code>, not just the first.
With this release, esbuild will now throw the same error every time you
call <code>import()</code> or <code>require()</code> on a module that
throws during its evaluation.</p>
</li>
<li>
<p>Fix some edge cases around the <code>new</code> operator (<a
href="https://redirect.github.com/evanw/esbuild/issues/4477">#4477</a>)</p>
<p>Previously esbuild incorrectly printed certain edge cases involving
complex expressions inside the target of a <code>new</code> expression
(specifically an optional chain and/or a tagged template literal). The
generated code for the <code>new</code> target was not correctly wrapped
with parentheses, and either contained a syntax error or had different
semantics. These edge cases have been fixed so that they now correctly
wrap the <code>new</code> target in parentheses. Here is an example of
some affected code:</p>
<pre lang="js"><code>// Original code
new (foo()`bar`)()
new (foo()?.bar)()
<p>// Old output<br />
new foo()<code>bar</code>();<br />
new (foo())?.bar();<br />
</code></pre></p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="bb9db84c02"><code>bb9db84</code></a>
publish 0.28.1 to npm</li>
<li><a
href="9ff053e53b"><code>9ff053e</code></a>
security: add integrity checks to the Deno API</li>
<li><a
href="0a9bf2135b"><code>0a9bf21</code></a>
enforce non-negative size in gzip parser</li>
<li><a
href="e2a1a71320"><code>e2a1a71</code></a>
security: forbid <code>\\</code> in local dev server requests</li>
<li><a
href="83a2cbfc35"><code>83a2cbf</code></a>
fix <a
href="https://redirect.github.com/evanw/esbuild/issues/4482">#4482</a>:
don't inline <code>using</code> declarations</li>
<li><a
href="308ad745d8"><code>308ad74</code></a>
fix <a
href="https://redirect.github.com/evanw/esbuild/issues/4471">#4471</a>:
renaming of nested <code>var</code> declarations</li>
<li><a
href="f013f5f99a"><code>f013f5f</code></a>
fix some typos</li>
<li><a
href="aafd6e48b1"><code>aafd6e4</code></a>
chore: fix some minor issues in comments (<a
href="https://redirect.github.com/evanw/esbuild/issues/4462">#4462</a>)</li>
<li><a
href="15300c30b5"><code>15300c3</code></a>
follow up: cjs evaluation fixes</li>
<li><a
href="1bda0c31d7"><code>1bda0c3</code></a>
fix <a
href="https://redirect.github.com/evanw/esbuild/issues/4461">#4461</a>,
fix <a
href="https://redirect.github.com/evanw/esbuild/issues/4467">#4467</a>:
esm evaluation fixes</li>
<li>Additional commits viewable in <a
href="https://github.com/evanw/esbuild/compare/v0.28.0...v0.28.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=esbuild&package-manager=npm_and_yarn&previous-version=0.28.0&new-version=0.28.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

You can trigger a rebase of this PR by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/ankitects/anki/network/alerts).

</details>

> **Note**
> Automatic rebases have been disabled on this pull request as it has
been open for over 30 days.

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Fernando Lins <1887601+fernandolins@users.noreply.github.com>
2026-08-25 15:59:39 -03:00
Abdo
5dec1b08ca chore: Bump anki-audio to 0.2.3 (#5409)
## Linked issue

#5363

## Summary

Bump anki-audio to 0.2.3 to include the macOS fix in #5363 published in
https://github.com/ankitects/anki/actions/runs/32881525829

## How to test

Do a quick test for audio playback/recording.
2026-08-25 21:42:21 +03:00
dependabot[bot]
0caa12eafc chore(ci): bump the actions group with 3 updates (#5311)
Bumps the actions group with 3 updates:
[astral-sh/setup-uv](https://github.com/astral-sh/setup-uv),
[taiki-e/install-action](https://github.com/taiki-e/install-action) and
[pypa/gh-action-pypi-publish](https://github.com/pypa/gh-action-pypi-publish).

Updates `astral-sh/setup-uv` from 7.6.0 to 9.0.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/astral-sh/setup-uv/releases">astral-sh/setup-uv's
releases</a>.</em></p>
<blockquote>
<h2>v9.0.0 🌈 Change <code>prune-cache</code> default to
<code>false</code></h2>
<h2>Changes</h2>
<p>This release disables the default cache cache pruning to ease the
load on the PyPi infrastructure.
Since users might experience more GitHub Actions cache usage which might
result in higher costs this is marked as a breaking change. To read more
on why we did this (now) you can read the detailed analysis and
reasoning in <a
href="https://redirect.github.com/astral-sh/setup-uv/issues/967">#967</a></p>
<p>Besides this big breaking change we also have a small bugfix while
building caches for linux distributions that behave a big different than
the &quot;big ones&quot; and a speed up in version resolution by only
reading the version manifest until a matching version is found saving
runtime and network bandwith.</p>
<h2>🚨 Breaking changes</h2>
<ul>
<li>Change <code>prune-cache</code> default to <code>false</code> <a
href="https://github.com/charliermarsh"><code>@​charliermarsh</code></a>
(<a
href="https://redirect.github.com/astral-sh/setup-uv/issues/967">#967</a>)</li>
</ul>
<h2>🐛 Bug fixes</h2>
<ul>
<li>fix: fall back to distribution ID when os-release has no version
field <a href="https://github.com/cxzhong"><code>@​cxzhong</code></a>
(<a
href="https://redirect.github.com/astral-sh/setup-uv/issues/961">#961</a>)</li>
</ul>
<h2>🚀 Enhancements</h2>
<ul>
<li>Speed up version client by partial response reads <a
href="https://github.com/eifinger"><code>@​eifinger</code></a> (<a
href="https://redirect.github.com/astral-sh/setup-uv/issues/807">#807</a>)</li>
</ul>
<h2>🧰 Maintenance</h2>
<ul>
<li>chore: update known checksums for 0.11.30 @<a
href="https://github.com/apps/github-actions">github-actions[bot]</a>
(<a
href="https://redirect.github.com/astral-sh/setup-uv/issues/968">#968</a>)</li>
<li>chore: update known checksums for 0.11.29 @<a
href="https://github.com/apps/github-actions">github-actions[bot]</a>
(<a
href="https://redirect.github.com/astral-sh/setup-uv/issues/960">#960</a>)</li>
</ul>
<h2>📚 Documentation</h2>
<ul>
<li>docs: update version references to v8.3.2 @<a
href="https://github.com/apps/github-actions">github-actions[bot]</a>
(<a
href="https://redirect.github.com/astral-sh/setup-uv/issues/949">#949</a>)</li>
</ul>
<h2>⬆️ Dependency updates</h2>
<ul>
<li>chore(deps): roll up Dependabot updates <a
href="https://github.com/eifinger"><code>@​eifinger</code></a> (<a
href="https://redirect.github.com/astral-sh/setup-uv/issues/970">#970</a>)</li>
<li>chore(deps): roll up Dependabot updates <a
href="https://github.com/eifinger"><code>@​eifinger</code></a> (<a
href="https://redirect.github.com/astral-sh/setup-uv/issues/962">#962</a>)</li>
</ul>
<h2>v8.3.2 🌈 update known checksums for 0.11.28</h2>
<h2>Changes</h2>
<p>Just a maintenance release</p>
<h2>🧰 Maintenance</h2>
<ul>
<li>chore: update known checksums for 0.11.28 @<a
href="https://github.com/apps/github-actions">github-actions[bot]</a>
(<a
href="https://redirect.github.com/astral-sh/setup-uv/issues/947">#947</a>)</li>
</ul>
<h2>📚 Documentation</h2>
<ul>
<li>docs: update version references to v8.3.1 @<a
href="https://github.com/apps/github-actions">github-actions[bot]</a>
(<a
href="https://redirect.github.com/astral-sh/setup-uv/issues/946">#946</a>)</li>
</ul>
<h2>⬆️ Dependency updates</h2>
<ul>
<li>chore: roll up Dependabot updates <a
href="https://github.com/eifinger"><code>@​eifinger</code></a> (<a
href="https://redirect.github.com/astral-sh/setup-uv/issues/948">#948</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="c771a70e62"><code>c771a70</code></a>
chore(deps): roll up Dependabot updates (<a
href="https://redirect.github.com/astral-sh/setup-uv/issues/970">#970</a>)</li>
<li><a
href="2f537ca87c"><code>2f537ca</code></a>
chore: update known checksums for 0.11.30 (<a
href="https://redirect.github.com/astral-sh/setup-uv/issues/968">#968</a>)</li>
<li><a
href="2269552d54"><code>2269552</code></a>
Speed up version client by partial response reads (<a
href="https://redirect.github.com/astral-sh/setup-uv/issues/807">#807</a>)</li>
<li><a
href="47a7f4fb2e"><code>47a7f4f</code></a>
Change <code>prune-cache</code> default to <code>false</code> (<a
href="https://redirect.github.com/astral-sh/setup-uv/issues/967">#967</a>)</li>
<li><a
href="71966eff34"><code>71966ef</code></a>
chore(deps): roll up Dependabot updates (<a
href="https://redirect.github.com/astral-sh/setup-uv/issues/962">#962</a>)</li>
<li><a
href="f12b1f0a84"><code>f12b1f0</code></a>
fix: fall back to distribution ID when os-release has no version field
(<a
href="https://redirect.github.com/astral-sh/setup-uv/issues/961">#961</a>)</li>
<li><a
href="ecd24dd710"><code>ecd24dd</code></a>
chore: update known checksums for 0.11.29 (<a
href="https://redirect.github.com/astral-sh/setup-uv/issues/960">#960</a>)</li>
<li><a
href="6a19136684"><code>6a19136</code></a>
docs: update version references to v8.3.2 (<a
href="https://redirect.github.com/astral-sh/setup-uv/issues/949">#949</a>)</li>
<li><a
href="11f9893b08"><code>11f9893</code></a>
chore: roll up Dependabot updates (<a
href="https://redirect.github.com/astral-sh/setup-uv/issues/948">#948</a>)</li>
<li><a
href="f798556032"><code>f798556</code></a>
docs: update version references to v8.3.1 (<a
href="https://redirect.github.com/astral-sh/setup-uv/issues/946">#946</a>)</li>
<li>Additional commits viewable in <a
href="37802adc94...c771a70e62">compare
view</a></li>
</ul>
</details>
<br />

Updates `taiki-e/install-action` from 2.85.3 to 2.85.7
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/taiki-e/install-action/releases">taiki-e/install-action's
releases</a>.</em></p>
<blockquote>
<h2>2.85.7</h2>
<ul>
<li>
<p>Update <code>wasmtime@latest</code> to 47.0.3.</p>
</li>
<li>
<p>Update <code>uv@latest</code> to 0.12.1.</p>
</li>
<li>
<p>Update <code>rclone@latest</code> to 1.75.0.</p>
</li>
<li>
<p>Update <code>kingfisher@latest</code> to 1.110.0.</p>
</li>
</ul>
<h2>2.85.6</h2>
<ul>
<li>
<p>Update <code>wasm-tools@latest</code> to 1.255.0.</p>
</li>
<li>
<p>Update <code>tombi@latest</code> to 1.2.5.</p>
</li>
<li>
<p>Update <code>mise@latest</code> to 2026.7.18.</p>
</li>
<li>
<p>Update <code>cargo-neat@latest</code> to 0.5.3.</p>
</li>
<li>
<p>Update <code>cargo-crap@latest</code> to 0.4.0.</p>
</li>
</ul>
<h2>2.85.5</h2>
<ul>
<li>
<p>Update <code>uv@latest</code> to 0.12.0.</p>
</li>
<li>
<p>Update <code>syft@latest</code> to 1.50.0.</p>
</li>
<li>
<p>Update <code>sccache@latest</code> to 0.17.0.</p>
</li>
<li>
<p>Update <code>mise@latest</code> to 2026.7.16.</p>
</li>
</ul>
<h2>2.85.4</h2>
<ul>
<li>
<p>Update <code>uv@latest</code> to 0.11.33.</p>
</li>
<li>
<p>Update <code>mise@latest</code> to 2026.7.15.</p>
</li>
<li>
<p>Update <code>biome@latest</code> to 2.5.6.</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/taiki-e/install-action/blob/main/CHANGELOG.md">taiki-e/install-action's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<p>All notable changes to this project will be documented in this
file.</p>
<p>This project adheres to <a href="https://semver.org">Semantic
Versioning</a>.</p>
<!-- raw HTML omitted -->
<h2>[Unreleased]</h2>
<h2>[2.85.11] - 2026-08-09</h2>
<ul>
<li>
<p>Update <code>zola@latest</code> to 0.23.2.</p>
</li>
<li>
<p>Update <code>wasm-bindgen@latest</code> to 0.2.127.</p>
</li>
<li>
<p>Update <code>uv@latest</code> to 0.12.3.</p>
</li>
<li>
<p>Update <code>osv-scanner@latest</code> to 2.5.0.</p>
</li>
<li>
<p>Update <code>mise@latest</code> to 2026.8.3.</p>
</li>
<li>
<p>Update <code>kingfisher@latest</code> to 1.112.0.</p>
</li>
<li>
<p>Update <code>editorconfig-checker@latest</code> to 3.10.0.</p>
</li>
</ul>
<h2>[2.85.10] - 2026-08-07</h2>
<ul>
<li>
<p>Update <code>uv@latest</code> to 0.12.2.</p>
</li>
<li>
<p>Update <code>tombi@latest</code> to 1.2.7.</p>
</li>
<li>
<p>Update <code>cosign@latest</code> to 3.1.3.</p>
</li>
<li>
<p>Update <code>coreutils@latest</code> to 0.10.0.</p>
</li>
<li>
<p>Update <code>cargo-rdme@latest</code> to 2.2.0.</p>
</li>
<li>
<p>Update <code>cargo-crap@latest</code> to 0.4.3.</p>
</li>
</ul>
<h2>[2.85.9] - 2026-08-06</h2>
<ul>
<li>
<p>Update <code>zola@latest</code> to 0.23.1.</p>
</li>
<li>
<p>Update <code>wild@latest</code> to 0.10.0.</p>
</li>
<li>
<p>Update <code>mise@latest</code> to 2026.8.2.</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="67729d5c41"><code>67729d5</code></a>
Release 2.85.7</li>
<li><a
href="d247d7efe4"><code>d247d7e</code></a>
Update wasmtime manifest</li>
<li><a
href="9197a82bb7"><code>9197a82</code></a>
Update zizmor manifest</li>
<li><a
href="68f6cd570d"><code>68f6cd5</code></a>
Update <code>wasmtime@latest</code> to 47.0.3</li>
<li><a
href="377ee3f6a0"><code>377ee3f</code></a>
Update <code>uv@latest</code> to 0.12.1</li>
<li><a
href="8724fbfce1"><code>8724fbf</code></a>
Update <code>rclone@latest</code> to 1.75.0</li>
<li><a
href="8d0062e663"><code>8d0062e</code></a>
Update mise manifest</li>
<li><a
href="28977a596b"><code>28977a5</code></a>
Update <code>kingfisher@latest</code> to 1.110.0</li>
<li><a
href="b951679bfc"><code>b951679</code></a>
Update cargo-semver-checks manifest</li>
<li><a
href="1beb33eee6"><code>1beb33e</code></a>
Release 2.85.6</li>
<li>Additional commits viewable in <a
href="18b1216eba...67729d5c41">compare
view</a></li>
</ul>
</details>
<br />

Updates `pypa/gh-action-pypi-publish` from 1.14.1 to 1.14.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/pypa/gh-action-pypi-publish/releases">pypa/gh-action-pypi-publish's
releases</a>.</em></p>
<blockquote>
<h2>v1.14.2</h2>
<!-- raw HTML omitted -->
<h2>🛠️ Urgh… Another release!? Again? Explain yourself!</h2>
<p>Looking at the diff, you'll only witness updates across the
dependency tree. That's it! It's not a security fix or anything like
that even, no. But you'll want this update.</p>
<blockquote>
<p>[!tip]
So what <em>most</em> people will find useful is <a
href="https://github.com/takluyver"><code>@​takluyver</code></a><a
href="https://github.com/sponsors/takluyver">💰</a>'s update of Twine to
v7 that we use internally (<a
href="https://redirect.github.com/pypa/gh-action-pypi-publish/issues/416">#416</a>).
This version will let them upload their sdists and wheels containing
core packaging metadata v2.5 to (Test)PyPI.</p>
</blockquote>
<h2>🧐 Tell me why..</h2>
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<p>TL;DR non-pure-python projects with C-extensions tend to have dozens
(sometimes hundreds) wheels to upload to PyPI per release. They are
often quite big and take time to transfer over the network. People
started noticing problems and coming up with DIY sharding workarounds
like <a
href="https://redirect.github.com/aio-libs/aiohttp/pull/13226">aio-libs/aiohttp#13226</a>
around July 23.
On this date, projects with a good amount of bytes to publish would
start getting timeouts 5 minutes after the PyPI publishing job begun.
The same job that worked just fine before.</p>
<p>I had to start pinging upstream library and ecosystem people, on
GitHub and privately, to start making sense of what was happening.
Eventually, we collectively concluded that GitHub must've shortened the
lifetime of their OIDC identity — it seems to have used to be 10 minutes
long (at some point in the past) and is now 5 minutes, apparently. It's
not documented clearly, and we have not been able to get any clarity by
attempting to contact GitHub through private channels, using personal
connections.</p>
<p>Over the course of investigation, <a
href="https://github.com/facutuesca"><code>@​facutuesca</code></a><a
href="https://github.com/sponsors/facutuesca">💰</a> found and fixed a
related underlying cache invalidation bug in <a
href="https://redirect.github.com/sigstore/sigstore-python/pull/1838">sigstore/sigstore-python#1838</a>,
which he then coordinated propagation through the dependency chain
updates in sigstore-python, pypi-attestations, gh-action-pypi-publish
and gh-action-sigstore-python.</p>
<p>Mike's also discovered that Sigstore's Rekor slowdown seems to have
become the main contributing cause of the last week's incident. He's
collected some data to support this claim: <a
href="https://publishing-five-minute-timeout.tiiny.site">https://publishing-five-minute-timeout.tiiny.site</a>.</p>
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<h2>🫶 New Contributors</h2>
<ul>
<li><a
href="https://github.com/davidbrochart"><code>@​davidbrochart</code></a>
made their first contribution in <a
href="https://redirect.github.com/pypa/gh-action-pypi-publish/issues/415">#415</a></li>
<li><a href="https://github.com/takluyver"><code>@​takluyver</code></a>
made their first contribution in <a
href="https://redirect.github.com/pypa/gh-action-pypi-publish/issues/416">#416</a></li>
</ul>
<p><strong>🪞 Full Diff</strong>: <a
href="https://github.com/pypa/gh-action-pypi-publish/compare/v1.14.1...v1.14.2">https://github.com/pypa/gh-action-pypi-publish/compare/v1.14.1...v1.14.2</a></p>
<p><strong>🧔‍♂️ Release Manager:</strong> <a
href="https://github.com/sponsors/webknjaz"><code>@​webknjaz</code></a>
<a href="https://stand-with-ukraine.pp.ua">🇺🇦</a></p>
<p><strong>🙏 Special Thanks</strong> to <a
href="https://github.com/davidbrochart"><code>@​davidbrochart</code></a><a
href="https://github.com/sponsors/davidbrochart">💰</a> and <a
href="https://github.com/Dreamsorcerer"><code>@​Dreamsorcerer</code></a><a
href="https://github.com/sponsors/Dreamsorcerer">💰</a> for turning my
attention (in <a
href="https://redirect.github.com/pypa/gh-action-pypi-publish/issues/415">#415</a>
and in private) to the newly surfaced corner case in GitHub's behavior
that only affected a narrow category of projects while many others
remained blissfully unaware. <a
href="https://github.com/bdraco"><code>@​bdraco</code></a><a
href="https://github.com/sponsors/bdraco">💰</a> came up with a DIY
sharding workaround for aiohttp that served as a demo for other
projects. <a
href="https://github.com/miketheman"><code>@​miketheman</code></a><a
href="https://github.com/sponsors/miketheman">💰</a> confirmed the
Warehouse-side details. Also, <a
href="https://github.com/jku"><code>@​jku</code></a><a
href="https://github.com/sponsors/jku">💰</a> and <a
href="https://github.com/woodruffw"><code>@​woodruffw</code></a><a
href="https://github.com/sponsors/woodruffw">💰</a> helped work through,
review and release the Sigstore ecosystem upstream libs.</p>
<p><strong>💬 Discuss</strong> <a
href="https://bsky.app/profile/did:plc:ve6s3mxkefjaxty3m4fdqumn/post/3mrsqy2xba22j">on
Bluesky 🦋</a>, <a
href="https://mastodon.social/@webknjaz/117005132816750073">on Mastodon
🐘</a> and [on GitHub][release discussion].</p>
<p>[![GH Sponsors badge]][GH Sponsors URL]</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="dc37677b2e"><code>dc37677</code></a>
Merge pull request <a
href="https://redirect.github.com/pypa/gh-action-pypi-publish/issues/417">#417</a>
from trail-of-forks/ft/bump-deps</li>
<li><a
href="8b2f23418f"><code>8b2f234</code></a>
Bump <code>pypi-attestations</code> and <code>sigstore</code></li>
<li><a
href="78b72dbfed"><code>78b72db</code></a>
Merge pull request <a
href="https://redirect.github.com/pypa/gh-action-pypi-publish/issues/416">#416</a>
from takluyver/twine-v7</li>
<li><a
href="92f4d2a159"><code>92f4d2a</code></a>
Update twine to v7</li>
<li>See full diff in <a
href="ba38be9e46...dc37677b2e">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Abdo <abdo@abdnh.net>
2026-08-25 21:02:52 +03:00
Sadra
7e84d98d49 docs: sync post-migration manual updates (#5393)
## Linked issue (required)

Closes #5392

## Summary / motivation (required)

Ports accepted manual updates that landed in the legacy
`ankitects/anki-manual` repository after the unified documentation site
was created:

- sync-server credential setup from `c73d6a0`
- generic search-engine wording and corrected links from `d39ce8e`
- multi-card cloze syntax and the corrected GNOME link from `b230826`

This keeps the canonical English manual current before adding the
Persian translation based on the same source revision.

## Steps to reproduce (required, use N/A if not applicable)

N/A

## How to test (required)

### Checklist (minimum)

- [x] Ran an equivalent documentation-focused check (`git diff
--check`).
- [x] Tests are not applicable to this documentation-only content sync.

### Details

The six changed MDX files were parsed successfully with the Mintlify MDX
parser during migration preparation. The repository's Docs Site workflow
will run the authoritative Mintlify validation and accessibility checks
on this PR.

## Before / after behavior (optional)

The unified manual was missing several updates already accepted in the
legacy manual repository. The corresponding pages now include them.

## Risk / compatibility / migration (optional)

Documentation-only; no runtime behavior changes.

## UI evidence (required for visual changes; otherwise N/A)

N/A

## Scope

- [x] This PR is focused on one change (no unrelated edits).
2026-08-25 18:03:15 +01:00