Skip to content

v0.10.0 — the gate review: acquittal, raw-only gating, PID locks

Choose a tag to compare

@anlor1002-alt anlor1002-alt released this 11 Jun 16:24

v0.10.0 — the gate review

The same community reviewer who found v0.9's literal-collapse flaw came back in full gate mode: every accusation with a line number and a repro — and two accusations retracted when their own repros failed to break the code. That standard is now law in CONTRIBUTING.md ("Release gate — four adversarial questions").

Fixed

  • P0 — proven-good code gets total silence. Code with a recorded PASS was still receiving "expect the same failure" notes from old sibling-variant failures. An acquittal check now silences every channel (collapsed AND structural) for code that has passed. The happy path is sacred.
  • P1 — minFailures counts only THIS exact code. Previously 5000 failing once + 7000 failing once could arm a "failed 2 times" hard block against 5000. The gate now counts raw-channel failures exclusively.
  • P1 — locks can't be stolen from live holders. mtime-staleness is gone: locks record {pid, token}, stealing requires a dead holder, release is token-checked (can never unlink someone else's lock), and waiters wait 15s before the documented last resort.
  • P3 — eviction by value. Cap pressure now evicts pass/retired/pending first; load-bearing failures survive churn.

Security

  • P2 — imported ledger text is neutralized and labeled. rl import is a cross-machine channel; imported signatures/previews are now structurally neutralized (control chars stripped, newline structure flattened) at import and at render, and tagged [imported verdict] in briefings and block messages. Honest framing: structural neutralization, not content filtering — treat shared ledgers like dependencies.

91 tests (5 new adversarial gate tests, one per finding) - zero dependencies.