Skip to content

Skip release bump PRs in Review and Fix Passes - #2176

Merged
JacobStephens2 merged 4 commits into
mainfrom
issue-2170
Nov 14, 2026
Merged

JacobStephens2 merged 4 commits into
mainfrom
issue-2170

Conversation

@JacobStephens2

@JacobStephens2 JacobStephens2 commented Nov 14, 2026 •

Copy link
Copy Markdown
Owner

Summary

Ports only #2156's admission rule (04bf9bc) to main ahead of the #2054 Spec, so background Passes stop taking release bump pull requests now. Explicit PR targets don't use this rule.

 waiting_review_pull_requests            # review --author (Review Pass)
+  skip if is_release_bump(pr)
   skip if author differs / in-progress
 fix_candidate                           # fix with no PR target (Fix Pass)
   open && base matches
+  && !is_release_bump(pr)
   && author / in-progress checks

+fn is_release_bump(pr) = pr.base == "main" && pr.head starts_with "release-"
  • src/github/review.rs, tests/review_pass.rs and the ported tests/fix_pass.rs test are byte-identical to 04bf9bc's hunks.
  • The three hand-written site pages use the Spec branch's paragraph verbatim. git merge-tree --write-tree --name-only HEAD refs/remotes/origin/issue-2054 | grep -ci conflict prints 0, so the Spec PR Spec: thirdshift release Command and Pass for scheduled and on-demand releases #2162 still merges without conflicts.
  • docs/guide.md gets one sentence in each of the Fix Pass and Review Pass candidate-selection paragraphs. site/docs/index.html is regenerated from it.
  • A new test, a_merging_pass_skips_a_red_release_bump_into_main, covers the issue's "with merge" criterion. It is appended at the end of tests/fix_pass.rs, away from the Spec branch's hunk.

Cause: on main, fix_candidate and the --author loop in waiting_review_pull_requests filter only on base, author, state and in-progress. Nothing excludes a release-* head, so release PR #2165 was taken twice during the 0.31.0 release.

Evidence

Execution evidence

Before = src/github/review.rs at origin/main (960f026) with the new tests; After = this branch. Host has no C toolchain, so cargo ran with a zig-cc linker wrapper on PATH.

  • Before: cargo test --test review_pass author_pass_skips_release_bumps_into_main_only

    panicked at tests/review_pass.rs:27:9:
    assertion failed: state["prs"][selected]["postedComments"].is_array()
    test result: FAILED. 0 passed; 1 failed
    

    A temporary probe showed which PR the Pass took: base=main release_commented=true feature_commented=false. The Pass reviewed the release PR, not the feature PR.
    After: test author_pass_skips_release_bumps_into_main_only ... ok

  • Before: cargo test --test fix_pass passes_skip_release_bumps

    panicked at tests/fix_pass.rs:64:13:
      left: None
     right: Some("repaired\n")
    test result: FAILED. 0 passed; 1 failed
    

    After: test passes_skip_release_bumps_but_explicit_fix_still_repairs_them ... ok. This test also runs an explicit thirdshift fix <release PR URL> --no-merge --no-base-fix, which still repairs the release PR.

  • Before: cargo test --test fix_pass a_merging_pass_skips_a_red_release_bump_into_main (fix base main merge, with and without --author)

    panicked at tests/fix_pass.rs:824:9   (exit code: the Pass took the release PR)
    test result: FAILED. 0 passed; 1 failed
    

    After: test a_merging_pass_skips_a_red_release_bump_into_main ... ok

Final validation: scripts/affected-tests main selected the full suite.

  • Passing: npm test --prefix site (re-run on the final wording: # fail 0), npm run docs:check --prefix site, cargo build --locked, npm test --prefix console, cargo fmt --check and cargo test --test fix_pass (18 passed).
  • cargo test failed only on this host's missing socat and on tests that also fail on unmodified origin/main:
    • bin unit tests: 1847 passed, 24 failed. All 24 are sandbox::tests failing with sandbox failed to start: socat is not on PATH.
    • Integration tests (cargo test --test '*' --no-fail-fast): 102 of 106 files passed.
      • scoring (3) and experiments::model_graders::a_sandboxed_model_grader_sees_only_its_packet (1) fail with socat is not on PATH.
      • bug_origins (1) and trial (20) have the identical failing set on a git archive of origin/main.
      • experiments::review_a_cap_killed_tool_cannot_leave_a_successful_trial failed under load. Run alone, it passed 3/3 on both this branch and origin/main.

Visual evidence

Desktop 1440×900. Each page has its <details> section opened and is scrolled to the Review Pass text. One paragraph is added; the layout is otherwise unchanged.

Home page (site/index.html, "Skills and Processes in detail")

Before
After

How it works (site/how-it-works/, "07 / Where the next issue comes from")

Before
After

Architecture (site/architecture/, "Processes and Session traces")

Before
After

Code review

Reviewed with thirdshift-code-review against refs/remotes/origin/main.

  • Standards: no findings.
  • Spec: two findings.
    1. Site wording would make the later Spec merge conflict. Fixed in a83e612 by using the Spec branch's text verbatim.
    2. The "with merge" criterion had no test. Fixed in 777d1b4. The test fails without the fix and passes with it.

Both reviewers read every changed file. site/docs/index.html was inspected as generated output, verified by npm run docs:check --prefix site. The review ran on c5671e5. The follow-up commits a83e612 (three site lines) and 777d1b4 (one appended test) were made in response to it and were not re-reviewed.

Unaddressed findings

Standards

None.

Spec

Security

None.

Security review outcome

No unaddressed introduced findings.

Merge Danger

Door: two-way

Revert restores the old candidate selection; no data, labels or refs change.

Blast Radius: narrow

Only Pass selection of open PRs whose base is main and whose head starts with release-. Explicit review <PR URL> and fix <PR URL>, other bases and other heads are unaffected.

Closes #2170

Built with claude 2.1.322 · claude-opus-5-5 · high

Port #2156's admission rule (04bf9bc) to main ahead of the #2054 Spec:
background Review (--author) and Fix Passes no longer take release-*
pull requests into main. Explicit PR targets are unchanged.
Identical text lets #2162 merge these pages without conflicts.
@JacobStephens2
JacobStephens2 merged commit 6e650c4 into main Nov 14, 2026
24 checks passed
@JacobStephens2
JacobStephens2 deleted the issue-2170 branch November 14, 2026 01:49
@JacobStephens2 JacobStephens2 mentioned this pull request Nov 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Land the release-PR skip for Review and Fix Passes on main ahead of #2054

1 participant