Notable changes:
Anki's version numbering scheme has changed to year.month(.patch).
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 #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 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 and
@dae in #2367, #2485, #2600, #2602, #2649.
.apkg imports are able to merge changed notetypes, and can exclude scheduling data. By @RumovZ in #2612
You can now customize the video driver in Qt6 in the preferences, which can help to work around graphical issues. @abdnh in #2643
Add an option to stop the timer on answer by @abdnh in #2673
Allow searching for missing custom data properties by @abdnh in #2626
Support searching for custom data strings by @abdnh in #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:
Rework media syncing to make it a little faster, and avoid duplicate errors when your password has changed. #2647
Fix pasting from external programs not working after copying text inside the editor.
Allow saving window position when window fullscreen on Qt 6
Better error messages when csv file is in the wrong format
Fix typo: notetypeId ? noteId by @glutanimate in #2615
[IO API] Create Python entry points for creating and editing IO notes by @glutanimate in #2598
Change “Delete Note” shortcut to cmd+backspace by @montyevans in #2614
Support AVIF by @nihil-admirari in #2630
Do not show [object Object] in import log by @abdnh in #2636
Close import log page on error by @abdnh in #2639
Implemented support to audio_did_seek_relative by @evandrocoan in #2632
Add ability to tab to DuplicateLink by @SteelColossus in #2646
Fix some issues with undo/redo in mask editor by @hikaru-y in #2649
added Translator by @platynowy in #2653
Tooltips for CSV import and import page refactoring by @RumovZ in #2655
Fix answer button tooltips not reflecting configured shortcuts by @abdnh in #2657
Fix unescaped HTML in type-in-the-answer by @abdnh in #2658
Allow full screen mode on new Qt6 drivers by @abdnh in #2660
Add a backend method to add notes in bulk by @abdnh in #2659
Fix unable to save field dialog if certain fields are deleted by @swektr in #2663
Fix intermittent browser error triggered by an early resize event by @abdnh in #2671
Fix error when closing Find Duplicates screen early by @abdnh in #2669
Skip template checks in Fields screen by @abdnh in #2670
Support Qt.TextFormat.MarkdownText in aqt.utils by @abdnh in #2675