Repository navigation
fix(rush): synchronize native pnpm injections from the installed layout - #6133
Merged
Merged
Conversation
Bharat Middha (bmiddha)
added this pull request to stack #6134
October 14, 2026 08:57
Bharat Middha (bmiddha)
force-pushed
the
bmiddha/pnpm12-injected-sync
branch
from
October 14, 2026 08:57
6b5634b to
674ff80
Compare
Contributor
There was a problem hiding this comment.
🟡 Changes recommended
Removed injections can leave stale current-subspace destinations in existing sync descriptors.
1 open finding
What changed in this PR
Adds pnpm 12 injected-dependency synchronization using the installed .modules.yaml layout.
Changes:
- Validates pnpm’s installed layout and sync destinations.
- Preserves peer variants and subspace mappings.
- Adds focused synchronization tests and a change entry.
| File | Description |
|---|---|
BaseInstallManager.ts |
Selects installed-layout synchronization for pnpm 12+. |
PnpmSyncUtilities.ts |
Parses, validates, and records installed injection targets. |
PnpmSyncUtilities.test.ts |
Tests layout validation and mapping behavior. |
pnpm12-injected-layout-sync_2026-10-12-22-00.json |
Records the Rush patch. |
🧠 Review effort: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Use the installed injectedDeps target map with the existing pnpm-sync update/copy API. Validate the layout, manager identity, registered sources and materialized destinations before writing descriptors. Preserve the existing preparation path for earlier pnpm versions. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: bedb50cb-fcd4-4dc4-83b9-dba6064e5498
Sources dropped from injectedDeps now get an empty target list so their stale lockfile entries are removed. Validation runs in parallel and the virtual-store realpath is resolved once. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Bharat Middha (bmiddha)
force-pushed
the
bmiddha/pnpm12-injected-sync
branch
from
October 14, 2026 20:07
9f3f38c to
83fa86d
Compare
This was referenced Oct 14, 2026
Sean Larkin (TheLarkInn)
approved these changes
Oct 20, 2026
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.

Stacked on #6131. The review base is
bmiddha/pnpm12-native-compat.Summary
.modules.yamltarget map instead of parsing the native lockfile with an older pnpm kit or reconstructing virtual-store names.pnpm-sync-libupdate/copy API.Validation
The rebased source passed the normal dependency build, TypeScript, ESLint, API Extractor, Webpack, and 27 focused tests across
BaseInstallManager,PnpmSyncUtilities, andPnpmfileConfiguration.This is support-only: it does not change this repository's package-manager pin, bypass install policies, or claim to fix pnpm's separate external-root frozen-install behavior.