You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Ratchets compare a STALE merge ref against origin/main's LIVE tip ('no merge-base available; stricter') — a main-side baseline shrink reads as GREW on every in-flight PR (cb200 601→599 tonight; PMAT-3539 'deleted' earlier) #3643
Every differential ratchet in guard-tree (check_baseline_ratchets.sh, check_complexity_ratchet.sh, check_roadmap_diff_additive.sh, …) prints on a PR run:
comparand: tip of origin/main (no merge-base available; stricter) (protected; a pull request cannot rewrite it)
"Stricter" is wrong in one direction: the PR's checkout is the merge ref built when the run was triggered, and the comparand is origin/main fetched at guard time. When main moves between the two — tonight #3491 shrank scripts/cb200_baseline.txt 601→599 and the complexity baseline — every PR whose run was in flight reads as a violation of what it never touched:
Cost: one full CI round per affected open PR per main merge (gh pr update-branch), on a fleet that is the bottleneck; and a reader who trusts the word GREW files a defect against a PR that changed nothing.
Fix
The merge ref carries its own base: on refs/pull/N/merge, HEAD^1is the main commit the merge was built on. Compare against that (git rev-parse HEAD^1, available even at fetch-depth: 1 if the parent is fetched — or fetch-depth: 2), and print it as comparand: merge-ref base <sha>; fall back to the origin/main tip only on a push event (where HEAD IS main) and say so. Then "GREW" means the PR grew it.
done_when
every ratchet prints comparand: merge-ref base <sha> on a pull_request run and comparand: origin/main tip only on push; the case table has both rows
mutation: with main advanced past the merge ref by a baseline shrink, a PR that did not touch the baseline is GREEN (RED today); a PR that grew it is RED (unchanged)
Not a cut input; it is a CI-round tax on every PR after every merge, which at 20 armed PRs tonight is the difference between the queue draining and not. 0.70.
Second wave, 01:11–01:27Z, on FRESH runs (triggered after #3491 merged): cb200_baseline.txt GREW on #3619 (gx10-pool2), #3608 (intel-3, yoga-build3), #3606 (gx10-build, intel-8), #3350 (gx10-pool3); complexity regressed against 237fbc32 on #3634 (yoga-build). So the checkout the ratchets read is the PR HEAD's tree, not the merge ref — a branch that has not merged main since the shrink carries 601 and reads GREW against main's 599 regardless of run timing. gh pr update-branch clears each (measured on #3613: red → green). Ten update-branch rounds tonight from one baseline shrink.
Parked by APR-EPIC-001: over S1 budget (rank 37/163). Reopen = pull. Applied by aprender-d1: claude+agy both said close, apr shadow row recorded (handoff/close-quorum-2026-09-25.json).
Activity
noahgift commentedon Sep 21, 2026
Second wave, 01:11–01:27Z, on FRESH runs (triggered after #3491 merged):
cb200_baseline.txt GREWon #3619 (gx10-pool2), #3608 (intel-3, yoga-build3), #3606 (gx10-build, intel-8), #3350 (gx10-pool3);complexity regressed against 237fbc32on #3634 (yoga-build). So the checkout the ratchets read is the PR HEAD's tree, not the merge ref — a branch that has not merged main since the shrink carries 601 and reads GREW against main's 599 regardless of run timing.gh pr update-branchclears each (measured on #3613: red → green). Ten update-branch rounds tonight from one baseline shrink.noahgift commentedon Sep 25, 2026
Parked by APR-EPIC-001: over S1 budget (rank 37/163). Reopen = pull. Applied by aprender-d1: claude+agy both said close, apr shadow row recorded (handoff/close-quorum-2026-09-25.json).