Conversation
…ance gap pnpm 10.34.5 with trustPolicy "no-downgrade" refuses undici-types@6.21.0: earlier-published versions of that package carried an SLSA provenance attestation and 6.21.0 carries none, which pnpm reads as a possible package takeover. The evidence gap runs 6.19.3 to 7.0.0 by publish date, and every @types/node from 22.4.0 up declares a range whose newest member falls inside it: ~6.19.2 resolves to 6.19.8, then ~6.19.8, ~6.20.0 and ~6.21.0. Measured rather than inferred: 22.3.0 installs clean, 22.7.9 fails on undici-types@6.19.8. So no version of @types/node this package could move forward to resolves at all, and a range move cannot be the fix. Nor is the failure confined to @types/node. It fails the whole install, which is why Dependabot reported it as "no version found without pnpm trust downgrade" against packages that have nothing wrong with them. The override moves undici-types forward to 6.28.1, the newest 6.x release carrying the attestation again. It is keyed to the gap itself, so it matches nothing once @types/node declares a range past it. Nothing weakens: pnpm-workspace.yaml is untouched and no resolution moves backwards.
NSchatz
force-pushed
the
sdd/S0306-cli-ci-dependabot-updates
branch
from
September 16, 2026 16:56
4d6927e to
82c6dda
Compare
This branch has not been deployed
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 this fixes
Dependency updating in this repo has been dead since
pnpm-workspace.yamllanded, while the workflow reported green. Every npm candidate the updater
tried was refused, and the refusal was reported against whichever package was
being bumped rather than against its cause.
The cause is one transitive package.
pnpm@10.34.5withtrustPolicy: "no-downgrade"refusesundici-types@6.21.0:undici-typescarried an SLSA provenance attestation from6.13.0through6.19.2, published none from6.19.3through7.0.0, and carries one againfrom
6.23.0on in the 6.x line.Every
@types/nodefrom22.4.0up declares a range whose newest member fallsinside that gap:
~6.19.2resolves to6.19.8, then~6.19.8,~6.20.0and~6.21.0. Measured rather than inferred, under the same two settings:@types/node@22.3.0installs clean, and@types/node@22.7.9fails onundici-types@6.19.8. So there is no version of@types/nodethis packagecould move forward to that resolves, and a range move cannot be the fix.
The refusal also fails the whole install, which is what made the three
@cosyte/*bumps unresolvable. Verified: bumping@cosyte/transform,@cosyte/x12and@cosyte/mllpto the versions the updater wants fails onundici-typesand on nothing of their own, and all three carry provenance onevery version they have published.
The change
One
pnpm.overridesentry movingundici-typesforward to6.28.1, thenewest 6.x release carrying the attestation again. The key names the evidence
gap itself, so the entry matches nothing once
@types/nodedeclares a rangepast it and can be removed by hand then.
Nothing is weakened.
pnpm-workspace.yaml,.npmrcand.github/dependabot.ymlare untouched, noignoreentry was added because nodependency needed one, and the only resolved version that moves is
undici-types, forward.Checks
install --frozen-lockfile,typecheck,lint,test(777 tests, 41 files),buildandcheck:agent-notesall pass on the committed lockfile.engines.nodeis unchanged at>=22.0.0 <26.0.0.Spec:
pipeline/active/S0306-cli-ci-dependabot-updates/spec.mdin the metarepo, with the per-criterion evidence in the
notes.mdbeside it.