Files
openclaw/src/cron
Yuval Dinodia e38d64c5f8 fix(cron): keep a due recurring run when an edit re-saves the same schedule (#96159)
* fix(cron): keep a due recurring run when an edit re-saves the same schedule

update() advanced state.nextRunAtMs to the next future slot whenever a
patch carried schedule or enabled, even when the schedule was unchanged,
dropping an already-due run and re-phasing every-job anchors to now. Gate
the advance on cronSchedulingInputsEqual so only a genuine schedule or
enabled change recomputes, and inherit the previous every anchor when a
re-save omits it, matching the add/remove maintenance recompute.

* fix(cron): re-anchor every-job to edit time on a genuine interval change

Only inherit the previous cadence anchor for an unchanged-interval every
re-save. A real everyMs change (UI omits anchorMs) now re-anchors to the
edit time, matching the prior update semantics, while idempotent re-saves
still preserve a due slot and phase. Adds a regression test for the
interval-change path.
2026-06-29 11:08:11 -07:00
..