Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
{
"name": "metareview",
"description": "Internal review harness, adversarial gates, and post-merge learning for coding agents",
"version": "0.14.0",
"version": "0.14.1",
"source": "./",
"author": {
"name": "David Sifry"
Expand Down
2 changes: 1 addition & 1 deletion .claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "metareview",
"version": "0.14.0",
"version": "0.14.1",
"description": "Go-based metaswarm-compatible internal review harness for plans, specs, decompositions, task-done code review, acceptance evidence, PR readiness, and post-merge learning. Packaged releases use bin/metareview; source checkout mode requires Go 1.26+, plus FSM workflow runs (metareview fsm).",
"author": {
"name": "David Sifry"
Expand Down
2 changes: 1 addition & 1 deletion .codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "metareview",
"version": "0.14.0",
"version": "0.14.1",
"description": "Go-based metaswarm-compatible internal review harness for plans, specs, decompositions, task-done code review, acceptance evidence, PR readiness, and post-merge learning, plus FSM workflow runs (metareview fsm).",
"author": {
"name": "David Sifry"
Expand Down
42 changes: 42 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,47 @@
# Changelog

## 0.14.1 - 2026-10-01

### Fixed

- **The `claude-cli/*` judge runs without the user's hooks, and rejects a turn continued past its
verdict.** The codex arm already ran with the user's hooks and plugins off (#193), but the claude
arm still loaded the user's settings, so a Stop hook could speak in the judge's session and the
recorded verdict could answer the hook instead of the finding. It now passes
`--settings '{"disableAllHooks":true}'` (`--bare` would skip the keychain and with it the OAuth
session this transport exists to use), and a turn that continues past the verdict is retried and
then failed closed — the `--output-format json` envelope exposes only the final result, so the
reported turn count (`num_turns`) is the continuation signature. Reported in #193 (bead `mr-bq4`).
- **Freeform evidence recognizes the tool-failure shapes it was missing.** A text with a success
phrase and any failure shape the reader did not enumerate read as *passing* — pytest `no tests ran`
(exit 5), `make: *** No rule to make target`, Go `panic:` / `WARNING: DATA RACE`, a shell's
`command not found` / `Permission denied` / `Aborted` / `Killed`, `N offenses detected`, and more.
The reader now matches a second, **line-anchored** set of shapes: each must start the line in a
fixed tool format, with a fixed token before the phrase where the phrase could otherwise appear in
prose, so prose that merely names a phrase never reads as a failure. A shape that cannot be pinned
that tightly is deliberately not a pattern — prefer an evidence receipt. Tracked as bead `mr-b08`.
- **`pr-ready` clears a committed review log only when the ledger vouches for every ID under its
`## Blocking Findings` section.** The gate used a lenient reading that skipped finding IDs the
ledger did not know, so resolving the IDs a local ledger happened to hold retired a log that also
listed a blocker nobody's ledger ever held — while `status` still reported it blocking. The gate
now uses a strict, blocker-only predicate (an unknown blocking ID is unvouched; the run's
`BlockingFindingCount` is the tripwire against a pruned or unknown blocker), and is deliberately
**not** strict about the advisory or quoted IDs that would otherwise pin a log unresolved forever.
Tracked as bead `mr-ik7`.
- **The Stop hook breaks its own refusal loop instead of trusting the host's `stop_hook_active`.**
Codex reports that flag `false` during hook-driven continuations, so a session blocked on
something it could not clear was refused on every turn — a hang, which teaches operators to remove
the hook. The hook now counts consecutive refusals per session — a small limit on the *same*
blocker set, and a larger session-wide cap for a set that keeps changing — and stands down loudly
at either, exactly as the host-driven second pass does, clearing the record on a pass or a
stand-down. Its state lives in a private, ownership-checked cache directory and is best-effort: it
fails toward blocking, never toward a silent pass. Tracked as bead `mr-j30`.

### Changed

- `.pi/` (pi subagent scratch) is gitignored, and the `.claude/settings.json` review-gate note names
the post-#173 user-level hook directory rather than the old per-checkout path.

## 0.14.0 - 2026-09-30

### Added
Expand Down
2 changes: 2 additions & 0 deletions docs/metareview/FINDINGS.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ Deliberate exceptions to the review workflow. Pending entries still block CI.

- mrvf-20260927-194136825434000-pr-ready-branch-10d735e5-001 [granted] TODO left in task-done diff — granted by David (human) at 2026-09-27T20:03:27Z: Fixed in 27a50c5; finding orphaned by the agent deleting its run log (requested by david@sifry.com at 2026-09-27T19:43:47Z: Fixed in 27a50c5 (the test fixture builds its work marker at runtime; the branch diff has no literal TODO/FIXME), but the finding cannot be marked fixed: the agent deleted the originating run's uncommitted NEEDS_REVISION log, so no --previous-run chain can include run 194136 ('previous run not found'), and the repair attempts then exhausted the 3-attempt budget (ESCALATED).) [escalation: Agent error: removed the failed pr-ready run's log before chaining the repair from it. Code is clean; the open record is stale.]
- mrvf-20260928-163641692001000-pr-ready-branch-10d735e5-001 [granted] No adjudicated lens review recorded — granted by david@sifry.com at 2026-09-28T17:07:45Z: Reviewed: HEAD differs from the lens-reviewed 25eb567 only by docs/metareview gate artifacts; all shards PASS_ADVISORY, 0 blocking (requested by claude-agent at 2026-09-28T17:07:31Z: The lens marker is recorded at 25eb567 (review-loop mrv-20260928-162806195273000, closed clean). HEAD f506454 adds only docs/metareview gate artifacts (pr-ready logs, shard results, one FINDINGS.md line) and no code, test or doc change. The chain hit 3/3 on procedural failures (dirty tree, then the artifacts commit moving HEAD), not on review findings. All shards and the cross-shard review are PASS_ADVISORY with 0 blocking.) [escalation: pr-ready ESCALATED at attempt 3/3 (mrv-20260928-163641692001000); the human approved an override in the session]
- mrvf-20261001-072124444094000-pr-ready-branch-10d735e5-001 [granted] Working tree changes excluded from PR-ready review — granted by david at 2026-10-01T07:27:56Z: Stale finding from the superseded pr-ready run 072124 (its diff included two unrelated untracked docs, since removed). Approved by the user. (requested by pi-agent at 2026-10-01T07:23:33Z: Stale finding from the superseded pr-ready run mrv-20261001-072124444094000: its diff (head 5474635) included two unrelated untracked docs that have since been removed, so the working tree is clean and the filtered diff is small on the release commit 2c4f941.)
- mrvf-20261001-072124444094000-pr-ready-branch-10d735e5-002 [granted] Review context risk — granted by david at 2026-10-01T07:27:56Z: Stale large-diff context risk from the same superseded run; the release diff is six files. Approved by the user. (requested by pi-agent at 2026-10-01T07:23:33Z: Stale finding from the superseded pr-ready run mrv-20261001-072124444094000: its diff (head 5474635) included two unrelated untracked docs that have since been removed, so the working tree is clean and the filtered diff is small on the release commit 2c4f941.)
- mrvf-20260926-213100487219000-pr-ready-branch-10d735e5-001 [superseded] Unresolved review blockers — requested by david@sifry.com at 2026-09-26T22:05:40Z: Accidental duplicate pr-ready attempt: run mrv-20260926-213100487219000 was started without --previous-run only to capture an exit code, at the same head 4bd354c as chain root 213055. Its only substantive finding (missing validation evidence) is resolved in the chain (213242: validation PASS via evidence-run receipts). It now blocks the real chain as an out-of-chain NEEDS_REVISION run; nothing in the change is unresolved. [escalation: pr-ready chain 213055->213126->213242 ESCALATED at max attempts 3; all reviewers PASS at 4bd354c except this out-of-chain carry. Gate issues filed separately.]
- mrvf-20260924-054904626720000-pr-ready-branch-10d735e5-001 [granted] Unresolved review blockers — granted by David Sifry (human decision in chat; executed by Claude agent) at 2026-09-24T05:58:50Z: Granted by the maintainer in chat: the blocker is main's accidental 'review task-done --help' log (PR #145), not a review of this branch's work (requested by david@sifry.com at 2026-09-24T05:57:01Z: The only blocked target is '--help': main's committed task-done log mrv-20260905-223221349809000-task-done-help-9a8265a5 (PR #145) recorded an accidental 'review task-done --help' run as a NEEDS_REVISION review of target '--help'. It is picked up only because it covers internal/prready/evidence.go, which this branch touches. It is not a review of this branch's work.) [escalation: pr-ready run mrv-20260924-055641702289000: 47/47 shards + cross-shard PASS/PASS_ADVISORY, validation evidence supplied, sdlc-loop-clean DONE clean; the '--help' log is main's artifact]
- mrvf-20260910-055227088708000-pr-ready-branch-10d735e5-001 [granted] Missing validation evidence — granted by dsifry (repo owner, approved in session 2026-09-10) at 2026-09-10T07:49:08Z: Owner-approved in session 2026-09-10: validation evidence attached and passing at 0af0d4c (full suite, ALL_SUITES_PASS_FINAL) (requested by release-0.12 driver at 2026-09-10T07:13:17Z: Validation evidence supplied and passing: full suite (go build/vet/test 58 pkgs, make cover 100%, test-fsm, manifests, skills, lens-conformance) green at 0af0d4c — log attached to pr-ready run mrv-20260910-071305617720000 via --evidence)
Expand Down
Loading
Loading