feat(cron): enhance one-shot job behavior and CLI options

- Default one-shot jobs to delete after success, improving job management.
- Introduced `--keep-after-run` CLI option to allow users to retain one-shot jobs post-execution.
- Updated documentation to clarify default behaviors and new options for one-shot jobs.
- Adjusted cron job creation logic to ensure consistent handling of delete options.
- Enhanced tests to validate new behaviors and ensure reliability.

This update streamlines the handling of one-shot jobs, providing users with more control over job persistence and execution outcomes.
This commit is contained in:
Tyler Yust
2026-02-03 15:00:03 -08:00
committed by Peter Steinberger
parent 0bb0dfc9bc
commit ab9f06f4ff
11 changed files with 126 additions and 21 deletions

View File

@@ -111,6 +111,22 @@ describe("normalizeCronJobCreate", () => {
expect(schedule.atMs).toBe(Date.parse("2026-01-12T18:00:00Z"));
});
it("defaults deleteAfterRun for one-shot schedules", () => {
const normalized = normalizeCronJobCreate({
name: "default delete",
enabled: true,
schedule: { at: "2026-01-12T18:00:00Z" },
sessionTarget: "main",
wakeMode: "next-heartbeat",
payload: {
kind: "systemEvent",
text: "hi",
},
}) as unknown as Record<string, unknown>;
expect(normalized.deleteAfterRun).toBe(true);
});
it("normalizes delivery mode and channel", () => {
const normalized = normalizeCronJobCreate({
name: "delivery",