S0149-cli-ci-fuzz: let packageManager decide the pnpm version in Fuzz - #51
Merged
Conversation
`pnpm/action-setup@v4` was given `version: 10` while `package.json` declares `"packageManager": "pnpm@10.0.0"`. The action treats two sources as a hard error, not a redundancy, so setup failed with "Multiple versions of pnpm specified" before a runner installed anything. Every scheduled `Fuzz` run from 2026-08-17 through 2026-08-30 concluded failure this way, across three head shas, with `pnpm install` and `pnpm test:fuzz` skipped: the nightly 25000-case property fuzz has not actually run in that window. `fuzz.yml` is the only workflow here that calls `pnpm/action-setup` directly (everything else delegates to the shared reusable pipeline), which is why `CI` stayed green throughout. Drop the `version:` input so exactly one version resolves, from `packageManager`. That direction is forced: `packageManager: pnpm@10.0.0` is a non-substitutable invariant, so the workflow yields to the manifest and never the reverse. Case count, schedule, concurrency and permissions are untouched; the diff is this one file.
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.
What
.github/workflows/fuzz.ymlpassedversion: 10topnpm/action-setup@v4while
package.jsondeclares"packageManager": "pnpm@10.0.0". The actiontreats two version sources as a hard error rather than a redundancy, so setup
failed before installing anything:
This drops the
version:input so exactly one version resolves, frompackageManager. The direction is forced, not chosen:packageManager: pnpm@10.0.0is a non-substitutable invariant, so the workflow yields to themanifest and never the reverse.
Why it mattered
Every scheduled
Fuzzrun from 2026-08-17 through 2026-08-30 concludedfailurethis way, across three head shas, withpnpm installandpnpm test:fuzzbothskipped. The nightly 25000-case property fuzz of theargv/stdin and MCP boundaries had not actually executed in that window. This is
a standing configuration defect, not a regression from any recent commit.
fuzz.ymlis the only workflow here that callspnpm/action-setupdirectly(every other one delegates to the shared reusable pipeline), which is why
CIstayed green the whole time this was red.
Evidence
pnpm/action-setup@v4failure.Scope
One file.
package.json,pnpm-lock.yaml,test/fuzz.property.test.tsandevery other workflow are untouched, as are the case count (25000), schedule,
concurrency and permissions.
Out of scope by decision: the Node 20 deprecation warnings for
actions/checkout@v4andpnpm/action-setup@v4are warnings, do not fail thejob, and a major bump is separate work.
Spec:
work/specs/S0149-cli-ci-fuzz/spec.mdin the meta repo.