Austin Pickett
fbf261a33f
fix(web): preserve repeat count when creating cron jobs from dashboard
...
CronJobCreate did not declare a repeat field, so Pydantic dropped it during
request parsing, and _create_cron_job_sync never forwarded one to
cron.jobs.create_job — a finite repeat count submitted via POST /api/cron/jobs
was silently stored as an unlimited recurring job.
- Add optional repeat field to CronJobCreate (int or CLI string form)
- Forward it from _create_cron_job_sync; non-positive counts 400, string
forms coerce through the shared normalize_repeat_value the CLI uses
- Add repeat?: number to the desktop CronJobCreatePayload type
- Route-level regression coverage: finite survives create+list, omission
stays unlimited, invalid counts 4xx with no job stored
2026-10-06 12:27:22 -04:00
..
2026-10-06 11:17:11 -04:00
2026-10-06 00:40:30 -07:00
2026-10-06 05:50:08 -07:00
2026-10-06 12:03:11 -04:00
2026-10-06 04:36:02 -07:00
2026-10-06 04:36:02 -07:00
2026-10-06 04:36:02 -07:00
2026-10-06 03:44:49 -07:00
2026-10-05 15:36:14 -07:00
2026-10-05 16:37:14 -05:00
2026-10-05 23:33:41 -07:00
2026-10-05 15:36:14 -07:00
2026-10-05 15:36:14 -07:00
2026-10-05 22:38:27 -05:00
2026-10-05 16:41:47 -05:00
2026-10-05 23:33:41 -07:00
2026-10-05 15:36:14 -07:00
2026-10-05 17:34:36 -07:00
2026-10-06 11:20:43 -04:00
2026-10-05 16:42:43 -05:00
2026-10-06 02:53:00 -07:00
2026-10-06 03:44:49 -07:00
2026-10-05 16:37:14 -05:00
2026-10-05 16:37:14 -05:00
2026-10-06 05:50:08 -07:00
2026-10-06 06:18:39 -07:00
2026-10-06 06:18:39 -07:00
2026-10-06 04:36:02 -07:00
2026-10-06 04:36:02 -07:00
2026-10-05 23:33:41 -07:00
2026-10-06 03:44:49 -07:00
2026-10-05 16:00:48 -07:00
2026-10-06 04:36:02 -07:00
2026-10-06 03:44:49 -07:00
2026-10-06 05:44:21 -07:00
2026-10-06 05:44:21 -07:00
2026-10-06 06:18:39 -07:00
2026-10-05 23:33:41 -07:00
2026-10-06 06:18:39 -07:00
2026-10-05 16:06:32 -07:00
2026-10-05 23:33:41 -07:00
2026-10-05 16:41:47 -05:00
2026-10-06 08:13:51 -04:00
2026-10-05 16:41:47 -05:00
2026-10-05 23:33:41 -07:00
2026-10-06 02:53:56 -07:00
2026-10-05 17:24:40 -07:00
2026-10-05 16:06:32 -07:00
2026-10-05 17:20:30 -07:00
2026-10-05 17:34:36 -07:00
2026-10-05 17:20:30 -07:00
2026-10-05 17:11:30 -07:00
2026-10-05 17:34:36 -07:00
2026-10-05 17:20:30 -07:00
2026-10-05 17:34:36 -07:00
2026-10-05 16:41:08 -05:00
2026-10-05 23:33:41 -07:00
2026-10-05 16:42:57 -05:00
2026-10-06 10:11:33 -04:00
2026-10-06 08:13:51 -04:00
2026-10-05 23:33:41 -07:00
2026-10-05 22:07:41 -07:00
2026-10-05 16:00:48 -07:00
2026-10-06 04:36:02 -07:00
2026-10-06 04:36:02 -07:00
2026-10-06 04:15:29 -07:00
2026-10-06 04:36:02 -07:00
2026-10-06 03:44:49 -07:00
2026-10-06 04:36:02 -07:00
2026-10-06 03:44:49 -07:00
2026-10-06 03:44:49 -07:00
2026-10-06 06:18:39 -07:00
2026-10-06 03:44:49 -07:00
2026-10-06 03:44:49 -07:00
2026-10-06 06:18:39 -07:00
2026-10-06 06:18:39 -07:00
2026-10-06 04:36:02 -07:00
2026-10-06 06:18:39 -07:00
2026-10-06 04:36:02 -07:00
2026-10-06 04:36:02 -07:00
2026-10-06 04:36:02 -07:00
2026-10-06 06:18:39 -07:00
2026-10-06 03:44:49 -07:00
2026-10-06 03:44:49 -07:00
2026-10-06 06:18:39 -07:00
2026-10-06 06:18:39 -07:00
2026-10-06 03:44:49 -07:00
2026-10-06 03:44:49 -07:00
2026-10-06 04:36:02 -07:00
2026-10-06 11:15:27 -04:00
2026-10-06 11:19:16 -04:00
2026-10-06 12:27:22 -04:00
2026-10-05 17:24:40 -07:00
2026-10-06 12:27:22 -04:00
2026-10-06 11:15:27 -04:00
2026-10-06 11:19:16 -04:00
2026-10-06 03:44:49 -07:00
2026-10-05 15:36:14 -07:00
2026-10-06 04:36:02 -07:00
2026-10-06 11:15:20 -04:00