Repository navigation
Adopt pm-cli 2026.7.28 and replace hand-rolled api doubles with the real SDK test harness - #49
Conversation
…eal SDK test harness
|
Caution The consumer version of Gemini Code Assist on GitHub has been sunset. All code review activity has officially ceased. |
WalkthroughThe extension is bumped to version 2026.7.28, requires pm-cli 2026.7.28, and migrates atomic and activation tests from manual API doubles to the real SDK test harness. ChangesExtension release and harness migration
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 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 GuideUpdates the extension to pm-cli 2026.7.28 and migrates activation and importer tests from hand-rolled ExtensionApi mocks to the real pm-cli SDK test harness, ensuring registration and importer behavior are validated against the actual host engine. Sequence diagram for activation and importer tests using the pm-cli SDK harnesssequenceDiagram
actor Test
participant PmCliHarness
participant Extension
Test->>PmCliHarness: createExtensionTestHarness
PmCliHarness-->>Test: harness (activation, runImporter)
rect rgb(235, 245, 255)
Test->>PmCliHarness: activation
PmCliHarness->>Extension: activate
Extension-->>PmCliHarness: activation.failed
PmCliHarness-->>Test: activation.failed (assert empty)
end
rect rgb(235, 255, 235)
Test->>PmCliHarness: runImporter
PmCliHarness-->>Test: importer result (assert behaviour)
end
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
Greptile SummaryAdopts pm-cli 2026.7.28 and migrates activation/importer tests onto the real SDK harness.
Confidence Score: 5/5This PR appears safe to merge; the prior changelog gate issue is addressed and no remaining blocking failures were identified in scope. CHANGELOG 2026.7.28 now lists the closed pm-linear-itg9 entry required for the release; no other blocking failure remains from the prior review scope.
|
| Filename | Overview |
|---|---|
| test/smoke.test.ts | Activation capabilities test now uses createExtensionTestHarness and asserts commands, fields, importers, exporter, preflight, and flags. |
| test/atomic.test.ts | dry-run importer test uses harness.runImporter instead of a capture double; behavior assertions preserved. |
| CHANGELOG.md | 2026.7.28 section now includes pm-linear-itg9 along with related closed items for this release window. |
| package.json | Version and pm-cli peer/dev constraints bumped to 2026.7.28. |
| index.ts | Module version constant aligned to 2026.7.28. |
Reviews (2): Last reviewed commit: "chore(changelog): regenerate after closi..." | Re-trigger Greptile
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@CHANGELOG.md`:
- Around line 3-7: Update the 2026.7.28 release entry in CHANGELOG.md by adding
a bullet documenting the pm-cli upgrade and migration of tests to the real SDK
harness, alongside the existing Linear GraphQL and SDK handler types note.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: 473a0ed1-51b2-4def-8ff9-979318dc0a49
⛔ Files ignored due to path filters (1)
package-lock.jsonis excluded by!**/package-lock.json
📒 Files selected for processing (8)
.agents/pm/chores/pm-linear-itg9.toon.agents/pm/history/pm-linear-itg9.jsonlCHANGELOG.mdindex.tsmanifest.jsonpackage.jsontest/atomic.test.tstest/smoke.test.ts
The changelog was generated before the pm item for this change was closed, so the committed CHANGELOG.md was missing the item's own entry and changelog:check failed in CI while passing locally against the stale file. Where .gitattributes also changed, that is the 2026.7.28 prepare hook widening the merge fence from .agents/pm/schema/*.json to .agents/pm/**/*.json so tracked non-item JSON no longer line-conflicts between agents on different branches.
|
@coderabbitai @greptileai @sourcery-ai Thanks — all four reviews upvoted, and this comment is the context each of you flagged as thin. What this PR actually is. pm-cli 2026.7.28 (published 2026-07-28) closes fourteen issues this fleet filed upstream. The ones that change behaviour for an extension package:
On the On the changelog commit in this PR: the first push generated Verification: Something worth knowing for future reviews of this fleet: 2026.7.28 makes the SDK loader hard-fail when an extension declares a host-owned global flag ( |
|
Tip For best results, initiate chat on the files or code changes.
I’ll treat the expanded JSON merge fence as generated/required for this 🐇🔎 ✏️ Learnings added
|
|
Thanks — that fills in all the gaps cleanly. Captured three rules for future reviews of this fleet:
The upstream bug context (GH-764 quarantine, GH-772 silent sibling drop, GH-776 output_format corruption) also explains why this upgrade is correctness-critical rather than routine. Nothing further to block on — this looks good. Tip: You can customize Greptile's behavior for this repo with |
Bumps pm-cli to 2026.7.28 (peer
>=2026.7.28, dev^2026.7.28) across package.json, manifest.json, and the module version constant, and migrates the activation tests off hand-rolledapidoubles.Both
test/smoke.test.tsandtest/atomic.test.tsconstructed a fakeapiobject and calledactivate(api)directly, which asserts the extension against itself: the real pm host can reject a registration outright and the suite stays green while the shipped extension is broken. pm-cli 2026.7.28 makes the real harness hard-fail on host-owned flag collisions, so migrating tocreateExtensionTestHarnessconverts a silent production break into a red test.smoke.test.ts: the capabilities test now activates through pm's real engine viacreateExtensionTestHarness, assertingactivation.failedis empty plus thelinear sync/linear validatecommand contracts, thelinear/linear-syncimporters, thelinearexporter, the preflight override, the schema item fields, and the importer/exporter flags.atomic.test.ts: thecaptureImporterhand-rolled double is replaced withharness.runImporterso the linear-sync importer is exercised through real dispatch.All existing behavioural assertions are preserved (migration, not rewrite).
Closes pm-linear-itg9. See https://github.com/unbraind/pm-linear/blob/main/.agents/pm/chores/pm-linear-itg9.toon
Summary by Sourcery
Adopt pm-cli 2026.7.28 and migrate extension activation/importer tests to the official pm-cli SDK test harness for real host-engine validation.
Build:
Documentation:
anyvia real Linear GraphQL and SDK handler types.Tests:
apidoubles in smoke tests withcreateExtensionTestHarness, asserting clean activation and the expected commands, schema fields, importers, exporter, preflight override, and flags.linear-syncimporter throughcreateExtensionTestHarness.runImporterinstead of a custom capture helper so dry-run behavior is validated against the real dispatch engine.Chores:
.agents/pm/for tracking this change.Summary by cubic
Upgrades to
@unbrained/pm-cli2026.7.28 and replaces hand-rolled API doubles with the real SDK test harness to validate activation and importer dispatch end to end. Regenerates the 2026.7.28 changelog after closing pm-linear-itg9 and widens.gitattributesJSON merge fence to fix CI and reduce merge conflicts.Dependencies
@unbrained/pm-clito peer>=2026.7.28and dev^2026.7.28.2026.7.28inpackage.json,manifest.json, and the module constant.Refactors
createExtensionTestHarness:smoke.test.ts: activate via the real engine; assert clean activation; verifylinear sync/linear validatecommand contracts,linear/linear-syncimporters,linearexporter, preflight override, schema fields, and importer/exporter flags.atomic.test.ts: replace the importer double withharness.runImporterto exerciselinear-syncthrough real dispatch; confirm--dry-runnever writes.Written for commit 9d40ee3. Summary will update on new commits.