Certify pm CLI 2026.9.23 and adopt the guarded pm-ops merge-driver launcher - #158
Conversation
…uncher - Pins pm-ops 2026.9.18 -> 2026.9.23, pm-changelog 2026.9.18 -> 2026.9.23 exactly (package.json and package-lock.json). - scripts/prepare-merge-driver.ts is now the launcher template pm-ops ships, copied unchanged: it imports nothing from pm-ops, so `npm ci --omit=dev` in a clone skips with one notice instead of failing, while a stale or broken pm-ops still fails. A test keeps it byte-identical to the pinned template and proves it registers the drivers. pm items: pm-web-75mz. Companion epic pm-cli-website-5s6z. release:check exits 0.
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configurationConfiguration used: Repository: unbraind/pm-web/.coderabbit.yaml Review profile: CHILL Plan: Advanced Run ID: Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Reviewer's GuideThis PR upgrades pm-ops and pm-changelog to 2026.9.23, adopts pm-ops’s guarded merge-driver launcher so omit-dev installs skip only when pm-ops is absent while real configuration or runtime failures remain fatal, and verifies the exact template plus install behavior in isolated integration fixtures. Sequence diagram for the guarded merge-driver prepare hooksequenceDiagram
participant NPM
participant Launcher as prepare-merge-driver.ts
participant Resolver as Node module resolver
participant PMOps as pm-ops prepare installer
participant Git as Git config
NPM->>Launcher: run prepare hook
Launcher->>Resolver: resolve pm-ops/merge-driver/prepare
alt pm-ops absent
Resolver-->>Launcher: MODULE_NOT_FOUND
Launcher->>Resolver: probe pm-ops/package.json
Resolver-->>Launcher: MODULE_NOT_FOUND
Launcher-->>NPM: print notice and exit 0
else pm-ops installed
Resolver-->>Launcher: installer path
Launcher->>PMOps: spawn installer
PMOps->>Git: pm merge install
Git-->>PMOps: drivers registered
PMOps-->>Launcher: exit status
Launcher-->>NPM: propagate status
end
Flow diagram for merge-driver install failure handlingflowchart TD
A[Run prepare-merge-driver.ts] --> B{Resolve pm-ops installer}
B -->|Package absent| C[Print skip notice]
C --> D[Exit successfully]
B -->|Package installed| E{Installer resolves and runs}
E -->|Success| F[Merge drivers registered]
E -->|Stale package or installer failure| G[Fail npm install]
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
|
Review round complete before merge. All 0 inline bot threads were answered in-thread, and each was either fixed in this PR or tracked on the companion hub (launcher template: pm-cli-website-dqg7; release-workflow verifier: pm-cli-website-mxrp). Greptile is not installed on this repository. Sourcery skipped this head (its weekly diff allowance), so its earlier findings on this PR are the last it gave, and all were answered. CodeRabbit posted only its free-plan notice: this repository has fewer than 10 stars, so it doesn't review automatically, and its one-review-per-hour allowance is kept for PRs that need it. Every required check is green on 789eace. |
|
Correction after merge: this PR moved pm-ops and pm-changelog to 2026.9.23, but pm-web's own |
The 2026-09-25 fleet wave (#158) moved pm-ops and pm-changelog to 2026.9.23 but left @unbrained/pm-cli at 2026.9.21: pm-web declares it under dependencies because it runs pm at request time, and the wave script only rewrote devDependencies. This moves the runtime dependency, the lockfile and manifest.json pm_min_version (tests require it to equal the pinned SDK) to 2026.9.23. release:check exits 0 (408/408 tests). A private copy of all 31 hosted workspaces reads identically under 2026.9.21 and 2026.9.23. pm item: pm-web-gbuc (companion epic pm-cli-website-5s6z). Co-authored-by: SteveBot <1153461+unbraind@users.noreply.github.com>
Summary
Fleet wave of 2026-09-25 (companion epic
pm-cli-website-5s6z), applied by the fleet's deterministic wave script and verified by this repository's own gates.pm-cli-website-xy19):scripts/prepare-merge-driver.tsis now the template pm-ops 2026.9.23 ships, copied unchanged (it replaces the static-import launcher). It imports nothing from pm-ops, so a production install of a clone (npm ci --omit=dev) skips with one notice instead of dying onERR_MODULE_NOT_FOUND, while a stale or broken pm-ops still fails the install.prepare-merge-driver.test.tscompares the file byte-for-byte withnode_modules/pm-ops/templates/prepare-merge-driver.ts(pm-ops covers every branch of that template with real fixtures) and runs it to prove the drivers register.pm items
Verification
git config --get-regexp '^merge\.pm'afternpm cipm health ... --require-merge-drivers), executed from ci.ymlnpm run release:checkverify-release-publish-attestation: every publish invocation is attested.)changelog:fullthenchangelog:checkSummary by Sourcery
Certify the 2026.9.23 pm CLI dependencies and harden merge-driver installation across development and production clones.
Bug Fixes:
Enhancements:
Build:
Documentation:
Tests:
Chores:
Summary by cubic
Certs pm CLI 2026.9.23 and replaces the merge-driver install hook with the guarded launcher pm-ops ships.
pm-opsandpm-changelogare pinned from 2026.9.18 to 2026.9.23 inpackage.jsonandpackage-lock.json.scripts/prepare-merge-driver.tscopies the pm-ops launcher template unchanged: it imports nothing from pm-ops, so a production install of a clone (npm ci --omit=dev) skips with one notice instead of dying onERR_MODULE_NOT_FOUND, while a stale or broken pm-ops still fails the install.test/prepare-merge-driver.test.tskeeps the launcher byte-identical to the pinned template and covers full, omit-dev, and stalepm-opscheckouts.Written for commit 789eace. Summary will update on new commits.