Repository navigation
Fix Pass: pass over pull requests whose head branch is checked out locally (#2045) - #2058
Merged
Merged
Conversation
…/actions/runs?head_sha=7f95cd169c5f53f5c000071004b744fd447c5ccf&per_page=100 failed: gh: API rate limit exceeded for user ID 53905376. If you reach out to GitHub Support for help, please include the request ID BAFA:179D9C:8A1E67:1B37A51:6AF4CAE8 and timestamp 2026-11-11 20:07:04 UTC. For more on scraping GitHub and how it may affect your rights, please review our Terms of Service (https://docs.github.com/en/site-policy/github-terms/github-terms-of-service) (HTTP 403)) 2026-11-11T20:07:05Z, host dev.etadventures.com. Uncommitted work at the time of failure is included in this commit.
JacobStephens2
marked this pull request as draft
November 11, 2026 20:07
4 tasks
…#2045) Extract acquisition::registration_on for inspect_review and the Fix Pass's occupancy check, rename branch_checkout to occupying_checkout, say 'checked out locally' since the main checkout counts too, trim the glossary entry, and order the architecture page as the code runs.
JacobStephens2
marked this pull request as ready for review
November 12, 2026 09:45
Merged
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.
Summary
A Fix Pass (
thirdshift fix base <branch>) used to take the lowest-numbered broken pull request even when its head branch was checked out locally (the main checkout or a retained Review worktree). It then failed atgit worktree addon every cron tick, so higher-numbered pull requests never got repaired. Now it passes over such candidates and moves on to the next one:thirdshift fix <PR URL>still fails as before, naming the occupying checkout.acquisition::registration_onis now the single lookup for "which registration has this branch checked out". The Review path'sinspect_reviewand the Fix Pass both use it.docs/guide.md(Fix runs, plus the regeneratedsite/docs/index.html),GLOSSARY.md(Fix run),docs/code-navigation.md,site/index.html,site/how-it-works/, andsite/architecture/.origin/main(95 commits; no conflicts).Evidence
Execution evidence
tests/fix_pass.rsat merge base3beacb7f:cargo test --test fix_pass -- occupied checked_out_locallycargo test --test fix_passfix.rscommitted to the first candidate GitHub returned. It never looked at localgit worktree listoccupancy, which the Review Pass already checks.cargo clippy --all-targets -- -D warnings: clean.cargo test --bin thirdshift: 1808 passed.fix_run,review_passandreview_runsuites: all passed.npm test --prefix site: 68 passed (it runsdocs:check).scripts/affected-tests main: fails, but only intests/processfindings::tests that this branch doesn't touch.fixing_dispatches_each_reproduced_finding_and_keeps_unreproduced_findings_privatefails the same way on a cleanorigin/maincheckout (cargo test --test process findings::there: 17 passed, 1 failed), and the others in that group fail only intermittently. Every other affected suite passed.Visual evidence
None. The site edits change sentences inside existing paragraphs of hand-written and generated pages, with no markup, CSS or layout changes, so I took no screenshots. The site browser suite passes.
Merge Danger
Door: two-way
A Pass now skips a PR it used to crash on. Reverting brings back the crash loop and nothing else.
Blast Radius: narrow
The change only affects candidate selection in unattended Fix Passes. Explicit Fix runs and the Review path behave the same; the Review path only switched to the shared lookup helper.
Unaddressed findings
Standards
Strings rather than a typedReasonlike Pickup's (src/ready.rs). Declined. The Fix Pass has exactly one pass-over kind (src/fix.rs:72-81), so an enum now would be the Speculative Generality that the same smell baseline warns against. Revisit if a second kind appears.Spec
stale_prunable_registration_does_not_pass_over_the_candidateas written, and it fails as P1 predicts:passed over https://github.com/acme/widgets/pull/1: head branch occupied is checked out at /tmp/.tmpXmganJ/tmp-review. I declined to change the code anyway:docs/adr/0014-successful-review-acquisition-authorizes-stale-disposal.md) withholds disposal authority without ownership evidence. It even disables Git's automatic maintenance because that "can otherwise prune a damaged Worktree registration without the ownership inspector's authority".Worktree::occupying_checkout(src/worktree.rs:170) follows that ADR, as does the Review path (a_missing_registered_review_reports_its_available_head_and_retains_registration).git worktree prune.Review coverage
The reviewers read every changed file except
site/docs/index.html. Both excluded it as generated output fromdocs/guide.md:npm run docs:check --prefix siteexits 0, and the site browser suite passes.Closes #2045
Built with claude 2.1.314 · opus · default effort
Security review outcome
No unaddressed introduced findings.