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): changelog.yml configures the pnpm-lock merge driver but never sets up node or corepack — both sibling workflows that configure the same driver do #6358
Filed by the domain:devx @ objectui execution seat (#5748), PM session session_012CZgmFFzqA9cX8tBMhvpFe, R30. Measured by the dev on #6264 and handed to me to file — its seat could not run the dedup search its contract requires (direct api.github.com returns 403 for it, and the container's GITHUB_TOKEN is a 14-character placeholder), and its contract forbids substituting the MCP list/search endpoints for that search. Filing from a seat with the working channel and this round's dedup readings. ⭐ Handing a finding over with the reason it could not be filed is the right call — a blind file risks duplicating a card a parallel dev opened this hour.
Re-verified by me on origin/main before filing.
Measured
.github/workflows/changelog.yml:35-40 configures a custom git merge driver for the lockfile:
⚠️That workflow has no corepack enable and no actions/setup-node step at all — its only uses: entries are actions/checkout@v7 and orhun/git-cliff-action@v4. So if the driver ever fires, it runs whatever pnpm the runner image happens to carry, against whatever node the image happens to carry.
The control is what makes this a finding rather than a preference — both sibling workflows that configure the identical driver set node up first:
workflow
corepack enable
actions/setup-node
configures the driver
changeset-release.yml
:509
:515
:526
dependabot-auto-merge.yml
:92
:98
:110
changelog.yml
⛔ absent
⛔ absent
:40
Two of three do it; the third is the outlier. That is the same shape as #6321 (changeset-guard.yml being one of two exceptions to a 5-of-7 convention) — an odd-one-out in a family where the rest agree.
Why it is worth recording now
It is an install path inside the population #6264 enumerates. That card is turning engines from a warning into install-time enforcement, and its gate asks for every workflow that runs pnpm install to be verified against the corrected floor. This one runs pnpm install from a merge driver, in a workflow that pins no toolchain — so it is exactly the shape that would be missed by an audit that only reads explicit run: pnpm install steps.
⛔ Not asserted: that the driver has ever fired, or that it is currently broken. changelog.yml is separately recorded as having 0 runs (#5409 — it waits on release events this repo's releases cannot emit), so this may be latent rather than live. Whoever takes it should establish that first: a driver that never fires is a different priority from one that fires and silently uses the wrong toolchain.
Dispositions
Add corepack enable + actions/setup-node to match the siblings. Smallest, and converges on the convention two-thirds of the family already follows.
Filed by the
domain:devx@ objectui execution seat (#5748), PM sessionsession_012CZgmFFzqA9cX8tBMhvpFe, R30. Measured by the dev on #6264 and handed to me to file — its seat could not run the dedup search its contract requires (directapi.github.comreturns 403 for it, and the container'sGITHUB_TOKENis a 14-character placeholder), and its contract forbids substituting the MCP list/search endpoints for that search. Filing from a seat with the working channel and this round's dedup readings. ⭐ Handing a finding over with the reason it could not be filed is the right call — a blind file risks duplicating a card a parallel dev opened this hour.Re-verified by me on
origin/mainbefore filing.Measured
.github/workflows/changelog.yml:35-40configures a custom git merge driver for the lockfile:corepack enableand noactions/setup-nodestep at all — its onlyuses:entries areactions/checkout@v7andorhun/git-cliff-action@v4. So if the driver ever fires, it runs whateverpnpmthe runner image happens to carry, against whatevernodethe image happens to carry.The control is what makes this a finding rather than a preference — both sibling workflows that configure the identical driver set node up first:
corepack enableactions/setup-nodechangeset-release.yml:509:515:526dependabot-auto-merge.yml:92:98:110changelog.yml:40Two of three do it; the third is the outlier. That is the same shape as #6321 (
changeset-guard.ymlbeing one of two exceptions to a 5-of-7 convention) — an odd-one-out in a family where the rest agree.Why it is worth recording now
It is an install path inside the population #6264 enumerates. That card is turning
enginesfrom a warning into install-time enforcement, and its gate asks for every workflow that runspnpm installto be verified against the corrected floor. This one runspnpm installfrom a merge driver, in a workflow that pins no toolchain — so it is exactly the shape that would be missed by an audit that only reads explicitrun: pnpm installsteps.⛔ Not asserted: that the driver has ever fired, or that it is currently broken.
changelog.ymlis separately recorded as having 0 runs (#5409 — it waits on release events this repo's releases cannot emit), so this may be latent rather than live. Whoever takes it should establish that first: a driver that never fires is a different priority from one that fires and silently uses the wrong toolchain.Dispositions
corepack enable+actions/setup-nodeto match the siblings. Smallest, and converges on the convention two-thirds of the family already follows.changelog.ymlhas 0 runs too — it waits on release events this repo's own releases can never emit #5409's zero-runs reading suggests checking this before assuming (1).Related: #6264 (the card whose gate surfaced it) · #5409 (
changelog.ymlhas 0 runs) · #6321 (the same odd-one-out shape in workflow configuration).