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
- Make 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
- Correct "1 tags" to "1 tag" by @Arthur-Milchior in #4967
- Prevent error when merging a notetype with duplicate fields in rare cases. By @krMaynard in #5070
- Set minimum height for deck options by @nikosavola in #5062
- Improve support of newlines in browser search by @jcznk in #5045
- Normalize whitespace in search query parser by @user1823 in #4853
- Cache FSRS config flags in CardQueues to avoid per-answer DB reads by @user1823 in #4755
- Use fsrs config bool for set due date by @Luc-Mcgrady in #4792
- Fix race condition in media sync handling by @helmutcarter in #4635
- Omit empty "Error details:" line from network errors by @criticalAY in #5120
Documentation Changes
- Remove duplicate intro in README by @abdnh in #5003
- Use "Getting started" as manual index page by @Luc-Mcgrady in #5013
- Set up Prettier for formatting Mintlify website by @Luc-Mcgrady in #5020
- Add translation support for docs website by @abdnh in #5052
- Fix relative links in docs by @Luc-Mcgrady in #5048
- Re-add missing doc pages by @Luc-Mcgrady in #5049
- Replace certain doc pages with redirects by @Luc-Mcgrady in #5065
Development Changes
- Add unit tests for notetype service layer by @fernandolins in #5014
- Add unit and integration tests for search service by @fernandolins in #5024
- Fix failing syncserver Docker build by @konstantintutsch in #5021
- Bump rust builder and base image for syncserver by @RedPine404 in #5036
- Add hook system tests (closes #4931) by @roostwp07 in #5023
- Add service-layer unit tests for scheduler and cards (#4924) by @fernandolins in #5042
- Bump complexipy by @abdnh in #5058
- Do not fail CI if Complexipy fails by @abdnh in #5060
- Disable MSI compression on debug build by @abdnh in #5063
- Fix flaky scheduler test by @krMaynard in #5030
- Use built-in --healthcheck instead of wget in Dockerfile by @jeankhawand in #5044
- Update allowed origins for recent Chromium by @abdnh in #5080
- Move complexipy out of Ninja checks by @abdnh in #5082
- Add basic tests for sound module and mpv binary (closes #5016) by @roostwp07 in #5066
- Clean up bot noise when linked issue is added by @fernandolins in #5089
- Bump Rust dependencies for advisories by @fernandolins in #5090
- Strengthen test coverage for audio playback by @fernandolins in #5087
- Skip MpvManager test on Linux by @abdnh in #5094
- Increase mpv timeout in test by @abdnh in #5098
- Use rust-lld on Windows by @user1823 in #4650
- Handle cross-repo refs and exempt org members from linked-issue check by @fernandolins in #5113
- Fix flaky e2e editor tests caused by premature webServer readiness by @fernandolins in #5116
- Add core FTL strings for browse card-row status chips in AnkiMobile by @ianoff in #5111
- Fix invalid GHA permission in check-linked-issue.yml by @abdnh in #5118
- Add new translation string for "No Updates available" by @abdnh in #5122
- Disallow Qt translation strings in Rust/TS code by @abdnh in #5127
- Fix advisory RUSTSEC-2026-0204 by @abdnh in #5129
- Update Briefcase by @abdnh in #5138
- Use prebuilt binaries for cargo-llvm-cov and cargo-nextest by @iamllama in #5141
- Normalize GitHub noreply emails for all contributors by @abdnh in #5159
- Fix some issues in the sync_translations.py script by @abdnh in #5161
- Bump ammonia and spin for cargo deny check by @iamllama in #5192
- Run CI checks on arm linux, intel mac, and arm windows by @fernandolins in #5102
- Re-verify PR state before auto-closing to prevent race conditions by @fernandolins in #5213
- Add browse chip search strings for AnkiMobile by @ianoff in #5137
New Contributors
- @konstantintutsch made their first contribution in #5021
- @RedPine404 made their first contribution in #5036
- @roostwp07 made their first contribution in #5023
- @krMaynard made their first contribution in #5030
- @nikosavola made their first contribution in #5062
- @iDavi made their first contribution in #4935
- @helmutcarter made their first contribution in #4635
- @marcusl07 made their first contribution in #4807
- @ianoff made their first contribution in #5111
- @criticalAY made their first contribution in #5120
- @LTimothy made their first contribution in #5143
- @DespicableGoose made their first contribution in #5115
- @xiaohan484 made their first contribution in #5142
- @aps-amboss made their first contribution in #5234
Full Changelog: 26.05...26.08