From 933d63545a46a56ff0a8380a74545f691c067329 Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Fri, 6 Jun 2025 13:11:15 +0700 Subject: [PATCH] Stop collapsing reschedule entries Closes #3316 --- rslib/src/scheduler/fsrs/memory_state.rs | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) diff --git a/rslib/src/scheduler/fsrs/memory_state.rs b/rslib/src/scheduler/fsrs/memory_state.rs index 7d4346d06..3f5206092 100644 --- a/rslib/src/scheduler/fsrs/memory_state.rs +++ b/rslib/src/scheduler/fsrs/memory_state.rs @@ -16,7 +16,6 @@ use super::rescheduler::Rescheduler; use crate::card::CardType; use crate::prelude::*; use crate::revlog::RevlogEntry; -use crate::revlog::RevlogReviewKind; use crate::scheduler::answering::get_fuzz_seed; use crate::scheduler::fsrs::params::reviews_for_fsrs; use crate::scheduler::fsrs::params::Params; @@ -163,15 +162,8 @@ impl Collection { ); } *due = new_due; - // Add a rescheduled revlog entry if the last entry wasn't - // rescheduled - if !last_info.last_revlog_is_rescheduled { - self.log_rescheduled_review( - &card, - original_interval, - usn, - )?; - } + // Add a rescheduled revlog entry + self.log_rescheduled_review(&card, original_interval, usn)?; } } } @@ -289,9 +281,6 @@ struct LastRevlogInfo { /// reviewed the card and now, so that we can determine an accurate period /// when the card has subsequently been rescheduled to a different day. last_reviewed_at: Option, - /// If true, the last action on this card was a reschedule, so we - /// can avoid writing an extra revlog entry on another reschedule. - last_revlog_is_rescheduled: bool, } /// Return a map of cards to info about last review/reschedule. @@ -303,18 +292,15 @@ fn get_last_revlog_info(revlogs: &[RevlogEntry]) -> HashMap= 1 { last_reviewed_at = Some(e.id.as_secs()); } - last_revlog_is_rescheduled = e.review_kind == RevlogReviewKind::Rescheduled; } out.insert( card_id, LastRevlogInfo { last_reviewed_at, - last_revlog_is_rescheduled, }, ); });