Commit graph

1970 commits

Author SHA1 Message Date
Jarrett Ye
74a603e61b
use rmse in comparing parameters (#3087) 2024-03-24 08:28:15 +00:00
Damien Elmes
8fc4225b29 Update translations, and full sync -> one-way sync 2024-03-21 10:17:24 +07: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
Damien Elmes
e9d3b46d47 Shift FSRS optimization into top level; shown optimize all tip after 30 days 2024-03-17 17:46:26 +07:00
Brayan Oliveira
1bd6d2883e
fix: cloze_numbers_in_string treating {{c0::}} as valid (#3059)
* fix: cloze_numbers_in_string treating `{{c0::}}` as valid

* Update rslib/src/cloze.rs

Co-authored-by: Abdo <abdo@abdnh.net>

---------

Co-authored-by: Abdo <abdo@abdnh.net>
2024-03-12 15:51:13 +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
Jarrett Ye
055b6e30f8
update FSRS-rs to 0.5.0 & export benchmark API (#3056)
* update fsrs to 0.4.5

* update to fsrs 0.4.6

* add benchmark API

* update fsrs to 0.5.0

* cargo fmt

* ./ninja fix:minilints

* ./ninja format

* Add a brief comment about the new method (dae)
2024-03-08 12:37:06 +00:00
Abdo
9228c87b3a
Show preset and original deck in card info (#3055)
* Show preset and original deck in card info

* Make original_deck optional
2024-03-07 07:47:55 +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
Damien Elmes
4fc535ec88
Dependency updates (#3040)
* Update JS deps

* Update semver-compat Rust deps

* Update some semver-incompat Rust deps

- hyper/axum held back because reqwests is not ready
- rusqlite held back due to burn-rs incompat version
- wiremock held back due to compile issue

* pylint wants changes to our _rsbridge.pyi

* Update Python deps

Also solves a security warning in orjson

Reformat with latest black
2024-02-28 16:28:04 +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
Jarrett Ye
103ea6ded0
clamp interval before fuzz_bounds (#3024)
* clamp interval before fuzz_bounds

* update unit test of with_review_fuzz
2024-02-25 12:18:01 +07:00
Viktor Ricci
68b374e65f
Fix regex skipping over all src except the last (#3021)
Adapting HTML_MEDIA_TAGS to allow for `>` inside '' and "" led to
multiple images inside a field sometimes being disregarded and
marked as "unused". This seems to have been caused by a missing
lazy (?) quantifier for the regex part skipping over non-`>`.
2024-02-24 15:27:38 +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
Abdo
2b4cb2992b
Fix deck names differing in case being duplicated in CSV import (#3008) 2024-02-14 20:25:54 +10: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
Abdo
e136ec65e9
Fix preset: search ignoring cards in filtered decks (#2997) 2024-02-11 16:11:05 +10:00
Abdo
db02c95eb5
Fix maybe_coalesce_note_undo_entry() (#2992)
* Fix maybe_coalesce_note_undo_entry()

* Use .count()

* Only check .first()

* Explicitly match on [note change, collection modification] (dae)
2024-02-11 16:04:10 +10:00
Abdo
80c14aa6e9
Maintain original IO cloze order in editing mode (#2987)
* Maintain original IO cloze order in editing mode

* Fix ordinal propery name
2024-02-07 13:42:47 +10:00
Abdo
85a8824c8c
Do not reset original_due when card stays in filtered deck (#2988) 2024-02-07 13:27:54 +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
RumovZ
e7a2242262
Increase parent limits in custom study when 'limits start from top' is enabled (#2971)
Closes #2965.
2024-01-29 13:15:44 +10:00
RumovZ
69a51ec296
Fix notetype conflict resolution (#2967)
* Fix undoing notetype conflict resolution

* Fix field/template mapping after notetype conflict resolution
2024-01-29 13:00:57 +10:00
Abdo
eab5c02251
Add by creation date review sort order (#2957)
* Add by creation date review sort order

* Order by template after nid in ReverseAdded of filtered decks too
2024-01-21 20:29:19 +10:00
Abdo
f480ecea0c
Default to 'Bury Card' action consistently (#2950) 2024-01-19 15:49:16 +10:00
Damien Elmes
f21b5aec12 Fix error after notetype merge + downgrade 2024-01-12 15:16:27 +10:00
Damien Elmes
86687b4148 Include details on what's missing when a NotFound error is triggered
Makes debugging issues like #2939 easier
2024-01-11 14:20:10 +10:00
Damien Elmes
57ec454847
Fix importing of Mnemosyne due dates (#2936) 2024-01-11 14:11:17 +10:00
RumovZ
1613eae261
Fix note id mix-up when resolving notetype conflicts (#2940)
Closes #2939.
2024-01-11 13:50:03 +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
3982e0c8fe Update to Rust 1.75 2024-01-05 14:28:23 +10:00
Abdo
646ba41cf8
Ignore some extra chars in no-combining search (#2929)
* Ignore some extra chars in no-combining search

* Construct new string

* Update rslib/src/text.rs (dae)
2024-01-05 14:22:52 +10:00
Viktor Ricci
f544bdd041
Allow > inside HTML attributes (#2918)
* Allow > inside HTML attributes

* Don't add unnecessary (?:...) to HTML_MEDIA_TAGS
2024-01-01 14:09:30 +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
RumovZ
be89ec8892
Cloze notetype merges (#2912)
* Abort when trying to match notetypes of different kinds

* Skip merging templates if target is cloze
2023-12-28 18:01:23 +10:00
RumovZ
c39f2cacae
Fix new cards from parent decks being gathered (#2907)
Fixes #2906.
2023-12-24 20:04:28 +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
d9f5487815 Force memory state recompute when cards moved into different deck 2023-12-22 14:02:39 +10:00
RumovZ
8537e85a64
Log existing notes during CSV import (#2898) 2023-12-22 14:01:35 +10:00
Damien Elmes
4678b0cc4a Use seconds instead of minutes for preview delay
Since this is not compatible with older clients, preview_delay has been
brought back so the configured value will still sync.
2023-12-21 11:02:29 +10:00
Damien Elmes
edd38ca067 Calculate elapsed days for intraday learning cards
https://forums.ankiweb.net/t/anki-23-12-beta/37771/109
2023-12-13 10:18:29 +10:00