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
fix(npm): discover pnpm virtual-store packages — transitive deps were invisible to apply and scan
Under pnpm's isolated linker a transitive-only dependency lives solely
inside node_modules/.pnpm/<entry>/node_modules/<name>; the crawler skipped
.pnpm as a hidden dir and never traversed symlinked packages, so apply
reported package_not_installed for packages that were installed and
runtime-loaded, and scan never sent them to the patch API. Confirmed
empirically on pnpm 7, 8, 9, 10, 11, and 12-rc (2026-08-18 matrix).
- find_by_purls: probe .pnpm store entries (real dirs only, root install
wins via BFS order); entries whose dir name decodes as name@version are
filtered against pending targets, undecodable names ride a conservative
fallback so truncated/hashed dirs stay probeable.
- crawl_all: inventory the virtual store after the root pass; identity
re-reads are skipped for already-seen name@version entries, bundled deps
inside store entries still walk.
- One shared store-entry enumerator; scan helpers parameterized by a
ScanPolicy bit instead of a parallel copy.
- Multi-version installs of one package now individually discoverable.
Tests: hand-built pnpm-shaped farm (transitive, multi-version, scoped,
decoys, truncated-name fallback, decoder units) + a real-PATH-pnpm
transitive apply e2e with CoW inode proofs.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
0 commit comments