What happened:
step 8 ran web build and it passed, but the runner hit the max-step boundary immediately afterward. Since the agent had not returned a formal finish action yet, our new “exhausted steps” guard threw before git status, final verification, commit, or push. The workspace was destroyed, so the almost-fix was lost and the worker retried.
Max-step exhaustion no longer throws immediately. If the agent produced changes, autopilot will continue to git status, final tests, commit, and push. If it exhausts steps with no changes, it still fails instead of posting a misleading "no changes" success comment.
Also:
Prod was capped at 8 max retries. Bumping this to 16.