mirror of
https://github.com/rennf93/roboco.git
synced 2026-08-03 07:23:24 +02:00
A one-shot grok run that hit an xAI 429 exited without a terminal verb; the dispatcher then re-spawned the same task every tick (429 -> exit -> respawn), a container/token/cost loop with no living agent to call i_am_blocked. - entrypoint: detect a rate-limit signature in the run output and exit 75 (EX_TEMPFAIL); a rate-limited task is NOT substituted — it must be retried. - _handle_stopped_container: on a grok exit 75, park the provider via the rate-limit tracker (retry_after window) instead of crash-retrying, and don't count it as a crash. The existing probe-resume loop clears the park after the window (unknown-provider time-expiry fallback) and the task is retried. - spawn_agent: a grok-only, fail-open guard skips the launch while the provider is parked, so the dispatcher no-ops instead of looping. The Claude path is untouched. Targeted gate green (ruff/mypy/xenon + new rate-limit tests; bash -n on the entrypoint).