Skip to content

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

Closed as not planned

Description

@noahgift

What

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^1 is 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

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.

Activity

  1. added this to the 0.70.0 milestone on Sep 21, 2026
  2. added
    bugSomething isn't working
    P1High priority
    on Sep 21, 2026
  3. noahgift commented on Sep 21, 2026

    @noahgift
    MemberAuthor

    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.

  4. added
    kind:codeWork is a code change (derived rule, #4159)
    on Sep 24, 2026
  5. modified the milestones: 0.70.0, backlog on Sep 24, 2026
  6. noahgift commented on Sep 25, 2026

    @noahgift
    MemberAuthor

    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).

  7. added
    parkedClosed over epic budget (APR-EPIC-001 rule 5). Reopen = pull.
    on Sep 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1High prioritybugSomething isn't workingkind:codeWork is a code change (derived rule, #4159)parkedClosed over epic budget (APR-EPIC-001 rule 5). Reopen = pull.

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions