The daemon was getting stuck when a claude subprocess hung — no completion logged, job blocked forever, pending queue growing. Use spawn() + watchdog thread instead of blocking output(). The watchdog sleeps in 1s increments checking a cancel flag, sends SIGTERM at 5 minutes, SIGKILL after 5s grace. Cancel flag ensures the watchdog exits promptly when the child finishes normally. |
||
|---|---|---|
| .. | ||
| .claude | ||
| agents | ||
| defaults | ||
| schema | ||
| src | ||
| build.rs | ||
| Cargo.toml | ||
| config.example.jsonl | ||