Skip to content

v0.25.1

Choose a tag to compare

@github-actions github-actions released this 08 Aug 19:36
· 368 commits to main since this release
c46b12c

Gate commands for scheduled tasks

Scheduled cron items can now carry a deterministic gate — a shell command that runs before each cycle spawns a thread, so cycles with "nothing to do" are skipped without burning an agent turn.

  • Contract: exit 0 fires the agent; any clean non-zero exit skips the cycle entirely (no thread, no message, no LLM call) while the schedule still advances.
  • Output piping: on a fire, the gate's stdout replaces a {{gateOutput}} placeholder in the prompt (or is appended as a Gate output: block, truncated to ~8 KB).
  • Config: gateCommand (+ optional gateTimeoutSeconds, default 30 / cap 120, and gateFailOpen, default true) on CronCreate; set/clear later via CronUpdate (gateCommand/gateTimeoutSeconds/gateFailOpen/clearGate).
  • Fail-open: if the gate can't be evaluated (timeout or spawn error) it fires anyway by default, so a broken check never blackholes a real cron. Set gateFailOpen: false to fail closed.
  • Env: gate runs in the item's cwd with CRON_LAST_RUN_MS, CRON_ITEM_ID, CRON_ITEM_NAME.
  • Observability: skip reasons surface via lastSkipReason in CronList; Settings → Scheduled tasks flags gated items inline (e.g. "Every 5 minute(s) · gated").
  • Desktop only (inert on mobile, where a configured gate simply fires).

Shipped in #362.

Full Changelog: v0.25.0...v0.25.1