# pnpm v12.1.0 — pnpm 12.1 - Product: pnpm (https://whatsnew.fyi/product/pnpm) - Vendor: pnpm - Date: 2026-08-29 - Version: v12.1.0 - Original notes: https://github.com/pnpm/pnpm/releases/tag/v12.1.0 - Permalink: https://whatsnew.fyi/product/pnpm/releases/v12.1.0 What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **changed** — pnpm login and pnpm adduser now record the granted token in the global config.yaml under the _auth setting, with --scope's scope routed to that registry under registries - **changed** — pnpm logout removes tokens from the global config.yaml and still removes them from auth.ini written by earlier versions - **changed** — A scope set in a project's pnpm-workspace.yaml is now ignored with a warning - **changed** — Verified remote build artifacts are persisted in the shared store with their signed origin metadata and reverified against current trust, policy, platform, and source before reuse - **added** — Persist completed recursive tasks so --resume-from skips exactly the work that passed during a matching interrupted or failed pnpm -r run or pnpm -r exec invocation - **changed** — Workspace install, rebuild, pack, publish, stage, and lifecycle work now starts as soon as its dependencies finish instead of waiting for an unrelated topological group - **added** — Added per-task concurrency limits to workspace task orchestration via tasks..concurrency in pnpm-workspace.yaml - **changed** — sideEffectsCache now declares the whole of how a package's build output is reused with read, write, and remote tier settings - **changed** — sideEffectsCacheReadonly: true now blocks writing to the cache - **changed** — Setting sideEffectsCacheReadonly alongside sideEffectsCache: false gives a read-only view rather than switching the cache off - **added** — A cache can now be declared write-only to populate one the run does not read - **changed** — pnpm -r run and pnpm -r exec now schedule per task instead of in topological chunks using a new tasks section in pnpm-workspace.yaml - **added** — A dependency cycle among the tasks of a run is now an error naming the participating tasks instead of silently running in an arbitrary order - **added** — Setting ignoreWorkspaceCycles: true downgrades task cycle errors to warnings - **changed** — --resume-from now skips exactly the transitive dependencies of the anchor package - **changed** — Under --no-bail, tasks whose dependencies failed are reported as skipped instead of failed - **added** — pnpm -r run --dry-run