Skip to content

codex-claude-loop v0.2.0 — the gates now hold

Choose a tag to compare

@ozzaii ozzaii released this 25 Jul 10:33
· 11 commits to main since this release

The 0.1.0 tree was handed to Codex (gpt-5.6-sol, xhigh) as an adversarial reviewer, using this harness's own doctrine. Its opening line:

Not release-ready. Both "hard gates" can report approval for state they did not validate, and the one-writer lock can admit two writers.

Both were true. v0.2.0 closes them.

Gates

  • a plan approval survived its own plan file being deleted, its digest being absent, or the host having no sha256 tool: an uncomputable digest read as "no mismatch". Now every branch fails closed.
  • gate 2 had no consumer, so "two gates you cannot skip" was a claim the code did not make good on. cl_release now consumes it and refuses unless the review approved this tree, compared by base sha plus a hash of HEAD, uncommitted changes, and untracked file content.
  • a failed autonomous gate left the previous approve standing. It is now cleared before each attempt.
  • blocking: true made the count fail, and the failure defaulted to zero blockers, which became an approval. The verdict shape is validated independently now.

Lock

  • two waiters that spotted the same dead pid could both reclaim. Reclamation is a rename, so exactly one wins; release verifies ownership; INT/TERM exit instead of writing on.

Update resistance

  • the --help memo assigned inside a subshell, so it never memoized; probes accepted a flag spelling the driver never invokes. Both fixed.

Plus: state keyed by repo path, the approved plan text travels with the implementation prompt, slug validation, a resumable cl_wave, a transactional installer with a marker-checked uninstall, and 33 → 53 assertions against a stub that now enforces the invocation contract.

/plugin marketplace add ozzaii/codex-claude-loop
/plugin install codex-claude-loop@codex-claude-loop