25d954c2cf
Before turning hard stops on for unattended platforms, make sure they cannot cut off normal work: - Edit -> re-run is progress. A successful mutating call (write_file/patch, a green terminal/execute_code, browser actions, job/message/cron/memory/ skill mutations) marks progress for every failing signature still being counted this turn; the next identical retry restarts its streak instead of accumulating toward exact_failure_block_after. A pure replay never mutates anything between attempts, so it is still blocked at 5. - Distinct red commands are diagnosis. For FAILURE_TOLERANT_TOOL_NAMES (terminal, execute_code, process pollers, browser_navigate, web_extract) same_tool_failure_halt_after warns but never halts. - subagent and api_server keep the warn-only default: both are supervised task loops with a live parent/client and do real edit -> re-run work. Live A/B (real AIAgent platform=telegram, real patch+terminal, 8 rounds of patch -> red check -> patch ...): unmitigated branch: HALTED at round 6 (repeated_exact_failure_block) this commit: COMPLETED all 8 rounds, final answer delivered Loop shapes still stopped: identical failing read_file 8 calls, identical successful terminal 5 calls (vs 602 on main). Six new tests pin these flows; all fail on the unmitigated version.