25.02

ankitects/anki25.02Feb 11, 2025by dae

AI Summary

Features IO (Image Occlusion) improvements, FSRS updates, and platform support changes (removing Qt5).

Key Highlights

  • Qt 5 builds are no longer provided
  • Intel Mac builds require macOS 12+
  • Improved IO features: drag/drop, 'Show in folder'
  • FSRS updates and simulator improvements
  • Add 'Copy template as markdown' button

Breaking Changes

  • Qt5 builds are no longer provided
  • Minimum macOS version increased to 12.0

New Features

  • Add 'Show image in folder' and 'Open image' context menu actions
  • Add drag/drop support when adding IO images
  • Add future projection to forgetting curve
  • Add support for copied image files when adding IO notes
  • Copy template as markdown button

Full Release Notes

## What's Changed

### Platform Support

- Qt 5 builds are no longer provided.
- Intel Mac builds now require macOS 12+.
- Linux builds now require glibc 2.35+.

### Features

* Add "Show image in folder" and "Open image" context menu actions for IO by @iamllama in https://github.com/ankitects/anki/pull/3779
* Add drag/drop support when adding IO images by @iamllama in https://github.com/ankitects/anki/pull/3776
* Add future projection to forgetting curve by @L-M-Sherlock in https://github.com/ankitects/anki/pull/3732
* Add support for copied image files when adding IO notes by @iamllama in https://github.com/ankitects/anki/pull/3733
* FSRS updates by @L-M-Sherlock in https://github.com/ankitects/anki/pull/3737
* Recognise and check for media referenced in <source> tags by @iamllama in https://github.com/ankitects/anki/pull/3763
* Tweaks the Dockerfile by @omarkohl in https://github.com/ankitects/anki/pull/3714, #3716, etc
* When 'add' reveals the card window, it now resets deck/notetype like close+open. By @iamllama in https://github.com/ankitects/anki/pull/3756
* Add "Copy template as markdown" button. by @Luc-Mcgrady in https://github.com/ankitects/anki/pull/3719

### Fixes

