harness: reset lists open PRs with --limit 200 and stops if any survive (closes #321) - #322
Merged
Merged
Conversation
gh pr list defaults to 30; a lane past that kept its oldest PR through the reset and it read as a missing verdict in the v0.29.2 tally. Post-reset check makes any survivor — page limit, failed listing, failed close — a hard stop before fixture PRs are created. Closes #321. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
Copilot review overview
🟢 Approval recommended
The changes directly address the documented gh pr list pagination issue and add a sensible safety check without altering core harness behavior beyond improved robustness.
Review effort: Lite
Findings: 1
Open (1)
What changed in this PR
This PR hardens the end-to-end test harness reset logic so it reliably closes all open PRs (not just the first 30 returned by gh pr list) and fails fast if any PRs remain open after reset, preventing stale PRs from contaminating gate tallies.
Changes:
- Add
--limit 200to allgh pr listcalls used during reset to avoid missing older PRs when a repo has >30 open PRs. - Add a post-reset verification step (non-
--dry-run) that re-lists each repo and exits with a clear summary if any open PRs remain. - Document the new behavior and record the fix in the CHANGELOG under
[Unreleased].
| File | Description |
|---|---|
| tool-test-action-on-github/test-action-on-github.sh | Adds --limit 200 to PR listings and introduces a post-reset “no open PRs remain” assertion to prevent survivors from skewing gate results. |
| tool-test-action-on-github/README.md | Notes the new “stop if any PR survives reset” behavior and adds troubleshooting guidance for the new failure mode. |
| CHANGELOG.md | Records the bugfix and explains the historical failure scenario and the new guardrail. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
mmcky
added a commit
that referenced
this pull request
Sep 23, 2026
…4d74; round-4 arm (#319) * dev: v0.29.2 released — §4a gate completed, @v0 = 5f74d74; round-4 numpy arm at v0.29.2 Gate 84/84 sync, 28/28 delivery + 28/28 engineVersion 0.29.2 verdicts per lane; scenario 17 on .ml delivered. Round 4 regenerated at @v0: three draws archived, draw 1 sent with one disclosed ml_repair.py comma. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> * dev: STATE.md — 2026-09-23 close-out (#322 for #321, #323 for #320) Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> * arm: note the garbage token in round-4 draw 2 (left as generated; a lint gap, #301) Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> --------- Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
…the error Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Merged
mmcky
added a commit
that referenced
this pull request
Sep 23, 2026
* chore: release v0.29.3 Patch: fr glossary v1.2 (#328) from the French editor's second review round, which reaches French syncs only once @v0 moves; plus the harness reset fix (#322) and the release rate check (#323, step 4b), both of which first run on this gate. No source change in this commit; dist-action/ rebuilds byte-identical. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * dev: STATE.md — wrap the v0.29.3 entry to the file's style Raised by Copilot review on #329. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
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.

Closes #321.
The harness reset's three
gh pr listcalls had no--limit, so they returnedgh's default of 30. A normal gate leaves exactly 28 open PRs per repo, which is why this never showed — but any diagnosis work between two gates pushes a lane past 30, and on 2026-09-21 the.mllane had 31: the oldest (test-translation-sync.ml#192, from the v0.29.1 gate) was never listed, survived the v0.29.2 reset, and made the lane read 29 PRs / 28 stamped until it was found and closed by hand (tally on #318).Change
--limit 200on all three list calls (source repo, dry-run and live; each target repo).2>/dev/null || echo ""had made it silent), and a close that did not take is caught too. It runs only outside--dry-run.[Unreleased].Checks
bash -nclean; shellcheck warning count unchanged (2, both pre-existing); the leftover-formatting line exercised on a fake two-PR list and on the empty case;workflow-templates.test.ts(the one Jest file that reads the script) green. Not run end-to-end: the harness is currently at@v0after the v0.29.2 smoke with one open PR per repo, so a run would not exercise the >30 path anyway; the next gate is the first real exercise of the check.🤖 Generated with Claude Code