Harden the round cap and release 1.6.0 - #4
Merged
Merged
Conversation
Round-counter staleness: the counter is now stamped with the epoch of
the last FAIL ("<count> <epoch>"); a stamp older than an hour -- or a
bare pre-stamp count, or a stamp from the future (clock stepped
backward) -- reads as a fresh saga. Without this, a count abandoned
mid-saga (interrupt, kill switch, manual fix outside a session) leaked
into unrelated future FAILs and tripped the cap early.
History entries gain "capped": true on a FAIL demoted to advisory at
the round cap, so it can be told apart from a FAIL that blocked. The
cap message reports the actual round number instead of assuming it
equals the cap.
README catches up with #1 and #2: CODEX_REVIEW_MAX_ROUNDS in the
config table, session-scoped fix loop, the round-count state file and
its staleness rule, and a cost section that states the real per-saga
bound. CHANGELOG for 1.6.0 credits both contributions.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Contributor
|
Thanks
Great!
Loving it.
Just had to stop it looping too long
m
*MARTIN TOBIAS *| Founder & General Partner | *Incisive Ventures*
<http://www.incisive.vc/>
Twitter <https://twitter.com/martingtobias> | LinkedIn
<https://www.linkedin.com/in/martintobias/> | User Manual
<https://bit.ly/MGTUserManual>
…On Fri, Jul 24, 2026 at 12:56 PM, Andrei David ***@***.***> wrote:
Follow-up to #1 <#1> and
#2 <#2> (thanks @
martingtobias <https://github.com/martingtobias> for both).
*Round-counter staleness.* The round counter introduced in #2
<#2> was only cleared on
PASS or at the cap, so a saga abandoned mid-loop (interrupt, kill switch,
manual fix outside a session) left the count behind in .git, and
unrelated FAILs later resumed from it — tripping the cap prematurely and
demoting fresh findings to advisory. The counter is now stamped with the
epoch of the last FAIL (<count> <epoch>); a stamp older than an hour, a
bare pre-stamp count, or a stamp from the future (clock stepped backward,
e.g. a restored VM snapshot) all read as a fresh saga.
*capped in history.* A FAIL demoted to advisory at the round cap now logs "capped":
true, so history consumers can tell it apart from a FAIL that actually
blocked. The cap message also reports the real round number instead of
assuming it equals the cap.
*Docs and release.* README documents CODEX_REVIEW_MAX_ROUNDS, the
session-scoped fix loop, the round-count state file and its staleness rule,
and a cost section stating the real per-saga bound; CHANGELOG gets a 1.6.0
section crediting both contributed PRs; version bumped in both manifests.
Tests: 63/63 (three new staleness cases — expired stamp, legacy bare
count, future stamp), shellcheck clean, claude plugin validate passing.
Dogfooding note: the future-stamp guard exists because this plugin's own
post-commit review flagged the missing lower bound on the first version of
this commit.
🤖 Generated with Claude Code <https://claude.com/claude-code>
------------------------------
You can view, comment on, or merge this pull request online at:
#4
Commit Summary
- 4e62771
<4e62771>
Harden the round cap and release 1.6.0
File Changes
(6 files <https://github.com/andreidavid/codex-review/pull/4/files>)
- *M* .claude-plugin/marketplace.json
<https://github.com/andreidavid/codex-review/pull/4/files#diff-5352ee4067f17e7948e1425843f0a454e045bc8edf338f0bcf75c6804ddabd9a>
(2)
- *M* CHANGELOG.md
<https://github.com/andreidavid/codex-review/pull/4/files#diff-06572a96a58dc510037d5efa622f9bec8519bc1beab13c9f251e97e657a9d4ed>
(8)
- *M* README.md
<https://github.com/andreidavid/codex-review/pull/4/files#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5>
(18)
- *M* plugins/codex-review/.claude-plugin/plugin.json
<https://github.com/andreidavid/codex-review/pull/4/files#diff-dcd3f732bde56e0599af4b4f4afbf8463d77fb98f2b996cf20ed0978073d0233>
(2)
- *M* plugins/codex-review/hooks/scripts/post-commit-review.sh
<https://github.com/andreidavid/codex-review/pull/4/files#diff-2138f9ac0768650cedaa8329bf9bc30e39156f04f6adf60180cfff025cafd652>
(36)
- *M* tests/post-commit-review.bats
<https://github.com/andreidavid/codex-review/pull/4/files#diff-9e2d330e14793d5fcc04b9c3e0aac98fc53014c6cb3e73e44f44d78cc0d71c2d>
(33)
Patch Links:
- https://github.com/andreidavid/codex-review/pull/4.patch
- https://github.com/andreidavid/codex-review/pull/4.diff
—
Reply to this email directly, view it on GitHub
<#4?email_source=notifications&email_token=AE2LYK7WDZG5YKHOUQXKEST5GO5QVA5CNFSNUABEM5UWIORPF5TWS5BNNB2WEL2QOVWGYUTFOF2WK43UF42DCMRYHAZDKNRYGWTHEZLBONXW5J3NMVXHI2LPN2SWK5TFNZ2KYZTPN52GK4S7MNWGSY3L>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AE2LYKZUSMZMQLRZ4YW7NPT5GO5QVAVCNFSNUABGKJSXA33TNF2G64TZHMYTEMJSG42TAMBUGY5US43TOVSTWNBZG4YTKMBWGE3THILWAI>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
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.
Follow-up to #1 and #2 (thanks @martingtobias for both).
Round-counter staleness. The round counter introduced in #2 was only cleared on PASS or at the cap, so a saga abandoned mid-loop (interrupt, kill switch, manual fix outside a session) left the count behind in
.git, and unrelated FAILs later resumed from it — tripping the cap prematurely and demoting fresh findings to advisory. The counter is now stamped with the epoch of the last FAIL (<count> <epoch>); a stamp older than an hour, a bare pre-stamp count, or a stamp from the future (clock stepped backward, e.g. a restored VM snapshot) all read as a fresh saga.cappedin history. A FAIL demoted to advisory at the round cap now logs"capped": true, so history consumers can tell it apart from a FAIL that actually blocked. The cap message also reports the real round number instead of assuming it equals the cap.Docs and release. README documents
CODEX_REVIEW_MAX_ROUNDS, the session-scoped fix loop, the round-count state file and its staleness rule, and a cost section stating the real per-saga bound; CHANGELOG gets a 1.6.0 section crediting both contributed PRs; version bumped in both manifests.Tests: 63/63 (three new staleness cases — expired stamp, legacy bare count, future stamp), shellcheck clean,
claude plugin validatepassing.Dogfooding note: the future-stamp guard exists because this plugin's own post-commit review flagged the missing lower bound on the first version of this commit.
🤖 Generated with Claude Code