* Add "No reviews to optimize" message by @Luc-Mcgrady in https://github.com/ankitects/anki/pull/3610
* Add contributor to about.py by @gregorylearns in https://github.com/ankitects/anki/pull/3738
* Add margin to the bottom of forgetting curve by @L-M-Sherlock in https://github.com/ankitects/anki/pull/3805
* Add memorized option to FSRS simulation graph by @Luc-Mcgrady in https://github.com/ankitects/anki/pull/3655
* Add percentage to FSRS spinner by @Arthur-Milchior in https://github.com/ankitects/anki/pull/3679
* Add some unit tests by @user1823 in https://github.com/ankitects/anki/pull/3678
* Add support for html comments to template syntax by @iamllama in https://github.com/ankitects/anki/pull/3662
* Add translation strings for True Retention table by @rbrownwsws in https://github.com/ankitects/anki/pull/3745
* Added "preset" to "Optimize all" and "Optimize current" by @Expertium in https://github.com/ankitects/anki/pull/3778
* Added colour to simulator tooltip by @Luc-Mcgrady in https://github.com/ankitects/anki/pull/3692
* Added: SpinnerBox percentage symbol. by @Luc-Mcgrady in https://github.com/ankitects/anki/pull/3777
* Allow choosing filtered decks in stats by @iamllama in https://github.com/ankitects/anki/pull/3687
* Allow object to move to right edge and bottom edge and allow scroll of note fields when not using IO by @krmanik in https://github.com/ankitects/anki/pull/3630
* Apply gradient effect to forgetting curve by @OuOu2021 in https://github.com/ankitects/anki/pull/3604
* avoid warning by setting SYNC_PORT as ARG in Dockerfile by @omarkohl in https://github.com/ankitects/anki/pull/3675
* Cap preview cols to prevent stall when csv is parsed with the wrong delimiter by @iamllama in https://github.com/ankitects/anki/pull/3786
* Change font of debug console to Consolas by @user1823 in https://github.com/ankitects/anki/pull/3606
* Cleanup av_player on profile close by @kelciour in https://github.com/ankitects/anki/pull/3754
* Clear memory states during bulk action if item is None by @user1823 in https://github.com/ankitects/anki/pull/3717
* Comments for translators by @sommerluk in https://github.com/ankitects/anki/pull/3729
* Deck options without bridge by @Arthur-Milchior in https://github.com/ankitects/anki/pull/3571
* Delete y-axis titles for graphs by @Luc-Mcgrady in https://github.com/ankitects/anki/pull/3789
* Don't Exclude Suspended Cards from Retreivability Graph by @brishtibheja in https://github.com/ankitects/anki/pull/3665
* Don't treat manually scheduled cards with no reps as new cards by @user1823 in https://github.com/ankitects/anki/pull/3727
* Easy days: revisited by @jakeprobst in https://github.com/ankitects/anki/pull/3661
* Ensure data is stored in a volume in anki-sync-server Docker image by @omarkohl in https://github.com/ankitects/anki/pull/3674
* Fall back to SM2 relative order when memory state missing by @dae in https://github.com/ankitects/anki/pull/3771
* Feat/support new cards ignore review limit in simulator by @L-M-Sherlock in https://github.com/ankitects/anki/pull/3707
* Fix "Create copy" for IO notes by @iamllama in https://github.com/ankitects/anki/pull/3730
* Fix "discard changes" appearing even after resetting IO note by @iamllama in https://github.com/ankitects/anki/pull/3794
* Fix "discard changes" appearing on deck options by @iamllama in https://github.com/ankitects/anki/pull/3689
* Fix "Note Types" dialog moving down each time it is opened by @rbrownwsws in https://github.com/ankitects/anki/pull/3718
* Fix "Show in folder" on windows when path has spaces by @iamllama in https://github.com/ankitects/anki/pull/3641
* Fix ∷ in tags not being converted to :: when cut by @iamllama in https://github.com/ankitects/anki/pull/3791
* Fix a build error on Yarn 4 by @mikehardy in https://github.com/ankitects/anki/pull/3752
* Fix card info failing to load with qt5 by @iamllama in https://github.com/ankitects/anki/pull/3681
* Fix CardInfoPlaceholder not showing when card id is invalid by @iamllama in https://github.com/ankitects/anki/pull/3631
* Fix changes to tags not being reflected when editing in IO mode by @iamllama in https://github.com/ankitects/anki/pull/3768
* Fix content scrolling off screen when easy days labels too long
* Fix copying pasted images when adding IO being broken if filename has reserved chars by @iamllama in https://github.com/ankitects/anki/pull/3775
* Fix csv columns potentially being numbered wrongly in the header when exporting by @iamllama in https://github.com/ankitects/anki/pull/3690
* Fix deck button not clickable in stats screen for smaller screens by @Sawansunar56 in https://github.com/ankitects/anki/pull/3602
* Fix deck options button twitching on hover by @BlueGreenMagick in https://github.com/ankitects/anki/pull/3623
* Fix discard changes randomly being a noop on certain linux systems by @iamllama in https://github.com/ankitects/anki/pull/3781
* Fix easy days causing load balancer to disproportionately schedule graduates to the furthest day by @jakeprobst in https://github.com/ankitects/anki/pull/3643
* Fix EasyDays not applying defaults correctly in deck options by @iamllama in https://github.com/ankitects/anki/pull/3691
* Fix error when right-clicking empty space in update addons dialog by @iamllama in https://github.com/ankitects/anki/pull/3780
* Fix flaky tests by @abdnh in https://github.com/ankitects/anki/pull/3724
* Fix Fsrs simulator input problems by @Luc-Mcgrady in https://github.com/ankitects/anki/pull/3642
* Fix image field not being saved if a mask is created too quickly by @iamllama in https://github.com/ankitects/anki/pull/3706
* Fix IO editor always starting in "hide all, guess one" mode by @iamllama in https://github.com/ankitects/anki/pull/3709
* Fix issue in regex for underscored CSS imports by @abdnh in https://github.com/ankitects/anki/pull/3728
* FIX lang selection resetting to en_US for some langs by @GithubAnon0000 in https://github.com/ankitects/anki/pull/3744
* Fix menubar in fullscreen by @YukiNagat0 in https://github.com/ankitects/anki/pull/3710
* Fix missing buttons on bottom bar when window is narrow by @iamllama in https://github.com/ankitects/anki/pull/3653
* Fix mpv loadfile syntax change 2 by @kelciour in https://github.com/ankitects/anki/pull/3711
* Fix newer notes incorrectly being skipped when importing successive exports by @iamllama in https://github.com/ankitects/anki/pull/3693
* Fix numeric deck and notetype names being treated as ids when importing csv by @iamllama in https://github.com/ankitects/anki/pull/3748
* Fix reuse internal clipboard for primary selection pasting by @bpnguyen107 in https://github.com/ankitects/anki/pull/3613
* Fix segfault when closing Anki on Linux with "QT_DEBUG_PLUGINS=1" by @rbrownwsws in https://github.com/ankitects/anki/pull/3620
* Fix SpinBox and ParamsInput's rounding causing "discard changes" to appear in deck options by @iamllama in https://github.com/ankitects/anki/pull/3686
* Fix True Retention table clipping on overflow by @rbrownwsws in https://github.com/ankitects/anki/pull/3735
* Fix: Simulator Ignores New Cards Already Introduced by @Luc-Mcgrady in https://github.com/ankitects/anki/pull/3760
* Fix/dataPoint index is off by one day in simulator & remove moving average by @L-M-Sherlock in https://github.com/ankitects/anki/pull/3645
* Fix/disable FSRS short-term scheduler if w[17] or w[18] is zero by @L-M-Sherlock in https://github.com/ankitects/anki/pull/3788
* Fix/fallback to non-manual entry when first_of_last_learn_entries non found by @L-M-Sherlock in https://github.com/ankitects/anki/pull/3639
* Fix/forget to update memory state during relearning by @L-M-Sherlock in https://github.com/ankitects/anki/pull/3648
* Fix/FSRS Simulator Failure: min > max by @L-M-Sherlock in https://github.com/ankitects/anki/pull/3644
* Fix/last date of existing card should not be positive in simulation by @L-M-Sherlock in https://github.com/ankitects/anki/pull/3667
* Fix/re-optimize FSRS if short-term param is weird by @L-M-Sherlock in https://github.com/ankitects/anki/pull/3742
* Hide forgetting curve radio buttons when theres only one option by @Luc-Mcgrady in https://github.com/ankitects/anki/pull/3804
* Hide progress when CMRR is done by @bpnguyen107 in https://github.com/ankitects/anki/pull/3609
* Increase font size in debug console by @user1823 in https://github.com/ankitects/anki/pull/3743
* IO: Prevent text masks from flipping by @bpnguyen107 in https://github.com/ankitects/anki/pull/3672
* Issue 2563 - remove mhchem by @Delizald in https://github.com/ankitects/anki/pull/3705
* Make the "True Retention" table pretty by @rbrownwsws in https://github.com/ankitects/anki/pull/3640
* More accurate sorting by R by @user1823 in https://github.com/ankitects/anki/pull/3747
* Only update notetype/deck when reopening add window if no changes to discard by @iamllama in https://github.com/ankitects/anki/pull/3798
* Prevent simulate button spam by @Luc-Mcgrady in https://github.com/ankitects/anki/pull/3670
* Prevent stale frames from being drawn / always ensure up-to-date contents in webview by @Lolle2000la in https://github.com/ankitects/anki/pull/3668
* Reduce use of type casting by @wackbyte in https://github.com/ankitects/anki/pull/3723
* Refactor/Small refactoring on fullscreen and comments for clarification by @YukiNagat0 in https://github.com/ankitects/anki/pull/3721
* Remove broken editor image menu when on qt5 by @iamllama in https://github.com/ankitects/anki/pull/3685
* Remove hardcoded note/card colours from switch.py by @iamllama in https://github.com/ankitects/anki/pull/3629
* Remove infinite spinning icon for reset parameters dropdown and add a question mark by @bpnguyen107 in https://github.com/ankitects/anki/pull/3603
* Remove unfinished polygon when undoing and redoing in IO mode by @iamllama in https://github.com/ankitects/anki/pull/3759
* Remove use of window.location.href in CardInfoDialog by @iamllama in https://github.com/ankitects/anki/pull/3621
* replace localhost with 127.0.0.1 in syncserver Dockerfile by @omarkohl in https://github.com/ankitects/anki/pull/3673
* Replace use of window.postMessage in card info by @iamllama in https://github.com/ankitects/anki/pull/3646
* Revert Editor.set_note's signature change with an alternative approach for #3730 by @iamllama in https://github.com/ankitects/anki/pull/3736
* Set ForceDarkMode attribute in AnkiWebView for Qt 6.7 by @louwers in https://github.com/ankitects/anki/pull/3622
* Simulator legend tooltip by @Luc-Mcgrady in https://github.com/ankitects/anki/pull/3676
* Slider easy day gui by @Luc-Mcgrady in https://github.com/ankitects/anki/pull/3605
* Snap: keep LD_LIBRARY_PATH when in snap environment by @boukendesho in https://github.com/ankitects/anki/pull/3618
* Sort FSRSItems by RevlogId for training by @L-M-Sherlock in https://github.com/ankitects/anki/pull/3660
* Stop audio playback on editor close by @iamllama in https://github.com/ankitects/anki/pull/3666
* Translation comments for actiony-all-selected and actiony-any-selected by @sommerluk in https://github.com/ankitects/anki/pull/3658
* TTS: Fix text starting with "<" being treated as XML by @bpnguyen107 in https://github.com/ankitects/anki/pull/3651
* Tweak how the True Retention stats table displays numbers by @rbrownwsws in https://github.com/ankitects/anki/pull/3677
* typeanswer: [type:nc] - use nfkd again by @twwn in https://github.com/ankitects/anki/pull/3627
* Unpin svelte and update sveltekit-svg by @wackbyte in https://github.com/ankitects/anki/pull/3722
* Update Deck Options strings to clarify Timers by @Danika-Dakika in https://github.com/ankitects/anki/pull/3792
* update docker deps and docker docs by @niclasheinz in https://github.com/ankitects/anki/pull/3671
* update error message by @brishtibheja in https://github.com/ankitects/anki/pull/3612
* Update reviewer.py to prevent custom scheduler js from commenting out py code by @GithubAnon0000 in https://github.com/ankitects/anki/pull/3795
* Update to FSRS-rs v2.0.3 (fix simulator) by @L-M-Sherlock in https://github.com/ankitects/anki/pull/3784
* Update to Yarn 4 by @dae in https://github.com/ankitects/anki/pull/3772
* Use platform-native button layout in dialogs and messageboxes by @iamllama in https://github.com/ankitects/anki/pull/3725

