# @pnpm/global.commands

## 1102.0.10

### Patch Changes

- Updated dependencies:
  - @pnpm/bins.linker@1100.0.39
  - @pnpm/bins.remover@1100.0.30
  - @pnpm/bins.resolver@1100.0.19
  - @pnpm/cli.utils@1101.0.34
  - @pnpm/config.reader@1102.3.7
  - @pnpm/core-loggers@1101.0.4
  - @pnpm/deps.inspection.list@1101.1.1
  - @pnpm/global.packages@1101.1.9
  - @pnpm/installing.deps-installer@1104.2.7
  - @pnpm/installing.modules-yaml@1101.0.8
  - @pnpm/lockfile.fs@1100.2.15
  - @pnpm/pkg-manifest.reader@1100.0.24
  - @pnpm/pkg-manifest.utils@1100.4.11
  - @pnpm/resolving.local-resolver@1101.2.8
  - @pnpm/store.connection-manager@1101.3.6
  - @pnpm/types@1102.1.3

## 1102.0.9

### Patch Changes

- Updated dependencies:
  - @pnpm/bins.linker@1100.0.38
  - @pnpm/bins.remover@1100.0.29
  - @pnpm/bins.resolver@1100.0.18
  - @pnpm/cli.utils@1101.0.33
  - @pnpm/config.reader@1102.3.6
  - @pnpm/core-loggers@1101.0.3
  - @pnpm/deps.inspection.list@1101.1.0
  - @pnpm/global.packages@1101.1.8
  - @pnpm/installing.deps-installer@1104.2.6
  - @pnpm/installing.modules-yaml@1101.0.7
  - @pnpm/lockfile.fs@1100.2.14
  - @pnpm/pkg-manifest.reader@1100.0.23
  - @pnpm/pkg-manifest.utils@1100.4.10
  - @pnpm/resolving.local-resolver@1101.2.7
  - @pnpm/store.connection-manager@1101.3.5
  - @pnpm/types@1102.1.2

## 1102.0.8

### Patch Changes

- Updated dependencies:
  - @pnpm/config.reader@1102.3.5
  - @pnpm/deps.inspection.list@1101.0.11
  - @pnpm/installing.deps-installer@1104.2.5
  - @pnpm/store.connection-manager@1101.3.4

## 1102.0.7

### Patch Changes

- Updated dependencies:
  - @pnpm/bins.linker@1100.0.37
  - @pnpm/bins.remover@1100.0.28
  - @pnpm/cli.utils@1101.0.32
  - @pnpm/config.reader@1102.3.4
  - @pnpm/deps.inspection.list@1101.0.10
  - @pnpm/error@1100.2.2
  - @pnpm/global.packages@1101.1.7
  - @pnpm/installing.deps-installer@1104.2.4
  - @pnpm/installing.modules-yaml@1101.0.6
  - @pnpm/lockfile.fs@1100.2.13
  - @pnpm/pkg-manifest.reader@1100.0.22
  - @pnpm/pkg-manifest.utils@1100.4.9
  - @pnpm/resolving.local-resolver@1101.2.6
  - @pnpm/store.connection-manager@1101.3.3

## 1102.0.6

### Patch Changes

- Updated dependencies:
  - @pnpm/bins.linker@1100.0.36
  - @pnpm/bins.remover@1100.0.27
  - @pnpm/cli.utils@1101.0.31
  - @pnpm/config.matcher@1100.0.3
  - @pnpm/config.reader@1102.3.3
  - @pnpm/core-loggers@1101.0.2
  - @pnpm/deps.inspection.list@1101.0.9
  - @pnpm/installing.deps-installer@1104.2.3
  - @pnpm/lockfile.fs@1100.2.12
  - @pnpm/pkg-manifest.utils@1100.4.8
  - @pnpm/resolving.local-resolver@1101.2.5
  - @pnpm/store.connection-manager@1101.3.2

## 1102.0.5

### Patch Changes

