hermes - 💡(How to fix) Fix [Feature Request]: Queue missed cron jobs and run them on gateway startup

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

Root Cause

Hermes positions cron as a first-class feature for daily automation (morning digests, summaries, reports). Users naturally run Hermes on personal machines that are not always on. The current silent-skip behavior breaks the reliability expectation of scheduled tasks without any feedback to the user.

Code Example

# ~/.hermes/config.yaml
cron:
  run_missed: true   # run any missed jobs when gateway comes back online

---

hermes cron create "0 9 * * *" "Morning digest" --run-missed
RAW_BUFFERClick to expand / collapse

Problem

When the machine running the Hermes gateway is switched off at the scheduled time of a cron job, the job is silently skipped with no recovery — unless the gateway comes back online within the 2-hour catchup window (period // 2, clamped to [120s, 7200s]).

For a daily job scheduled at 0 9 * * * (9:00 AM), if the machine is off at 9:00 AM and comes back online after 11:00 AM, the job is permanently missed for that day with no notification, no retry, and no way to know it was skipped — unless the user manually runs hermes cron run <job_id>.

This is a common real-world scenario: laptops that are closed overnight, machines that reboot for updates, or development machines that aren't running 24/7.

Current Behavior

  • Catchup window: period // 2, clamped to max 2 hours
  • If the gateway starts after the catchup window, the missed run is silently dropped
  • No notification is sent to the user that a job was skipped
  • The only recovery is a manual hermes cron run <job_id>

Expected / Requested Behavior

Add a run_missed option (per-job or global config) that queues any missed runs on gateway startup and executes them on the next tick, regardless of how long the gateway was offline.

Proposed config:

# ~/.hermes/config.yaml
cron:
  run_missed: true   # run any missed jobs when gateway comes back online

Or per-job at creation:

hermes cron create "0 9 * * *" "Morning digest" --run-missed

Minimum acceptable alternative: Send a delivery notification to the configured platform (Telegram, Discord, etc.) informing the user that a scheduled job was skipped, so they can manually trigger it.

Why This Matters

Hermes positions cron as a first-class feature for daily automation (morning digests, summaries, reports). Users naturally run Hermes on personal machines that are not always on. The current silent-skip behavior breaks the reliability expectation of scheduled tasks without any feedback to the user.

Environment

  • Hermes Agent (latest)
  • Gateway running as user service
  • Daily cron job (0 9 * * *)
  • Machine switched off at scheduled time, comes back online after the 2-hour catchup window

Related

  • Catchup window documented in AGENTS.md: period // 2, clamped to [120s, 7200s]
  • _compute_grace_seconds() in cron/scheduler.py

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

hermes - 💡(How to fix) Fix [Feature Request]: Queue missed cron jobs and run them on gateway startup