## New Contributors
* @Sawansunar56 made their first contribution in https://github.com/ankitects/anki/pull/3602
* @boukendesho made their first contribution in https://github.com/ankitects/anki/pull/3618
* @rbrownwsws made their first contribution in https://github.com/ankitects/anki/pull/3620
* @OuOu2021 made their first contribution in https://github.com/ankitects/anki/pull/3604
* @iamllama made their first contribution in https://github.com/ankitects/anki/pull/3629
* @sommerluk made their first contribution in https://github.com/ankitects/anki/pull/3658
* @omarkohl made their first contribution in https://github.com/ankitects/anki/pull/3675
* @niclasheinz made their first contribution in https://github.com/ankitects/anki/pull/3671
* @Delizald made their first contribution in https://github.com/ankitects/anki/pull/3705
* @YukiNagat0 made their first contribution in https://github.com/ankitects/anki/pull/3710
* @wackbyte made their first contribution in https://github.com/ankitects/anki/pull/3722
* @Danika-Dakika made their first contribution in https://github.com/ankitects/anki/pull/3792
* @Lolle2000la made their first contribution in https://github.com/ankitects/anki/pull/3668
* @GithubAnon0000 made their first contribution in https://github.com/ankitects/anki/pull/3744
* @mikehardy made their first contribution in https://github.com/ankitects/anki/pull/3752

## What's Changed

**Full Changelog**: https://github.com/ankitects/anki/compare/24.11...25.02