Recurring tasks can start one extra run now without changing the cron schedule; delay remains oneshot-only.
Co-authored-by: Cursor <cursoragent@cursor.com>
Resume only unpauses; listeners need a native way to re-fire the same job id with a new run without creating duplicate executors.
Co-authored-by: Cursor <cursoragent@cursor.com>
cron_runs entered/exited were identical because settleRun rewrote stateEnteredAt and actualAt to the finish instant.
Co-authored-by: Cursor <cursoragent@cursor.com>
Extend jobs with lifecycle projection and history policies so listeners can poll state at scale without breaking existing cron_* flows.
Co-authored-by: Cursor <cursoragent@cursor.com>