v1.8.2 is a patch release with two small mechanism changes, both loosening a gate that read honest work as failure. The evidence for both came from this repository's own first self-convergence, one release ago.
-
An iteration that honestly records
blockedno longer counts toward the stall stop, under the same cap of three consecutive exempt iterations that already bounds the convergence sequence. The stall gate exists to end dead runs; a run that did the work and refused to claim an unverified checkpoint is not dead - the run that proved it was ended three minutes before its own verify returned green. A run that typesblockedforever burns the cap and stalls exactly as before. -
The verify-gate timeout is measured, not guessed. PLAN.md may record a
Verify duration: <N>sline from a real timed run; the Stop hook derives its converged-stop bound from it at 3x headroom, floored at the old 240-second default so the gate can never become twitchier than it was. An explicitverify_timeout_secondsin the loop state still wins, the launcher inherits the bound across relaunches and asks when nothing is recorded, and the timeout refusal now names both remedies. The engine's own repository needed a hand-set override to declare its first convergence; no project should meet that refusal twice. -
The validator grew from 197 to 202 checks (the figure a clone derives; the maintainer tree runs two more). The five new scenarios cover both changes, and each was proven able to fail by a sabotage that discriminates it alone - the blocked exemption, its cap, the derived bound, its floor, and the precedence between the state key and the recorded duration.
Mechanism files changed: stop-hook.sh, SKILL.md, iteration-prompt.txt, plan-default.md. Both changes are strictly more permissive; no previously green run turns red. Upgrade: git pull or re-run the installer, which also refreshes the installed skill copies.