Turn delivers an EMPTY reply when it exhausts its iteration/time budget (or a sub-agent never completes) — should degrade gracefully
Evidence
Several delegated turns ran to the harness wall with no chat_done and no chat_error — the client received an empty string as the final reply:
- one turn: sub-agent ran (streamed thinking/text) but emitted no completion event; parent then emitted only
inference_heartbeat until the socket closed at ~443s. No final answer.
- another: main agent stuck mid tool-call at the wall; empty reply.
Ask
When a turn hits its iteration cap / time budget, or a spawned sub-agent doesn't return within budget, the parent must degrade gracefully — emit a chat_done (or chat_error) with a partial/summary/timeout message, never deliver an empty string to the user. Check the agent-loop budget/timeout handling and the sub-agent join/reduce path for the missing terminal event.
NOTE: the underlying sub-agent slowness (agentic-v1 on staging) is a separate infra matter — do NOT chase tier latency. This issue is strictly the empty-reply-on-timeout UX / missing-terminal-event bug.
Turn delivers an EMPTY reply when it exhausts its iteration/time budget (or a sub-agent never completes) — should degrade gracefully
Evidence
Several delegated turns ran to the harness wall with no
chat_doneand nochat_error— the client received an empty string as the final reply:inference_heartbeatuntil the socket closed at ~443s. No final answer.Ask
When a turn hits its iteration cap / time budget, or a spawned sub-agent doesn't return within budget, the parent must degrade gracefully — emit a
chat_done(orchat_error) with a partial/summary/timeout message, never deliver an empty string to the user. Check the agent-loop budget/timeout handling and the sub-agent join/reduce path for the missing terminal event.NOTE: the underlying sub-agent slowness (agentic-v1 on staging) is a separate infra matter — do NOT chase tier latency. This issue is strictly the empty-reply-on-timeout UX / missing-terminal-event bug.