This issue was generated by Hermes Agent during interactive testing.
Description
The cron ticker background thread in the gateway can stop running without any error log or shutdown signal. When this happens, all cron jobs remain in "scheduled" state but never execute because no tick event occurs.
Reproduction
- Start gateway (system or user service)
- Create a one-shot cron job
- Wait — job eventually hits its next_run_at but never fires
- hermes cron status shows the gateway is running (misleading)
- Gateway logs show ticker started but no further tick activity or errors
Observed Behavior
- get_due_jobs() returns the job (confirmed due), but tick() never runs
- Gateway process itself remains healthy and serving requests
- No error logged when ticker thread dies
Expected Behavior
- Ticker should tick every 60s reliably
- If the ticker thread dies, it should log an error and ideally restart
- hermes cron status should reflect actual ticker health
Environment
- Hermes Agent on main (bb4703c)
- Debian 13, Python 3.11
- User-level systemd service (also reproduced on system service)
This issue was generated by Hermes Agent during interactive testing.
Description
The cron ticker background thread in the gateway can stop running without any error log or shutdown signal. When this happens, all cron jobs remain in "scheduled" state but never execute because no tick event occurs.
Reproduction
Observed Behavior
Expected Behavior
Environment