Damien Elmes
8362ad5345
Update optimal retention tooltip, and add a few extra translations
2024-03-28 16:02:05 +07:00
Damien Elmes
bfd90d53e5
Fix spurious warning when comparing optimal and desired retention
2024-03-25 16:44:07 +07:00
Damien Elmes
4a3ff5031d
Move (most) FSRS options into their own section
2024-03-17 18:25:25 +07:00
Damien Elmes
1883549d32
Shift FSRS optimization into top level; shown optimize all tip after 30 days
2024-03-17 17:46:26 +07:00
Jarrett Ye
11423405d5
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
fec80175d9
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
2668087e77
Fix alert not appearing when FSRS parameters input is focused ( #3053 )
2024-03-05 06:43:57 +00:00
Abdo
6427f01339
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
3cde97275d
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
2332a6ee1e
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
291342ea2c
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
739e0196e9
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
f76763b10e
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
6eda192390
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
e68430eec2
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
2490267795
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
c7162781c0
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
a9f70b64e3
Give a hint about optimizing all presets
2023-12-11 14:27:17 +10:00
Damien Elmes
6f75b2eee2
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
05965d2825
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
aea95ee9ae
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
1021502377
Add option to calculate all weights at once
2023-11-27 11:24:31 +10:00
Damien Elmes
91d2822358
Update to latest FSRS
2023-11-27 11:24:31 +10:00
Abdo
7c2007ccad
Persist FSRS weights search in preset ( #2827 )
2023-11-14 11:47:08 +10:00
Damien Elmes
7afc0d0f2c
Relax desired retention warning from 0.85 to 0.8
2023-11-08 11:28:08 +10:00
Damien Elmes
3c31386c1f
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
cef178ef8c
Add an info box so the non-linear nature of desired retention can be seen
2023-11-06 12:04:31 +10:00
user1823
b5fdb74abf
(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
2c153e918b
Prompt user to save preset changes before they compute weights
...
Closes #2797
2023-11-04 11:46:29 +10:00
Damien Elmes
7bbea7fb9a
Warn users about rescheduling
2023-10-26 11:23:24 +10:00
Damien Elmes
1308edc4ce
Relax sm2 retention limits
2023-10-26 11:23:24 +10:00
user1823
b0effff30b
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
63382c21dc
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
568b24887f
Add help entries for FSRS options
2023-10-13 12:50:15 +10:00
Damien Elmes
41e7cad28e
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
97a28a8dd8
Hide loss aversion
2023-10-13 10:38:56 +10:00
Damien Elmes
ec8990dc11
Use sm2 retention when deriving memory state
...
Closes #2702
2023-10-13 10:37:35 +10:00
Damien Elmes
49fcbe8f8f
Support rescheduling on weight/retention change
2023-10-01 15:20:58 +10:00
Damien Elmes
6b0bc2ce71
Display the default weights as a placeholder
2023-09-30 16:10:23 +10:00
Damien Elmes
63088b0caf
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
0530027ec9
Tweak some wordings
2023-09-27 16:37:03 +10:00
Damien Elmes
f1e8f171d4
x% complete
2023-09-27 16:24:25 +10:00
Michael Eliachevitch
e6088c46e3
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
02d6420893
Fix weight computation progress not showing
2023-09-26 14:02:12 +10:00
Michael Eliachevitch
e226f74e42
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
3a6dd627d7
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
a5fff918ec
Don't show multiple cancel buttons
2023-09-25 16:40:11 +10:00
Damien Elmes
7f787a0e62
Prohibit weight generation when reps < 1000
2023-09-25 16:17:00 +10:00
Damien Elmes
790644de66
UI tweaks
...
https://forums.ankiweb.net/t/anki-23-10-beta-1/34912/19
2023-09-25 15:54:18 +10:00
Damien Elmes
098fad213c
Cap optimal retention simulation to 10 years
2023-09-25 14:34:26 +10:00