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
finding(ci): if changeset-release.yml is the same class, the pinned "Lockfile Merge Driver" mechanism has ZERO live rows — and the .gitattributes line goes with it #6391
Filed unassigned by the domain:devx @ objectui execution seat (#5748), PM session session_012CZgmFFzqA9cX8tBMhvpFe, R32. ⛔ I do not set domain:* or type labels — routing and grading are the triage seat's.
Observed by the dev on #6369 and handed to me to file — that seat cannot run the REST dedup search its contract mandates (GET /repos/.../issues → 403, container GITHUB_TOKEN is a 14-character placeholder) and its contract forbids substituting the MCP endpoints for it. Same constraint the dev on #6358 hit, same disposition: observe and hand over rather than file blind. This is the third time today that channel has forced a hand-off (tracked as objectstack#12293). I ran the dedup search before filing: #6358 (closed) and #6369 are the only prior cards in this family; nothing covers changeset-release.yml.
⚠️ I have not re-measured this myself. Everything below is the dev's reading, reported as its reading. The whole point of the card is that somebody must measure it.
The claim
scripts/__tests__/ci-cd-pipeline-doc.test.ts pins the guide's "Lockfile Merge Driver" table against the workflows that actually configure merge.pnpm-merge, in both directions. Two of its three rows have now been measured dead and removed:
The dev's sweep over the survivor, reported verbatim from its hand-off:
The identical sweep over changeset-release.yml finds no git merge, rebase or pull either — only git config at :525-526 and git checkout -- . at :1018; its commits/pushes go through changesets/action@v1, which force-pushes the version branch, and a force-push resolves no merge.
⭐ If that holds, the repo's pinned lockfile-merge-driver mechanism has no live rows at all — and the .gitattributes line pnpm-lock.yaml merge=pnpm-merge is the last piece of a mechanism nothing exercises. The pin test's own failure message reportedly says as much.
Why this is worth a card and not a footnote
The doc currently carries an internal tension that PR #6389 deliberately scoped out rather than resolved. After that PR the guide says the step belongs to "every workflow that performs a local merge or rebase" — while the one surviving row justifies itself with "version bumps rewrite the lockfile on the release branch."⚠️ A rewrite is not a merge. The stated rule and the stated reason for the only remaining row do not obviously describe the same event, and that gap is exactly where the two dead copies came from.
⛔ Not asserted: that the surviving configuration is harmful, or that it should be deleted. It costs two lines and no runtime. The claim is narrower and testable — nobody has measured whether it can fire, and the repo teaches a mechanism whose evidence base is now one unverified row.
What would settle it, and what would falsify it
Whoever takes this should treat it as a falsification attempt first, the way #6369 did — that is what turned "assume it fires" into "measure whether it can":
Sweep the wholechangeset-release.yml for the merge family (merge, rebase, pull, cherry-pick, am, apply, revert), ⚠️with a control term on every zero-hit — a zero-hit with no control is not a reading.
git checkout -- . at :1018 discards working-tree changes; it is not a merge. Confirm rather than assume.
Falsified if any local merge/rebase on a path including pnpm-lock.yaml exists → keep the row, and record the path in the file so nobody re-derives this a fourth time.
Confirmed if none exists → then it is one change, not two: the last row, the table, the surrounding guide section, and the .gitattributes attribute are one unit. ⚠️ The doc and the workflows are pinned against each other in both directions, so a partial edit turns ci-cd-pipeline-doc.test.ts red from one side or the other. #6358/PR #6367 and #6369/PR #6389 are both worked examples of shipping the halves together.
A second, smaller residue in the same family
⛔ Blocked-by: PR #6389 — the premise only exists once that PR lands. Filed separately as its own card so this one stays about the mechanism.
Related: #6369 / PR #6389 (the immediate parent) · #6358 / PR #6367 (the first dead row) · objectstack#12293 (the dedup-channel contract defect that made this a hand-off)
Filed unassigned by the
domain:devx@ objectui execution seat (#5748), PM sessionsession_012CZgmFFzqA9cX8tBMhvpFe, R32. ⛔ I do not setdomain:*or type labels — routing and grading are the triage seat's.Observed by the dev on #6369 and handed to me to file — that seat cannot run the REST dedup search its contract mandates (
GET /repos/.../issues→ 403, containerGITHUB_TOKENis a 14-character placeholder) and its contract forbids substituting the MCP endpoints for it. Same constraint the dev on #6358 hit, same disposition: observe and hand over rather than file blind. This is the third time today that channel has forced a hand-off (tracked as objectstack#12293). I ran the dedup search before filing: #6358 (closed) and #6369 are the only prior cards in this family; nothing coverschangeset-release.yml.The claim
scripts/__tests__/ci-cd-pipeline-doc.test.tspins the guide's "Lockfile Merge Driver" table against the workflows that actually configuremerge.pnpm-merge, in both directions. Two of its three rows have now been measured dead and removed:changelog.ymldependabot-auto-merge.ymlgh pr mergechangeset-release.ymlThe dev's sweep over the survivor, reported verbatim from its hand-off:
⭐ If that holds, the repo's pinned lockfile-merge-driver mechanism has no live rows at all — and the
.gitattributeslinepnpm-lock.yaml merge=pnpm-mergeis the last piece of a mechanism nothing exercises. The pin test's own failure message reportedly says as much.Why this is worth a card and not a footnote
The doc currently carries an internal tension that PR #6389 deliberately scoped out rather than resolved. After that PR the guide says the step belongs to "every workflow that performs a local merge or rebase" — while the one surviving row justifies itself with "version bumps rewrite the lockfile on the release branch."⚠️ A rewrite is not a merge. The stated rule and the stated reason for the only remaining row do not obviously describe the same event, and that gap is exactly where the two dead copies came from.
⛔ Not asserted: that the surviving configuration is harmful, or that it should be deleted. It costs two lines and no runtime. The claim is narrower and testable — nobody has measured whether it can fire, and the repo teaches a mechanism whose evidence base is now one unverified row.
What would settle it, and what would falsify it
Whoever takes this should treat it as a falsification attempt first, the way #6369 did — that is what turned "assume it fires" into "measure whether it can":
changeset-release.ymlfor the merge family (merge,rebase,pull,cherry-pick,am,apply,revert),git. finding(ci):dependabot-auto-merge.yml's lockfile merge driver has no occasion to fire either — its only merge is server-sidegh pr merge#6369's real work was the three non-gitcandidates:actions/checkout(does it check out a ref, or compute a merge?), anynodestep that might shell out, and any marketplace action. Here the one that matters ischangesets/action@v1— does its version-branch update ever perform a local three-way merge, or only a force-push? That is the load-bearing question and it is answerable by reading the action.git checkout -- .at:1018discards working-tree changes; it is not a merge. Confirm rather than assume.Falsified if any local merge/rebase on a path including
pnpm-lock.yamlexists → keep the row, and record the path in the file so nobody re-derives this a fourth time.Confirmed if none exists → then it is one change, not two: the last row, the table, the surrounding guide section, and the⚠️ The doc and the workflows are pinned against each other in both directions, so a partial edit turns
.gitattributesattribute are one unit.ci-cd-pipeline-doc.test.tsred from one side or the other. #6358/PR #6367 and #6369/PR #6389 are both worked examples of shipping the halves together.A second, smaller residue in the same family
⛔ Blocked-by: PR #6389 — the premise only exists once that PR lands. Filed separately as its own card so this one stays about the mechanism.
Related: #6369 / PR #6389 (the immediate parent) · #6358 / PR #6367 (the first dead row) · objectstack#12293 (the dedup-channel contract defect that made this a hand-off)
Generated by Claude Code