GitHub

26.08.1

26.08

Installing

What's Changed

Changes since Beta 2

  • Fix some add-on editor buttons not working after multiple clicks by @abdnh in #5220
  • Fix errors after add-on webviews are deleted by @aps-amboss in #5234
  • Fix some inline styles not being filtered out in editor image pastes by @abdnh in #5236
  • Remove unused plaintext paste handling in the editor by @abdnh in #5237

New Features

  • Update to fsrs-rs 6.6.1, bringing performance improvements. By @asukaminato0721 in #4956
  • An experimental rework of the editor by @abdnh in #4029 can be enabled from Preferences>Experiments. The main goal is to make it possible to integrate the editor into mobile clients. May affect addon compatibility.
  • A new Experiments section has been added to the Preferences screen. This is intended to bring experimental features such as the new editor early to users for testing and feedback. By @Luc-Mcgrady in #5057

Other Notable Changes

  • Bump minimum required macOS version to 13.0 by @abdnh in #5010
  • Fix all-users MSI installation failing to detect existing installation by @abdnh in #5038
  • Do not block MSI install if registry points to a deleted old elevated install by @abdnh in #5054
  • Build Linux fcitx5 plugin against the bundled Qt as a potential fix for startup crashes in 26.05. By @xiaohan484 in #5142
  • Remove the uv launcher and old packaging code by @abdnh in #5019
  • Strip FSRS parameters from deck configs on export without scheduling by @chrislongros in #4721
  • Avoid interval FSRS regressions from fuzz by @Tfc538 in #4826
  • Check Database now fixes incorrect last review time entries in cards by @user1823 in #4648
  • Improve FSRS optimal parameters message by @Expertium in #5181
  • Fix Anki reporting that a full sync is required for new empty collections by @abdnh in #5112
  • Do not modify collection if preferences haven't changed by @abdnh in #5135
  • Follow Anki's language preference in webview and native form controls by @iDavi in #4935
  • Fix note editor jumps html focus by @Yuukidiv in #4687
  • Fix text input refocues when list item shortcuts are pressed by @Luc-Mcgrady in #5007
  • Fix empty card detection when template uses special field conditionals by @marcusl07 in #4807
  • Fix image occlusion masks lost when adding notes in rare cases. By @LTimothy in #5155
  • Fix text labels in image occlusion notes breaking if they contain special characters. By @iamllama in #5206
  • Fix Card Info not updating on repeat by @DespicableGoose in #5115
  • Do not close deck config screen when optimizing all presets by @Luc-Mcgrady in #4981
  • Clean up FindDuplicatesDialog's webview on close to prevent theme-change crash by @LTimothy in #5143

Other Improvements

Documentation Changes

Development Changes

New Contributors

Read more

26.08b2

Pre-release

Notable Changes

  • Fix broken tags editor in the note editor. By @iamllama in #5151
  • Build Linux fcitx5 plugin against the bundled Qt as a potential fix for startup crashes in 26.05. By @xiaohan484 in #5142
  • Prevent error when merging a notetype with duplicate fields in rare cases. By @krMaynard in #5070
  • Fix image occlusion masks lost when adding notes in rare cases. By @LTimothy in #5155
  • Lazy-load MathJax in the reviewer. By @BrayanDSO in #5171
  • Fix text labels in image occlusion notes breaking if they contain special characters. By @iamllama in #5206

Other Changes

  • CI: Use prebuilt binaries for cargo-llvm-cov and cargo-nextest by @iamllama in #5141
  • CI: Normalize GitHub noreply emails for all contributors by @abdnh in #5159
  • CI: Fix some issues in the sync_translations.py script by @abdnh in #5161
  • CI: Bump ammonia and spin for cargo deny check by @iamllama in #5192

New Contributors

Full Changelog: 26.08b1...26.08b2

26.08b1

Pre-release

What's Changed

New Features

  • Update to fsrs-rs 6.6.1, bringing performance improvements. By @asukaminato0721 in #4956
  • Strip FSRS parameters from deck configs on export without scheduling by @chrislongros in #4721
  • An experimental rework of the editor by @abdnh in #4029 can be enabled from Preferences>Experiments. The main goal is to make it possible to integrate the editor into mobile clients. May affect addon compatibility.
  • A new Experiments section has been added to the Preferences screen. This is intended to bring experimental features such as the new editor early to users for testing and feedback. By @Luc-Mcgrady in #5057

Other Changes

New Contributors

Full Changelog: 26.05...26.08b1

26.05

What's Changed

New Installer

