-
Notifications
You must be signed in to change notification settings - Fork 2.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
FSRS wrongly converts a card to interday learning card? #3712
Comments
According to the code, if the interval is greater than 0.5 day, the anki/rslib/src/scheduler/states/learning.rs Lines 143 to 173 in 39e293b
How did you know that the card is a interday learning card? |
Because it appears as red in the deck picker and has an interval of 1d. I also verified that it has type = 1 in the database. I can share the card from the backup created on 10th Jan. I don't have a backup before the last rating in the above screenshot. Parameters: Desired retention: 0.94 Edit: |
I'm sorry but I cannot reproduce the bug. I tried to increase the desired retention to 0.99 and press |
Ok, then let me guess. For a stability of 14h and DR = 0.94, FSRS would have calculated an interval of about 8 hours. Since this is less than 0.5d, |
Ok, I ran the following commands in the debug console to regenerate the "before" card after deleting the revlogs and updating the memory states. mw.col.db.execute("update cards set due=1736444160 where id = 1736346558840")
mw.col.db.execute("update cards set ivl=0 where id = 1736346558840")
mw.col.db.execute("update cards set queue=1 where id = 1736346558840") Here's the result: Before.apkg.zip To reproduce the issue, set your device time to 01:40 (night) on 10th Jan (Shanghai time). Launch Anki Upon rating the card with the above steps, I get the following:
So, in this case, Anki is indeed converting the intraday learning card (queue = 1) to an interday learning card (queue = 3). |
So, what's the expected behavior here? Should Anki keep the card in learning or convert it to review? |
If it remains a intraday learning card (queue = 1), would FSRS be able to know that I rated it on the next day so that it can calculate the next interval accordingly? If yes, keep it as an intraday learning card. If not, convert to review card. My main problem with the current behaviour is that on the next day, this card has a very low R but it doesn't show up in the early part of the reviews (even with ascending R sort order) because Anki is trying to shuffle interday learning and review cards evenly. |
Spitballing, instead of changing the behaviour of FSRS, we can also solve this issue (and possibly others) by treating the interday learning cards and review cards in the same way during review sorting if |
Yes. FSRS treats it as a review card if you review it in the next day. |
@L-M-Sherlock
I am using
fsrs_short_term_with_steps
. Many times, I notice that after a review, FSRS converts a intraday learning card into a interday learning card.But, if the interval is 1d or more, shouldn't it simply convert the card to a review card?
Card info of one such card:
This is currently a interday learning card with a 1d interval.
The text was updated successfully, but these errors were encountered: