diff --git a/rslib/src/scheduler/states/review.rs b/rslib/src/scheduler/states/review.rs index 2f3bdbd30..2fa7d2b16 100644 --- a/rslib/src/scheduler/states/review.rs +++ b/rslib/src/scheduler/states/review.rs @@ -77,11 +77,16 @@ impl ReviewState { ctx: &StateContext, ) -> (u32, Option) { if let Some(states) = &ctx.fsrs_next_states { + // In FSRS, fuzz is applied when the card leaves the relearning + // stage (states.again.interval, Some(states.again.memory.into())) } else { - let interval = (((self.scheduled_days as f32) * ctx.lapse_multiplier) as u32) - .max(ctx.minimum_lapse_interval) - .max(1); + let (minimum, maximum) = ctx.min_and_max_review_intervals(ctx.minimum_lapse_interval); + let interval = ctx.with_review_fuzz( + (self.scheduled_days as f32) * ctx.lapse_multiplier, + minimum, + maximum, + ); (interval, None) } }