mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-02 15:31:32 +00:00
* fix(cron): bound restart catch-up to the active schedule Editing a recurring job's schedule made the gateway fire it immediately on the next restart. Startup catch-up compares the new schedule's previous slot against lastRunAtMs, which still belongs to the retired schedule, so a slot that never existed under the old schedule counted as missed. Record when scheduling inputs take effect and replay a missed slot only when it is newer than that. Jobs whose schedule never changed carry no stamp and keep replaying every computed slot, so catch-up is unchanged for them. The missed-slot predicate was duplicated in the runnable check and the backoff-deferral pass; both now share one helper so the bound cannot drift. Fixes #91944 * fix(cron): protect schedule activation ownership --------- Co-authored-by: Vincent Koc <vincentkoc@ieee.org>