Run Lifecycle

ShopOS · autofix harness

Knowing when to give up: the run lifecycle

transitionround cycledeadline
The product record is written once, at exit, so a crash or timeout leaves it exactly as it was.

Exits · 3 terminal states

  1. DONE: judge passes everything, commit fixed images
  2. EXHAUSTED: still failing at round 3, or planner says nothing is fixable. Commit what passed, rest gave_up
  3. FORCE_RELEASED: 45 min deadline passed, commit nothing

Guards

  1. Max 3 rounds: EDITING → SCORING is one round
  2. 45 min deadline: reconcile sweep runs every 5 min
  3. Partial round: one judge pass errored, journal nothing, stay on the same iteration