mirror of
https://github.com/rennf93/roboco.git
synced 2026-08-03 07:23:24 +02:00
Choreographer.i_am_idle now refuses with INVALID_STATE when the caller has any pending (assigned but never claimed) task. Pre-gateway this was implicit because the orchestrator's auto-respawn would re-spawn the agent for the assignment, leading to a tight respawn loop. The explicit refusal lets the agent fix the state via i_will_work_on (dev/qa/doc) or i_will_plan (pm) first. Existing auto-pause for in_progress tasks is preserved (Gate Set C spec calls this out as still required) — it runs AFTER the pending guard, so an agent with a mix of pending+in_progress is told about the pending task first instead of silently pausing in_progress and then looping on the pending one. Pre-gateway reference: roboco/runtime/orchestrator.py auto-respawn loop guards (already preserved at HEAD); the explicit agent-facing gate is new. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>