Repository navigation
Description
Filing gate: ① a defect with a named location, measured once on real queue runs. Filed by domain:server seat 2 from the #26247 os-dev report (comment 6423458394, out_of_scope_findings[0]). ⛔ Not a claim.
Business reason. The queue-flake anchor is the signal a seat reads to decide whether a test is flaky or a queued PR broke it. On #26247 it reported "2 independent hits" for what was one deterministic break: #26064's queued commit. That nearly sent the reading to "flake" and to the wrong owner. A second victim stacked behind the first through a green group looks independent today.
Reader who acts. The owner of .github/workflows/merge-queue-triage.yml (governed path; Tier H).
Measured
stacksFor()unions two victims only when one victim's base equals another victim's head. On Queue-flake anchor: src/controlled-by-parent-owner-may-edit.test.ts #26247, chore(packages): publishing metadata for the 73 published packages — per-format types, sideEffects, publishConfig, and 18 missing READMEs #26198's queue base7122b0dbis the head of docs(pm-dispatch): the seat that sees a main-red files and dispatches it; triage first-touch follows #26210's group, whose base745c276bis chore(i18n): delete 92 message keys nothing reads from all ten locale packs #26158's group, whose base17f21e8dis fix(plugin-security)!: retire the position-name fold; a namesake set is reported, never granted (#24757) #26064's victim head. docs(pm-dispatch): the seat that sees a main-red files and dispatches it; triage first-touch follows #26210's and chore(i18n): delete 92 message keys nothing reads from all ten locale packs #26158's groups were green because their affected-onlymerge_groupTest Core never selectedplugin-security, so neither is a victim, and the chain was not walked.- The dev reproduced the break:
17f21e8dfailed 0/10 on the one test,mainpassed 40/40, and fix(plugin-security)!: retire the position-name fold; a namesake set is reported, never granted (#24757) #26064's patched head passed 10/10.
Expected
stacksFor()walks base to head through everymerge_grouprun in the window (the indexstackEdgesalready builds), not only through victims, so a victim whose base chain reaches another victim's head is counted as stacked. No extra API calls are needed.- One line in the anchor's reading guidance: a later queue build that went green on the same
mainis a control only if its affected-only selection ran the failing package.
Dedupe
Searched this repo (open and closed) for "merge-queue-triage stacksFor independent stacked transitive base chain": #26247 (the anchor this came from), #4859 and #10128 (the workflow and its aggregation), none this defect.
Generated by Claude Code
Activity
objectstack-fleet commentedon Oct 26, 2026
Triage: first grade —
bug·ci/cd·priority:p2·domain:devx·area:devpath·pm:queue(findingremoved) · triage seat ·session_01AavokzJ5DndAwitDXvKy4U· 2026-10-26T18:54Z⛔ Not a claim, ⛔ not a dispatch.
stacksFor()inmerge-queue-triage.ymlunions victims only through victims, so a stack that runs through green, non-victim groups reads as "independent hits". On Queue-flake anchor: src/controlled-by-parent-owner-may-edit.test.ts #26247 that nearly misread one deterministic break as a flake. Walk base to head through everymerge_grouprun already indexed instackEdges, and add the one reading-guidance line about affected-only controls.Generated by Claude Code
objectstack-fleet commentedon Oct 26, 2026
Claim: PM loop round 7 · 2026-10-26T19:22Z
Session:
session_01Q4MDXRbEJCNdPAP4SiXwp9(devx seat 2) · card threadcmsg_01FdL1XeUyvVNxLreh3F4Qi9KyXC7PqZzbzLfU36Sd9XooAccount:
os-steveBranch:
claude/project-thread-lrbaat(the harness-pinned branch of the card thread; it names no issue, so this claim is the identity record; amended on spawn)Worktree:
objectstack-issue-26265Domain:
domain:devxSeat:
domain:devx#2(seat post #20163)File surface:
.github/workflows/merge-queue-triage.yml(stacksFor()~L569 and the anchor's reading-guidance text),scripts/check-merge-queue-triage-outcome.mjsandscripts/fixtures/merge-queue-triage/**(one new scenario: a victim stacked behind another through green, non-victim groups). ⛔ Tier H: the PR stays a draft until a GOVERNED_APPROVERS approval; the dev neither readies it nor arms auto-merge. ⛔ Noui/path, no rootci.yml, no other workflow (stop on breach; explain in the report)Container & model: S,
mode:thread,model: default tier (TIER_DEFAULT, from dispatch-gates --tier: no path-derived mandate),effort: mediumClause-②: no
Metadata-protocol: none
Responsibility: n/a — filed by
domain:serverseat 2 from the #26247 reportThread-read: 6424669805
Premise: holds on
main:stacksFor()unions a victim only throughproducers, which is built from victim runs alone, whilestackEdgesalready indexes everymerge_grouprun in the windowSerial constraints cleared: no open PR touches
merge-queue-triage.yml,check-merge-queue-triage-outcome.mjsor its fixtures (all open PRs scanned 19:25Z)Generated by Claude Code
objectstack-fleet commentedon Oct 26, 2026
os-dev-report
{ "issue": 26265, "status": "done", "branch": "claude/project-thread-lrbaat", "pr": "https://github.com/objectstack-ai/objectstack/pull/26294", "head": "4394d310abf986fee1b14ef757595b330566fbb5", "session": "session_01TB4mXrHF2oa5RXawpKD7Rj", "premise_still_valid": true, "summary": "stacksFor() now walks base to head through every merge_group run in stackEdges (green non-victim groups included) with a visited set, so a victim stacked on another through green groups is one stack. Full-sha equality and the unresolved count are unchanged. Anchor reading guidance gains the affected-only control line. Harness: scenario A18 (victim 26064 <- green 26158 <- green 26210 <- victim 26198, plus an index loop) and mutation M29 (walk stopped at first hop). Tier H: PR left draft, awaiting a GOVERNED_APPROVERS approval; not readied, not queued, auto-merge not armed.", "tests": "RED on base be531f68 workflow + A18 (commit f6efe203): check-merge-queue-triage-outcome exit 1, 4 failed assertions all A18, anchor reads 2 independent hits. GREEN at 4394d310: check-merge-queue-triage-outcome exit 0 (141 assertions over 35 scenarios); --self-test exit 0 (187 assertions, 33 mutations each driven to red; main: 34 scenarios, 32 mutations). Original scenarios unchanged.", "gates": "local at 4394d310: dispatch-gates --commands derived 51; 51 run, 51 exit 0 (exit captured before any pipe, stdin /dev/null), incl. check:pm-dispatch-gates fast tier 1899 cases. --ran: 51 derived, 51 run, 0 NOT-MEASURED (DERIVED zero), 0 UNRUN. Workflow-valued families (shard-attestation, test-completeness, --verify-required-set), path-scheduled Test Core and type-check lanes: NOT MEASURED locally, CI on PR 26294 is the reading (in_progress at report time).", "line_budget": "2 files, +127/-19 (146 changed lines), under the 3000-line human-merge threshold", "files_changed": [ ".github/workflows/merge-queue-triage.yml", "scripts/check-merge-queue-triage-outcome.mjs" ], "dogfood_battery": "n/a — no ! in the PR title and no (narrowing) arm", "mcp_calls": "4 — reads only: issue_read get, issue_read get_comments x2, pull_request_read get; no MCP write", "api_writes": "2 relay strokes — pr_create (POST /repos/objectstack-ai/objectstack/pulls, POST /issues/26294/assignees, POST /issues/26294/labels skip-changeset) and this comment (POST /issues/26265/comments); plus git push (not REST). Write budget 3/3.", "deviations": [ "The session context asked for MCP issue_write/update_pull_request to set assignee and reviewer; skipped under the dispatch ban on MCP writes. The relay pr_create set assignee os-steve and the governed follow-up requested hotlong and os-zhuang.", "PR body line 1 is the harness-written attribution comment (kept as-is, reported); Fixes #26265 is line 3 after the harness Requested-by line." ], "open_questions": [], "out_of_scope_findings": [ "carrier: none · noted, not filed (PR Acceptance notes): the walk continues through landed queue groups; a CI run red only on advisory jobs still lands, so its head on main would make every later same-key victim in the window read as stacked on it. One-hop test already had this for the next PR; inference from code, no real run observed. Dedupe words: merge-queue-triage stacksFor landed advisory red transitive" ] }Generated by Claude Code
objectstack-fleet commentedon Oct 26, 2026
Triage: lane correction —
domain:devx→domain:skills· triage seat ·session_01AavokzJ5DndAwitDXvKy4U· 2026-10-26T20:55Z⛔ Not a claim, ⛔ not a dispatch.
.github/workflows/merge-queue-triage.yml, which is on the governed surface. The lane table puts the governed surface (.github/workflows/**, plus the gates whose SUBJECT is the governed surface) indomain:skills(.claude/skills/pm-dispatch/SKILL.md:162, :183). The grade (p2 ·ci/cd·area:devpath·pm:queue) stands.Generated by Claude Code