Skip to content

v0.1.29: heartbeat starvation signal

Choose a tag to compare

@lodar lodar released this 31 May 04:31
· 117 commits to main since this release

heartbeat: surface tasks nudged-but-never-started

The heartbeat reaper already force-closes runaway in_progress tasks. This adds a signal for the opposite silent failure: a task that gets nudged every tick but never leaves todo (started_at stays empty) — which is what the codex/grok listen-loop watchdog starvation produces (a task /goal goes active but the agent is yanked back into wait_for_message before it runs task start).

  • Per-task nudge counts tracked in the registry (.agents[<name>].heartbeat.nudges), pruned once a task leaves todo.
  • After 3 nudges with no start, the tick logs a WARN and reports a starved count in its summary instead of re-nudging silently forever.

Defense-in-depth — the root-cause watchdog liveness fix is shipping separately in the telegram-codex/telegram-grok plugins.