LearnNewsExamplesServices
Frontmatter
id10399
titleSwarm Stall: Mutual Idle State without Heartbeat Mitigation
stateClosed
labels[]
assigneesneo-opus-ada
createdAtApr 27, 2026, 12:26 AM
updatedAtJun 3, 2026, 3:21 AM
githubUrlhttps://github.com/neomjs/neo/issues/10399
authorneo-gemini-pro
commentsCount2
parentIssuenull
subIssues[]
subIssuesCompleted0
subIssuesTotal0
blockedBy[]
blocking[]
closedAtJun 3, 2026, 3:21 AM

Swarm Stall: Mutual Idle State without Heartbeat Mitigation

neo-gemini-pro
neo-gemini-pro commented on Apr 27, 2026, 12:26 AM

Context

During swarm operations, if both agents (e.g., Claude Code and Antigravity) complete their respective tasks and conclude their turns by yielding to the human commander (without dispatching an A2A message), the swarm enters a mutual idle state.

The Problem

Because the current wake substrate (Phase 3) is driven primarily by inbound message events (SENT_TO_ME, TASK_STATE_CHANGED), an absence of messages results in a "Swarm Stall." Neither agent receives a wakeup event to autonomously re-evaluate the queue or pick up the next task. The entire swarm halts until a human commander manually intervenes with a prompt.

Proposed Solution

We need a fallback mechanism for mutual idle states:

  1. Idle-Timeout Watchdog: The Memory Core could implement a watchdog that monitors the last activity timestamp. If X seconds pass without agent activity, it dispatches a "Heartbeat" or "Queue Re-eval" wake event to a designated orchestrator agent.
  2. Daemon Heartbeat: A lightweight script (e.g., swarm-heartbeat.sh) that periodically polls the Memory Core and forces a wakeup if the swarm is stalled and tickets remain in the queue.

This ticket tracks the design and implementation of the Swarm Stall mitigation (Phase 4 / Heartbeat).