Complete the test harness requirements of pnpm/tasks#141 (including the
deferred cross-version switch matrix from pnpm/tasks#144 and
injected-freshness convergence/differential checks from pnpm/tasks#148):
1. Equivalence and convergence harnesses:
- Extract shared `TreeView`, `workspace_lockfiles`, and normalized
`workspace_modules_manifests` helpers into
`pnpm/crates/cli/tests/suite/_utils/mod.rs`.
- Include `.modules.yaml` in `repeat_install_oracle` snapshots and
assert convergence after every scenario (second install snapshot
byte-identity, `--frozen-lockfile` acceptance, `dedupe --check`,
and quiet repeat `exec` under `verifyDepsBeforeRun=install`).
- Add `check_repeat` (second install byte-identity) and
`check_run_gate` (`verify-deps-before-run=error` exec gate) to
`peer_convergence::harness::check_row`.
- Add repeat-install lockfile byte-identity,
`verify-deps-before-run=error` run-gate checks, `dedupe --check`,
and `PNPM_V11_BUNDLE` differential lockfile comparison to
`injected_freshness_matrix::check`.
2. v11/v12 differential suite (`pnpm_compatibility.rs`):
- Honor `PNPM_V11_BUNDLE` in `CommandTempCwd::init()` so integration
tests no longer require a system-installed pnpm v11 on `PATH`.
- Un-ignore `store_usable_by_pnpm_offline` and
`same_global_virtual_store_layout_with_approved_postinstall`.
- Compare wanted lockfiles, current lockfiles, `.modules.yaml`,
`node_modules` resolution tree, cross-CLI frozen handoffs, and
registry request logs across shared/dedicated workspace lockfiles,
isolated/hoisted `nodeLinker`, `injectWorkspacePackages`,
`autoInstallPeers`, `dedupePeerDependents`, and filtered installs.
3. Upward cross-version switch harness and nightly matrix:
- Add `switches_up_to_a_newer_pnpm_across_setting_sources_and_unknown_options`
and `v11_switches_up_to_head_binary_from_local_registry` in
`version.rs` using a local `pnpr` registry populated with
synthetic `@pnpm/exe` platform packages.
- Add `.github/workflows/version-switch-matrix.yml` to run the
outer-pnpm x pin x setting-source x platform matrix nightly and on
`workflow_dispatch`.
- Wire `pnpm_compatibility`, `injected_freshness_matrix`, and upward
version-switch tests into the `convergence` job of
`.github/workflows/pacquet-ci.yml`.
Closespnpm/tasks#141