- `pnpm update --global` now removes hard-linked executables from `PNPM_HOME` when migrating packages from the old global layout [pnpm/pnpm#16420](https://github.com/pnpm/pnpm/issues/16420).

- Updated dependencies:
  - @pnpm/bins.linker@1100.0.35
  - @pnpm/config.reader@1102.3.2
  - @pnpm/deps.inspection.list@1101.0.8
  - @pnpm/global.packages@1101.1.6
  - @pnpm/installing.deps-installer@1104.2.2
  - @pnpm/lockfile.fs@1100.2.11
  - @pnpm/store.connection-manager@1101.3.1

## 1102.0.4

### Patch Changes

- `pnpm env remove --global` deletes Node.js versions that pnpm installed into its own store, including when another tool installed pnpm [pnpm/pnpm#8357](https://github.com/pnpm/pnpm/issues/8357).

- `pnpm update --global` now reinstalls the global packages that pnpm 10 installed into the previous global directory, `<global-dir>/5`, so their commands are linked into the pnpm home `bin` directory again and `pnpm list --global` lists them. Once every package is migrated, pnpm deletes the previous directory and the commands pnpm 10 linked into the pnpm home [#11528](https://github.com/pnpm/pnpm/issues/11528).

- `pnpm install` now works in StackBlitz WebContainers on projects without a lockfile. It used to fail there with `ENOENT ... pnpm-lock.yaml`, because pnpm did not recognize the errors that WebContainers return from asynchronous file system calls [#15649](https://github.com/pnpm/pnpm/issues/15649).

- Updated dependencies:
  - @pnpm/bins.linker@1100.0.34
  - @pnpm/bins.remover@1100.0.26
  - @pnpm/cli.utils@1101.0.30
  - @pnpm/config.reader@1102.3.1
  - @pnpm/deps.inspection.list@1101.0.7
  - @pnpm/error@1100.2.1
  - @pnpm/global.packages@1101.1.5
  - @pnpm/installing.deps-installer@1104.2.1
  - @pnpm/installing.modules-yaml@1101.0.5
  - @pnpm/lockfile.fs@1100.2.10
  - @pnpm/pkg-manifest.reader@1100.0.21
  - @pnpm/pkg-manifest.utils@1100.4.7
  - @pnpm/resolving.local-resolver@1101.2.4
  - @pnpm/resolving.parse-wanted-dependency@1100.0.3
  - @pnpm/store.connection-manager@1101.3.0

## 1102.0.3

### Patch Changes

- `pnpm update --global` now skips a global package installed from a `file:` path that no longer exists, prints a warning, and updates the remaining global packages. Previously the whole update failed with `ERR_PNPM_LINKED_PKG_DIR_NOT_FOUND` [#12533](https://github.com/pnpm/pnpm/issues/12533).

- `pnpm update -g` no longer asks more than once for approval of the same immature `name@version` when `minimumReleaseAgeStrict` is enabled [#15091](https://github.com/pnpm/pnpm/issues/15091).

- Fixed `pnpm install` failing with `EEXIST` when a concurrent install cleared the file or directory that was occupying a symlink path. On Windows, a symlink another process is still holding is no longer moved aside and recreated.

- Updated dependencies:
  - @pnpm/bins.linker@1100.0.33
  - @pnpm/bins.remover@1100.0.25
  - @pnpm/bins.resolver@1100.0.17
  - @pnpm/cli.utils@1101.0.29
  - @pnpm/config.reader@1102.3.0
  - @pnpm/core-loggers@1101.0.1
  - @pnpm/deps.inspection.list@1101.0.6
  - @pnpm/error@1100.2.0
  - @pnpm/global.packages@1101.1.4
  - @pnpm/installing.deps-installer@1104.2.0
  - @pnpm/installing.modules-yaml@1101.0.4
  - @pnpm/lockfile.fs@1100.2.9
  - @pnpm/pkg-manifest.reader@1100.0.20
  - @pnpm/pkg-manifest.utils@1100.4.6
  - @pnpm/resolving.local-resolver@1101.2.3
  - @pnpm/store.connection-manager@1101.2.0
  - @pnpm/types@1102.1.1

## 1102.0.2

### Patch Changes

- `pnpm add -g` and `pnpm update -g` now ignore incomplete unrelated global package groups when every command from the replaced group is retained. Operations that could remove a global command still require complete ownership information.

- `pnpm update --global` no longer reinstalls a global package when its dependency graph resolves to what is already installed. It reports `Already up to date` [pnpm/pnpm#12002](https://github.com/pnpm/pnpm/issues/12002).

- Updated dependencies:
  - @pnpm/bins.linker@1100.0.32
  - @pnpm/bins.remover@1100.0.24
  - @pnpm/cli.utils@1101.0.28
  - @pnpm/config.reader@1102.2.1
  - @pnpm/core-loggers@1101.0.0
  - @pnpm/deps.inspection.list@1101.0.5
  - @pnpm/global.packages@1101.1.3
  - @pnpm/installing.deps-installer@1104.1.3
  - @pnpm/installing.modules-yaml@1101.0.3
  - @pnpm/lockfile.fs@1100.2.8
  - @pnpm/pkg-manifest.utils@1100.4.5
  - @pnpm/store.connection-manager@1101.1.3

## 1102.0.1

### Patch Changes

- Fixed `pnpm add -g`, `pnpm update -g`, and `pnpm remove -g` mutating global bins or install directories after only partially reading an installed package group. If any declared package manifest is missing, malformed, or unreadable, pnpm now fails before activation or removal and leaves the existing global installation intact [pnpm/pnpm#13796](https://github.com/pnpm/pnpm/issues/13796).

- Updated dependencies:
  - @pnpm/bins.linker@1100.0.31
  - @pnpm/cli.utils@1101.0.27
  - @pnpm/config.reader@1102.2.0
  - @pnpm/deps.inspection.list@1101.0.4
  - @pnpm/global.packages@1101.1.2
  - @pnpm/installing.deps-installer@1104.1.2
  - @pnpm/pkg-manifest.utils@1100.4.4
  - @pnpm/store.connection-manager@1101.1.2

## 1102.0.0

### Major Changes

- Build scripts can now be rejected before the package is installed [#14067](https://github.com/pnpm/pnpm/issues/14067):

  - `pnpm add --allow-build=!<pkg>` records `<pkg>: false` in `allowBuilds`. It used to write a `!<pkg>: true` entry that matched no package. On a global install the denial was dropped altogether, so the post-install prompt offered the build for approval.
  - `pnpm approve-builds <pkg>` and `pnpm approve-builds !<pkg>` record their decision even when no packages are awaiting approval, and report a package that is not awaiting approval with a warning so a typo stays visible. Both cases used to fail the command with an error.

### Patch Changes

- Updated dependencies:
  - @pnpm/bins.linker@1100.0.30
  - @pnpm/bins.remover@1100.0.23
  - @pnpm/cli.utils@1101.0.26
  - @pnpm/config.reader@1102.1.1
  - @pnpm/deps.inspection.list@1101.0.3
  - @pnpm/error@1100.1.4
  - @pnpm/global.packages@1101.1.1
  - @pnpm/installing.deps-installer@1104.1.1
  - @pnpm/pkg-manifest.reader@1100.0.19
  - @pnpm/pkg-manifest.utils@1100.4.3
  - @pnpm/store.connection-manager@1101.1.1

## 1101.1.0

### Minor Changes

- `pnpm update -g` no longer downgrades a global package. `--latest` resolves the `latest` dist-tag, which can point at an older release than the one installed — after `pnpm add -g <pkg>@next`, for instance [#14270](https://github.com/pnpm/pnpm/issues/14270).

  `pnpm update -g` also no longer changes the pnpm version. pnpm's own global install belongs to `pnpm self-update` [#14270](https://github.com/pnpm/pnpm/issues/14270).

### Patch Changes

- Updated dependencies:
  - @pnpm/bins.linker@1100.0.29
  - @pnpm/bins.remover@1100.0.22
  - @pnpm/bins.resolver@1100.0.16
  - @pnpm/cli.utils@1101.0.25
  - @pnpm/config.reader@1102.1.0
  - @pnpm/core-loggers@1100.3.4
  - @pnpm/deps.inspection.list@1101.0.2
  - @pnpm/global.packages@1101.1.0
  - @pnpm/installing.deps-installer@1104.1.0
  - @pnpm/pkg-manifest.reader@1100.0.18
  - @pnpm/pkg-manifest.utils@1100.4.2
  - @pnpm/store.connection-manager@1101.1.0
  - @pnpm/types@1102.1.0

## 1101.0.1

### Patch Changes

- Updated dependencies:
  - @pnpm/config.reader@1102.0.1
  - @pnpm/deps.inspection.list@1101.0.1
  - @pnpm/installing.deps-installer@1104.0.1
  - @pnpm/store.connection-manager@1101.0.1

## 1101.0.0

### Major Changes

- The three registry lookups are now named for what they are keyed by, so that none of them is called `registries` — a name the `registries` setting itself has taken:

  | before | after |
  |---|---|
  | `Config.registries` | `Config.registriesByScope` |
  | `Config.namedRegistries` | `Config.registriesByPrefix` |
  | `Config.registryOptions` | `Config.registryOptionsByUrl` |

  The same rename applies to the `RegistryContext` fields, the `Registries` and `NamedRegistries` types (now `RegistriesByScope` and `RegistriesByPrefix`), `normalizeRegistries` / `normalizeNamedRegistries` (now `normalizeRegistriesByScope` / `normalizeRegistriesByPrefix`), and the `BUILTIN_NAMED_REGISTRIES` constant (now `BUILTIN_REGISTRIES_BY_PREFIX`).

  This is an internal rename: no setting, error code, lockfile field, or `.pnpmfile.cjs` hook field changes. A `preResolution` hook still reads `ctx.registries`, which is the name pacquet passes as well. The `registries` and `namedRegistries` settings are read under the names users write them.

  The pnpr resolve request sends `registriesByPrefix` where it sent `namedRegistries`. A pnpr server and its clients must be on matching versions, which is already the case for an experimental server.

### Patch Changes

- Fixed `pnpm update --global --latest` failing with a 404 error when a globally installed package was not added from the registry by name. Packages installed from a local path (`link:`/`file:`), a git repository, a tarball URL, an `npm:` alias, or a named registry now keep their spec during a global update instead of being looked up by name in the default registry. See pnpm/pnpm#12854.

- Updated dependencies:
  - @pnpm/bins.linker@1100.0.28
  - @pnpm/bins.remover@1100.0.21
  - @pnpm/bins.resolver@1100.0.15
  - @pnpm/cli.utils@1101.0.24
  - @pnpm/config.reader@1102.0.0
  - @pnpm/core-loggers@1100.3.3
  - @pnpm/deps.inspection.list@1101.0.0
  - @pnpm/error@1100.1.3
  - @pnpm/global.packages@1101.0.0
  - @pnpm/installing.deps-installer@1104.0.0
  - @pnpm/pkg-manifest.reader@1100.0.17
  - @pnpm/pkg-manifest.utils@1100.4.1
  - @pnpm/store.connection-manager@1101.0.0
  - @pnpm/types@1102.0.0

## 1100.1.1

### Patch Changes

- Global installs now switch over atomically. The command shims in the global bin directory point at a stable per-package link rather than at the directory a particular install produced, so `pnpm add -g` and `pnpm update -g` activate a new version by moving that one link instead of rewriting every shim. A command can no longer be missing from `PATH` while an install is in progress, and a failed install leaves the previous version in place.

- Updated dependencies:
  - @pnpm/bins.linker@1100.0.27
  - @pnpm/bins.remover@1100.0.20
  - @pnpm/cli.utils@1101.0.23
  - @pnpm/config.reader@1101.17.0
  - @pnpm/deps.inspection.list@1100.1.2
  - @pnpm/error@1100.1.2
  - @pnpm/global.packages@1100.0.18
  - @pnpm/installing.deps-installer@1103.2.0
  - @pnpm/pkg-manifest.reader@1100.0.16
  - @pnpm/pkg-manifest.utils@1100.4.0
  - @pnpm/store.connection-manager@1100.3.17

## 1100.1.0

### Minor Changes

- Added interactive group selection to `pnpm update --global --interactive`.

### Patch Changes

- Updated dependencies:
  - @pnpm/bins.linker@1100.0.26
  - @pnpm/config.reader@1101.16.1
  - @pnpm/deps.inspection.list@1100.1.1
  - @pnpm/global.packages@1100.0.17
  - @pnpm/installing.deps-installer@1103.1.1
  - @pnpm/store.connection-manager@1100.3.16

## 1100.0.43

### Patch Changes

- Updated dependencies:
  - @pnpm/bins.linker@1100.0.25
  - @pnpm/bins.remover@1100.0.19
  - @pnpm/bins.resolver@1100.0.14
  - @pnpm/cli.utils@1101.0.22
  - @pnpm/config.reader@1101.16.0
  - @pnpm/core-loggers@1100.3.2
  - @pnpm/deps.inspection.list@1100.1.0
  - @pnpm/error@1100.1.1
  - @pnpm/global.packages@1100.0.16
  - @pnpm/installing.deps-installer@1103.1.0
  - @pnpm/pkg-manifest.reader@1100.0.15
  - @pnpm/pkg-manifest.utils@1100.3.1
  - @pnpm/store.connection-manager@1100.3.15
  - @pnpm/types@1101.9.0

## 1100.0.42

### Patch Changes

- Renamed the `PinnedVersion` type to `RangeSpecStyle` and the `pinnedVersion` option fields to `rangeSpecStyle`: the value selects the operator a specifier is saved with, not a pin. `whichVersionIsPinned` is now `inferRangeSpecStyle`, and the new `rangeSpecGranularity` helper collapses the `exact` spelling to its `patch` range width. `@pnpm/types` keeps `PinnedVersion` as a deprecated alias of `RangeSpecStyle`. The rename itself changes no CLI behavior; the `=`-pin handling is described in its own changesets.

- The `save-prefix` setting now accepts `=`: newly added dependencies are saved with an explicit `=` operator (`=1.2.3`) instead of the setting being silently treated as the default `^`.

- Updated dependencies:
  - @pnpm/bins.linker@1100.0.24
  - @pnpm/bins.remover@1100.0.18
  - @pnpm/bins.resolver@1100.0.13
  - @pnpm/cli.utils@1101.0.21
  - @pnpm/config.reader@1101.15.1
  - @pnpm/core-loggers@1100.3.1
  - @pnpm/deps.inspection.list@1100.0.31
  - @pnpm/global.packages@1100.0.15
  - @pnpm/installing.deps-installer@1103.0.0
  - @pnpm/pkg-manifest.reader@1100.0.14
  - @pnpm/pkg-manifest.utils@1100.3.0
  - @pnpm/store.connection-manager@1100.3.14
  - @pnpm/types@1101.8.0

## 1100.0.41

### Patch Changes

- Updated dependencies:
  - @pnpm/bins.linker@1100.0.23
  - @pnpm/bins.remover@1100.0.17
  - @pnpm/bins.resolver@1100.0.12
  - @pnpm/cli.utils@1101.0.20
  - @pnpm/config.reader@1101.15.0
  - @pnpm/core-loggers@1100.3.0
  - @pnpm/deps.inspection.list@1100.0.30
  - @pnpm/global.packages@1100.0.14
  - @pnpm/installing.deps-installer@1102.3.7
  - @pnpm/pkg-manifest.reader@1100.0.13
  - @pnpm/store.connection-manager@1100.3.13
  - @pnpm/types@1101.7.0

## 1100.0.40

### Patch Changes

- Republished every package: the tarballs published by the v11.13.1 through v11.16.0 releases were missing most of their compiled files due to a packing bug [#13164](https://github.com/pnpm/pnpm/issues/13164).

- Updated dependencies:
  - @pnpm/bins.linker@1100.0.22
  - @pnpm/bins.remover@1100.0.16
  - @pnpm/bins.resolver@1100.0.11
  - @pnpm/cli.command@1100.0.2
  - @pnpm/cli.utils@1101.0.19
  - @pnpm/config.matcher@1100.0.2
  - @pnpm/config.reader@1101.14.0
  - @pnpm/core-loggers@1100.2.5
  - @pnpm/deps.inspection.list@1100.0.29
  - @pnpm/error@1100.1.0
  - @pnpm/global.packages@1100.0.13
  - @pnpm/installing.deps-installer@1102.3.6
  - @pnpm/pkg-manifest.reader@1100.0.12
  - @pnpm/store.connection-manager@1100.3.12
  - @pnpm/types@1101.6.0

## 1100.0.39

### Patch Changes

- Updated dependencies:
  - @pnpm/bins.linker@1100.0.21
  - @pnpm/bins.remover@1100.0.15
  - @pnpm/bins.resolver@1100.0.10
  - @pnpm/cli.utils@1101.0.18
  - @pnpm/config.reader@1101.13.0
  - @pnpm/core-loggers@1100.2.4
  - @pnpm/deps.inspection.list@1100.0.28
  - @pnpm/global.packages@1100.0.12
  - @pnpm/installing.deps-installer@1102.3.5
  - @pnpm/pkg-manifest.reader@1100.0.11
  - @pnpm/store.connection-manager@1100.3.11
  - @pnpm/types@1101.5.0

## 1100.0.38

### Patch Changes

- Updated dependencies:
  - @pnpm/bins.linker@1100.0.20
  - @pnpm/cli.utils@1101.0.17
  - @pnpm/config.reader@1101.12.3
  - @pnpm/deps.inspection.list@1100.0.27
  - @pnpm/installing.deps-installer@1102.3.4
  - @pnpm/store.connection-manager@1100.3.10

## 1100.0.37

### Patch Changes

- Updated dependencies:
  - @pnpm/installing.deps-installer@1102.3.3
  - @pnpm/store.connection-manager@1100.3.9

## 1100.0.36

### Patch Changes

- Updated dependencies:
  - @pnpm/bins.linker@1100.0.19
  - @pnpm/cli.utils@1101.0.16
  - @pnpm/config.reader@1101.12.2
  - @pnpm/deps.inspection.list@1100.0.26
  - @pnpm/installing.deps-installer@1102.3.2
  - @pnpm/store.connection-manager@1100.3.8

## 1100.0.35

### Patch Changes

- Updated dependencies:
  - @pnpm/bins.linker@1100.0.18
  - @pnpm/bins.remover@1100.0.14
  - @pnpm/cli.utils@1101.0.15
  - @pnpm/config.reader@1101.12.1
  - @pnpm/core-loggers@1100.2.3
  - @pnpm/deps.inspection.list@1100.0.25
  - @pnpm/installing.deps-installer@1102.3.1
  - @pnpm/store.connection-manager@1100.3.7

## 1100.0.34

### Patch Changes

- `pnpm add -g`, `pnpm update -g`, `pnpm setup`, and the self-updater no longer fail with `ERR_PNPM_MISSING_TIME` when `trustPolicy: no-downgrade` or `resolutionMode: time-based` is set in the global config [#12883](https://github.com/pnpm/pnpm/issues/12883). The decision to fetch full registry metadata now lives in one place, and the `no-downgrade` trust policy always requests full metadata (matching the self-updater), since the trust evidence it checks is missing from abbreviated metadata even on registries that include the `time` field.

- Updated dependencies:
  - @pnpm/bins.linker@1100.0.17
  - @pnpm/bins.remover@1100.0.13
  - @pnpm/bins.resolver@1100.0.9
  - @pnpm/cli.utils@1101.0.14
  - @pnpm/config.reader@1101.12.0
  - @pnpm/core-loggers@1100.2.2
  - @pnpm/deps.inspection.list@1100.0.24
  - @pnpm/global.packages@1100.0.11
  - @pnpm/installing.deps-installer@1102.3.0
  - @pnpm/pkg-manifest.reader@1100.0.10
  - @pnpm/store.connection-manager@1100.3.6
  - @pnpm/types@1101.4.0

## 1100.0.33

### Patch Changes

- @pnpm/installing.deps-installer@1102.2.2
- @pnpm/config.reader@1101.11.2
- @pnpm/store.connection-manager@1100.3.5
- @pnpm/deps.inspection.list@1100.0.23

## 1100.0.32

### Patch Changes

- 25bd5c3: Fixed standalone installer downgrades from pnpm v12 to v11.
- Updated dependencies [9318a11]
- Updated dependencies [5a4daec]
  - @pnpm/config.reader@1101.11.1
  - @pnpm/installing.deps-installer@1102.2.1
  - @pnpm/deps.inspection.list@1100.0.22
  - @pnpm/store.connection-manager@1100.3.4

## 1100.0.31

### Patch Changes

- be6505a: Hardened global package management:

  - On Windows, removing or updating a global package now also cleans up the `node.exe` flavor of a bin, so a stale `node.exe` no longer survives on `PATH` after uninstall, and a new global install no longer silently overwrites an existing `node.exe`.
  - `pnpm add -g pnpm@<version>` (and `@pnpm/exe@<version>`) is now rejected like the bare `pnpm` form, pointing to `pnpm self-update`.
  - Dependency aliases read from a global package's manifest are validated before being joined onto `node_modules` paths, preventing a tampered manifest from escaping the install directory.
  - Each global install group is created in its own freshly-made directory (no longer reusing a colliding or pre-existing path).
  - Removing or updating a global package no longer unlinks a bin that belongs to a different globally installed package.

- Updated dependencies [dcabb78]
- Updated dependencies [be6505a]
- Updated dependencies [3425e80]
- Updated dependencies [ce5d5a5]
- Updated dependencies [1dd12bd]
- Updated dependencies [806c3ec]
- Updated dependencies [c121235]
  - @pnpm/installing.deps-installer@1102.2.0
  - @pnpm/bins.remover@1100.0.12
  - @pnpm/global.packages@1100.0.10
  - @pnpm/config.reader@1101.11.0
  - @pnpm/store.connection-manager@1100.3.3
  - @pnpm/deps.inspection.list@1100.0.21

## 1100.0.30

### Patch Changes

- Updated dependencies [852d537]
  - @pnpm/installing.deps-installer@1102.1.1
  - @pnpm/error@1100.0.1
  - @pnpm/store.connection-manager@1100.3.2
  - @pnpm/bins.linker@1100.0.16
  - @pnpm/cli.utils@1101.0.13
  - @pnpm/config.reader@1101.10.1
  - @pnpm/deps.inspection.list@1100.0.20
  - @pnpm/pkg-manifest.reader@1100.0.9
  - @pnpm/bins.remover@1100.0.11
  - @pnpm/global.packages@1100.0.9

## 1100.0.29

### Patch Changes

- Updated dependencies [302a2f7]
- Updated dependencies [c112b61]
- Updated dependencies [3d1fd20]
- Updated dependencies [0474a9c]
- Updated dependencies [1c05876]
- Updated dependencies [3b54d79]
  - @pnpm/config.reader@1101.10.0
  - @pnpm/installing.deps-installer@1102.1.0
  - @pnpm/bins.linker@1100.0.15
  - @pnpm/store.connection-manager@1100.3.1
  - @pnpm/deps.inspection.list@1100.0.19

## 1100.0.28

### Patch Changes

- a31faa7: Updated dependency ranges. Notably:

  - `@pnpm/logger` peer dependency range moved to `^1100.0.0`.
  - `msgpackr` 1.11.8 → 2.0.4 (store index files remain byte-compatible in both directions).
  - `open` ^7.4.2 → ^11.0.0, `memoize` ^10 → ^11, `cli-truncate` ^5 → ^6, `pidtree` ^0.6 → ^1.
  - `@yarnpkg/core` 4.5.0 → 4.8.0, `@rushstack/worker-pool` 0.7.7 → 0.7.18, `@cyclonedx/cyclonedx-library` 10.0.0 → 10.1.0, `@pnpm/config.nerf-dart` ^1 → ^2, `@pnpm/log.group` 3.0.2 → 4.0.1, `@pnpm/util.lex-comparator` ^3 → ^4.

- Updated dependencies [f648e9b]
- Updated dependencies [61810aa]
- Updated dependencies [74a2dc9]
- Updated dependencies [c16eb0a]
- Updated dependencies [681b593]
- Updated dependencies [a31faa7]
- Updated dependencies [cd8348c]
  - @pnpm/installing.deps-installer@1102.0.0
  - @pnpm/config.reader@1101.9.0
  - @pnpm/store.connection-manager@1100.3.0
  - @pnpm/bins.linker@1100.0.14
  - @pnpm/types@1101.3.2
  - @pnpm/bins.remover@1100.0.10
  - @pnpm/cli.utils@1101.0.12
  - @pnpm/core-loggers@1100.2.1
  - @pnpm/deps.inspection.list@1100.0.18
  - @pnpm/global.packages@1100.0.8
  - @pnpm/bins.resolver@1100.0.8
  - @pnpm/pkg-manifest.reader@1100.0.8

## 1100.0.27

### Patch Changes

- Updated dependencies [bc9ed78]
- Updated dependencies [f11b4fc]
- Updated dependencies [615c669]
- Updated dependencies [84bb4b1]
  - @pnpm/config.reader@1101.8.0
  - @pnpm/core-loggers@1100.2.0
  - @pnpm/installing.deps-installer@1101.9.0
  - @pnpm/store.connection-manager@1100.2.8
  - @pnpm/bins.remover@1100.0.9
  - @pnpm/cli.utils@1101.0.11
  - @pnpm/bins.linker@1100.0.13
  - @pnpm/deps.inspection.list@1100.0.17

## 1100.0.26

### Patch Changes

- Updated dependencies [822beb5]
- Updated dependencies [3537020]
- Updated dependencies [894ea6a]
- Updated dependencies [6b5d91a]
- Updated dependencies [027196b]
- Updated dependencies [089484a]
- Updated dependencies [1017c36]
- Updated dependencies [230df57]
- Updated dependencies [bf1b731]
  - @pnpm/config.reader@1101.7.0
  - @pnpm/installing.deps-installer@1101.8.0
  - @pnpm/bins.resolver@1100.0.7
  - @pnpm/types@1101.3.1
  - @pnpm/store.connection-manager@1100.2.7
  - @pnpm/bins.linker@1100.0.12
  - @pnpm/bins.remover@1100.0.8
  - @pnpm/global.packages@1100.0.7
  - @pnpm/cli.utils@1101.0.10
  - @pnpm/core-loggers@1100.1.4
  - @pnpm/deps.inspection.list@1100.0.16
  - @pnpm/pkg-manifest.reader@1100.0.7

## 1100.0.25

### Patch Changes

- Updated dependencies [e7e99f0]
- Updated dependencies [5192edf]
- Updated dependencies [a017bf3]
- Updated dependencies [f429f93]
- Updated dependencies [a017bf3]
- Updated dependencies [a358ee0]
- Updated dependencies [6d17b66]
  - @pnpm/installing.deps-installer@1101.7.0
  - @pnpm/config.reader@1101.6.0
  - @pnpm/types@1101.3.0
  - @pnpm/store.connection-manager@1100.2.6
  - @pnpm/bins.linker@1100.0.11
  - @pnpm/bins.remover@1100.0.7
  - @pnpm/bins.resolver@1100.0.6
  - @pnpm/cli.utils@1101.0.9
  - @pnpm/core-loggers@1100.1.3
  - @pnpm/deps.inspection.list@1100.0.15
  - @pnpm/global.packages@1100.0.6
  - @pnpm/pkg-manifest.reader@1100.0.6

## 1100.0.24

### Patch Changes

- @pnpm/installing.deps-installer@1101.6.1

## 1100.0.23

### Patch Changes

- Updated dependencies [a39a83d]
- Updated dependencies [2cadfb5]
- Updated dependencies [a33c4bf]
  - @pnpm/config.reader@1101.5.0
  - @pnpm/installing.deps-installer@1101.6.0
  - @pnpm/store.connection-manager@1100.2.5

## 1100.0.22

### Patch Changes

- 440e155: Print the global update summary after all isolated global package groups are processed.
- Updated dependencies [a23956e]
- Updated dependencies [aa6149d]
- Updated dependencies [a456dc7]
- Updated dependencies [35d2355]
  - @pnpm/config.reader@1101.4.1
  - @pnpm/installing.deps-installer@1101.5.0
  - @pnpm/deps.inspection.list@1100.0.14
  - @pnpm/types@1101.2.0
  - @pnpm/store.connection-manager@1100.2.4
  - @pnpm/bins.linker@1100.0.10
  - @pnpm/cli.utils@1101.0.8
  - @pnpm/bins.remover@1100.0.6
  - @pnpm/bins.resolver@1100.0.5
  - @pnpm/core-loggers@1100.1.2
  - @pnpm/global.packages@1100.0.5
  - @pnpm/pkg-manifest.reader@1100.0.5

## 1100.0.21

### Patch Changes

- Updated dependencies [3b62f9d]
- Updated dependencies [212315d]
  - @pnpm/config.reader@1101.4.0
  - @pnpm/installing.deps-installer@1101.4.0
  - @pnpm/bins.linker@1100.0.9
  - @pnpm/cli.utils@1101.0.7
  - @pnpm/deps.inspection.list@1100.0.13
  - @pnpm/store.connection-manager@1100.2.3

## 1100.0.20

### Patch Changes

- @pnpm/store.connection-manager@1100.2.2
- @pnpm/installing.deps-installer@1101.3.1

## 1100.0.19

### Patch Changes

- a620557: Fix global add/update to handle minimumReleaseAge policy violations instead of surfacing an internal resolver guardrail error.
- Updated dependencies [3687b0e]
- Updated dependencies [ced20cb]
- Updated dependencies [d1b340f]
- Updated dependencies [b206a15]
- Updated dependencies [64afc92]
  - @pnpm/config.reader@1101.3.3
  - @pnpm/installing.deps-installer@1101.3.0
  - @pnpm/types@1101.1.1
  - @pnpm/store.connection-manager@1100.2.1
  - @pnpm/deps.inspection.list@1100.0.12
  - @pnpm/bins.linker@1100.0.8
  - @pnpm/cli.utils@1101.0.6
  - @pnpm/bins.remover@1100.0.5
  - @pnpm/bins.resolver@1100.0.4
  - @pnpm/core-loggers@1100.1.1
  - @pnpm/global.packages@1100.0.4
  - @pnpm/pkg-manifest.reader@1100.0.4

## 1100.0.18

### Patch Changes

- Updated dependencies [4195766]
- Updated dependencies [31538bf]
- Updated dependencies [020ac45]
- Updated dependencies [d3f8408]
- Updated dependencies [3ddde2b]
- Updated dependencies [4a79336]
- Updated dependencies [a62f959]
- Updated dependencies [ba2c884]
- Updated dependencies [2a9bd89]
- Updated dependencies [31538bf]
- Updated dependencies [8df408c]
  - @pnpm/installing.deps-installer@1101.2.0
  - @pnpm/store.connection-manager@1100.2.0
  - @pnpm/config.reader@1101.3.2
  - @pnpm/core-loggers@1100.1.0
  - @pnpm/deps.inspection.list@1100.0.11
  - @pnpm/bins.remover@1100.0.4
  - @pnpm/cli.utils@1101.0.5
  - @pnpm/bins.linker@1100.0.7

## 1100.0.17

### Patch Changes

- Updated dependencies [50b33c1]
- Updated dependencies [8c06d1a]
  - @pnpm/installing.deps-installer@1101.1.2
  - @pnpm/deps.inspection.list@1100.0.10
  - @pnpm/bins.linker@1100.0.6
  - @pnpm/cli.utils@1101.0.4
  - @pnpm/config.reader@1101.3.1
  - @pnpm/store.connection-manager@1100.1.2

## 1100.0.16

### Patch Changes

- Updated dependencies [b4f8f47]
  - @pnpm/bins.linker@1100.0.5
  - @pnpm/installing.deps-installer@1101.1.1
  - @pnpm/store.connection-manager@1100.1.1

## 1100.0.15

### Patch Changes

- 4b25a3d: `pnpm add -g` now installs each space-separated package into its own isolated directory by default. To bundle multiple packages into the same isolated install (so that they share dependencies and are removed together), pass them as a comma-separated list. For example:

  - `pnpm add -g foo bar` installs `foo` and `bar` as two independent globals — removing one does not affect the other.
  - `pnpm add -g foo,bar qar` bundles `foo` and `bar` into a single isolated install while `qar` is installed on its own.

  Related: [#11587](https://github.com/pnpm/pnpm/issues/11587).

- Updated dependencies [4b25a3d]
- Updated dependencies [b61e268]
- Updated dependencies [e1e29c1]
  - @pnpm/installing.deps-installer@1101.1.0
  - @pnpm/config.reader@1101.3.0
  - @pnpm/store.connection-manager@1100.1.0
  - @pnpm/types@1101.1.0
  - @pnpm/bins.linker@1100.0.4
  - @pnpm/bins.remover@1100.0.3
  - @pnpm/bins.resolver@1100.0.3
  - @pnpm/cli.utils@1101.0.3
  - @pnpm/core-loggers@1100.0.2
  - @pnpm/deps.inspection.list@1100.0.9
  - @pnpm/global.packages@1100.0.3
  - @pnpm/pkg-manifest.reader@1100.0.3

## 1100.0.14

### Patch Changes

- Updated dependencies [e9e876c]
  - @pnpm/config.reader@1101.2.2
  - @pnpm/installing.deps-installer@1101.0.9
  - @pnpm/store.connection-manager@1100.0.13
  - @pnpm/deps.inspection.list@1100.0.8

## 1100.0.13

### Patch Changes

- @pnpm/installing.deps-installer@1101.0.8
- @pnpm/deps.inspection.list@1100.0.7
- @pnpm/store.connection-manager@1100.0.12

## 1100.0.12

### Patch Changes

- Updated dependencies [12313f1]
- Updated dependencies [27425d7]
- Updated dependencies [707a879]
  - @pnpm/installing.deps-installer@1101.0.7
  - @pnpm/config.reader@1101.2.1
  - @pnpm/deps.inspection.list@1100.0.6
  - @pnpm/store.connection-manager@1100.0.11

## 1100.0.11

### Patch Changes

- Updated dependencies [8fdd9a9]
- Updated dependencies [5f34a8d]
- Updated dependencies [c969392]
- Updated dependencies [ab6c42d]
- Updated dependencies [817b1b4]
- Updated dependencies [c969392]
- Updated dependencies [2de318b]
  - @pnpm/config.reader@1101.2.0
  - @pnpm/installing.deps-installer@1101.0.6
  - @pnpm/store.connection-manager@1100.0.10

## 1100.0.10

### Patch Changes

- 72629fc: Fix `pnpm -g ls --json` and `pnpm -g ls --parseable` so they emit valid JSON and parseable output respectively, matching pnpm 10 behavior. Since the isolated global packages refactor in pnpm 11, the global list command had a custom path that always printed plain text and ignored `--json`/`--parseable`, which broke tools like `npm-check-updates` that parse the JSON output [#11440](https://github.com/pnpm/pnpm/issues/11440).

  `pnpm -g ls --depth=<n>` (with n > 0) now errors when more than one isolated global install would be involved, since each install has its own lockfile and merging their transitive trees would be incoherent. When the request can be narrowed to a single install group, the regular `list` flow is used and the full dependency tree is shown.

## 1100.0.9

### Patch Changes

- Updated dependencies [42a8f29]
  - @pnpm/config.reader@1101.1.4
  - @pnpm/store.connection-manager@1100.0.9
  - @pnpm/installing.deps-installer@1101.0.5

## 1100.0.8

### Patch Changes

- Updated dependencies [184ce26]
  - @pnpm/installing.deps-installer@1101.0.4
  - @pnpm/store.connection-manager@1100.0.8
  - @pnpm/pkg-manifest.reader@1100.0.2
  - @pnpm/config.matcher@1100.0.1
  - @pnpm/bins.resolver@1100.0.2
  - @pnpm/config.reader@1101.1.3
  - @pnpm/bins.remover@1100.0.2
  - @pnpm/bins.linker@1100.0.3
  - @pnpm/cli.command@1100.0.1
  - @pnpm/cli.utils@1101.0.2
  - @pnpm/global.packages@1100.0.2

## 1100.0.7

### Patch Changes

- 685a369: Fix `ENOENT` symlink failure when `pnpm add -g` triggers the approve-builds prompt. The global add flow used to forward an absolute `modulesDir` (`<installDir>/node_modules`) into the install run by `approve-builds`. The install layer treated `modulesDir` as a path relative to `lockfileDir` and joined it again, producing a doubled path on Windows because `path.join` does not collapse an embedded absolute path. The hoist step then tried to `mkdir` and symlink under `<installDir>\<installDir>\node_modules\.pnpm\node_modules\...` and failed with `ENOENT` [#11403](https://github.com/pnpm/pnpm/issues/11403).
  - @pnpm/cli.utils@1101.0.1
  - @pnpm/installing.deps-installer@1101.0.3
  - @pnpm/store.connection-manager@1100.0.7

## 1100.0.6

### Patch Changes

- Updated dependencies [0fbcf74]
  - @pnpm/config.reader@1101.1.2
  - @pnpm/store.connection-manager@1100.0.6
  - @pnpm/installing.deps-installer@1101.0.2

## 1100.0.5

### Patch Changes

- Updated dependencies [005eeb7]
  - @pnpm/installing.deps-installer@1101.0.1
  - @pnpm/store.connection-manager@1100.0.5

## 1100.0.4

### Patch Changes

- @pnpm/installing.deps-installer@1101.0.0
- @pnpm/store.connection-manager@1100.0.4
- @pnpm/config.reader@1101.1.1

## 1100.0.3

### Patch Changes

- Updated dependencies [7d25bc1]
- Updated dependencies [72c1e05]
- Updated dependencies [9e0833c]
  - @pnpm/config.reader@1101.1.0
  - @pnpm/installing.deps-installer@1100.0.3
  - @pnpm/store.connection-manager@1100.0.3

## 1100.0.2

### Patch Changes

- Updated dependencies [cee550a]
- Updated dependencies [4ab3d9b]
- Updated dependencies [9af708a]
- Updated dependencies [ea2a7fb]
- Updated dependencies [ff7733c]
  - @pnpm/cli.utils@1101.0.0
  - @pnpm/config.reader@1101.0.0
  - @pnpm/store.connection-manager@1100.0.2
  - @pnpm/bins.linker@1100.0.2
  - @pnpm/installing.deps-installer@1100.0.2

## 1100.0.1

### Patch Changes

- Updated dependencies [ff28085]
  - @pnpm/types@1101.0.0
  - @pnpm/bins.linker@1100.0.1
  - @pnpm/bins.remover@1100.0.1
  - @pnpm/bins.resolver@1100.0.1
  - @pnpm/cli.utils@1100.0.1
  - @pnpm/config.reader@1100.0.1
  - @pnpm/global.packages@1100.0.1
  - @pnpm/installing.deps-installer@1100.0.1
  - @pnpm/pkg-manifest.reader@1100.0.1
  - @pnpm/store.connection-manager@1100.0.1

## 1000.0.0

### Minor Changes

- fd511e4: Isolated global packages. Each globally installed package (or group of packages installed together) now gets its own isolated installation directory with its own `package.json`, `node_modules/`, and lockfile. This prevents global packages from interfering with each other through peer dependency conflicts, hoisting changes, or version resolution shifts.

  Key changes:

  - `pnpm add -g <pkg>` creates an isolated installation in `{pnpmHomeDir}/global/v11/{hash}/`
  - `pnpm remove -g <pkg>` removes the entire installation group containing the package
  - `pnpm update -g [pkg]` re-installs packages in new isolated directories
  - `pnpm list -g` scans isolated directories to show all installed global packages
  - `pnpm install -g` (no args) is no longer supported; use `pnpm add -g <pkg>` instead

### Patch Changes

- Updated dependencies [7730a7f]
- Updated dependencies [5f73b0f]
- Updated dependencies [449dacf]
- Updated dependencies [996284f]
- Updated dependencies [ae8b816]
- Updated dependencies [facdd71]
- Updated dependencies [9b0a460]
- Updated dependencies [3c72b6b]
- Updated dependencies [9f5c0e3]
- Updated dependencies [76718b3]
- Updated dependencies [a8f016c]
- Updated dependencies [cc1b8e3]
- Updated dependencies [90bd3c3]
- Updated dependencies [1cc61e8]
- Updated dependencies [606f53e]
- Updated dependencies [c7203b9]
- Updated dependencies [bb17724]
- Updated dependencies [05fb1ae]
- Updated dependencies [da2429d]
- Updated dependencies [1cc61e8]
- Updated dependencies [491a84f]
- Updated dependencies [9b801c8]
- Updated dependencies [13855ac]
- Updated dependencies [62f760e]
- Updated dependencies [f0ae1b9]
- Updated dependencies [9fc552d]
- Updated dependencies [394d88c]
- Updated dependencies [6e9cad3]
- Updated dependencies [672e58c]
- Updated dependencies [312226c]
- Updated dependencies [cb228c9]
- Updated dependencies [2fc9139]
- Updated dependencies [7fab2a2]
- Updated dependencies [cb367b9]
- Updated dependencies [543c7e4]
- Updated dependencies [075aa99]
- Updated dependencies [fd511e4]
- Updated dependencies [ae43ac7]
- Updated dependencies [d7b8be4]
- Updated dependencies [ccec8e7]
- Updated dependencies [ba065f6]
- Updated dependencies [4158906]
- Updated dependencies [ac944ef]
- Updated dependencies [7d2fd48]
- Updated dependencies [cc7c0d2]
- Updated dependencies [efb48dc]
- Updated dependencies [d5d4eed]
- Updated dependencies [095f659]
- Updated dependencies [96704a1]
- Updated dependencies [cb367b9]
- Updated dependencies [7b1c189]
- Updated dependencies [51b04c3]
- Updated dependencies [69ebe38]
- Updated dependencies [d01b81f]
- Updated dependencies [3ed41f4]
- Updated dependencies [8ffb1a7]
- Updated dependencies [05fb1ae]
- Updated dependencies [f40177f]
- Updated dependencies [05158d2]
- Updated dependencies [71de2b3]
- Updated dependencies [10bc391]
- Updated dependencies [38b8e35]
- Updated dependencies [831f574]
- Updated dependencies [2df8b71]
- Updated dependencies [ed1a7fe]
- Updated dependencies [15549a9]
- Updated dependencies [cc7c0d2]
- Updated dependencies [5bf7768]
- Updated dependencies [ae43ac7]
- Updated dependencies [a5fdbf9]
- Updated dependencies [9d3f00b]
- Updated dependencies [efb48dc]
- Updated dependencies [9587dac]
- Updated dependencies [09a999a]
- Updated dependencies [559f903]
- Updated dependencies [41dc031]
- Updated dependencies [3574905]
- Updated dependencies [4362c06]
  - @pnpm/config.reader@1005.0.0
  - @pnpm/installing.deps-installer@1013.0.0
  - @pnpm/bins.resolver@1001.0.0
  - @pnpm/bins.linker@1001.0.0
  - @pnpm/types@1001.0.0
  - @pnpm/cli.utils@1002.0.0
  - @pnpm/pkg-manifest.reader@1001.0.0
  - @pnpm/store.connection-manager@1003.0.0
  - @pnpm/bins.remover@1001.0.0
  - @pnpm/config.matcher@1001.0.0
  - @pnpm/error@1001.0.0
  - @pnpm/cli.command@1001.0.0
  - @pnpm/global.packages@1000.0.0
