Deal with issues in invalid recurrence state

This commit is contained in:
Rahix 2026-03-01 21:06:01 +01:00
parent b25857f3af
commit c1c0ced266

View file

@ -9,15 +9,22 @@ pub async fn reschedule_recurring_tasks(
) -> anyhow::Result<()> {
let mut rescheduled = 0;
for task in tasks {
let task::State::Completed {
date: completed_date,
} = &task.state
else {
let Some(recurring) = &task.recurring else {
continue;
};
let Some(recurring) = &task.recurring else {
continue;
let completed_date = match &task.state {
// Already scheduled
task::State::Open { due: Some(_) } => continue,
// Invalid state, will warn about this
task::State::Open { due: None } => {
log::warn!("Task {task} is recurring but has no due date. Updating from today.");
&jiff::Zoned::now()
}
// Need scheduling
task::State::Completed { date } => date,
};
let due_date = next_due_date(completed_date, recurring.interval);