From da9e82ed4ac8aba5c183250a64e1b18e2a8e1823 Mon Sep 17 00:00:00 2001 From: mrhid6 Date: Tue, 4 Aug 2026 17:08:11 +0100 Subject: [PATCH] fix: schedule card placement, preview state, and scheduled-workflow docs --- docs/vantage/workflows.md | 51 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/docs/vantage/workflows.md b/docs/vantage/workflows.md index 74b0322..8d4305b 100644 --- a/docs/vantage/workflows.md +++ b/docs/vantage/workflows.md @@ -147,6 +147,57 @@ A run shows the script that actually executed, not the current library version. Targets run **in parallel**; steps within one server run **in order**. +## Schedules + +A workflow can carry a schedule, and Vantage will start it the same way a person +would — the same dispatch, the same snapshot, the same run page. A scheduled run +is an ordinary run with `schedule` recorded as who triggered it. + +Open a workflow, choose **Edit**, and tick **Run on a schedule**. The expression +is standard five-field cron: + +``` +minute hour day-of-month month day-of-week +``` + +The presets write cron underneath, so you can start from one and adjust: + +| Preset | Cron | +| ------------------- | ----------- | +| Hourly | `0 * * * *` | +| Nightly, 02:00 | `0 2 * * *` | +| Weekly, Sun 02:00 | `0 2 * * 0` | +| Monthly, 1st 02:00 | `0 2 1 * *` | + +There is no seconds field and no `@daily`-style shorthand. The next three +occurrences are shown as you type, and they are computed by the server rather +than the browser, so what you see is exactly what will fire. + +### Timezones + +A schedule stores an IANA timezone by name — `Europe/London`, not an offset. +That is what makes a 02:00 job stay at 02:00 across a daylight-saving change +instead of drifting an hour for half the year. An unknown zone is refused when +you save it, not at 2am. + +### Overlaps are skipped, not queued + +If a run of the same workflow is still going when the next occurrence comes +round, the occurrence is **skipped** and the reason recorded. It is not queued +behind the running one. A patch workflow that takes longer than its interval +should fall behind visibly rather than pile up. + +### Missed occurrences + +If the control plane was not running when an occurrence was due, it still fires +when the control plane comes back — but only within **one hour** of the due +time. Anything older is recorded as missed and dropped. A job missed by ten +minutes during an upgrade should still run; one missed by two days should not +suddenly fire at lunchtime. + +Either kind of skip is shown on the workflow's schedule panel, with the time it +was due and why it did not run. + ## Watching a run Step stdout and stderr stream back as chunks, are appended to a log file on the