Skip to content
This repository has been archived by the owner on Apr 25, 2024. It is now read-only.

Create_init_custom_data in case of first rating using the plugin is TOO-EARLY #22

Open
hugomarins opened this issue Jun 27, 2023 · 3 comments
Labels
invalid This doesn't seem right

Comments

@hugomarins
Copy link

It looks like if the first rating using the plugin of a card with previous review history if TOO-EARLY, no CustomData is stored:

image

But after 1 hour, when the card is shown, the Init_custom_data will be calculated, and will get an incorrect initial stability (relevant difference if that 'TOO-EARLY' was pressed in a very overdued card). Because the initial stability will be calculated as if [that 'TOO-EARLY' pressing day (-) the previous review date] was the previous interval, when in fact this is not:
image

(Am I not thinking clearly here?)

I noticed that the calculated stability was strange for a card with this edge case:
image

The new stability was too long for my settings (and exactly matched the one that would be correct if the last interval was indeed ['TOO-EARLY' pressing day (-) the previous review date ], instead of 3.7 months).

image

I wouldn't bother you if I knew how to solve this. Can you help me?

@hugomarins
Copy link
Author

Another example card (jumped from a 13d stability to 2.6y):
image

image

@L-M-Sherlock L-M-Sherlock added the invalid This doesn't seem right label Jul 9, 2023
@L-M-Sherlock
Copy link
Member

Because the initial stability will be calculated as if [that 'TOO-EARLY' pressing day (-) the previous review date] was the previous interval, when in fact this is not:

const revlogs = filterUnusedQueueInteractionScores(history);

The 'TOO-EARLY' review has been filtered out of the revlogs.

@hugomarins
Copy link
Author

hugomarins commented Aug 17, 2023

The problem is that filtering the TOO-EARLY, the information of the Target Date ("scheduled" of the RepetitionStatus) [in the blue circle in the image below] is lost, making it impossible to recover the stability ("Next Interval") information.

image

The algo is reconstructing the stability based on incorrect dates, as the one needed has been lost when TOO-EARLY was filtered of the revlog history. (in the example above, stability was calculated as if being 1 year, and not 2 months as it should be).

image

@bjsi , I saw that of all info of the metadata history shown in RemNote (above), "Next Interval" is the only one that in not possible to recover in this structure:
image

Can't you include this info in the RepetitionStatus interface? If it were there, we would be able to ignore TOO-EARLY review and yet have the needed info to stablish the correct stability in the init_custom_data (first time the FSRS is used in the history of the card).

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
invalid This doesn't seem right
Projects
None yet
Development

No branches or pull requests

2 participants