9db4e3dd4d
fileRepairOutcomes mapped both "no diagnostic run after this write" and "diagnostics ran and found nothing" to emptySet(), so resolved was true for a file that was never actually re-checked. Two consequences, both the inverse of what #309 is for: - the ledger told the model "done, leave it" about a file whose last write was never verified — the precise mis-signal the tab-keeping exists to prevent; - the loop-breaker counted unchecked writes as unresolved, so it could kill a run terminally on the ABSENCE of evidence rather than on recorded proof the rewrites weren't working. Track it as a distinct `unchecked` state: the ledger says "not re-checked since the last write — outcome unknown", and the breaker requires !unchecked. ./gradlew check green. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HgDL1v3GuQ9RZnYR6fDT95