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
Damien Elmes
9205b4db3a
Fix error generating parameters when a parameter is 0
2023-12-12 12:33:32 +10:00
Damien Elmes
45abf1c7e8
Ensure cloze numbers sort in order
...
https://forums.ankiweb.net/t/anki-23-12-beta/37771/103
2023-12-12 09:51:42 +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
e778cba089
Allow user to configure hard/good buttons when rescheduling off
...
Closes #2858
2023-12-08 11:04:34 +10:00
Damien Elmes
fdcdc14f6b
Hide position when card not new
...
https://forums.ankiweb.net/t/position-info-is-shown-even-when-the-card-is-not-new/38087
2023-12-08 10:06:14 +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
Damien Elmes
96ae3a5d63
Update to latest fsrs-rs
...
The extra entries in Cargo.lock and licenses.json are mostly spurious,
and caused by https://github.com/tracel-ai/burn/pull/1025#issuecomment-1842006690
2023-12-07 14:13:58 +10:00
Gustaf-C
63260631e4
Include elapsed_secs in learning card state ( #2862 )
...
* Include elapsed_time in learning card state
* Suggested updates, elapsed_time -> elapsed_secs
* Remove outdated comment
2023-12-06 16:40:22 +10:00
Jarrett Ye
96ae3dce48
Fix/keep two decimals for stability ( #2873 )
...
* Fix/keep two decimals
* update test
2023-12-06 10:08:52 +10:00
Abdo
27b2bce604
Do not add a fallback field reference if front side contains conditionals ( #2859 )
...
* Do not add a fallback field ref if front contains conditionals
* Ensure field reference when there are only conditionals
2023-12-06 10:06:28 +10:00
Jarrett Ye
80c5f2d491
skip revlog with time = 0 when calc recall cost ( #2870 )
...
* skip revlog with time = 0 when calc recall cost
* Update retention.rs
2023-12-05 13:08:34 +10:00
Damien Elmes
4e281026a0
Catch NaNs in FSRS weights
...
Users pasting in weights from the old scheduler were leaving the outer
square brackets in, causing the first and last numbers to be parsed as
NaN.
2023-12-04 16:19:22 +10:00
Shawn M Moore
f447f89d07
Remember endpoint we authenticated against in returned SyncAuth ( #2864 )
...
* Include endpoint we authed against in response
* Add self to contributors
2023-12-04 15:05:29 +10:00
Abdo
344dbe45ed
Show actual due date of learning cards in Card Info ( #2865 )
2023-12-04 15:04:22 +10:00
Damien Elmes
75febab401
Fix relative overdueness order error in filtered deck
...
https://forums.ankiweb.net/t/anki-23-12-beta/37771/21
2023-12-01 14:54:33 +10:00
Damien Elmes
b29dc99b3e
Fix sorting by due column in notes mode
...
https://forums.ankiweb.net/t/anki-23-12-beta/37771/20
2023-12-01 14:50:41 +10:00
Damien Elmes
063b6f60fd
Rework error dialog
...
- Hide traceback
- Include full add-on info in 'copy debug info' button, like about
screen
- Link to troubleshooting page
- Use non-modal pop-up in the common case, to avoid potential conflicts
with other modals.
Closes #2830
2023-11-29 10:25:32 +10:00
Damien Elmes
e5170f341b
Remove some v3 checks
2023-11-28 14:06:49 +10:00
Damien Elmes
70b0fbde92
Update to Rust 1.74, and update most Rust deps
...
hyper has been held back, as neither reqwest nor axum support 1.0 yet
2023-11-27 13:34:42 +10:00
Damien Elmes
d767e9ad3c
Suppress manual revlog entry if the previous entry was also manual
...
Means we lose some detail in the history, but should reduce the
collection bloat caused by a user experimenting with reschedule multiple
times in a short period, when they don't restore from backup afterwards.
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
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
Jarrett Ye
3713c86373
don't convert from sm2 when ivl = 0 ( #2849 )
2023-11-26 13:14:31 +10:00
Abdo
9bdc8d8229
Fix sorting of due timestamps in the browser ( #2840 )
...
* Fix sorting of due timestamps in the browser
* Fix due sorting in notes mode
* Drop initial ctype sorting
* Fix new card positions being treated as due days
2023-11-24 18:31:14 +10:00
Jarrett Ye
a3363d7463
ignore filtered revlog in time of last review ( #2845 )
...
* ignore filtered revlog in time of last review
* fmt SQL
2023-11-24 15:52:00 +10:00
Damien Elmes
a50b086b33
Use note order when previewing
...
https://forums.ankiweb.net/t/card-in-disorder/37534/2
2023-11-24 15:01:14 +10:00
Mani
be1f889211
fixes: remove unfinished shapes, remove selectable and make shapes remain inside canvas ( #2809 )
...
* remove unfinished polygon and remove selectable for shapes in polygon mode
* make group and polygon position remain inside canvas area
* click through transparent area in grouped object
* add some shortcuts for basic usages
* tools button icon in center & switch mode border
* fix load svg image
* basic rtl support, panzoom have issues in rtl mode
* better zoom option both in ltr and rtl
* handle zoom event in mask editor
* add h button to handle toggle mask
* add more mime type
* use capital M (shift+m) for toggle mask
* allow io shortcuts in mask editor only
* make other shapes also remain in canvas bound area
* better zoom implementation, zoom from center
add zoom to resize event listener
* add a border to corner to handle blend of control
* add refresh button to go to selection menu
* add tooltip to shortcuts and also add shortcut for other tools
* make opacity remain in same state when toggled on
* opacity for group/ungroup objects
* update shortcuts implementation
2023-11-24 14:06:40 +10:00
Damien Elmes
366f78715b
Include next_day timestamp in revlog export
2023-11-23 14:46:48 +10:00
Damien Elmes
60c3bc8d37
Add remove_dir_all()
2023-11-22 17:41:45 +10:00
Damien Elmes
a9d73fc3be
Add a method for exporting revlogs in binary
2023-11-22 11:57:40 +10:00
Damien Elmes
f8e0321ca5
When training with the whole collection, include deleted card history
2023-11-22 10:53:08 +10:00
Damien Elmes
2399bf492a
Fix FSRS retrievability sorting issues
...
- We must use interval, not stability to infer days_elapsed
- We must use original due date in a filtered deck
- Use retrievability in filtered deck sorting, not just regular sorting
2023-11-20 13:59:45 +10:00
Damien Elmes
b248911b0f
Fix cards showing up due in the past in a filtered deck
...
Caused by using due instead of original_due when card was in learning.
I think the original goal of that code was to ignore the learning timestamp
and show the next review date instead, but it's both simpler and more
intuitive to show the learning date instead.
2023-11-20 10:52:13 +10:00
Damien Elmes
469052700f
Ignore invalid I/O notetypes when deciding whether to add
...
https://forums.ankiweb.net/t/can-t-add-new-cards/37155
2023-11-15 13:32:02 +10:00
Abdo
d752a43e2a
Fix filtered deck ordering of intraday learning cards and reviews ( #2828 )
...
* Fix filtered deck ordering of intraday learning cards and reviews
* Handle rollover correctly
2023-11-14 15:08:36 +10:00
Abdo
390935d4ea
Persist FSRS weights search in preset ( #2827 )
2023-11-14 11:47:08 +10:00
RumovZ
39a60bc3a4
Allow applying limits of inactive parents ( #2824 )
...
* Allow applying limits of inactive parents
* Tweak label/help text (dae)
2023-11-13 14:30:19 +10:00
RumovZ
f200d6248e
Allow im-/exporting with or without deck configs ( #2804 )
...
* Allow im-/exporting with or without deck configs
Closes #2777 .
* Enable webengine remote debugging in launch.json
* Reset deck limits and counts based on scheduling
Also:
- Fix `deck.common` not being reset.
- Apply all logic only depending on the source collection in the
gathering stage.
- Skip checking for scheduling and only act based on whether the call
wants scheduling. Preservation of filtered decks also depends on all
original decks being included.
- Fix check_ids() not covering revlog.
* Fix importing legacy filtered decks w/o scheduling
* Disable 'include deck options' by default, and fix tab order (dae)
* deck options > deck presets (dae)
2023-11-13 13:54:41 +10:00
Damien Elmes
d9e5c85686
Fix some build steps being re-run a second time unnecessarily
2023-11-13 13:35:54 +10:00
Abdo
ae7b14bf40
Add auto-advance options to deck preset ( #2765 )
...
* Move stop-timer-on-answer strings to correct section
* Add auto-advance options to deck preset
* Implement answer actions
* Fix error when last card is answered before timeout
* Fix deserialization of answerAction
* Add answerAction to reserved key list
* Fix inverted boolean
* Add option to wait for audio to finish
* Add auto-advance toggle
* Add shortcut
* Disable auto-advance when main window state changes
* Start auto-advance timer after option is toggled
* Disable auto-advance when main window loses focus
* Use existing translations
* Add Answer Hard and Show Reminder
2023-11-13 10:41:51 +10:00
Abdo
6cb4155e8e
Show due date of buried/suspended cards in card info ( #2820 )
...
* Show due date of buried/suspended cards in card info
* Simplify match and handle relearning cards
* Omit ctype checks
* Test due, not card.due (dae)
2023-11-13 10:23:46 +10:00
Damien Elmes
b6102d0310
Update fsrs-rs
2023-11-13 10:13:20 +10:00
Abdo
6a2d1f94d4
Move anki.utils.html_to_text_line() to backend ( #2816 )
2023-11-09 09:57:23 +10:00
Damien Elmes
ae6a03942f
Check video tags in media check
...
https://forums.ankiweb.net/t/video-tag-does-not-recognize-the-source-file-in-check-media/36850/2
2023-11-08 14:00:41 +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
9268dce707
Expose fuzz delta for FSRS add-on
2023-11-06 12:27:53 +10:00
Damien Elmes
59acde45a1
Remove redundant FSRS revlog code
...
Closes https://github.com/open-spaced-repetition/fsrs-rs/issues/113
2023-11-06 09:44:07 +10:00
Damien Elmes
fb05e430c0
Handle stability < 0.5 in stability graph
2023-11-05 13:44:39 +10:00
Gustaf-C
e071fb471b
Allow creation of empty filtered decks ( #2788 )
...
* Add new button to UI
* Add bool to allow creating empty filtered in back end
* Implement logic into front end for passing on bool
* Hide option on old decks
* Show option again if any settings are changed
* Revert "Show option again if any settings are changed"
This reverts commit 094acd9c65936823fa206594da5c1f3e4eb09248.
* Revert "Hide option on old decks"
This reverts commit d20a9a240b4fd85d080e8cc52d94318416ca753f.
* Update string
* Update ftl/core/decks.ftl
---------
Co-authored-by: Damien Elmes <dae@users.noreply.github.com>
2023-11-05 12:23:14 +10:00
Damien Elmes
987c1825a6
Fix panic when enabling FSRS with add-on-rescheduled cards
...
https://forums.ankiweb.net/t/error-upon-fsrs-activation-on-anki-23-10/36488
2023-11-03 10:07:47 +10:00
RumovZ
feaaaa230a
Time out after 60s when checking URLs ( #2785 )
2023-11-01 07:46:49 +10:00
Damien Elmes
eda564ed59
Fix D/R graphs excluding values of 1.0
...
Closes #2783
2023-10-29 07:45:10 +10:00
Damien Elmes
f934bc2cf3
Fix sm2_retention getting reset on downgrade/sync
2023-10-28 14:45:24 +10:00
Damien Elmes
3ebc6ac68a
Expose method to check for v2 as well
2023-10-27 02:47:04 +10:00
Damien Elmes
633d246306
Don't lock collection while generating TTS
2023-10-26 11:45:17 +10:00
Damien Elmes
ceb8a4ac20
Revert "Use scheduling flag instead of checking revlog when importing decks ( #2730 )"
...
This reverts commit e1e0f2e1bd
.
The previous change breaks the assumption on this line:
DeckKind::Filtered(_) => unreachable!(),
This will likely need a bigger refactor to handle this properly, and separate
out importing of deck configs from other scheduling data.
2023-10-26 11:23:24 +10:00