Merged
Conversation
182ce85 to
96160e7
Compare
Signed-off-by: Jake Strawn <bandy.strawn@clarityhouse.press>
96160e7 to
2844602
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
@bookedsolid/rea@0.11.0
Minor Changes
a6faf92: 0.11.0 — replace cache-attestation push gate with a stateless Codex gate
The push-review gate that shipped through 0.10.x asked "has a qualifying
Codex receipt been recorded for this HEAD SHA?" and consulted
.rea/review-cache.jsonl+ hash-chained audit records. That model requiredagents to fabricate attestations (
rea cache set,rea audit record codex-review --also-set-cache) on every push, produced a 1,250-line bashcore plus a TypeScript port in flight, and was the root cause of defects
D/E/O/P and Helix bug 1.
This release replaces the entire stack with a stateless gate:
Codex is run fresh on every push. No cache. No SHA matching. No receipt
consultation. When the gate blocks, Claude reads stderr + the
machine-readable
.rea/last-review.json, fixes, and retries — the auto-fixloop IS the retry mechanism.
BREAKING CHANGES
rea cachesubcommand tree removed (check,set,clear,list). The stateless gate needs no cache. Operators who previouslyscripted
rea cache setfor manual unblocks can delete those calls.rea audit record codex-reviewremoved. The gate no longerconsults audit records to decide pass/fail.
policy.review.cache_max_age_secondsremoved.rea upgradestrips it from
.rea/policy.yamlwith a timestamped.bak-<ts>backup.
policy.review.allow_skip_in_ciremoved. Same migration path. Thegate now runs identically in CI, dev, and hook contexts — no CI
special case.
REA_SKIP_CODEX_REVIEW,REA_SKIP_PUSH_REVIEWenv vars no longerconsulted. Replaced by
REA_SKIP_PUSH_GATE=<reason>(value-carrying,audited, HALT still wins) and
REA_ALLOW_CONCERNS=1(per-push overrideof the concerns-block default).
Hook files deleted:
hooks/push-review-gate.sh,hooks/push-review-gate-git.sh,hooks/commit-review-gate.sh,hooks/_lib/push-review-core.sh. The husky.husky/pre-pushnowexecutes
rea hook push-gateinline.rea upgrademigrates installedhooks (deletes the four dead files, refreshes the husky stub).
Audit
tool_name: codex.review*andpush.review.skippedno longeremitted by the gate. The new events are
rea.push_gate.reviewed,rea.push_gate.halted,rea.push_gate.disabled,rea.push_gate.skipped,rea.push_gate.empty_diff,rea.push_gate.error. The manual/codex-reviewslash command stillemits
codex.reviewaudit records.New
rea hook push-gate [--base <ref>]— the single CLI entry pointhusky calls. Resolves base ref via upstream → origin/HEAD → main/master
→ empty-tree, runs
codex exec review --jsonagainst the diff, andmaps the streamed P1/P2/P3 severity markers to a blocking/concerns/pass
verdict.
policy.review.concerns_blocks: boolean(defaulttrue) — whentrue, P2 findings block the push (override per-push withREA_ALLOW_CONCERNS=1).policy.review.timeout_ms: number(default 600_000) — hard cap onthe
codex exec reviewsubprocess. Timeouts exit 2 with a clear error..rea/last-review.json— atomic-write structured dump of thelatest Codex run. Gitignored. Findings pass through the rea redact
pattern set before hitting disk (no secret quoting from the diff
leaks).
Migration
rea upgradehandles the transition:Writes
.rea/policy.yaml.bak-<ts>.Strips
cache_max_age_seconds+allow_skip_in_cifrom thereview:block; addsconcerns_blocks: trueif absent.Refreshes
.husky/pre-pushand.git/hooks/pre-pushto the newstub body (both delegate to
rea hook push-gate).Deletes the four removed hook files from
.claude/hooks/.Codex CLI must be on
PATH. When absent, the gate fails with a clearerror pointing at
npm i -g @openai/codex(or setreview.codex_required: falseto disable).