--- title: rec: silently no-ops on malformed input status: closed labels: [bug] created: 2026-09-18 closed: --- `generateRecurringTask` discards the error from `strconv.Atoi` (`actions.go` around lines 152 and 155): amount, _ = strconv.Atoi(recStr[:len(recStr)-1]) A task with something like `rec:abc` ends up with amount `0` and unit `d`, so completing it silently generates a "next" task with an unchanged due date instead of failing. Same story for any non-numeric amount. Fix: validate the recurrence string and return a real error instead of generating a bogus task.