Repository navigation
fix(ci): merge-queue-triage stacksFor() walks the stack through green queue groups - #26294
Merged
Merged
Conversation
…s one hit Scenario A18 re-scores the #26247 chain (victim <- green <- green <- victim). Red on the shipped script: it reports 2 independent hits. Claude-Session: https://claude.ai/code/session_01TB4mXrHF2oa5RXawpKD7Rj Co-authored-by: Claude <noreply@anthropic.com>
…ue groups stacksFor() unioned two victims only when one victim's base was another victim's head. A victim stacked on another through green groups (whose affected-only Test Core never ran the failing package) read as an independent hit. Walk base to head through every merge_group run already in stackEdges, with a visited set; full-sha equality and the unresolved count are unchanged. Add the affected-only control line to the anchor's reading guidance, and mutation M29 (walk stopped at its first hop -> A18 red). Claude-Session: https://claude.ai/code/session_01TB4mXrHF2oa5RXawpKD7Rj Co-authored-by: Claude <noreply@anthropic.com>
Contributor
Author
席位核对 · ACCEPT · devx seat 2 · 2026-10-26T19:49ZSeat
Generated by Claude Code |
os-zhuang
approved these changes
Oct 26, 2026
os-zhuang
marked this pull request as ready for review
October 26, 2026 22:45
os-zhuang
enabled auto-merge
October 26, 2026 22:46
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.
Requested by Steve · project thread
Fixes #26265
Clause-②: no
Metadata-protocol: none
⛔ Tier H (governed:
.github/workflows/**). This PR stays a draft. Landing waits for an approved review from aGOVERNED_APPROVERSaccount; no seat readies it, queues it or arms auto-merge.What changed
stacksFor()in.github/workflows/merge-queue-triage.ymlused to union two victims only when one victim's queue base was another victim's queue head. A victim stacked on another victim through green, non-victim queue groups therefore read as an independent hit. On #26247 that turned one deterministic break (#26064's queued commit) into "2 independent hits".stacksFor()now walks base to head through everymerge_grouprun already indexed instackEdges(green groups included). It unions with any other victim whose head the chain reaches. The index was already in hand, so this adds no API calls.unresolved.visitedset, so a loop in the index ends the walk instead of hanging the job.mainis a control only if its affected-only selection ran the failing package.scripts/check-merge-queue-triage-outcome.mjs):queueRun()takes an optionalconclusion, so green groups are spelledsuccess.Evidence
f6efe203adds A18 on top oforigin/mainbe531f68, with the workflow unchanged.node scripts/check-merge-queue-triage-outcome.mjsexits 1 with 4 failed assertions, all A18. The anchor reads**2 pull requests** … **2 independent hits**, and both rows showindependent.4394d310):node scripts/check-merge-queue-triage-outcome.mjsexits 0:OK (141 assertions over 35 scenarios …).node scripts/check-merge-queue-triage-outcome.mjs --self-testexits 0:187 assertions, 33 mutations of the shipped script each driven to red. On main this was 34 scenarios and 32 mutations; every original scenario is unchanged and still green.Gates
Local subset, measured at head
4394d310:node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstackderives 51 commands for this diff (2 paths, +127/-19 changed lines, under the 3000-line threshold)./dev/null. That includescheck-merge-queue-triage-outcomewith and without--self-test,check:nul-bytes,check:self-test-wired,check:workflow-step-name-quoting,check:pm-governed-mergesandcheck:pm-dispatch-gates(fast tier: 1899 cases, 575 s).dispatch-gates --ranreports:51 derived, 51 run, 0 NOT-MEASURED, 0 UNRUN. That zero is derived from the recorded exit codes.--verify-required-set) and have no local invocation.Test Corejob and the type-check lanes run only in CI.!and there is no(narrowing)arm).skip-changeset. This changes in-repo tooling only and publishes nothing.Acceptance notes
main's tip, which is itself the head of the queue group that landed it, so the walk keeps going into landed groups inside the 24 h window. That fuses nothing as long as no victim's head ever landed. One case can break that. A CI run that is red only on advisory (non-required) jobs still lands. Its head then sits onmain, and every later victim with the same key would be read as stacked on it. The old one-hop test already had this exposure for the PR directly behind such a landing; the walk widens it to the rest of the window. I'm noting it here rather than filing it: it is an inference from reading the code, and no real queue run has been seen in that state. No owner is assigned.stackEdgesis still not narrowed to the CI workflow, as before. Other workflows'merge_groupruns on the same commit share its base and head, so they add the same edge twice and can never add a wrong one.维护者速读(草稿)
Generated by Claude Code