fix: normalize repeat<=0 to None to prevent cron jobs deleting after first run (#2612)

fix: normalize repeat<=0 to None — cron jobs deleted after first run when LLM passes -1
This commit is contained in:
Mibay 2026-03-23 14:35:43 +01:00 committed by GitHub
parent f60ebc7bf2
commit ca2958ff98
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 26 additions and 2 deletions

View file

@ -383,6 +383,10 @@ def create_job(
"""
parsed_schedule = parse_schedule(schedule)
# Normalize repeat: treat 0 or negative values as None (infinite)
if repeat is not None and repeat <= 0:
repeat = None
# Auto-set repeat=1 for one-shot schedules if not specified
if parsed_schedule["kind"] == "once" and repeat is None:
repeat = 1
@ -571,7 +575,7 @@ def mark_job_run(job_id: str, success: bool, error: Optional[str] = None):
# Check if we've hit the repeat limit
times = job["repeat"].get("times")
completed = job["repeat"]["completed"]
if times is not None and completed >= times:
if times is not None and times > 0 and completed >= times:
# Remove the job (limit reached)
jobs.pop(i)
save_jobs(jobs)