Certify pm CLI 2026.9.21 and adopt the canonical pm-ops lint, duplication and merge-driver gates - #89
Conversation
…, fix all lint errors and clone pairs - Pin @unbrained/pm-cli 2026.9.21, pm-changelog 2026.9.18, pm-ops 2026.9.18 - Replace vendored merge-driver with thin pm-ops/merge-driver launcher - Add scripts/lint.ts and scripts/duplication-gate.ts as thin pm-ops launchers - Fix 33 ESLint errors: merge duplicate import, replace all explicit any with precise types (SlackContextBlock/SlackHeaderBlock/SlackSectionBlock, ExtensionApi, CommandError via expectCommandError helper) - Fix 2 typecheck errors: SlackMrkdwn[] footer elements, SlackPostPayload param - Remove all 7 jscpd clone pairs (0.62% to 0%): extract shared test helpers (expectCommandError, yesterdayTodayFixture, bucketingItems, teamItems, trendFixture, setupBothShims) and reuse completeListEnvelope fixture - npm run release:check exit 0 (199 tests, coverage above thresholds) - pm health --strict-exit exit 0
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Advanced Run ID: ✨ 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 |
|
@coderabbitai full review |
|
@greptileai review |
|
Reviewer's GuideThis PR upgrades pm-slack-standup to pm CLI 2026.9.21, delegates lint, duplication, and merge-driver enforcement to canonical pm-ops launchers, and refactors production and test code to meet the stricter typed quality gates while preserving the existing 199-test suite; coverage remains above current floors but below the separately tracked 100% mandate. Flow diagram for shared CLI and exporter flag definitionsflowchart LR
Window["sharedWindowFlags()"] --> Standup["pm standup command"]
Window --> Exporter["standup exporter"]
Labels["sectionLabelsFlag()"] --> Standup
Labels --> Exporter
Presentation["sharedPresentationFlags()"] --> Standup
Presentation --> Exporter
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
|
The lint refactor narrowed the exported SlackBlock to a closed four-member union and Poster to a SlackPostPayload parameter. Both break consumer code built on the 2026.9.19 declarations (an actions block, a poster typed on a Record payload). SlackBlock is the open interface again, the emitted block shapes extend it, and Poster takes Record<string, unknown>; SlackPostPayload extends Record so it stays assignable. A compile-time test pins both contracts and fails with three type errors against the narrowed version (Greptile review on #89).
|
@greptileai review |
What
pm-slack-standup moves to pm CLI 2026.9.21 and adopts the canonical pm-ops gates:
scripts/lint.tswrapspm-ops/eslint.npm run lintruns in CI and inrelease:check. All 34 existing errors are fixed, most of themanyin tests, which now use SDK types.scripts/duplication-gate.tswrapspm-ops/duplicationat a 0% threshold. The 0.62% of clones were removed by extracting shared test fixtures (test/test-helpers.ts, list-envelope reuse in the canonical-reader acceptance script).scripts/prepare-merge-driver.tswrapspm-ops/merge-driver, replacing the vendored.mjs.Evidence
npm run release:check: exit 0. I reran it independently after the agent's run.pm health --strict-exit: exit 0.Coverage is still below the fleet's 100% mandate: 90.42% statements, 88.38% branches, 91.79% functions, against the existing 83/87/87 floors. That gap predates this PR and is tracked in
pm-slack-standup-7t31and the hub's coverage epic.pm items
pm-slack-standup-add0: certify 2026.9.21 and adopt the canonical gates.pm-slack-standup-7t31: exact 100/100/100/100 coverage and strict gates.Summary by Sourcery
Certify pm-slack-standup for pm CLI 2026.9.21 and enforce the canonical quality gates without reducing existing test coverage.
New Features:
Bug Fixes:
Enhancements:
Build:
CI:
Tests:
Chores:
Summary by cubic
Certifies the standup extension against pm CLI 2026.9.21 and replaces the vendored merge driver plus missing lint and duplication gates with the canonical pm-ops implementations.
@unbrained/pm-cli2026.9.21 withpm-changelogandpm-opsat 2026.9.18.pm-opslaunchers instead of the vendored.mjsscript.anyin tests, now using SDK types) and removes the 0.62% duplication clones by extracting shared test fixtures.SlackBlocktype and widensPosterto aRecordpayload so the lint refactor doesn't break consumer code; a compile-time test pins both contracts.Written for commit 6da9b98. Summary will update on new commits.