[23.10 Desktop] Add a feature to automatically periodically re-optimize FSRS parameters

Right now, users have to manually re-optimize parameters from time to time. This is inconvenient, especially if the user has a lot of presets. Ideally, using FSRS should be as simple as turning it on once, but right now the user has to remember to re-optimize parameters manually.
I’ve already suggested this before in the thread about the 23.10 release candidate, but unfortunately, my suggestion didn’t make it into the final release. Frankly, I don’t know why, I can’t imagine it being a herculean coding challenge, and it will make FSRS much more user-friendly.


The Python optimizer is better and probably can work with fewer cards, so some presets may be using values from the Python optimizer.
It is possible to test the parameters with cards different from the preset, and enter them into a different preset.
So if it is implemented, it may have to be per preset.

Optimizing takes time, so it can’t just be automatic, but maybe with a single menu item to process whatever has the option enabled.

There’s no need to bring the same thing up so many times. There are limited hours in the day, so work needs to happen on a priority basis. Re-optimizing is something that should happen every month or two, and 23.10 has been out for less than a week, so this is hardly a pain point for most users at the moment.

Automatic rebuilding is unlikely to happen, as that would result in all cards being marked as changed without any user interaction, and could cause the user to lose progress if they weren’t fully in sync when it happened. We could possibly prompt the user in the future, but for now the focus will be on providing an option to rebuild all presets at once.