Damien Elmes
c462f64862
Move (most) FSRS options into their own section
2024-03-17 18:25:25 +07:00
Damien Elmes
e9d3b46d47
Shift FSRS optimization into top level; shown optimize all tip after 30 days
2024-03-17 17:46:26 +07:00
Jarrett Ye
8c9d7d64d9
refactor optimal retention to minimize workload per memorization & fix progress goes backwards ( #3065 )
...
* Feat/optimal retention for minimal workload per memorization
* ./ninja fix:minilints
* update to FSRS-rs 0.5.2
* update to FSRS-rs 0.5.3
* ./ninja fix:minilints
* 'estimated retention' -> 'predicted optimal retention'; add warning (dae)
2024-03-11 16:16:37 +07:00
Jarrett Ye
f2acf40221
alert when the resp.weights is empty ( #3061 )
...
* alert when the resp.weights is empty
* format
2024-03-09 10:26:59 +00:00
Abdo
631088cdca
Fix alert not appearing when FSRS parameters input is focused ( #3053 )
2024-03-05 06:43:57 +00:00
Abdo
60f8399aed
Show total review count when optimizing FSRS parameters ( #3027 )
...
* Show total review count when optimizing FSRS parameters
* Do not expose items
2024-02-26 13:27:22 +07:00
Abdo
6843d65ed1
Check required review count for FSRS after filtering ( #3019 )
...
* Check for required review count for FSRS after filtering
* Remove unreachable check
* Update minimum review count in optimal retention calculation
* Fix review check in optimal retention routine too
2024-02-24 14:53:38 +07:00
Abdo
00c67fc0c7
Show message if current FSRS parameters are optimal ( #3014 )
...
* Show message if current FSRS parameters are optimal
* Fix message shown with default parameters
* Use alert()
2024-02-22 11:09:17 +07:00
Luc Mcgrady
8b18a08b3b
FSRS - Ignore revlogs before date while optimizing ( #2922 )
...
* Added: Date input button
* Added: ignoreDate to config
* Added: Backend
* Optimize function passes value
* Fix: Spelling
* Moved: filter logic from revlog_for_srs to update_memory_state
* fmt
* Copyright header
* ./check
* Fix: Test
* Renamed: Ignore_date -> Ignore_before_date
* Neaten parameters
* evaluate weights
* ./check
* Optimize all presets
* Added: Label localizations
* Removed globe label
* Added: Tooltip
* Changed error type
* fmt
* Moved filter to own function
* missing function call replacement
* Fix: Typo
* Apply suggestions from code review
Co-authored-by: Damien Elmes <dae@users.noreply.github.com>
* timestamp * 1000 -> timestamp_millis
* ignoreBefore -> ignore_before
* clarified ignore_before variables
* i64 -> TimestampMillis
* Un-traitified remove_revlogs_before
* Added: ms == 0 guard
* Added: Ignore_before affects scheduling
* Moved filter to fsrs_items_for_training
* removed filter from revlog_for_srs
* Tuple -> UpdateMemoryStateEntry
* Removed unused function
* Removed superfluous _ms from variables
* cid -> id
* Different ignore method
* Added: Unit test
* cid -> id
* Test: Exact ms edge case
* ./check
* Fix: re-learns could be before ignore date in cards without learning steps
* getignoreRevlogsBeforeMs -> getIgnoreRevlogsBeforeMs
* Removed pub(crate)
* Clarified unit test
* last_learn_entry -> first_of_last_learn_entries
* @user1823's method
* IOS fix
* ./check
* Fix: width defined twice
2024-02-22 11:01:10 +07:00
Abdo
4ef389b580
Keep previous FSRS parameters if they get worse when optimizing ( #2996 )
...
* Update to fsrs-rs 0.3.0
* Keep previous FSRS parameters if they get worse when optimizing
2024-02-11 16:26:04 +10:00
Jarrett Ye
2fffe4b7ba
update FSRS to v0.2.0 ( #2977 )
...
* update FSRS to v0.2.0
* update comments
* ./ninja fix:minilints
* 1000 -> 400 in translation (dae)
2024-01-30 16:27:12 +10:00
Damien Elmes
bfea56c470
Clear out old FSRS progress as new operation starts
...
https://forums.ankiweb.net/t/inconsistent-number-of-reviews-when-clicking-optimize/39275/6
2024-01-08 13:23:25 +10:00
Jarrett Ye
0266de60b3
use new formula to calc ivl in getRetentionWarning ( #2911 )
...
* use new formula to calc ivl in getRetentionWarning
* format
* Use consistent casing (dae)
2023-12-27 12:26:58 +10:00
Damien Elmes
2b763ee0b2
Exclude suspended cards from FSRS optimizing
...
https://forums.ankiweb.net/t/anki-23-12-beta/37771/155
2023-12-25 09:40:24 +10:00
Damien Elmes
980594252d
Move globe icon into separate Svelte file
...
Confirmed correct layout in RTL mode.
I experimented with adding a tooltip as well, as suggested in
https://forums.ankiweb.net/t/anki-23-12-beta/37771/82 , but it's
confusing as we already change the mouse cursor/underline when the user
hovers over a label. Given the help text universally starts with
"affects the entire collection", I think that's good enough.
2023-12-12 12:33:31 +10:00
Damien Elmes
50796e53b4
Give a hint about optimizing all presets
2023-12-11 14:27:17 +10:00
Damien Elmes
4f10a2818f
Fix incorrect search being used when evaluating parameters
...
https://forums.ankiweb.net/t/anki-23-12-beta/37771/89
2023-12-11 13:09:48 +10:00
Damien Elmes
7664248550
Add a globe icon to global icons
...
Currently 80% of voters favor the globe, so I'm going to tentatively
call it.
https://forums.ankiweb.net/t/activating-fsrs-on-one-preset-activates-it-on-all-presets/36947/16
2023-12-08 11:18:13 +10:00
Damien Elmes
8b6abd3f8f
Switch FSRS reschedule to a global option; don't persist
...
A global is easier to use in conjunction with the 'optimize all' action.
The value is no longer persisted, as doing so makes it too easy for users
to generate a lot of revlog entries when playing with different FSRS
weights/retention settings, such as in https://forums.ankiweb.net/t/possible-syncing-limitation-by-fsrs-manual-scheduling-data-accumulation/37610
2023-11-27 11:24:31 +10:00
Damien Elmes
452e012c71
Add option to calculate all weights at once
2023-11-27 11:24:31 +10:00
Damien Elmes
c67f510b9a
Update to latest FSRS
2023-11-27 11:24:31 +10:00
Abdo
390935d4ea
Persist FSRS weights search in preset ( #2827 )
2023-11-14 11:47:08 +10:00
Damien Elmes
453c396216
Relax desired retention warning from 0.85 to 0.8
2023-11-08 11:28:08 +10:00
Damien Elmes
82aaa913a6
Change color of info box depending on retention; increase limit to 0.99
...
Closes #2803
2023-11-07 13:05:43 +10:00
Damien Elmes
e2ee6b7d44
Add an info box so the non-linear nature of desired retention can be seen
2023-11-06 12:04:31 +10:00
user1823
58904dcad8
(FSRS) Improve presentation of log loss and RMSE ( #2805 )
...
* (FSRS) Improve presentation of log loss and RMSE
The number of decimal places in log loss have been increased from 3 to 4. Can help in better comparison of weights especially when the log loss with both are same up to 3 places of decimal. Also makes it consistent with the Python optimizer.
RMSE has been expressed in percent, making it easier to interpret.
* Fix formatting
---------
Co-authored-by: Damien Elmes <gpg@ankiweb.net>
2023-11-05 13:56:20 +10:00
Damien Elmes
e0d2866f79
Prompt user to save preset changes before they compute weights
...
Closes #2797
2023-11-04 11:46:29 +10:00
Damien Elmes
9a027a8c48
Warn users about rescheduling
2023-10-26 11:23:24 +10:00
Damien Elmes
2781d47d21
Relax sm2 retention limits
2023-10-26 11:23:24 +10:00
user1823
4c17a6964e
Rename Analyze to Evaluate in FSRS Deck Options ( #2741 )
...
* Update deck-config.ftl
* Update FsrsOptions.svelte
* Update CONTRIBUTORS
2023-10-17 09:53:24 +10:00
Damien Elmes
86f80ef926
Reduce maximum deck size in retention calculation
...
https://forums.ankiweb.net/t/anki-23-10-beta-5/35677/11
2023-10-14 12:00:22 +10:00
Damien Elmes
6e177851cc
Add help entries for FSRS options
2023-10-13 12:50:15 +10:00
Damien Elmes
bfe340c163
Don't provide a button to copy estimated retention into desired retention
...
It's too easy for the user to end up with silly values if their configured
time/day is not reasonable.
2023-10-13 12:38:47 +10:00
Damien Elmes
f4b760153f
Hide loss aversion
2023-10-13 10:38:56 +10:00
Damien Elmes
003cdfd2ec
Use sm2 retention when deriving memory state
...
Closes #2702
2023-10-13 10:37:35 +10:00
Damien Elmes
072cd37b42
Support rescheduling on weight/retention change
2023-10-01 15:20:58 +10:00
Damien Elmes
93499d4182
Display the default weights as a placeholder
2023-09-30 16:10:23 +10:00
Damien Elmes
50c8a1ba9f
Update FSRS
...
- up to 10x performance increase in optimal retention
- expose loss aversion
- use SpinBoxes
2023-09-30 16:10:22 +10:00
Damien Elmes
da027bccd9
Tweak some wordings
2023-09-27 16:37:03 +10:00
Damien Elmes
65c2381f4d
x% complete
2023-09-27 16:24:25 +10:00
Michael Eliachevitch
2580399552
Button to set desired FSRS retention to optimal/calculated ( #2685 )
...
* Draft set optimal/calculated retention button
Temporarily save the calculated optimal retention and display it with a button
that sets the desired retention above to this value.Don't show button until
attention had been calculated. Disable button when optimal and desired
attention are equal.
I find this nicer than the current alert-popup solution, as it avoids a popup
and gives a choice to the user to accept the calculated retention or not, while
also persisting the calculated retention on the screen for a bit.
TODO: What's still missing is that the `optimalRetention` variable is global and
persists when I change presets. When changing presets the variable should reset to
`undefined`, which would also makes the button disappear. Ideally it should also
disappear when changing the FSRS parameters. So probably it should be made part
of some deck options state and subscribe to some events. But with that I might
need some help. Also I thought whether that variable should go into the deck
options schema but tbh it's not something we want to persist between sessions,
users should recalculate it.
* Add me to contributors for tests so pass
* Add formatting ant type fixes to make tests pass
* Minor fixes (dae)
* Remove the period
2023-09-27 16:12:49 +10:00
Damien Elmes
aee6fcf456
Fix weight computation progress not showing
2023-09-26 14:02:12 +10:00
Michael Eliachevitch
2491b93ea6
More sensible lower FSRS progress indicator precision ( #2684 )
...
It's very helpful having a sub-permille precision in a progress
indicator, percent-precision or at most a tenth of a percent should be
sufficient for any indicator.
But in particular the compute-retention progress has 10 steps, i.e. the progress
increases in 10%-intervals (10%, 20%, ...), it *cannot* have sub-decimal
progress-percentages, see 2d5b19b494/src/optimal_retention.rs (L365-L368)
. So there integer percents should be
enough, everything else is misleading.
The compute-weights progress is currently (as of beta-2) not showing up at all.
Maybe if the bug is fixed it can show sub-percent percentages, so for know I changed that
to 0.1% precision. But I think integer percentages should be fine here as well,
so upon request I can fix that.
Also see my comment on this problem in https://forums.ankiweb.net/t/anki-23-10-beta/34912/39 .
2023-09-26 14:01:05 +10:00
Damien Elmes
bae8038178
Allow desired retention to be set to 0.7
...
https://github.com/open-spaced-repetition/fsrs-rs/issues/79#issuecomment-1733779005
2023-09-26 13:03:49 +10:00
Damien Elmes
8214aa42a1
Don't show multiple cancel buttons
2023-09-25 16:40:11 +10:00
Damien Elmes
17cfec5e35
Prohibit weight generation when reps < 1000
2023-09-25 16:17:00 +10:00
Damien Elmes
baae685dbb
UI tweaks
...
https://forums.ankiweb.net/t/anki-23-10-beta-1/34912/19
2023-09-25 15:54:18 +10:00
Damien Elmes
3c62a8345a
Cap optimal retention simulation to 10 years
2023-09-25 14:34:26 +10:00
Damien Elmes
c788f8ac8a
Fix entire collection being used to calculate weights
2023-09-24 19:42:50 +10:00
Damien Elmes
6074865763
Calculate parameters automatically
...
Logic derived from d8e2f6a0ff
Closes #2661
2023-09-18 16:43:36 +10:00