Describe the bug
buzz-acp allows agent turns to run for up to 2 hours (max_turn=7200s) with no progress-based liveness check. The harness cannot distinguish a stuck agent from one legitimately working, so silent hangs are only detected when the hard ceiling is reached or the user explicitly cancels.
Steps to reproduce
- Trigger an agent turn that hangs mid-execution (e.g. a blocking tool call, unresponsive API, or infinite reasoning loop)
- Observe that the harness logs
extending in-flight deadline by 7200s each time the agent renews
- Wait — the turn continues silently until the 2-hour ceiling or manual cancel
- On cancel, if the agent does not drain within 5s, the harness logs
cancel_drain_timeout and respawns
Expected behavior
A configurable inactivity timeout (e.g. idle_timeout or progress_timeout) should fail the turn if no tool calls, messages, or heartbeats are observed for N minutes, rather than waiting up to 2 hours.
Version and platform
- Buzz version: 0.5.14
- OS: macOS 26.5.2 (Apple Silicon)
Logs / additional context
Agent ran from ~16:54 to ~18:08 UTC (1h14m) on a single turn:
INFO buzz_acp::queue: extending in-flight deadline by 7200s + 100s buffer
...
WARN buzz_acp::acp: hard turn timeout exceeded (silence 5.001861875s)
WARN buzz_acp: agent_returned — respawning (cancel-drain timeout) outcome="cancel_drain_timeout"
The agent kept renewing its deadline but never completed. Distinct from #5849 (process leak after cancel), which covers the cleanup side; this issue covers the detection side.
Describe the bug
buzz-acp allows agent turns to run for up to 2 hours (
max_turn=7200s) with no progress-based liveness check. The harness cannot distinguish a stuck agent from one legitimately working, so silent hangs are only detected when the hard ceiling is reached or the user explicitly cancels.Steps to reproduce
extending in-flight deadline by 7200seach time the agent renewscancel_drain_timeoutand respawnsExpected behavior
A configurable inactivity timeout (e.g.
idle_timeoutorprogress_timeout) should fail the turn if no tool calls, messages, or heartbeats are observed for N minutes, rather than waiting up to 2 hours.Version and platform
Logs / additional context
Agent ran from ~16:54 to ~18:08 UTC (1h14m) on a single turn:
The agent kept renewing its deadline but never completed. Distinct from #5849 (process leak after cancel), which covers the cleanup side; this issue covers the detection side.