From e3959e1c278c6c8628fb515ba4b028f1f79c16f4 Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Sat, 27 Sep 2025 13:39:46 +0700 Subject: [PATCH] Wording tweaks/comments for clarity --- rslib/src/scheduler/fsrs/memory_state.rs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/rslib/src/scheduler/fsrs/memory_state.rs b/rslib/src/scheduler/fsrs/memory_state.rs index 95933dded..303bbfd91 100644 --- a/rslib/src/scheduler/fsrs/memory_state.rs +++ b/rslib/src/scheduler/fsrs/memory_state.rs @@ -136,14 +136,18 @@ impl Collection { let deckconfig_id = deck.config_id().unwrap(); // reschedule it let original_interval = card.interval; - let greater_than_last = |interval: u32| { + let min_interval = |interval: u32| { let previous_interval = last_info.previous_interval.unwrap_or(0); if interval > previous_interval { + // interval grew; don't allow fuzzed interval to + // be less than previous+1 previous_interval + 1 } else { + // interval shrunk; don't restrict negative fuzz 0 } + .max(1) }; let interval = fsrs.next_interval( Some(state.stability), @@ -155,7 +159,7 @@ impl Collection { .and_then(|r| { r.find_interval( interval, - greater_than_last(interval as u32).max(1), + min_interval(interval as u32), req.max_interval, days_elapsed as u32, deckconfig_id, @@ -166,7 +170,7 @@ impl Collection { with_review_fuzz( card.get_fuzz_factor(true), interval, - greater_than_last(interval as u32).max(1), + min_interval(interval as u32), req.max_interval, ) });