From 8d11a909edf33b1154852012170cd069cb2e59f4 Mon Sep 17 00:00:00 2001 From: user1823 <92206575+user1823@users.noreply.github.com> Date: Fri, 28 Jun 2024 16:50:45 +0530 Subject: [PATCH] Fix FSRS easy interval being same as good interval in relearning cards (#3256) * Fix FSRS easy interval being same as good interval in relearning cards https://github.com/ankitects/anki/pull/3236#issuecomment-2187787774 * Update relearning.rs * Update relearning.rs * Set min interval of easy to Good + 1 * Ensure minimum doesn't exceed maximum (dae) With a maximum interval set, it would be possible to confuse with_review_fuzz() by passing min > max. --- rslib/src/scheduler/states/relearning.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/rslib/src/scheduler/states/relearning.rs b/rslib/src/scheduler/states/relearning.rs index 9254e9e58..d67a5ef90 100644 --- a/rslib/src/scheduler/states/relearning.rs +++ b/rslib/src/scheduler/states/relearning.rs @@ -134,7 +134,12 @@ impl RelearnState { fn answer_easy(self, ctx: &StateContext) -> ReviewState { let scheduled_days = if let Some(states) = &ctx.fsrs_next_states { - let (minimum, maximum) = ctx.min_and_max_review_intervals(1); + let (mut minimum, maximum) = ctx.min_and_max_review_intervals(1); + // ensure 1 greater than good where possible + let good = ctx.with_review_fuzz(states.good.interval as f32, minimum, maximum); + if minimum < maximum { + minimum = good + 1; + } let interval = states.easy.interval; ctx.with_review_fuzz(interval as f32, minimum, maximum) } else {