The relay backend detects agent exits by reconciling tracked agents against the engine roster (15s poll) because the hosted engine emits no push event on exit. Once AgentWorkforce/relaycast#273 (durable agent.exited event) lands and cast.agentrelay.com runs an engine that carries it (AgentWorkforce/relaycast-cloud#33), add a fast-path:
- consume
agent.exited (and node.status.offline) from the agent event stream / durable event log with a persisted cursor (FileStateStore)
- keep the reconciliation poll as the belt-and-braces detector at a longer interval
- carry the exit reason through so
isCompletionReason gets task-exit fidelity instead of routing everything through the PR probe
Blocked on the two upstream issues above.
🤖 Generated with Claude Code
The relay backend detects agent exits by reconciling tracked agents against the engine roster (15s poll) because the hosted engine emits no push event on exit. Once AgentWorkforce/relaycast#273 (durable
agent.exitedevent) lands and cast.agentrelay.com runs an engine that carries it (AgentWorkforce/relaycast-cloud#33), add a fast-path:agent.exited(andnode.status.offline) from the agent event stream / durable event log with a persisted cursor (FileStateStore)isCompletionReasongets task-exit fidelity instead of routing everything through the PR probeBlocked on the two upstream issues above.
🤖 Generated with Claude Code