Skip to content

A merge is a shape, not a sentence — and the queue would cost more, not less - #3189

Merged
gHashTag merged 1 commit into
masterfrom
loop/count-merges-by-parents
Sep 4, 2026
Merged

gHashTag merged 1 commit into
masterfrom
loop/count-merges-by-parents

Conversation

@gHashTag

@gHashTag gHashTag commented Sep 4, 2026

Copy link
Copy Markdown
Owner

The tool priced the up-to-date rule at zero, and its author broke it

tri pr-cost counted update-branch merges by subject prefix — Merge branch 'master', Merge remote-tracking, Merge branch "master". The loop then began passing its own -m "Merge origin/master into <branch>", which matches none of them:

update-branch merges     0
cost of the rule         0 minutes (0 reruns x 29.3)

It priced the rule as free while the rule was charging. Measured on four pull requests — by prefix 0 / 0 / 4 / 0, by parent count 1 / 1 / 4 / 3. It agreed only on the one PR that happened to use git's default message, and missed another session's #3178 entirely.

A merge commit has two parents. Structural, immune to wording, unbreakable by anyone choosing a nicer -m. The prefix list is gone rather than widened — a longer list of spellings is the same defect with more rope.

same window of 8 before after
content commits 18 12
update-branch merges 0 6
cost of the rule 0 min 176 min

Over 20 merged PRs: 43 commits, 15 merges, 307 minutes.

Nothing moved but my own habit. When a matcher reads a human-chosen string, its population is a habit — and habits change without a commit to blame.

And the corrected number argues against #3134, not for it

Every pull_request commit here fires 23 workflow runs (median over 200 recent runs grouped by head_sha and event; min 20, max 23). In the unit a queue is made of:

runs
today — 43 commits × 23 989
with a queue — 28 content × 23 + 20 builds × 23 1104
delta +115 (+12%)

A merge queue charges one build per pull request whether or not it ever had to catch up — and 10 of 20 (50%) merged with zero catch-ups. Average catch-ups per PR 0.75; break-even batch size 1.33 PRs per build; only one loop/ PR is open at a time, so batching is ~1.

The cause is a fix already merged here. #3166's narrow rule — catch up only when green and BEHIND — drove the average below the queue's break-even. The remedy #3134 proposes was made unprofitable by a remedy already shipped, and nothing noticed because the two were never priced in the same unit.

Price a proposal in the unit the proposal is made of. Minutes said 307 and implied a queue would help; runs said it costs more. Both are true readings of one window — only the second answers the question asked.

Stated rather than hidden: a queue wins at batch ≥ 1.33, which is a question about arrival rate rather than about the rule; and it does nothing for the other half of the tax, waiting on checks that cannot block, which --required-only already removes. tri pr-cost now prints this arithmetic itself.

Posted to #3134. SKILL.md 530–531.

Refs #3134

…3134)

tri pr-cost counted update-branch merges by SUBJECT PREFIX. The loop then
began passing its own -m "Merge origin/master into <branch>", matching none
of the three prefixes, so the command printed "update-branch merges 0" and
"cost of the rule 0 minutes" -- pricing the up-to-date rule as free while it
was charging. Nothing moved but my own commit-message habit.

Measured on four PRs: by prefix 0/0/4/0, by parent count 1/1/4/3. It agreed
only on the one PR that used git's default message and missed another
session's #3178 entirely. A merge commit has two parents; the prefix list is
gone rather than widened, because a longer list of spellings is the same
defect with more rope. Same window: content 18 -> 12, merges 0 -> 6, cost
0 -> 176 minutes. Over 20 PRs: 43 commits, 15 merges, 307 minutes.

And the corrected number argues AGAINST the merge queue #3134 proposes.
Every pull_request commit fires 23 workflow runs (median over 200 recent runs
grouped by head_sha and event; min 20, max 23), so in runs:

  today   43 commits x 23                    =  989
  queued  28 content x 23 + 20 builds x 23   = 1104   (+115, +12%)

A queue charges one build per PR whether or not it ever caught up, and 10 of
20 merged with ZERO catch-ups. Average 0.75; break-even batch 1.33; only one
loop/ PR is open at a time, so batching is ~1.

The cause is a fix already merged here: #3166's narrow rule drove the average
below the queue's break-even. The remedy #3134 proposes was made unprofitable
by a remedy already shipped, and nothing noticed because the two were never
priced in the same unit.

pr-cost now prints that arithmetic itself, and states what it does not
establish: a queue wins at batch >= 1.33, which is about arrival rate, and it
does nothing for the waiting that --required-only already removes.

SKILL.md 530-531. Posted to #3134.

Refs #3134

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-09-04 17:19:46 UTC

Summary

Status Count
Total Open PRs 13
PRs with Failing Checks 11
PRs with All Checks Green 2
READY 0
FAILING 11
PENDING 0

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=9b8875f1c9d4 != manifest seal=87e5cbd3ad94.
    The committed NMSE numbers were certified against an older compiler.rs.
    Run scripts/reseal-check.sh locally for the two-step reseal command (advisory; not a merge gate).

@gHashTag
gHashTag merged commit d313c72 into master Sep 4, 2026
29 checks passed
@gHashTag
gHashTag deleted the loop/count-merges-by-parents branch September 4, 2026 17:23
@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

📓 NotebookLM Notebook linked to this PR

This notebook contains session context, decisions, and artifacts for this work.

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.

1 participant