25.07
ankitects/anki25.07Jul 4, 2025by dae
AI Summary
A major release introducing a new launcher system, Python 3.13, and FSRS-6 algorithm updates, marking the end of Qt5 support.
Key Highlights
- Introduction of a new launcher for version management
- Python 3.13 support
- FSRS-6 updates with 'Grade Now' action and load balancing
- Removal of Qt5 compatibility code
- Intel Mac builds now require macOS 12+
Breaking Changes
- New launcher system (Tools>Upgrade/Downgrade)
- Qt5 builds are no longer provided
- Minimum macOS version increased to 12.0
- Linux builds now require glibc 2.36+
New Features
- New Launcher
- FSRS-6 updates (Grade Now, load balance)
- Python 3.13 support
- Card ID special field
Full Release Notes
## What's Changed ### New Launcher The way Anki is packaged and distributed has changed: - You can use the launchers below to download the latest Anki version, and update to newer versions/downgrade to old ones. - You'll find a Tools>Upgrade/Downgrade menu item inside Anki to return the launcher. - The oldest supported Anki version to install is 2.1.50. - The Mac and Linux launchers support both AMD64 (Intel) and ARM64 (Apple Silicon) machines. The Windows installer is AMD64-only, but will run in emulation mode on ARM Windows. - On Linux, glibc 2.36 or later is now required. - Anki now ships with Python 3.13 (but has not yet bumped the minimum Python from 3.9). - The new launcher still [has room for improvement](https://github.com/ankitects/anki/issues?q=state%3Aopen%20label%3A%22launcher%22). ### Notable FSRS/Scheduling changes * FSRS-6 brings further algorithm improvements by @L-M-Sherlock in https://github.com/ankitects/anki/pull/3929. Updated mobile clients should be ready shortly. * Add "grade now" action by @L-M-Sherlock in https://github.com/ankitects/anki/pull/3840 and @iamllama in https://github.com/ankitects/anki/pull/4055 * Support load balance and easy days when rescheduling by @L-M-Sherlock in https://github.com/ankitects/anki/pull/3815 * Support load balance and easy days in FSRS simulator by @L-M-Sherlock in https://github.com/ankitects/anki/pull/3829 * Add a 'max interval too low' warning. by @Luc-Mcgrady in https://github.com/ankitects/anki/pull/3847 * The optimizer uses a better approach for evaluating optimizations by @L-M-Sherlock in https://github.com/ankitects/anki/pull/3962 The Evaluate button has been replaced with an optional health check that runs during optimization by @Luc-Mcgrady in https://github.com/ankitects/anki/pull/4068 and https://github.com/ankitects/anki/pull/4047. If you wish to keep using the old evaluate, you can show the button with a debug console command: https://github.com/ankitects/anki/pull/4149. * Calculate accurate retrievability in card info by elapsed seconds by @L-M-Sherlock in https://github.com/ankitects/anki/pull/4034 * Desired retention warning improvements by @Luc-Mcgrady in https://github.com/ankitects/anki/pull/3995 * Set Due Date: Set interval to actual elapsed days when FSRS is enabled by @L-M-Sherlock in https://github.com/ankitects/anki/pull/4035 * Feat/Card ID special field by @Luc-Mcgrady in https://github.com/ankitects/anki/pull/4046 * Limit study time to hours in reviews graph by @user1823 in https://github.com/ankitects/anki/pull/4086 * Add search keyword to strip clozes beforehand by @iamllama in https://github.com/ankitects/anki/pull/4145 ### Other Notable Changes * Add IO mask colour fill tool by @iamllama in https://github.com/ankitects/anki/pull/4048 * Allow rotating IO masks by @iamllama in https://github.com/ankitects/anki/pull/3987 * Add an option to disable middle click to paste on Linux by @derivativeoflog7 in https://github.com/ankitects/anki/pull/3904 * Allow drag-dropping into plaintext editor by @iamllama in https://github.com/ankitects/anki/pull/3902 * Cache rendered mathjax to avoid stalling when editing plaintext by @iamllama in https://github.com/ankitects/anki/pull/3828 * Consider leeches in FSRS simulator by @Luc-Mcgrady in https://github.com/ankitects/anki/pull/3837 * Copy card debug info by @Luc-Mcgrady in https://github.com/ankitects/anki/pull/3801 * Improve handling of 'ignore cards before' by @Luc-Mcgrady in https://github.com/ankitects/anki/pull/3910 * Improve performance of nested clozes and increase limit to 10 levels by @iamllama in https://github.com/ankitects/anki/pull/3886 * Replace some means in Stats with medians by @user1823 in https://github.com/ankitects/anki/pull/3900 ### Other Improvements * Add a warning when there is a cloze in "back extra" and "text" is empty by @rreemmii-dev in https://github.com/ankitects/anki/pull/3912 * Add Cmd+W close shortcut (on Mac) to more dialogs by @beyondcompute in https://github.com/ankitects/anki/pull/3905 * Add help modal to TR table by @GithubAnon0000 in https://github.com/ankitects/anki/pull/3874 * Add hook for day rollover by @jakeprobst in https://github.com/ankitects/anki/pull/3817 * Add hooks for comparing answers by @chel-ou in https://github.com/ankitects/anki/pull/3855 * Add min-height to fields by @GithubAnon0000 in https://github.com/ankitects/anki/pull/3922 * Add title for some dialogs and avoid hardcoding the text of the discard changes dialog by @BrayanDSO in https://github.com/ankitects/anki/pull/3846 * Add-ons Dialog: disable View Config/Page/Files buttons when clicking them would not lead to useful result by @beyondcompute in https://github.com/ankitects/anki/pull/3869 * Added translation contributor by @Danika-Dakika in https://github.com/ankitects/anki/pull/3820 * Center align rows in FSRS simulator by @GithubAnon0000 in https://github.com/ankitects/anki/pull/3882 * Chore/Simulator modal i18n by @Luc-Mcgrady in https://github.com/ankitects/anki/pull/3927 * Cleanup old TODO by @GithubAnon0000 in https://github.com/ankitects/anki/pull/3903 * Cloze button get disabled outside of cloze field by @Arthur-Milchior in https://github.com/ankitects/anki/pull/3879 * Comment for translators for "Daily load" by @sommerluk in https://github.com/ankitects/anki/pull/3887 * Comment for translators for statistics-total by @sommerluk in https://github.com/ankitects/anki/pull/3880 * Comments for translators about sort order by @sommerluk in https://github.com/ankitects/anki/pull/3831 * Debounce mathjax rendering to avoid stalling by @iamllama in https://github.com/ankitects/anki/pull/3827 * Don't recalculate remaining steps, conditionally by @graves in https://github.com/ankitects/anki/pull/3849 * feat: add title to some of the sync dialogs by @BrayanDSO in https://github.com/ankitects/anki/pull/3838 * Feat/simplified relearning steps logic with updated FSRS training API by @L-M-Sherlock in https://github.com/ankitects/anki/pull/3867 * Fine-tune load balancer by @Expertium in https://github.com/ankitects/anki/pull/3864 * Fix autoplay not being stopped on editor close if it interrupted another by @iamllama in https://github.com/ankitects/anki/pull/3915 * Fix broken window decorations on unpackaged GNOME instances by @krischerven in https://github.com/ankitects/anki/pull/3858 * Fix card layout editor crash when editing while reviewing by @iamllama in https://github.com/ankitects/anki/pull/3814 * Fix cargo ignoring lockfile when building syncserver image by @iamllama in https://github.com/ankitects/anki/pull/3856 * Fix deck day limits incorrectly being carried over when importing by @iamllama in https://github.com/ankitects/anki/pull/3878 * Fix drag/drop breaking when editor is zoomed by @iamllama in https://github.com/ankitects/anki/pull/3916 * Fix error when middle clicking in editor on systems w/o global mouse selection by @iamllama in https://github.com/ankitects/anki/pull/3923 * Fix fields with `\n` being ignored when searching all fields w/o regex by @iamllama in https://github.com/ankitects/anki/pull/3943 * Fix flashing when opening the stats, empty cards or find dupes dialogs by @iamllama in https://github.com/ankitects/anki/pull/3928 * Fix panic when clearing today limits on the day collection was made by @iamllama in https://github.com/ankitects/anki/pull/3877 * Fix superfluous message when a deck is dragged to its parent by @krischerven in https://github.com/ankitects/anki/pull/3859 * Fix: Cloze cards missing "copy card info" button by @Luc-Mcgrady in https://github.com/ankitects/anki/pull/3811 * Fix: correct typo and adjust indentation in docstring by @babofitos in https://github.com/ankitects/anki/pull/3920 * fix: Task manager exception handling by @RisingOrange in https://github.com/ankitects/anki/pull/3839 * Fix/Calculate missing memory states on simulate by @Luc-Mcgrady in https://github.com/ankitects/anki/pull/3940 * Fix/incorrect initialization of SchedTimingToday in graphs/retrievability.rs by @L-M-Sherlock in https://github.com/ankitects/anki/pull/3857 * Fix/index out of bounds exception in Card Stats Data by @L-M-Sherlock in https://github.com/ankitects/anki/pull/3872 * Hide AverageForDaysStudied when studiedPercent = 100 by @user1823 in https://github.com/ankitects/anki/pull/3888 * Improve natural unit conversion for a time b/w 360 to 365 days by @user1823 in https://github.com/ankitects/anki/pull/3901 * Improve performance of stats revlog entries with memory state by @L-M-Sherlock in https://github.com/ankitects/anki/pull/3866 * Increase font size in mathjax preview for accessibility by @GithubAnon0000 in https://github.com/ankitects/anki/pull/3832 * Loosen csv metadata parsing by @iamllama in https://github.com/ankitects/anki/pull/3862 * Modify card rendering output to specify if rendered card is empty by @iamllama in https://github.com/ankitects/anki/pull/3890 * Move TR table upwards by @GithubAnon0000 in https://github.com/ankitects/anki/pull/3873 * NF: explaining the bridge between languages by @Arthur-Milchior in https://github.com/ankitects/anki/pull/3572 * NF: sligthly optimize cards.py by @Arthur-Milchior in https://github.com/ankitects/anki/pull/3870 * Persist tags when refetching csv metadata while importing by @iamllama in https://github.com/ankitects/anki/pull/3938 * Prevent accidental dragging of audio playback buttons and hint links by @beyondcompute in https://github.com/ankitects/anki/pull/3844 * Refactor: Make Load Balancer Optional Throughout Codebase by @YukiNagat0 in https://github.com/ankitects/anki/pull/3860 * Remove use of createClassComponent in mathjax-element.ts by @iamllama in https://github.com/ankitects/anki/pull/3919 * Return a copy of note type in ModelManager.get() by @abdnh in https://github.com/ankitects/anki/pull/3865 * Show "and others" at the end of the contributor list in the About dialog by @krischerven in https://github.com/ankitects/anki/pull/3863 * Some documentation and reduce copy/paste by @Arthur-Milchior in https://github.com/ankitects/anki/pull/3917 * Style: add shadow to graph tooltip by @ikkz in https://github.com/ankitects/anki/pull/3891 * Style: use consistent input styles in deck options by @ikkz in https://github.com/ankitects/anki/pull/3894 * Update FsrsOptions.svelte to add margin / gap between simulator buttons by @GithubAnon0000 in https://github.com/ankitects/anki/pull/3822 * Update my name in Anki's credits by @vtenfys in https://github.com/ankitects/anki/pull/3852 * Update NoteEditor.svelte to swap sticky pin and html view. by @GithubAnon0000 in https://github.com/ankitects/anki/pull/3821 * Update uninstall.sh to give feedback to the user by @GithubAnon0000 in https://github.com/ankitects/anki/pull/3834 * Use default flag name when flag is renamed to empty string by @mumtazrifai in https://github.com/ankitects/anki/pull/3826 * Use tilted (filled and unfilled) sticky icons in the cards editor by @GithubAnon0000 in https://github.com/ankitects/anki/pull/3825 * Update to FSRS-rs v3.0.0 (fix historic memory state) by @L-M-Sherlock in https://github.com/ankitects/anki/pull/3946 * Fix/FSRS-6 doesn't give <1d intervals & use log loss instead of RMSE(bins) by @L-M-Sherlock in https://github.com/ankitects/anki/pull/3948 * Update sorting by R for FSRS 6 by @user1823 in https://github.com/ankitects/anki/pull/3949 * Fix/No memory state cards have revlogs in reverse order on card stats screen. by @Luc-Mcgrady in https://github.com/ankitects/anki/pull/3951 * Fix/incorrect fallback of decay by @L-M-Sherlock in https://github.com/ankitects/anki/pull/3954 * Fix/missing-simulator-decay-for-FSRS-5 by @L-M-Sherlock in https://github.com/ankitects/anki/pull/3956 * Feat/CMRR uses simulate config by @Luc-Mcgrady in https://github.com/ankitects/anki/pull/3947 * Add a way to pass information from browser_will_search to browser_did_search without having it going to the backend by @JSchoreels in https://github.com/ankitects/anki/pull/3945 * Fix docs of note_fields_check to match changes made in PR #3912 by @rreemmii-dev in https://github.com/ankitects/anki/pull/3944 * add toggle for browser sidebar by @JL710 in https://github.com/ankitects/anki/pull/3953 * Close only “child” window (e.g. Preview) inside Browser on Cmd+W by @beyondcompute in https://github.com/ankitects/anki/pull/3913 * Add ellipsis to Grade Now by @L-M-Sherlock in https://github.com/ankitects/anki/pull/3970 * Add left margin to browser when sidebar is closed by @iamllama in https://github.com/ankitects/anki/pull/4040 * Add myself to about.py by @GithubAnon0000 in https://github.com/ankitects/anki/pull/4026 * Bump vite from 5.4.18 to 5.4.19 by @dependabot in https://github.com/ankitects/anki/pull/4018 * Change collection size too large error to add MB values and info about compressed vs. uncompressed. by @GithubAnon0000 in https://github.com/ankitects/anki/pull/3981 * Check if self.card.reps>0 before substracing 1 by @JSchoreels in https://github.com/ankitects/anki/pull/3966 * Clarify field separator being a guess when importing csv by @iamllama in https://github.com/ankitects/anki/pull/3996 * Clear notetypes cache on import by @abdnh in https://github.com/ankitects/anki/pull/3969 * Docs: correct reference for linux dockerfile by @thedroiddiv in https://github.com/ankitects/anki/pull/3982 * Don't use intraday relearning step as starting memory state by @mbrubeck in https://github.com/ankitects/anki/pull/3959 * Expose decay of Card object in Python by @L-M-Sherlock in https://github.com/ankitects/anki/pull/3985 * Fix "Open Image" being broken for filenames with certain reserved characters by @iamllama in https://github.com/ankitects/anki/pull/3986 * Fix broken support link by @GithubAnon0000 in https://github.com/ankitects/anki/pull/4019 * FIX diacritics being cutoff in input card templates by @GithubAnon0000 in https://github.com/ankitects/anki/pull/4049 * Fix DR not being in percent in the forgetting curve by @GithubAnon0000 in https://github.com/ankitects/anki/pull/4024 * Fix existing IO mask borders getting scaled by @iamllama in https://github.com/ankitects/anki/pull/3991 * Fix invalid rust-analyzer option by @abdnh in https://github.com/ankitects/anki/pull/3972 * Fix IO masks not saving when scaled by @iamllama in https://github.com/ankitects/anki/pull/4021 * Fix IO undo logic error by @iamllama in https://github.com/ankitects/anki/pull/4027 * Fix mathjax images erroneously appearing enlarged by @iamllama in https://github.com/ankitects/anki/pull/3957 * Fix mpv cleanup by @dae in https://github.com/ankitects/anki/pull/4042 * Fix new card sort order not reacting to changes in gather order by @abdnh in https://github.com/ankitects/anki/pull/4039 * Fix polygons closing when clicking existing masks while editing IO by @iamllama in https://github.com/ankitects/anki/pull/3990 * Fix pressing Ctrl+Shift+N in browser editor potentially discarding field changes by @iamllama in https://github.com/ankitects/anki/pull/4001 * Fix searching for non-blank adjacent wildcard fields by @iamllama in https://github.com/ankitects/anki/pull/4009 * Fix syncserver docker image build by bumping Dockerfile rust version by @KolbyML in https://github.com/ankitects/anki/pull/3993 * Fix unescaped deck names missing from tooltips when deleted by @iamllama in https://github.com/ankitects/anki/pull/3960 * Fix URL schemes translation by @sommerluk in https://github.com/ankitects/anki/pull/4004 * Fix/CMRR button style by @Luc-Mcgrady in https://github.com/ankitects/anki/pull/4043 * Fix/Invalid parameter counts saveable by @Luc-Mcgrady in https://github.com/ankitects/anki/pull/4052 * Fix/Layout shift on Card Counts button hover by @Luc-Mcgrady in https://github.com/ankitects/anki/pull/3971 * Fix/Leech suspended tooltip by @Luc-Mcgrady in https://github.com/ankitects/anki/pull/3992 * Fix/Prevent manual resize of params input by @Luc-Mcgrady in https://github.com/ankitects/anki/pull/4008 * Fix/remove incorrect invalid input check by @L-M-Sherlock in https://github.com/ankitects/anki/pull/3963 * Fix/SQL retrievability underflow by @Luc-Mcgrady in https://github.com/ankitects/anki/pull/3980 * Fix/stability doesn't increase after pressing good by @L-M-Sherlock in https://github.com/ankitects/anki/pull/3975 * Improve an Error Message by @brishtibheja in https://github.com/ankitects/anki/pull/3964 * improve the accuracy of the expected workload calculation by @L-M-Sherlock in https://github.com/ankitects/anki/pull/4056 * Include reset entries in dataset exported for research by @user1823 in https://github.com/ankitects/anki/pull/3998 * Make IO polygon markers centred and transparent by @iamllama in https://github.com/ankitects/anki/pull/3989 * Offload mpv callback registration to background thread to avoid UI bl… by @marvinkopf in https://github.com/ankitects/anki/pull/4038 * Optimize All -> Optimize All Presets by @Expertium in https://github.com/ankitects/anki/pull/4050 * Properly align label and radio input in the stats window by @GithubAnon0000 in https://github.com/ankitects/anki/pull/3977 * Remove dead code in reviews_for_fsrs by @mbrubeck in https://github.com/ankitects/anki/pull/3958 * Remove incorrect "double-click to expand" overlay label on small images in editor by @iamllama in https://github.com/ankitects/anki/pull/4030 * Remove percentages of x-axis in the answer buttons graph by @GithubAnon0000 in https://github.com/ankitects/anki/pull/3952 * Resize fsrs params input to fit content by @iamllama in https://github.com/ankitects/anki/pull/3999 * Resolve Python regex library warnings by @emmanuel-ferdman in https://github.com/ankitects/anki/pull/4012 * Restore richtext editor focus on mathjax overlay close event by @iamllama in https://github.com/ankitects/anki/pull/4016 * Style the fsrs params input by @iamllama in https://github.com/ankitects/anki/pull/3997 * Update backup restore message by @brishtibheja in https://github.com/ankitects/anki/pull/4005 * Update sync.ftl by @sommerluk in https://github.com/ankitects/anki/pull/4003 * Upgrade esbuild versions by @spiritualfather in https://github.com/ankitects/anki/pull/4011 * Use correct debug scripts folder by @abdnh in https://github.com/ankitects/anki/pull/3973 * Use non breaking spaces for names on about page by @Luc-Mcgrady in https://github.com/ankitects/anki/pull/4025 * Update default styles by @brishtibheja in https://github.com/ankitects/anki/pull/4060 * Fix/remove the lower limit of interval when set due date by @L-M-Sherlock in https://github.com/ankitects/anki/pull/4063 * Delay retention workload info display after FSRS optimization alerts by @Sunrongguo2008 in https://github.com/ankitects/anki/pull/4066 * style hr element by @brishtibheja in https://github.com/ankitects/anki/pull/4067 * Feat/Message at 100% progress for optimize by @Luc-Mcgrady in https://github.com/ankitects/anki/pull/4069 * Use abbreviations for days of week by @brishtibheja in https://github.com/ankitects/anki/pull/4077 * Fix/Missing CardID special field by @Luc-Mcgrady in https://github.com/ankitects/anki/pull/4078 * update to fsrs-rs 4.1.1 by @L-M-Sherlock in https://github.com/ankitects/anki/pull/4080 * Fix IO text labels' fill attr being saved even if default colour by @iamllama in https://github.com/ankitects/anki/pull/4083 * Comments for translators by @sommerluk in https://github.com/ankitects/anki/pull/4075 * Fix unescaped deck names potentially missing from overview by @iamllama in https://github.com/ankitects/anki/pull/4084 * Clear desired retention and decay when changing decks by @user1823 in https://github.com/ankitects/anki/pull/4095 * Update the default value of FSRS-6 decay in forgetting curve by @user1823 in https://github.com/ankitects/anki/pull/4096 * The remaining Qt5 compatibility code has been removed. * include decay in ComputeMemoryStateResponse by @L-M-Sherlock in https://github.com/ankitects/anki/pull/4102 * Upgrade to nom 8.0.0 by @iamllama in https://github.com/ankitects/anki/pull/4105 * Fix/set due date on intraday learning card by @L-M-Sherlock in https://github.com/ankitects/anki/pull/4101 * Save dr and decay in card even if item is None by @user1823 in https://github.com/ankitects/anki/pull/4106 * Fix repeated ticks in reviews graph by @user1823 in https://github.com/ankitects/anki/pull/4108 * Fix arrow keys not working in tag editor on qt 6.8 by @iamllama in https://github.com/ankitects/anki/pull/4114 * Fix tag editor's focus outline appearing cut off by @iamllama in https://github.com/ankitects/anki/pull/4115 * Adjust top toolbar height on body class update by @iamllama in https://github.com/ankitects/anki/pull/4120 * Refactor FSRS data clearing into Card::clear_fsrs_data by @L-M-Sherlock in https://github.com/ankitects/anki/pull/4123 * Fix/Optimize button alignment by @Luc-Mcgrady in https://github.com/ankitects/anki/pull/4117 * Fix/unapplied scss by @Luc-Mcgrady in https://github.com/ankitects/anki/pull/4103 * Make PYTHONPYCACHEPREFIX point to an absolute path by @abdnh in https://github.com/ankitects/anki/pull/4111 * Fix/Add check_output_timestamps to PythonEnvironment by @Luc-Mcgrady in https://github.com/ankitects/anki/pull/4113 * Remove newline: 'Restore to default confirmation' by @david-allison in https://github.com/ankitects/anki/pull/4128 * Fix/update card.decay in card_state_updater by @L-M-Sherlock in https://github.com/ankitects/anki/pull/4127 * Fix deck options page being scrollable while simulator modal is open by @iamllama in https://github.com/ankitects/anki/pull/4133 * CHANGE right-click in the editor to show option to open folder in linux by @GithubAnon0000 in https://github.com/ankitects/anki/pull/4125 * FIX: Margin between icon was selectable but shouldn't be by @GithubAnon0000 in https://github.com/ankitects/anki/pull/4122 * Switch to Ruff by @abdnh in https://github.com/ankitects/anki/pull/4119 * Revert "Fix/unapplied scss" by @dae in https://github.com/ankitects/anki/pull/4136 * Add disclaimer to workload tooltip by @Luc-Mcgrady in https://github.com/ankitects/anki/pull/4131 * Followup to #4122 (make text selectable) by @GithubAnon0000 in https://github.com/ankitects/anki/pull/4132 * Only run "empty_filtered_deck" on filtered decks by @mbrubeck in https://github.com/ankitects/anki/pull/4139 * Add "Copy Debug Info" to `show_exception`'s dialog by @iamllama in https://github.com/ankitects/anki/pull/4146 * Comments for translators by @sommerluk in https://github.com/ankitects/anki/pull/4137 * Use system font for webviews instead of bootstrap font stack by @GithubAnon0000 in https://github.com/ankitects/anki/pull/4147 * Feat/Add globe to help tooltip by @Luc-Mcgrady in https://github.com/ankitects/anki/pull/4148 * Fix unique blank decks being created per row with empty deck column when importing csv by @iamllama in https://github.com/ankitects/anki/pull/4150 ## New Contributors * @mumtazrifai made their first contribution in https://github.com/ankitects/anki/pull/3826 * @RisingOrange made their first contribution in https://github.com/ankitects/anki/pull/3839 * @graves made their first contribution in https://github.com/ankitects/anki/pull/3849 * @beyondcompute made their first contribution in https://github.com/ankitects/anki/pull/3844 * @chel-ou made their first contribution in https://github.com/ankitects/anki/pull/3855 * @ikkz made their first contribution in https://github.com/ankitects/anki/pull/3891 * @rreemmii-dev made their first contribution in https://github.com/ankitects/anki/pull/3912 * @babofitos made their first contribution in https://github.com/ankitects/anki/pull/3920 * @derivativeoflog7 made their first contribution in https://github.com/ankitects/anki/pull/3904 * @JSchoreels made their first contribution in https://github.com/ankitects/anki/pull/3945 * @JL710 made their first contribution in https://github.com/ankitects/anki/pull/3953 * @mbrubeck made their first contribution in https://github.com/ankitects/anki/pull/3958 * @xuanyue202 made their first contribution in https://github.com/ankitects/anki/pull/3976 * @thedroiddiv made their first contribution in https://github.com/ankitects/anki/pull/3982 * @KolbyML made their first contribution in https://github.com/ankitects/anki/pull/3993 * @spiritualfather made their first contribution in https://github.com/ankitects/anki/pull/4011 * @emmanuel-ferdman made their first contribution in https://github.com/ankitects/anki/pull/4012 * @marvinkopf made their first contribution in https://github.com/ankitects/anki/pull/4038 * @Sunrongguo2008 made their first contribution in https://github.com/ankitects/anki/pull/4066 **Full Changelog**: https://github.com/ankitects/anki/compare/25.02.7...25.07