Skip to content

v0.3.0 — Scheduled triggers + `work serve`

Choose a tag to compare

@github-actions github-actions released this 16 Jun 02:50
· 127 commits to main since this release

Time-based triggers, and a single long-lived host to run them.

⚠️ Breaking

  • work --web is removed — the local server is now the work serve
    subcommand (no alias). Update any scripts or service units: work --web
    work serve (same --workspace / --port flags).

✨ New: scheduled triggers

  • Declare on: schedule with one or more cron: expressions (UTC, five-field
    GitHub-Actions syntax), validated at parse time.
  • work serve is the scheduler — it fires a workflow when a cron slot comes
    due, dispatching down the same path a manual run takes. No separate daemon, no
    CLI scheduling.
  • Skip-by-default, no catch-up: a slot missed while the host is down is dropped
    and the schedule resumes at the next future slot — never a backfill flood. A
    slot-derived idempotency key fires each slot exactly once.
  • Status surfaceGET /api/schedules and a Schedules panel in the serve
    console (workflow, cron, last-fired, next-fire), read through the running host.

work serve

One process now serves the HTTP API, the browser console, the authenticated
webhook receiver, and the scheduler. History, deliveries, and schedule state
persist under <workspace>/.workflows/db/.

Docs

User-facing pages for on: schedule and the serve host, the --webwork serve
rename propagated across the site, and a test/e2e/scheduled/ gallery example.


What's Changed

  • chore(deps): lock file maintenance by @renovate[bot] in #17
  • Scheduled triggers: on: schedule cron, fired by work serve by @dydx in #22

Full Changelog: v0.2.3...v0.3.0