This release replaces the terminal-based launcher introduced in 25.07 with a more standard installation process:

  • Anki no longer shows a terminal on installation/update.
  • Installation no longer requires network access.
  • Updates can be installed using Tools>Check For Updates.
  • A standard MSI installer is provided for Windows.
  • A Windows ARM64 build is available.
  • The macOS builds require macOS 13 or later.
  • The Linux x86_64 build requires glibc 2.35+.
  • The Linux aarch64 build requires glibc 2.39+.
  • The minimum supported Python version is now 3.10 (The official builds still ship Python 3.13).
  • Qt has been updated to 6.11

Note: The Tools>Upgrade/Downgrade option in 25.07+ cannot be used to upgrade to this version due to packaging changes.

By @abdnh @andrewsanchez @fernandolins @Luc-Mcgrady @iamllama in #4629

Documentation Improvements

FSRS/Scheduling Changes

Other Notable Changes

  • Show saved custom colours in the image-occlusion fill tool colour picker on mobile by @iamllama in #4348
  • Add support for tag:nc:... (case-insensitive) tag searches by @iamllama in #4344
  • Treat newlines as term breaks in search queries by @eliasjlara in #4336
  • Add syntax for multi-card cloze deletions by @tfpgh in #4333
  • Remember image-occlusion translucency toggle between sessions by @dspilleb in #4366
  • Fix "Restore to Default" picking the wrong template for basic notetype variants by @arold0 in #4382
  • Let the "Limit to" spin box grow with its content in the filtered deck dialog by @jcznk in #4398
  • Fix unescaped HTML in correct type-in answers by @Eltaurus-Lt in #4407
  • Always show text boxes on image-occlusion cards during review by @jariji in #4387
  • Fix FindDuplicates dialog size exceeding screen bounds by @Nechaiter in #4426
  • Fall back to Apple Samantha for TTS on macOS when no requested voice matches by @leedoughty in #4420
  • Allow variable field counts per row when CSV import uses a notetype column by @iamllama in #4421
  • Improve handling of media files differing only in letter case by @iamllama in #4355 #4851 #4860 #4861 #4852
  • Keep non-breaking spaces outside cloze deletions when wrapping text by @leedoughty in #4446
  • Start decoding images immediately by @SelfishPig in #4471
  • Revert ForceDarkMode change that interfered with Anki's native dark theme by @GithubAnon0000 in #4483
  • Apply the nightMode class to the editor in dark mode so custom HTML styles correctly by @leedoughty in #4473
  • Auto-select the relevant note type in the Manage Note Types dialog after add/rename by @Arthur-Milchior in #4479
  • Fix field rename by matching on the old name rather than field position by @Arthur-Milchior in #4488
  • Allow horizontal scrolling on the deck options screen so AnkiDroid handles large font sizes by @defkorean in #4501
  • Fix {{#Tags}} conditional not triggering card generation by @Yuukidiv in #4533
  • Silence console spam from image decoding errors during preload by @SelfishPig in #4534
  • Add note type and GUID column headers to deleted.txt for easier reimport by @hnvy in #4454
  • Apply Ctrl/Cmd+W window-closing shortcut globally to all dialogs by @beyondcompute in #4475
  • Fix overlapping date ranges in graphs when "all history" is selected by @JMannervik in #4430
  • Add a preference to disable the startup add-on update check by @SecretX33 in #4478
  • Add dir="auto" to cards so text direction no longer depends on the UI language by @MoamenAbdelsattar in #4428
  • Accept images with capitalized extensions in the Browse "Attach" dialog by @miggazElquez in #4474
  • Re-enable WindowsRT TTS player on Windows 11 by @abdnh in #4512
  • Fix HTML editor collapsing after toggling sticky fields and adding a note by @Yuukidiv in #4566
  • Fix image occlusion editor layout for right-to-left languages by @MoamenAbdelsattar in #4594
  • Speed up tag autocomplete by using the Rust backend's complete_tag() by @user1823 in #4626
  • Detect cloze fields nested inside conditionals during card generation by @maskady in #4651
  • Prompt to save unsaved changes when closing or switching debug console scripts by @Arthur-Milchior in #4625
  • Roll back the sidebar tag name when the backend rejects a rename by @chrislongros in #4718
  • Improve word wrapping on the Deck Options screen for narrow viewports by @defkorean in #4558
  • Update to mpv 0.41.0 by @abdnh in #4913
  • Bundle Fcitx plugin on Linux by @abdnh in #4886
  • Install required Linux system dependencies in install.sh by @abdnh in #4895
  • Render sync server messages as rich text by @timarnoldev in #4560

Other Improvements

  • Fix progress bar overflow crash when one-way uploads exceed 2 GB by @matbe766 in #4354
  • Fix fatal error from rapidly double-clicking the Add button by @arold0 in ht...

Read more

26.05b2

Pre-release

Note: If you're on 26.05b1, you can also get the update using Tools > Check for Updates

What's Changed

Notable Changes

  • Update to mpv 0.41.0 and fix audio playback/recording on Windows ARM by @abdnh in #4913
  • feat: expose setParameterUnlockClickTimeoutMs by @Luc-Mcgrady in #4810
  • fix: add fallback value for startMemorized by @Luc-Mcgrady in #4796
  • fix: MSI installer fails if older installation is in Program Files by @abdnh in #4819
  • fix: optimize Briefcase bundle size by @abdnh in #4822
  • fix: regex error fix by @chiragjagga in #4837
  • fix(export): preserve browser focus after note export by @Tfc538 in #4845
  • feat: Distribute compiled sources in Briefcase bundle by @abdnh in #4856
  • fix(import): avoid case-folding already existing media filenames by @iamllama in #4851
  • fix(import): force lowercasing before adding hash suffix as well by @iamllama in #4860
  • fix: Avoid loading unused cacert.pem by @abdnh in #4858
  • fix: border color of browser cells in macOS by @abdnh in #4872
  • feat: Bundle Fcitx plugin by @abdnh in #4886
  • fix(check-media): case-sensitivity in unused/missing check by @iamllama in #4861
  • feat(check-media): case-insensitively dedupe media filenames by @iamllama in #4852
  • feat: Install required system dependencies in install.sh by @abdnh in #4895
  • fix: app unresponsive after clicking on Help button in modal dialogs by @abdnh in #4897
  • fix: Limit taskbar pinning fix to launcher builds by @abdnh in #4849
  • refactor: import some modules lazily by @abdnh in #4831
  • fix: Strip HTML from note type names in Empty Cards by @abdnh in #4902
  • feat: render sync server messages as rich text by @timarnoldev in #4560
  • fix: Parameterize inputs of prop:cd* queries by @abdnh in #4905
  • fix: Validate add-on's zip entries by @abdnh in #4901
  • feat: Allow MSI installer downgrades by @abdnh in #4909

Developer Improvements

New Contributors

Full Changelog: 26.05b1...26.05b2

26.05b1

Pre-release

What's Changed

New Installer

This release replaces the UV-based launcher introduced in 25.07 with a more standard installation process using Briefcase for packaging:

  • Anki no longer shows a terminal on install/update.
  • Installation no longer requires network access.
  • You can install updates using Tools>Check For Updates.
  • The macOS builds require macOS 13 or later.
  • A standard MSI installer is provided for Windows.
  • A native Windows ARM64 build is now available. Audio playback/recording doesn't work, but this will be fixed in the next release.
  • The minimum supported Python version is now 3.10 (The official builds still ship Python 3.13).
  • Anki now ships with Qt 6.11
  • The Linux x86_64 build should work on glibc 2.35 or later.

FSRS/Scheduling changes

Other Notable Changes

  • Briefcase Installer by @andrewsanchez in #4629
  • Show saved custom colours in the image-occlusion fill tool colour picker on mobile by @iamllama in #4348
  • Add support for tag:nc:... (case-insensitive) tag searches by @iamllama in #4344
  • Treat newlines as term breaks in search queries by @eliasjlara in #4336
  • Add syntax for multi-card cloze deletions by @tfpgh in #4333
  • Remember image-occlusion translucency toggle between sessions by @dspilleb in #4366
  • Fix "Restore to Default" picking the wrong template for basic notetype variants by @arold0 in #4382
  • Let the "Limit to" spin box grow with its content in the filtered deck dialog by @jcznk in #4398
  • Fix unescaped HTML in correct type-in answers by @Eltaurus-Lt in #4407
  • Always show text boxes on image-occlusion cards during review by @jariji in #4387
  • Fix FindDuplicates dialog size exceeding screen bounds by @Nechaiter in #4426
  • Fall back to Apple Samantha for TTS on macOS when no requested voice matches by @leedoughty in #4420
  • Allow variable field counts per row when CSV import uses a notetype column by @iamllama in #4421
  • Case-fold media filenames when checking uniqueness by @iamllama in #4435
  • Keep non-breaking spaces outside cloze deletions when wrapping text by @leedoughty in #4446
  • Start decoding images immediately by @SelfishPig in #4471
  • Revert ForceDarkMode change that interfered with Anki's native dark theme by @GithubAnon0000 in #4483
  • Apply the nightMode class to the editor in dark mode so custom HTML styles correctly by @leedoughty in #4473
  • Auto-select the relevant note type in the Manage Note Types dialog after add/rename by @Arthur-Milchior in #4479
  • Fix field rename by matching on the old name rather than field position by @Arthur-Milchior in #4488
  • Allow horizontal scrolling on the deck options screen so AnkiDroid handles large font sizes by @defkorean in #4501
  • Fix {{#Tags}} conditional not triggering card generation by @Yuukidiv in #4533
  • Silence console spam from image decoding errors during preload by @SelfishPig in #4534
  • Add note type and GUID column headers to deleted.txt for easier reimport by @hnvy in #4454
  • Apply Ctrl/Cmd+W window-closing shortcut globally to all dialogs by @beyondcompute in #4475
  • Fix overlapping date ranges in graphs when "all history" is selected by @JMannervik in #4430
  • Add a preference to disable the startup add-on update check by @SecretX33 in #4478
  • Add dir="auto" to cards so text direction no longer depends on the UI language by @MoamenAbdelsattar in #4428
  • Accept images with capitalized extensions in the Browse "Attach" dialog by @miggazElquez in #4474
  • Re-enable WindowsRT TTS file player on Windows 11 by @abdnh in #4512
  • Fix HTML editor collapsing after toggling sticky fields and adding a note by @Yuukidiv in #4566
  • Fix image occlusion editor layout for right-to-left languages by @MoamenAbdelsattar in #4594
  • Speed up tag autocomplete by using the Rust backend's complete_tag() by @user1823 in #4626
  • Detect cloze fields nested inside conditionals during card generation by @maskady in #4651
  • Prompt to save unsaved changes when closing or switching debug console scripts by @Arthur-Milchior in #4625
  • Roll back the sidebar tag name when the backend rejects a rename by @chrislongros in #4718
  • Improve word wrapping on the Deck Options screen for narrow viewports by @defkorean in #4558

Developer Improvements

Read more

25.09.4

What's Changed

This is a security release. Please upgrade as soon as possible using Tools > Upgrade/Downgrade.

Importing untrusted decks (.apkg files) had the ability to read local files. This has now been fixed.

Other fixes and new features will follow in the next beta release.

Many thanks to @Bankde for the excellent report and to @abdnh, @dae, and @fernandolins for the fix! 🙏🏻

Installing

  • If you're a new user, please grab the latest launcher from https://apps.ankiweb.net
  • If you already have the 25.09 launcher, you can use Tools>Upgrade/Downgrade inside Anki.
  • If you have an older launcher/Anki, please grab the latest launcher first, as the older one may or may not work.

25.09.3

What's Changed

This is a security release. Please upgrade as soon as possible using Tools > Upgrade/Downgrade.

Anki's local media server did not sufficiently validate requests, which could allow a malicious website to read local files while Anki was running. This had the potential to affect mostly Firefox and Safari users. Chrome already restricts local network access. Thanks to the great Tavis Ormandy (@taviso) for the report.

All other fixes and new features since 25.09.2 will follow in a separate beta release.

Installing

  • If you're a new user, please grab the latest launcher from https://apps.ankiweb.net
  • If you already have the 25.09 launcher, you can use Tools>Upgrade/Downgrade inside Anki.
  • If you have an older launcher/Anki, please grab the latest launcher first, as the older one may or may not work.

25.09.2

Installing

  • If you're a new user, please grab the latest launcher from https://apps.ankiweb.net
  • If you already have the 25.09 launcher, you can use Tools>Upgrade/Downgrade inside Anki.
  • If you have an older launcher/Anki, please grab the latest launcher first, as the older one may or may not work.

What's Changed

  • Fix custom colors not saving by @iamllama in #4326
  • Decode images asynchronously during review. Please let us know if images in the review screen load faster or slower for you. By @abdnh in #4320
  • Prevent clipping for QPushButton:default:hover by @jcznk in #4323
  • Updated Dockerfile to use Ninja build system by @e-hamrin in #4321
  • Fix/Add lower review limit to health check. by @Luc-Mcgrady in #4334
  • Make timebox message translatable with flexible variable order by @snowtimeglass in #4338
  • (UI polish) Improved margins in Card Browser's "Previewer" by @jcznk in #4337

New Contributors

Full Changelog: 25.09...25.09.2

Read the original on github.com ↗