[Tracking] `install-strategy=linked` (isolated mode) bugs · Issue #9608 · npm/cli · GitHub
Skip to content

[Tracking] install-strategy=linked (isolated mode) bugs #9608

Description

@manzoorwanijk

Overview

install-strategy=linked (the isolated / RFC-0042 install mode) is experimental. We ran an exhaustive behavioral sweep of the linked strategy and compared every scenario against the hoisted strategy as the oracle — any divergence is treated as a defect. This is the umbrella issue for the discrepancies that sweep confirmed; each one is tracked in a sub-task (or an existing issue, where one already applies).

Note

Disclosure — AI-assisted: this sweep was performed with Claude and Codex working together. Claude drove the exploration, authored the test matrix, and ran the reproductions; Codex independently and adversarially reviewed the test plan (to surface missing cases and code paths) and helped verify findings against the source. The plan was iterated across multiple review rounds until coverage converged. Every finding was reproduced and compared against the hoisted strategy before being recorded.

Scope covered

  • Dependency types/sources: registry (range/exact/tag/prerelease), scoped, git, remote/registry tarball URLs, file:/local, bundled, aliased, peer/optional, overrides.
  • Graph shapes: diamonds, conflicting versions, deep/transitive chains, peers and optional peers.
  • Commands: install, ci, uninstall, update, dedupe, prune, outdated, fund, rebuild, pkg, ls, query, explain, exec/npx, run, link, audit, sbom, patch.
  • Configs: allow-scripts/allow-remote/allow-git, --strict-allow-scripts, --omit/--include, workspace filters (-w, --workspaces=false, --include-workspace-root), ignore-scripts, strategy switching, lockfile round-trips.
  • Store integrity: .store keying/dedup, symlink correctness/repair, .bin shims, cleanup.
  • The three latest-branch features under isolated mode: supply-chain security (deny-by-default scripts, allow-remote=none, RFC-868 trusted-identity matching), packageExtensions, and the new .npm-extension transformManifest manifest-repair extension point.

Each sub-task is self-contained, with a minimal reproduction and a side-by-side hoisted comparison.

Sub-tasks

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions