user1823
15b48cf894
Correct a comment ( #3570 )
...
Because of the `entry.button_chosen == 0` part, it also filters out reschedule entries. Frankly, we don't need the `(entry.review_kind == RevlogReviewKind::Rescheduled)` part, but I didn't remove it yet.
Co-authored-by: Abdo <abdo@abdnh.net>
2024-11-17 13:08:01 +03:00
Jarrett Ye
9a44881121
export revlogs where the rating is between 1 and 4 for research ( #3524 )
2024-10-26 19:38:17 +10:00
Damien Elmes
6adbd922f7
Rename remaining 'weights' references to 'params'
2024-10-21 18:13:23 +10:00
Damien Elmes
c45fa518d2
Use separate field to store FSRS params
...
Will allow the user to keep using old params with older clients
2024-10-21 18:13:23 +10:00
Jarrett Ye
26ae51fafd
Create a new kind of revlog entry for reschedule cards on change ( #3508 )
...
* create a new kind of revlog entry for Reschedule cards on change
* add comments
* exclude the rescheduled case in reviews graph
2024-10-21 16:47:01 +10:00
Jarrett Ye
6ff309e08f
Feat/option to enable FSRS short-term scheduler when (re)learning steps run out && speed up features based on simulation ( #3505 )
...
* Update to FSRS-rs v1.3.2
* add fsrs_short_term_with_steps_enabled to config
* ./ninja fix:minilints
* fix defaults_for_testing
* if current parameters are invalid, skip comparison
fix #3498
* fix redundant_field_names
* cargo clippy --fix
* Update to FSRS-rs v1.3.3
* Update to FSRS-rs v1.3.4
* Avoid an extra config lookup on each card answer (dae)
2024-10-21 15:09:07 +10:00
Jarrett Ye
b09326cddd
Feat/export dataset for research ( #3511 )
...
* Feat/export dataset for research
* add comment
Co-authored-by: Damien Elmes <dae@users.noreply.github.com>
* target_path is required
* format
* improve efficiency to look up parent_id
* move `use` down
2024-10-18 18:57:06 +10:00
Jarrett Ye
f804abf758
Fix/only let FSRS take over short-term schedule when steps are empty ( #3496 )
2024-10-16 01:16:47 +10:00
Damien Elmes
111cefe8f1
Revert "When updating all FSRS parameters at once, exclude suspended cards"
...
https://forums.ankiweb.net/t/memory-state-of-suspended-cards/50460/6
This reverts commit 656cfe0b9c .
2024-10-12 22:09:05 +10:00
Jarrett Ye
598233299e
Let FSRS control short term schedule ( #3375 )
...
* graduate card when user press hard and has 0 learning steps
* fix error: useless conversion to the same type
* do the same thing to again
* fix expected `Option<u32>`, found integer
* ./ninja format
* let FSRS control short term schedule
* Update to FSRS-rs v1.3.0
* ./ninja check:clippy
* Update to FSRS-rs v1.3.1
* Pin FSRS version (dae)
https://github.com/ankidroid/Anki-Android-Backend/pull/417
* Remove redundant parens (dae)
2024-10-06 12:20:18 +10:00
Jarrett Ye
db5c472e20
Fix/keep the same-day reviews for training & optimized parameters should be consistent if the inputs are consistents ( #3450 )
...
* keep the same-day reviews in feature
* Update to FSRS-rs v1.2.3
* format
* don't remove short-term reviews if not training
* Update to FSRS-rs v1.2.4
2024-09-30 23:43:26 +10:00
Jarrett Ye
34809f2520
Fix/simulator crashes if no history ( #3405 )
...
* Fix/simulator crashes if no history
* ./ninja format
* remove (experimental) from ComputeOptimalRetention
* update to fsrs-rs v1.2.2
2024-09-10 23:15:33 +07:00
Damien Elmes
b241ab9492
Dependency updates ( #3403 )
...
* Bump Python deps
Primarily for flask-cors CVE
* Bump TS deps; pin license checker
Current checker is missing the binary
https://github.com/RSeidelsohn/license-checker-rseidelsohn/issues/118
* Update Rust deps
Hyper and axum are held back as we currently make use of the older
http library that reqwest pulls in
2024-09-04 12:21:50 +07:00
Jarrett Ye
b7cb0c0d00
graduate card when user presses again or hard and has 0 learning steps ( #3367 )
...
* graduate card when user press hard and has 0 learning steps
* fix error: useless conversion to the same type
* do the same thing to again
* fix expected `Option<u32>`, found integer
* ./ninja format
* Update to FSRS-rs v1.2.0
* if else -> match
* Weight length check has been moved into FSRS (dae)
* Don't mention the number of FSRS parameters (dae)
It has changed, and may change again.
2024-08-29 22:20:11 +07:00
Jarrett Ye
8ed9f49bdc
Feat/FSRS Simulator ( #3257 )
...
* test using existed cards
* plot new and review
* convert learning cards & use line chart
* allow draw multiple simulations in the same chart
* support hide simulation
* convert x axis to Date
* convert y from second to minute
* support clear last simulation
* remove unused import
* rename
* add hover/tooltip
* fallback to default parameters
* update default value and maximum of deckSize
* add "processing..."
* fix mistake
2024-08-22 15:34:19 +07:00
Jarrett Ye
52ce6e6a6b
Feat/FSRS-5 ( #3298 )
...
* Feat/FSRS-5
* adapt the SimulatorConfig of FSRS-5
* update parameters from FSRS-4.5
* udpate to FSRS-rs v1.1.0
* ./ninja fix:minilints
* pass ci
* update cargo-deny to 0.14.24
* udpate to FSRS-rs v1.1.1
* update to fsrs-rs v1.1.2
2024-07-21 21:02:24 +07:00
Damien Elmes
6b3b545a9a
Some lint fixes for newer Rust
2024-07-06 18:40:37 +07:00
Jarrett Ye
6d13221ae5
Remove threshold of compute minimum recommended retention ( #3246 )
...
* remove threshold of compute minimum recommended retention
* update tool tip of compute-optimal-retention
* cargo clippy --fix
* Update FsrsOptionsOuter.svelte
* Remove 'from 0 cards' reference (dae)
2024-06-28 18:26:39 +07:00
Jarrett Ye
2b890b0eee
Fix/ignore revlogs when there is not learn entry after the last forget entry ( #3199 )
2024-05-17 06:07:15 +01:00
Jarrett Ye
c9c7a3133c
Use median in calculating cost and remove outliers ( #3181 )
...
* Use median in calculating cost and remove outliers
* extract fn median_secs
2024-05-02 20:16:04 +10:00
Abdo
22ac77896f
Show review count for Evaluate/Optimize button ( #3170 )
...
* Revert "Show review count with FSRS evaluation results (#3165 )"
This reverts commit b7e782c7e1 .
* Show review count for Evaluate/Optimize button
2024-05-01 17:02:59 +10:00
Abdo
b7e782c7e1
Show review count with FSRS evaluation results ( #3165 )
2024-04-25 17:10:41 +10:00
Jarrett Ye
2c9accf595
update optimal retention and parameters tooltip ( #3148 )
...
* update optimal retention and parameters tooltip
* Revert "update optimal retention and parameters tooltip"
This reverts commit 32fdc5c1c3 .
* update optimal retention and parameters tooltip
* check num of revlogs at first
* use new translation string
* Update deck-config.ftl
Co-authored-by: user1823 <92206575+user1823@users.noreply.github.com>
* Update deck-config.ftl
Co-authored-by: user1823 <92206575+user1823@users.noreply.github.com>
* Update deck-config.ftl
Co-authored-by: user1823 <92206575+user1823@users.noreply.github.com>
* Update ftl/core/deck-config.ftl
Co-authored-by: user1823 <92206575+user1823@users.noreply.github.com>
* fix position of translation string
* Update deck-config.ftl
Co-authored-by: Damien Elmes <dae@users.noreply.github.com>
* Update deck-config.ftl
Co-authored-by: Damien Elmes <dae@users.noreply.github.com>
* Update deck-config.ftl
---------
Co-authored-by: user1823 <92206575+user1823@users.noreply.github.com>
Co-authored-by: Damien Elmes <dae@users.noreply.github.com>
2024-04-24 02:38:52 +01:00
Jarrett Ye
d1b2ab5983
Return current weights if fsrs items is zero & handle error in evaluation and optimal retention ( #3141 )
...
* return current weights if fsrs_items is zero
* handle error of evaluation if items.is_empty()
* TODO: handle error of optimal retention
* Revert "TODO: handle error of optimal retention"
This reverts commit 80a5b3803e .
* Revert "handle error of evaluation if items.is_empty()"
This reverts commit 7f0a5570e7 .
2024-04-17 20:18:00 +10:00
Jarrett Ye
10d567f937
Update to FSRS-rs v0.6.1 ( #3106 )
...
* update to FSRS-rs 0.6.0
* update to crates.io version
* format
* update to FSRS-rs v0.6.01
* ./ninja fix:minilints
* update python backend code
2024-04-05 13:04:50 +01:00
Jarrett Ye
15506328e9
rename sm2 retention to historical retention ( #3101 )
...
* rename sm2 retention to historical retention
* ninja format
* keep sm2_retention in DeckConfSchema11
* update wording
* Update schema11.rs
2024-03-29 09:34:26 +00:00
ijqq
22559929f9
Replace deprecated method chrono::NaiveDateTime::timestamp_millis ( #3097 )
...
* Replace deprecated method `chrono::NaiveDateTime::timestamp_millis`
* Update CONTRIBUTORS
2024-03-28 08:30:02 +00:00
Jarrett Ye
74a603e61b
use rmse in comparing parameters ( #3087 )
2024-03-24 08:28:15 +00:00
Damien Elmes
656cfe0b9c
When updating all FSRS parameters at once, exclude suspended cards
2024-03-20 12:56:36 +07:00
Jarrett Ye
8d197a1555
Feat/fsrs simulator backend part ( #3075 )
...
* [WIP] FSRS simulator
* add desired_retention as input
* cargo fmt
* fix format
* add standard copyright header
* support existing cards
* fix format
* pass days_elapsed into Card::convert & return None
2024-03-18 13:42:38 +00: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
Jarrett Ye
eb597475c5
Fix/set pretrain_only by fsrs_items ( #3051 )
...
* Fix/set pretrain_only and insufficient reviews based on fsrs_items
* use review_count for FsrsInsufficientReviews
* Update weights.rs
* Update weights.rs
2024-03-05 07:54:34 +00:00
Jarrett Ye
c7556f17e6
update fsrs to 0.4.4 ( #3045 )
...
* update fsrs to 0.4.4
* fix bypassed_learning_is_handled
2024-03-03 14:30:34 +07: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
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
Damien Elmes
9642a69b88
FSRS items, not revlogs
...
https://forums.ankiweb.net/t/discrepancy-between-revlog-count-in-optimize-and-evaluate/41224/5
2024-02-19 17:51:07 +07:00
Jarrett Ye
492178c107
Fix/ignore revlogs before Forget entry ( #3002 )
...
* Fix/ignore revlogs before Forget entry
* Update weights.rs
2024-02-12 16:09:39 +10: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
bf06020855
Use card.reps - 1 when calculating fuzz ( #2933 )
...
https://github.com/open-spaced-repetition/fsrs4anki-helper/issues/343#issuecomment-1879584562
https://forums.ankiweb.net/t/reschedule-is-inconsistent-with-normal-schedule-in-fuzz/39363
2024-01-09 12:26:46 +10:00
Damien Elmes
66d0046b8a
Check review count up front
...
https://forums.ankiweb.net/t/inconsistent-number-of-reviews-when-clicking-optimize/39275/7
2024-01-08 14:05:09 +10:00
Damien Elmes
1a1d4d5419
Work around test failure on Windows
2023-12-28 18:43:28 +10:00
Damien Elmes
b73c1c7f87
Pull in FSRS fix for pretrain
2023-12-28 18:15:44 +10:00
Jarrett Ye
3378e476e6
Update to FSRS-4.5 ( #2901 )
2023-12-22 16:17:40 +10:00
Damien Elmes
4908be62ed
Update FSRS
...
We're on the commit prior to
https://github.com/open-spaced-repetition/fsrs-rs/pull/141 , as that is
going to require work that will need to wait until after 23.12
2023-12-22 14:02:39 +10:00
Damien Elmes
db93939ded
Don't use SM2 memory state when cards are manually introduced
...
https://github.com/open-spaced-repetition/fsrs4anki/issues/540#issuecomment-1848833376
2023-12-12 09:40:31 +10:00
Damien Elmes
cfc6bc6548
Update FSRS for new default weights
2023-12-08 13:54:31 +10:00
Damien Elmes
86aafa74a6
Treat cards with no reps like new cards
...
https://github.com/open-spaced-repetition/fsrs4anki/issues/540#issuecomment-1837780217
2023-12-07 14:56:39 +10:00