chore: adopt pm-cli 2026.7.27 dependency ranges - #39
Conversation
Bump @unbrained/pm-cli peerDependencies from >=2026.7.26 to >=2026.7.27
and devDependencies from ^2026.7.26 to ^2026.7.27.
Adapt the output_format service override to the 2026.7.27 render
contract: a service override's bare return value is now rendered, so the
previous no-op `return ctx.payload` rendered the whole command context
instead of just the result. The no-op path now defers with
`{ handled: false }` (the canonical ServiceOverrideDecision passthrough);
the __pmGraphRawOutput marker path is unchanged so --format exports still
emit raw output.
All gates pass: build, typecheck, check, 95 tests, changelog:full,
changelog:check. Activation proof on the 2026.7.27 CLI confirms the
extension is active: `pm pm-graph ping --help` exits 0 with real usage
(not unknown_command); `pm extension --explore --json` shows pm-graph
runtime_active true, activation_status ok, version 2026.7.27, and all 15
commands registered; `pm pm-graph status`, `pm pm-graph ping`, and
`pm pm-graph analyze --json` all exit 0. Flag-collision audit clean: no
host-owned global flags declared in any extension flags array.
|
Caution The consumer version of Gemini Code Assist on GitHub has been sunset. All code review activity has officially ceased. |
|
Warning Review limit reached
Next review available in: 28 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (4)
WalkthroughThe PR adopts Changespm-cli adoption
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
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 guide (collapsed on small PRs)Reviewer's GuideUpdates this extension to consume @unbrained/pm-cli 2026.7.27, adjusts the output_format service override to comply with the new rendering contract, and bumps the extension’s own reported/peer/dev CLI versions plus associated metadata and chore tracking files. Sequence diagram for updated output_format service override behaviorsequenceDiagram
participant PmCliHost
participant OutputFormatOverride
participant Stdout
PmCliHost->>OutputFormatOverride: output_format(ctx)
alt pm_graph_export_with_raw_marker
OutputFormatOverride-->>PmCliHost: raw_string
PmCliHost-->>Stdout: raw_string
else other_commands_or_no_marker
OutputFormatOverride-->>PmCliHost: handled_false
PmCliHost-->>Stdout: default_rendering_of_result
end
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
Greptile SummaryAdopt
Confidence Score: 5/5The PR appears safe to merge with no blocking failures remaining. No blocking failure remains.
What T-Rex did
|
| Filename | Overview |
|---|---|
| src/index.ts | Updates the output-format service override to use the 2026.7.27 explicit decline contract. |
| test/export-and-contract.test.ts | Adds real SDK-harness coverage for both decline and raw-output service-override behavior. |
| package.json | Raises the pm-cli development and peer dependency requirements to 2026.7.27. |
| package-lock.json | Locks pm-cli 2026.7.27 and synchronizes the root dependency metadata. |
| dist/index.js | Regenerates the distributed implementation with the service-contract and version updates. |
Reviews (2): Last reviewed commit: "test: cover the output_format decline co..." | Re-trigger Greptile
…cases The existing export-and-contract test asserted only that registerService was called for output_format, using a hand-rolled api double behind an `as any` cast. That can never observe the override's RETURN value — which is exactly what regressed under pm-cli 2026.7.27, where an override's bare return IS what the host renders, so the previous `return ctx.payload` decline path made every command print the whole command context instead of its own result. Adds two cases driven through pm's real service runner via createExtensionTestHarness + runRegisteredServiceOverrideForTest: - an unrelated command's payload is declined (handled:false, payload returned untouched, no extension_service_override_* warnings); - a pm-graph export raw-output payload is still claimed verbatim. The registration-only sibling test stays in place — it still guards activate() wiring. Suite: 97 pass / 0 fail. Related upstream report: unbraind/pm-cli#776. pm items: - pm-graph-vgj0 (Task) — real harness coverage for the decline contract
Bot feedback triage — all four read, voted, and answered@greptile-apps 👍 — 5/5 with no actionable defects, and the summary correctly identified the @coderabbitai 👍 — real review this time (not rate-limited), 5/5 pre-merge checks, no actionable
@sourcery-ai 👍 — accurate walkthrough of the override change. @gemini-code-assist 👎 — consumer Gemini Code Assist is sunset; all review activity has ceased. New commit since your reviews:
|
|
Caution The consumer version of Gemini Code Assist on GitHub has been sunset. All code review activity has officially ceased. |
🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
echo '--- follow-up commit summary and diff ---'
git show --stat --oneline --decorate --no-renames 3350b14
git show --format=fuller --no-ext-diff --unified=80 --no-renames 3350b14 -- '*.ts' 'package.json'
echo '--- TypeScript file outlines ---'
git diff-tree --no-commit-id --name-only -r 3350b14 -- '*.ts' | while IFS= read -r file; do
echo "### $file"
ast-grep outline "$file" --items all --view expanded || true
done
echo '--- output_format registration and test-runner usages ---'
rg -n -C 6 --type ts \
'(registerService\s*\(|output_format|createExtensionTestHarness\s*\(|runRegisteredServiceOverrideForTest\s*\()' \
.Length of output: 26143
The two harness-based tests close the critical gap in the prior registration-only assertion: they exercise the actual registered I did not independently execute the suite because this review environment cannot run repository code; the review is based on static inspection of the new commit. 🐇✅ ✏️ Learnings added
✅ Action performedReview finished.
|
Summary
Adopt
@unbrained/pm-cli2026.7.27 and adapt to itsoutput_formatservice-override render contract.Dependency ranges
peerDependencies>=2026.7.26>=2026.7.27devDependencies^2026.7.26^2026.7.27Package own version was already
2026.7.27; no own-version change needed.Required source adaptation:
output_formatservice override2026.7.27 changed the
output_formatservice-override contract so that anoverride's bare return value is rendered (it no longer falls through to
default rendering when the override echoes the inbound payload). The previous
no-op
return ctx.payloadtherefore rendered the whole command context(
command/global/pm_root/format/options/result) instead ofjust the handler result — confirmed as a regression versus 2026.7.26, where
pm pm-graph exportprintedok: true / graph ....Fix: the no-op passthrough now defers with
{ handled: false }(the canonicalServiceOverrideDecisionpassthrough). The__pmGraphRawOutputmarker path isunchanged, so
pm pm-graph export --format <fmt>still emits the raw stringstraight to stdout.
git diffis a one-line behavioral change plus an updatedcomment.
Flag-collision audit
grep -rnE -- '--(json|quiet|path|lean|id-only|author|no-changed-fields|full-changed-fields|pm-path)\b' src/*All
--jsonhits are help-payload flag descriptions, manual arg re-parsinghelpers, or
--jsontokens passed to programmaticpm list-allshell-outs.No
registerCommanddeclares a top-levelflags:array (the two commandsthat take positionals —
pm-graph query,pm-graph neighbors— declarearguments:only). No host-owned global flag is declared in any flags array, soregistration does not abort.
Gates (all pass)
npm run buildnpm run typechecknpm run checknpm testnpm run changelog:fullnpm run changelog:checkActivation proof (2026.7.27 CLI, throwaway workspace)
Two+ own commands exercised (no external credentials):
pm pm-graph status→ok: true,neo4jConfigured: false,version: 2026.7.27(exit 0)pm pm-graph ping→ok: true,source: pm-graph,version: 2026.7.27(exit 0)pm pm-graph analyze --json→{ ok: true, itemCount: 0, cycleCount: 0, ... }(exit 0)pm item
Adoption chore tracked and closed in this repo's tracker; link resolves after merge:
Summary by Sourcery
Adopt pm-cli 2026.7.27 and update the extension to align with the new output_format service override behavior while keeping existing pm-graph command output semantics.
Bug Fixes:
Enhancements:
Chores:
Summary by cubic
Adopt
@unbrained/pm-cli2026.7.27 and align theoutput_formatservice override with the new render contract to keep output correct and preserve raw export behavior. Add tests to lock the decline/claim behavior.Dependencies
peerDependenciesto>=2026.7.27anddevDependenciesto^2026.7.27.Bug Fixes
output_formatno-op to return{ handled: false }, fixing full-context prints.__pmGraphRawOutputpath sopm-graph export --formatstill writes raw text to stdout.createExtensionTestHarness,runRegisteredServiceOverrideForTest) for decline/claim behavior; suite now 97 passing.Written for commit 3350b14. Summary will update on new commits.