23.10
ankitects/anki23.10Oct 31, 2023by dae
AI Summary
This major release updates Anki to Qt 6, introduces the FSRS scheduling algorithm, and adds built-in image occlusion support. It also includes performance improvements and a new version numbering scheme.
Key Highlights
- Migration to Qt 6 and new versioning scheme (year.month)
- Integration of FSRS (Free Spaced Repetition Scheduler) for improved learning
- Built-in image occlusion notetype for active recall
- Performance improvements and graphical driver customization
Breaking Changes
- Support for the v2 scheduler has been dropped
- Add-ons require updates for Qt 6 compatibility
- .apkg exports default to new format
New Features
- Image occlusion support
- FSRS integration
- Qt 6 driver customization
- .apkg merge support
Full Release Notes
## Notable changes * Anki's version numbering scheme has changed to year.month(.patch). * Quite a few add-ons will need updates to support the Qt 6 version of this release. Some [porting notes](https://forums.ankiweb.net/t/porting-tips-for-anki-23-10/35916) are available. * Support for FSRS (which improves upon the scheduling provided by SM-2) is now integrated into Anki. You can compute the model weights directly inside Anki, and no longer need to use custom scheduling. If you have previously used FSRS, please delete the text in the custom scheduling section before enabling FSRS, and ensure the helper add-on has been updated to the 23.10 version if you are using it. By @L-M-Sherlock with help from @dae and @asukaminato0721 in https://github.com/ankitects/anki/pull/2633, #2654 and https://github.com/open-spaced-repetition/fsrs-rs. * Anki now has built-in support for creating image occlusions. Select the automatically-added "Image Occlusion" notetype in the add screen to use it. Glutanimate intends to update his add-on soon to work with the new system. By @krmanik, with help from @glutanimate, @hikaru-y, @abdnh and @dae in [#2367](https://github.com/ankitects/anki/pull/2367), #2485, #2600, #2602, #2649, #2689, #2705 and more. * .apkg imports are able to merge changed notetypes, and can exclude scheduling data. By @RumovZ in https://github.com/ankitects/anki/pull/2612 * Performance improvements to things like browser loading in the official builds. * You can now customize the video driver in Qt6 in the preferences, which can help to work around graphical issues. @abdnh in https://github.com/ankitects/anki/pull/2643 * Add an option to stop the timer on answer by @abdnh in https://github.com/ankitects/anki/pull/2673 * Allow searching for missing custom data properties by @abdnh in https://github.com/ankitects/anki/pull/2626 * Support searching for custom data strings by @abdnh in https://github.com/ankitects/anki/pull/2634 * Support for the v2 scheduler has been dropped. * .apkg exports now default to the new format. * New cards can now be gathered by deck then random note. ## Smaller tweaks/fixes * Add a backend method to add notes in bulk by @abdnh in https://github.com/ankitects/anki/pull/2659 * Add ability to tab to DuplicateLink by @SteelColossus in https://github.com/ankitects/anki/pull/2646 * Add profile name in profile deletion confirmation message by @chandraiyengar in https://github.com/ankitects/anki/pull/2722 * Add Sphinx documentation generation functionality by @gsingh93 in https://github.com/ankitects/anki/pull/2720 * added Translator by @platynowy in https://github.com/ankitects/anki/pull/2653 * Allow full screen mode on new Qt6 drivers by @abdnh in https://github.com/ankitects/anki/pull/2660 * Allow saving window position when window fullscreen on Qt 6 * Better error messages when csv file is in the wrong format * Change “Delete Note” shortcut to cmd+backspace by @montyevans in https://github.com/ankitects/anki/pull/2614 * Check DB now fixes invalid UTF-8 in tags. * Close import log page on error by @abdnh in https://github.com/ankitects/anki/pull/2639 * Display a more friendly message when one or more add-ons fail at startup * Do not show `[object Object]` in import log by @abdnh in https://github.com/ankitects/anki/pull/2636 * Don't rely on the presence of revlogs to decide whether deck configs should be imported. * Fix a11y issues with Badge component by @adeleke5140 in https://github.com/ankitects/anki/pull/2721 * Fix an error when repositioning tags (thanks to @abdnh) * Fix an issue caused by adding a colon to the start or end of a deck name by @swektr in https://github.com/ankitects/anki/pull/2748 * Fix answer button tooltips not reflecting configured shortcuts by @abdnh in https://github.com/ankitects/anki/pull/2657 * Fix error when closing Find Duplicates screen early by @abdnh in https://github.com/ankitects/anki/pull/2669 * Fix intermittent browser error triggered by an early resize event by @abdnh in https://github.com/ankitects/anki/pull/2671 * Fix misleading warning when changing notetype from/to cloze by @abdnh in https://github.com/ankitects/anki/pull/2744 * Fix ModuleNotFoundError: No module named 'distutils' by @virinci in https://github.com/ankitects/anki/pull/2723 * Fix pasting from external programs not working after copying text inside the editor. * Fix reversed float left/right icons * Fix some issues with undo/redo in mask editor by @hikaru-y in https://github.com/ankitects/anki/pull/2649 * Fix typo: notetypeId → noteId by @glutanimate in https://github.com/ankitects/anki/pull/2615 * Fix unable to save field dialog if certain fields are deleted by @swektr in https://github.com/ankitects/anki/pull/2663 * Fix unescaped HTML in type-in-the-answer by @abdnh in https://github.com/ankitects/anki/pull/2658 * Implemented support to audio_did_seek_relative by @evandrocoan in https://github.com/ankitects/anki/pull/2632 * Reduce shaking of bottom bar by @abdnh in https://github.com/ankitects/anki/pull/2734 * Rework media syncing to make it a little faster, and avoid duplicate errors when your password has changed. https://github.com/ankitects/anki/pull/2647 * Skip template checks in Fields screen by @abdnh in https://github.com/ankitects/anki/pull/2670 * Support AVIF by @nihil-admirari in https://github.com/ankitects/anki/pull/2630 * Support Qt.TextFormat.MarkdownText in aqt.utils by @abdnh in https://github.com/ankitects/anki/pull/2675 * The "edit current card" window is now a main window, which fixes some shortcut keys on macOS. By @abdnh in https://github.com/ankitects/anki/pull/2732 * Tooltips for CSV import and import page refactoring by @RumovZ in https://github.com/ankitects/anki/pull/2655 * Tweak browser column labels to card type, note type by @Gustaf-C in https://github.com/ankitects/anki/pull/2751 * Change export notes' parent window in card browser by @kelciour in https://github.com/ankitects/anki/pull/2761 * Fix Linux install script CWD check by @virinci in https://github.com/ankitects/anki/pull/2775 * Make it possible to silent uninstall with WinGet by @kelciour in https://github.com/ankitects/anki/pull/2757 * Refresh reviewer as the day rolls over by @abdnh in https://github.com/ankitects/anki/pull/2756 * Update to Qt 6.5.3 on Windows/Mac * Fix error on 'Previous Card Info' when deleting a note by @abdnh in https://github.com/ankitects/anki/pull/2790 * Fix HTML editor not displaying properly when expanding field by @hikaru-y in https://github.com/ankitects/anki/pull/2792 ## Notes for devs - If you wish to build Anki and have installed n2 in the past, please run tools/install-n2 before building. ## New Contributors * @montyevans made their first contribution in https://github.com/ankitects/anki/pull/2614 * @nihil-admirari made their first contribution in https://github.com/ankitects/anki/pull/2630 * @SteelColossus made their first contribution in https://github.com/ankitects/anki/pull/2646 * @platynowy made their first contribution in https://github.com/ankitects/anki/pull/2653 * @swektr made their first contribution in https://github.com/ankitects/anki/pull/2663 * @meliache made their first contribution in https://github.com/ankitects/anki/pull/2684 * @martinetd made their first contribution in https://github.com/ankitects/anki/pull/2703 * @CarloQuick made their first contribution in https://github.com/ankitects/anki/pull/2718 * @virinci made their first contribution in https://github.com/ankitects/anki/pull/2723 * @chandraiyengar made their first contribution in https://github.com/ankitects/anki/pull/2722 * @gsingh93 made their first contribution in https://github.com/ankitects/anki/pull/2720 * @user1823 made their first contribution in https://github.com/ankitects/anki/pull/2741 * @Gustaf-C made their first contribution in https://github.com/ankitects/anki/pull/2751 **Full Changelog**: https://github.com/ankitects/anki/compare/2.1.66...23.10