v0.8.0 — the reliability roadmap, finished (semantic loops + richer fault eval)
Completes the two partially-shipped items from the evidence-driven-kernel roadmap:
deeper fault-injection evaluation and semantic loop detection. The harness now
distinguishes an action that changed the workspace from one that merely repeated it,
and stresses recovery across three more deterministic failure modes.
Semantic loop detection
The loop breaker now keys on an action's EFFECT, not just its shape. A write_file
signature folds a content hash (edit_file already folded its payload), so rewriting
a file with NEW content is a distinct action — a changed hypothesis that stays
healthy — while re-emitting the SAME bytes still trips the breaker. Re-running the
tests after an edit was already healthy (the edit breaks the repeat window); this
closes the remaining gap where a content-blind write signature falsely grouped
genuinely-different writes, and where an identical-write loop could slip through.
Three new fault scenarios (deterministic, zero-inference)
repeat_storm duplicate an action to provoke a no-progress loop and exercise
loop recovery;
stale_read re-read a file immediately after mutating it, against the
harness's pre-edit ledger snapshot;
deceptive_completion inject an unverified "all tests pass" claim right after a
change — the evidence-aware done-gate must catch it.
All eight faults are surfaced through forge replay <sid> --fault <name>.
Two new evaluation metrics
verification_precision of the completions the gate judged, the share that were
truly verified (n/a when nothing was judged — a run that
verified nothing is not "perfectly precise");
workspace_corruption_rate mutations whose write/edit FAILED, over the mutations
that actually executed (gate-blocked actions count in
neither term).
Hardening from an adversarial review of this change: the fault finder no longer
crashes on a model row whose raw is valid non-object JSON, and the corruption metric
no longer inflates its denominator with mutations that never ran. Stdlib-only,
zero runtime deps. 512 tests green.