open-spaced-repetition / fsrs4anki-helper

An Anki add-on that supports Postpone & Advance & Load Balance & Easy Days & Disperse Siblings & Flatten
https://ankiweb.net/shared/info/759844606
MIT License
199 stars 14 forks source link

Auto reschedule recent reviews after sync #99

Closed akavi1 closed 1 year ago

akavi1 commented 1 year ago

It should reschedule before syncing. If you reschedule after syncing, then you just have to sync again because the cards were changed.

user1823 commented 1 year ago

Did you actually try using it? This feature is meant for rescheduling the cards studied on other devices. So, it can't work if rescheduling occurs before sync.

Moreover, if you didn't study any cards on other devices, no cards would be rescheduled and, thus, you won't need to sync again.

akavi1 commented 1 year ago

Yes, I did use it. I studied on my computer, then synced on computer, switched to iOS, synced on iOS, then tried to study on iOS. The intervals updated on the computer but did not carry over to iOS because the sync happened before any rescheduling.

Looks like it works moving from mobile to computer, but not when moving from computer to mobile.

Perhaps, making it reschedule before and after syncing would be better?

user1823 commented 1 year ago

I studied on my computer, then synced on computer, switched to iOS, synced on iOS, then tried to study on iOS. The intervals updated on the computer but did not carry over to iOS because the sync happened before any rescheduling.

If you studied on the computer and then synced, no cards should be rescheduled (unless you also studied some cards on mobile which were not synced to the computer earlier).

But, this was not the case with a slightly older version of the helper add-on. Are you sure that you are using the latest version of the add-on?

You can check this by going to Tools -> Add-ons -> Check for Updates in your Anki.

akavi1 commented 1 year ago

If you studied on the computer and then synced, no cards should be rescheduled (unless you also studied some cards on mobile which were not synced to the computer earlier).

The helper addon calculates intervals differently from (and from what I understand, more accurately than) the custom FSRS code. So even though I'm studying on a computer using FSRS, invoking the helper addon still reschedules cards.

I've noticed the intervals calculated by the addon seem more appropriate so I want to use those.

L-M-Sherlock commented 1 year ago

It will make the interval shown above rating nonsense. It even makes the scheduler unused. If you prefer rescheduling, I recommend rescheduling manually.

user1823 commented 1 year ago

The helper addon calculates intervals differently from (and from what I understand, more accurately than) the custom FSRS code.

Yes. I agree with this.

So even though I'm studying on a computer using FSRS, invoking the helper addon still reschedules cards.

There is a difference between "Reschedule all cards" / "Reschedule cards reviewed in the last x days" and the "Auto reschedule recent reviews after sync" option.

The "Auto reschedule recent reviews after sync" option works only for the cards studied on other devices (assuming that you are using the latest version of the helper add-on).

I've noticed the intervals calculated by the addon seem more appropriate so I want to use those.

If you want to use the intervals calculated by the add-on, you should use the "Reschedule cards reviewed in the last x days" option.

akavi1 commented 1 year ago

I see. I guess I'll just have to manually use the addon then.

There is a difference between "Reschedule all cards" / "Reschedule cards reviewed in the last x days" and the "Auto reschedule recent reviews after sync" option.

Ahh I didn't realize they were different. I thought auto reschedule just ran the "Reschedule cards reviewed in the last x days" command at each sync.

It will make the interval shown above rating nonsense. It even makes the scheduler unused.

Yes. I still don't really understand the advantage of the scheduler other than convenience. The helper seems to be the better and more accurate option.

user1823 commented 1 year ago

I thought auto reschedule just ran the "Reschedule cards reviewed in the last x days" command at each sync.

Well, that was the behaviour few updates before. But, it led to some unintended results and so we changed the behaviour of the auto reschedule option.

user1823 commented 1 year ago

By the way, @L-M-Sherlock, is the interval given by the helper more accurate than that given by the scheduler even if the card was rescheduled previously?

I think that if the helper had already calculated the memory states based on the entire review history, the scheduler should be able to use them to calculate the accurate memory states for the next review.

L-M-Sherlock commented 1 year ago

By the way, @L-M-Sherlock, is the interval given by the helper more accurate than that given by the scheduler even if the card was rescheduled previously?

Obviously not. The helper is more accurate for existing cards. If the existing cards were rescheduled, their memory state is accurate, and the scheduler will give the same result as the helper.

user1823 commented 1 year ago

By the way, @L-M-Sherlock, is the interval given by the helper more accurate than that given by the scheduler even if the card was rescheduled previously?

Obviously not. The helper is more accurate for existing cards. If the existing cards were rescheduled, their memory state is accurate, and the scheduler will give the same result as the helper.

So, I think that you should update the description of the add-on on AnkiWeb. Currently, it suggests that the intervals given by the add-on are more accurate in all the cases.

So, @akavi1, this means that you don't need to reschedule your cards everyday because it would have no benefit (unless you are working on a device that doesn't support custom scheduling such as AnkiDroid and possibly AnkiWeb also).

If you do use such a device, you can use the "Auto reschedule" option and it would work just fine.

L-M-Sherlock commented 1 year ago

So, I think that you should update the description of the add-on on AnkiWeb. Currently, it suggests that the intervals given by the add-on are more accurate in all the cases.

OK, I have updated the description just now.

akavi1 commented 1 year ago

If the existing cards were rescheduled, their memory state is accurate, and the scheduler will give the same result as the helper.

Hmm. This is not true for me. I'm running the most updated versions of both the helper and scheduling code. When I manually reschedule recently reviewed cards with the helper, the intervals are not the same as those calculated by the scheduler. I made the following observations:

I tested this by looking at the card's interval after rating today, before and after manually rescheduling with the addon

user1823 commented 1 year ago

@akavi1, it would be better if you could provide the screenshots of the card info before and after the rescheduling.

akavi1 commented 1 year ago

sure here is an example I had saved. On the left is the card info immediately after rating the card. The right shows how it changes after rescheduling with the addon.

image
L-M-Sherlock commented 1 year ago

In your card info, I find that you use steps longer than 1 day. It will mess up the scheduler.

akavi1 commented 1 year ago

yes, my steps are 30m 1d. If I remove the 1d step, it only shows me relearning cards one time before scheduling them weeks or months into the future. It is almost like setting the "New Interval" multiplier very high. This feels very extreme.

Is there a way to adjust the algorithm to achieve an effect similar to lowering the "New Interval" setting? Would setting my steps to 30m 8h solve this problem?

user1823 commented 1 year ago

If I remove the 1d step, it only shows me relearning cards one time before scheduling them weeks or months into the future.

Well, it is a known issue. We are currently working to improve the algorithm so that the interval after the lapse is more reasonable.

Would setting my steps to 30m 8h solve this problem?

I think that it should work but @L-M-Sherlock would know it better.

But, in my opinion, it would work only if you do the card on the same day (rather than doing on the next day).

review cards that I answered "good" today - helper's interval is smaller than the scheduler's

Can you provide an example of this?

akavi1 commented 1 year ago

review cards that I answered "good" today - helper's interval is smaller than the scheduler's

Can you provide an example of this?

Ok correction: I must have mistyped that. The helper's interval is usually larger than the scheduler's. But it's still weird that the two are different.

6.03mo with the scheduler vs 6.73mo with the helper

image
akavi1 commented 1 year ago

Could this just be due to fuzz being calculated with two different seeds?

L-M-Sherlock commented 1 year ago

Could this just be due to fuzz being calculated with two different seeds?

Yep, the fuzz is implemented differently in JavaScript and Python.