Repository navigation
Fix auto-release static quality gate ratchet - #447
Conversation
Route release run-gates through the project quality:static script so scheduled Auto Release uses the same docstring ratchet as lint while pm-4ak1/pm-5566 continue the repo-wide 100% docstring fill work. Add unit and release automation contract coverage preventing run-gates from invoking static-quality-gate with raw default thresholds. Verification: node scripts/run-tests.mjs test -- tests/unit/scripts/release/run-gates.spec.ts tests/integration/release-automation-contract.spec.ts; node scripts/release/run-gates.mjs --telemetry-mode off --skip-greptile; pnpm lint; pnpm changelog:pm:check; pnpm audit --audit-level moderate; pm health --check-only --summary --json; pm validate --check-resolution --check-history-drift --json.
|
@greptileai Please review the current head for the release-gate ratchet fix and the explicit-id trailing-dash validation follow-up. Local verification passed full release gates, coverage, lint, changelog check, audit, pm health/validate, and GitHub alert checks as listed in the PR body. |
|
Warning Review limit reached
Next review available in: 47 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: Repository UI (base), Organization UI (inherited) Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (4)
📝 WalkthroughWalkthroughThis PR changes the release static-quality-gate step to run ChangesRelease gate and CLI id validation fix
Estimated code review effort: 2 (Simple) | ~12 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
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 |
|
Note: the ✅ Action performedFull review finished. |
|
Sourcery review acknowledgement: noted the weekly diff-character rate limit skip on this PR. There is no actionable Sourcery finding to apply; local duplicate/static-quality checks and CodeFactor passed, and the PR remains under the other active reviewers/checks. |
There was a problem hiding this comment.
Code Review
This pull request updates the release-gate automation to invoke pnpm quality:static instead of the raw static-quality-gate.mjs script, and hardens explicit ID validation in the CLI to reject IDs ending with a dash. Corresponding contract, unit, and integration tests were added or updated to reflect these changes. Feedback on the changes suggests using regular expressions for the contract assertion in release-automation-contract.spec.ts to make it more robust against formatting changes, and adding a nullish coalescing guard in run-gates.spec.ts to prevent potential runtime exceptions when accessing optional arguments.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
|
CodeRabbit comment acknowledgement:
|
Greptile SummaryThis PR fixes the auto-release static-quality gate and tightens explicit ID validation. The main changes are:
Confidence Score: 5/5This looks safe to merge. No blocking issues found in the changed code. No files need attention.
What T-Rex did
Important Files Changed
Reviews (4): Last reviewed commit: "Harden release gate spawn assertions" | Re-trigger Greptile |
|
Gemini review acknowledgement:
Verification after applying both suggestions: |
|
@greptileai Follow-up commit |
🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
cd /tmp
rm -rf repo
git clone --depth 50 https://github.com/unbraind/pm-cli.git repo >/dev/null 2>&1
cd repo
git fetch origin pull/447/head:pr447 >/dev/null 2>&1
git checkout pr447 >/dev/null 2>&1
git log --oneline -5
echo "---"
cat -n tests/integration/release-automation-contract.spec.ts
echo "---"
cat -n tests/unit/scripts/release/run-gates.spec.ts | sed -n '1,200p'
echo "---"
cat -n scripts/release/run-gates.mjs
echo "---"
sed -n '1,80p' src/cli/commands/create.tsLength of output: 39947
✅ Action performedReview finished.
|
|
Greptile review acknowledgement:
|
|
@greptileai Follow-up commit |
There was a problem hiding this comment.
Code Review
This pull request updates the release gate script run-gates.mjs to invoke the project's static quality ratchet (pnpm quality:static) instead of the raw static-quality-gate.mjs script, resolving an issue where the auto-release workflow used incorrect defaults. It also hardens the CLI command create.ts by updating the item ID validation regex to reject normalized IDs ending with a trailing dash. Accompanying unit and integration tests have been added to verify these changes, and the project's internal PM agent tracking files have been updated accordingly. There are no review comments, so we have no feedback to provide.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
cd /tmp
rm -rf repo
git clone --depth 60 https://github.com/unbraind/pm-cli.git repo >/dev/null 2>&1
cd repo
git fetch origin pull/447/head:pr447 >/dev/null 2>&1
git checkout pr447 >/dev/null 2>&1
git log --oneline -8
echo "---diff of last commit---"
git show --stat HEAD
echo "---full diff---"
git show HEAD
echo "---check pm-7zs0 status file---"
fd -a 'pm-7zs0' .agents/pm | xargs -I{} sh -c 'echo "== {} =="; cat {}'Length of output: 126207 Confirmed the fix — the pm-7zs0 reminder's status is restored to
No code, test, or workflow files were touched in this commit, so the earlier verified release-gate ratchet fix ( Full head ( ✅ Action performedReview finished.
|
|
Bot review acknowledgement for latest artifacts:
|
There was a problem hiding this comment.
Code Review
This pull request updates the release gate script to invoke the ratcheted pnpm quality:static check instead of the default static-quality-gate.mjs script, with corresponding integration and unit tests added to prevent regressions. Additionally, it hardens the validation of explicit create IDs to reject trailing dashes and adds unit tests for this validation. The feedback points out a potential TypeError in the new unit tests where spawnSync.mock.calls arguments are spread without a guard for undefined values.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
|
Latest bot feedback acknowledgement:
|
|
@greptileai Follow-up commit |
There was a problem hiding this comment.
Code Review
This pull request updates the release automation pipeline to invoke the ratcheted pnpm quality:static command instead of the default static quality gate script, adding corresponding integration and unit tests. It also hardens CLI command creation validation by rejecting explicit IDs that end with a trailing dash. Feedback on the tests suggests guarding the mocked spawnSync arguments array in run-gates.spec.ts with a nullish coalescing operator to prevent potential runtime exceptions if the arguments are undefined.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
cd /tmp
rm -rf repo
git clone --depth 60 https://github.com/unbraind/pm-cli.git repo >/dev/null 2>&1
cd repo
git fetch origin pull/447/head:pr447 >/dev/null 2>&1
git checkout pr447 >/dev/null 2>&1
git log --oneline -10
echo "---diff of 944d1699---"
git show --stat 944d1699
echo "---full diff---"
git show 944d1699
echo "---full file for context---"
cat -n tests/unit/scripts/release/run-gates.spec.tsLength of output: 22456 Confirmed the fix in commit
Full head ( ✅ Action performedReview finished.
|
There was a problem hiding this comment.
Code Review
This pull request updates the release gate automation to use the project's static-quality ratchet (pnpm quality:static) instead of the raw static-quality-gate script defaults. It also hardens the CLI's explicit item ID validation by rejecting normalized IDs that end with a trailing dash. Accompanying unit and integration tests have been added or updated to cover these changes and prevent regressions. There are no review comments to address.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
|
Final latest-review acknowledgement:
|
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
|
Post-merge bot acknowledgement: reacted to the latest Gemini review body |
Summary
pnpm quality:static) instead of the raw 100%-default static-quality oraclepm-7zs0Verification
node scripts/run-tests.mjs test -- tests/unit/commands/create-command.spec.ts tests/unit/scripts/release/run-gates.spec.ts tests/integration/release-automation-contract.spec.tsnode scripts/release/run-gates.mjs --telemetry-mode off --skip-greptilepnpm lintpnpm changelog:pm:check(unchanged, pm-changelog 2026.6.30)pnpm audit --audit-level moderatepm health --check-only --summary --jsonpm validate --check-resolution --check-history-drift --json(history drift ok; known pre-existingvalidate_resolution_missing_fields:268)git diff --checkNotes
9b1c26f0-48e0-4610-93bc-c8f3682638e6; its trailing-dash finding is implemented in this PR even though the CLI printed the cached comment again.Summary by cubic
Routes the auto-release static-quality gate through the project ratchet by invoking
pnpm quality:static, unblocking scheduled releases previously stopped by the 100% default threshold (release-healthpm-7zs0). Also tightenscreate --idvalidation to reject IDs that normalize to a trailing dash.pnpm quality:staticinstead of the raw static-quality script; unit and contract tests enforce and block regressions.createnow rejects explicit IDs ending with a dash after normalization.pm-7zs0open so it remains visible in checks.Written for commit 944d169. Summary will update on new commits.