What's Changed
Add-on Compatibility Note
The following legacy modules have been removed: anki.importing and anki.exporting. See the docs for alternatives.
This affects the AnkiConnect add-on.
Notable Changes
- Fix audio playback in macOS 27 by @abdnh in #5363
- Remove Python-based legacy importing/exporting handling by @chrislongros in #5153
- Improve performance of reviewer initialization by lazy-loading MathJax by @BrayanDSO in #5171
- Fix HTML dropdowns/datepickers growing indefinitely with scaled UI on Windows by @abdnh in #5396
- Fix audio not being played automatically when attached in the editor by @JaksonSouza in #5320
- Recompute FSRS data after changing deck by @user1823 in #5339
Fixes
- Fix audio copy & paste handling in the experimental editor by @iamllama in #5337
- Hide ease when fsrs is enabled but there is no memory state by @Luc-Mcgrady in #5277
- Improve error reporting for the Tools>Check for Updates feature by @abdnh in #5295
- Update FSRS memory state when card info opened by @Luc-Mcgrady in #5326
- Fix MSI install is blocked if uninstall.exe exists at a drive root by @abdnh in #5360
- Fix MathJax lazy loading causing flickering in some templates by @iamllama in #5254
- Fix Add/Edit screens not closing in the experimental editor on some systems by @iamllama in #5373
- Treat $ literally in non-regex find&replace replacements by @krMaynard in #5216
- Fix experimental editor not playing pasted/dropped audio by @abdnh in #5329
- Fix calendar graph year navigation buttons position in RTL layouts by @iDavi in #5103
- Mirror help icon for arabic script rtl langs by @iDavi in #5105
- Mirror toggle switches in RTL layouts by @iDavi in #5214
- Apply RTL direction for some languages such as Uyghur in webview pages by @abdnh in #5274
- Set webview font size to system font size in preferences menu by @GithubAnon0000 in #5174
- Preserve scroll position after collapsing/expanding decks by @abdnh in #5378
- Separate add-on entries in Tools menu with separator by @qais8r in #5124
- Update redirected Browse Add-ons URL by @schmidhauser in #5290
- Add a plural form for the tags field label in the editor by @Arthur-Milchior in #5305
- Ensure editor is initialized before triggering browser hooks by @abdnh in #5348
- Avoid KeyError on missing Content-type header in mediasrv by @fernandolins in #5366
- Replace asserts inside except clauses with explicit error handling by @fernandolins in #5365
- Use 'Add Media' string for the title of the media file picker in the editor by @abdnh in #5402
Documentation Changes
- Update Persian manual translation link by @MSadraShakouri in #5405
- Add tip to disable "check on save" in Rust analyzer on low-end machines by @user1823 in #4489
- Clarify docs license by @abdnh in #5292
- Exclude docs contributions from BSD license check by @SzilvasiPeter in #5267
- Fix typos in #5158
- Document the import_anki_package and export_anki_package APIs by @roostwp07 in #5328
- Sync post-migration manual updates by @MSadraShakouri in #5393
- Replace docs/ with symlinks by @Luc-Mcgrady in #5031
Development Changes
- Reduce dependabot noise with quarterly schedule and major grouping by @fernandolins in #5280
- Document dependabot update process by @fernandolins in #5370
- Unhook AnkiWebView when destroyed by @iamllama in #5255
- Fix legacy editor's media buttons not using the legacy routines by @abdnh in #5330
- Update VS Code's settings.json by @abdnh in #5303
- Configure mypy extension for VS Code by @abdnh in #5317
- Add browse empty/error state i18n strings by @ianoff in #5263
- Set CARGO_TARGET_DIR for coverage-rust scripts by @abdnh in #5266
- Replace use of EmbarkStudios/cargo-deny-action by @iamllama in #5180
- Update Python test coverage threshold by @abdnh in #5299
- Replace prepare-release workflow with local script (closes #5273) by @roostwp07 in #5288
- Use cargo-nextest for Rust coverage tests (closes #5162) by @roostwp07 in #5169
- Add tests for FSRS simulator by @Luc-Mcgrady in #5150
- Add tests for fixing incorrect last review time entries by @Luc-Mcgrady in #5146
- Do not let ftl string copy/move land new strings in deprecated sections by @ianoff in #5332
- Add portability fixes for FreeBSD by @chrislongros in #5300
- Apply a consistent Cargo profile in CI by @abdnh in #5133
- Fix missing issue bot does not allow url in linked issues by @Luc-Mcgrady in #5287
- Move .github/scripts/*.py to tools/ by @abdnh in #5375
- Get linked issues using the GitHub API by @abdnh in #5381
- Update e2e testing docs by @abdnh in #5331
- Fix minilints exclusion for docs changes is not working by @abdnh in #5315
- Add
rust-analyzercomponent to .rust-toolchain.toml by @abdnh in #5260 - Set
strict_optional = Truefor editor_legacy.py by @abdnh in #5367 - Add missing dependencies to ninja's cog actions by @abdnh in #5341
- Bump rust toolchain to 1.97.1 by @iamllama in #5316
- Bump the actions group across 1 directory with 14 updates by @dependabot[bot] in #5272
- Bump vitest from 3.2.4 to 3.2.6 by @dependabot[bot] in #4973
- Bump tar from 7.5.7 to 7.5.22 by @dependabot[bot] in #5239
- Drop vulnerable h2 0.3.x, update h2 to 0.4.17 (RUSTSEC-2026-0258) by @fernandolins in #5376
- Bump the python-minor-patch group across 1 directory with 14 updates by @dependabot[bot] in #5310
- Bump the actions group with 3 updates by @dependabot[bot] in #5311
- Bump anki-audio to 0.2.3 by @abdnh in #5409
New Contributors
- @qais8r made their first contribution in #5124
- @schmidhauser made their first contribution in #5290
- @SzilvasiPeter made their first contribution in #5267
- @JaksonSouza made their first contribution in #5320
- @MSadraShakouri made their first contribution in #5405
Full Changelog: 26.08.1...26.09b1