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