You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Ruleset pr-quality parameter dismiss_stale_reviews_on_push has drifted from the codified standard: expected true, actual false. The codified JSON (standards/rulesets/pr-quality.json) is the source of truth (#575/#580); run scripts/apply-rulesets.sh --repo petry-projects/google-app-scripts to converge.
Detail: Ruleset pr-quality parameter dismiss_stale_reviews_on_push has drifted from the codified standard: expected true, actual false. The codified JSON (standards/rulesets/pr-quality.json) is the source of truth (#575/#580); run scripts/apply-rulesets.sh --repo petry-projects/google-app-scripts to converge.
Detail: Ruleset pr-quality parameter dismiss_stale_reviews_on_push has drifted from the codified standard: expected true, actual false. The codified JSON (standards/rulesets/pr-quality.json) is the source of truth (#575/#580); run scripts/apply-rulesets.sh --repo petry-projects/google-app-scripts to converge.
Dev-Lead: Analysis — no code change required (already compliant)
Provisional note; nothing pushed. This documents the investigation into
compliance finding ruleset-drift-pr-quality-dismiss_stale_reviews_on_push.
Finding
The codified source of truth for the pr-quality ruleset in this repo is the
JSON heredoc in scripts/setup-pr-quality-ruleset.sh. It already codifies the
expected value:
The script is idempotent and reconverges drift on an existing ruleset via gh api ... --method PUT (line 82). Guarding tests in scripts/tests/setup-pr-quality-ruleset.test.js already assert this parameter is true (and pin the full pull_request parameter set); all 6 tests pass locally.
There is nostandards/rulesets/pr-quality.json or other ruleset definition
file in this repo — the heredoc is the sole codified source, and it is already
correct.
Conclusion
The repository code is already compliant with the codified standard, so no
source change brings it into compliance. The audit flagged actual: false
because it reads the live GitHub ruleset via the API — the drift is in the
live repo configuration, not in any tracked file.
Remediation (operational, not a code PR)
Reconverge the live ruleset by running the already-correct script with repo-admin gh auth (the in-repo equivalent of apply-rulesets.sh):
This requires admin credentials and mutates a protected-branch ruleset on
GitHub, so it is outside the scope of this code-PR flow and cannot be delivered
as a diff. Once run, a re-audit should clear this finding.
Detail: Ruleset pr-quality parameter dismiss_stale_reviews_on_push has drifted from the codified standard: expected true, actual false. The codified JSON (standards/rulesets/pr-quality.json) is the source of truth (#575/#580); run scripts/apply-rulesets.sh --repo petry-projects/google-app-scripts to converge.
at throwErrorIfNotOK (file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:267315:24)
at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
at async file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:267078:7
at async Models.generateContentStream (file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:268174:16)
at async file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:310543:19
at async file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:287352:23
at async retryWithBackoff (file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:307380:23)
at async GeminiChat.makeApiCallAndProcessStream (file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:331230:28)
at async GeminiChat.streamWithRetries (file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:330983:29)
at async Turn.run (file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:331905:24) {
status: 429
}
Attempt 10 failed: Your prepayment credits are depleted. Please go to AI Studio at https://ai.studio/projects to manage your project and billing. Learn more at https://ai.google.dev/gemini-api/docs/billing#prepay. . Max attempts reached
Error when talking to Gemini API Full report available at: /tmp/gemini-client-error-Turn.run-sendMessageStream-2026-09-07T16-30-46-198Z.json RetryableQuotaError: Your prepayment credits are depleted. Please go to AI Studio at https://ai.studio/projects to manage your project and billing. Learn more at https://ai.google.dev/gemini-api/docs/billing#prepay.
at classifyGoogleError (file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:306667:14)
at retryWithBackoff (file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:307403:29)
at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
at async GeminiChat.makeApiCallAndProcessStream (file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:331230:28)
at async GeminiChat.streamWithRetries (file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:330983:29)
at async Turn.run (file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:331905:24)
at async GeminiClient.processTurn (file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:345450:22)
at async GeminiClient.sendMessageStream (file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:345547:14)
at async file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/gemini-CKAAKWBN.js:11773:26
at async main (file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/gemini-CKAAKWBN.js:17200:5) {
cause: {
code: 429,
message: 'Your prepayment credits are depleted. Please go to AI Studio at https://ai.studio/projects to manage your project and billing. Learn more at https://ai.google.dev/gemini-api/docs/billing#prepay. ',
details: []
},
retryDelayMs: undefined,
status: 429
}
{
"session_id": "0b037393-dac6-4a0a-94bc-5ddc76d600db",
"error": {
"type": "Error",
"message": "Your prepayment credits are depleted. Please go to AI Studio at https://ai.studio/projects to manage your project and billing. Learn more at https://ai.google.dev/gemini-api/docs/billing#prepay. ",
"code": 429
}
}
at throwErrorIfNotOK (file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:267315:24)
at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
at async file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:267078:7
at async Models.generateContentStream (file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:268174:16)
at async file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:310543:19
at async file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:287352:23
at async retryWithBackoff (file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:307380:23)
at async GeminiChat.makeApiCallAndProcessStream (file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:331230:28)
at async GeminiChat.streamWithRetries (file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:330983:29)
at async Turn.run (file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:331905:24) {
status: 429
}
Attempt 10 failed: Your prepayment credits are depleted. Please go to AI Studio at https://ai.studio/projects to manage your project and billing. Learn more at https://ai.google.dev/gemini-api/docs/billing#prepay. . Max attempts reached
Error when talking to Gemini API Full report available at: /tmp/gemini-client-error-Turn.run-sendMessageStream-2026-09-07T18-50-18-270Z.json RetryableQuotaError: Your prepayment credits are depleted. Please go to AI Studio at https://ai.studio/projects to manage your project and billing. Learn more at https://ai.google.dev/gemini-api/docs/billing#prepay.
at classifyGoogleError (file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:306667:14)
at retryWithBackoff (file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:307403:29)
at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
at async GeminiChat.makeApiCallAndProcessStream (file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:331230:28)
at async GeminiChat.streamWithRetries (file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:330983:29)
at async Turn.run (file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:331905:24)
at async GeminiClient.processTurn (file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:345450:22)
at async GeminiClient.sendMessageStream (file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:345547:14)
at async file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/gemini-CKAAKWBN.js:11773:26
at async main (file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/gemini-CKAAKWBN.js:17200:5) {
cause: {
code: 429,
message: 'Your prepayment credits are depleted. Please go to AI Studio at https://ai.studio/projects to manage your project and billing. Learn more at https://ai.google.dev/gemini-api/docs/billing#prepay. ',
details: []
},
retryDelayMs: undefined,
status: 429
}
{
"session_id": "1f93b89d-1467-4a02-be91-648d1b606d1f",
"error": {
"type": "Error",
"message": "Your prepayment credits are depleted. Please go to AI Studio at https://ai.studio/projects to manage your project and billing. Learn more at https://ai.google.dev/gemini-api/docs/billing#prepay. ",
"code": 429
}
}
Ensure the repo's codified source of truth for the pr-quality ruleset pins dismiss_stale_reviews_on_push: true and is durably guarded against future drift.
The live-GitHub ruleset drift (actual false) is converged by running the convergence script against the repo — a repo-admin/CI action, outside the code changes in this PR.
Dev-Lead: Progress (in progress — not yet durable)
Provisional. Nothing is pushed yet; the automation posts the authoritative
completion record (with PR number + head SHA) after the push. Treat the notes
below as intent, not delivered results.
Investigation outcome
The codified source of truth (scripts/setup-pr-quality-ruleset.sh) already
pins dismiss_stale_reviews_on_push: true, and the existing regression test
already fails if it regresses (dedicated assertion + full-parameter toEqual
guard). That value was codified in #539/#547. So no functional change to the
parameter value is required to satisfy this finding at the code level.
The live-GitHub ruleset drift (actual false) is converged by running the pr-quality convergence script against the repo — a repo-admin/CI action,
outside the code in this branch.
Files touched (this workspace, not yet pushed)
scripts/setup-pr-quality-ruleset.sh: added a durable "compliance-pinned"
comment above the payload noting dismiss_stale_reviews_on_push: true (Compliance: ruleset-drift-pr-quality-dismiss_stale_reviews_on_push #555)
must not be relaxed (comment sits outside the JSON heredoc, so the test's JSON.parse is unaffected).
Phase 2 TDD exception: behavior-preserving documentation change — the value
was already codified and already covered by passing regression assertions.
No unrelated files modified. Lint (dev-lead shellcheck + npm run check) and
the test suite were run locally and were green in this workspace (provisional —
not the pushed run).
The implementation for issue #555 is durable: commits are pushed and a pull request is open. This record is backed by verifiable artifacts you can confirm in one click.
Review happens on the PR. Acceptance criteria and test results are evidenced by the PR's diff and CI checks — not asserted here. If a later stage fails, this claim is retracted in place.
Detail: Ruleset pr-quality parameter dismiss_stale_reviews_on_push has drifted from the codified standard: expected true, actual false. The codified JSON (standards/rulesets/pr-quality.json) is the source of truth (#575/#580); run scripts/apply-rulesets.sh --repo petry-projects/google-app-scripts to converge.
Detail: Ruleset pr-quality parameter dismiss_stale_reviews_on_push has drifted from the codified standard: expected true, actual false. The codified JSON (standards/rulesets/pr-quality.json) is the source of truth (#575/#580); run scripts/apply-rulesets.sh --repo petry-projects/google-app-scripts to converge.
Activity
don-petry commentedon Aug 28, 2026
Weekly Compliance Audit (2026-08-28)
This finding is still open.
Detail: Ruleset
pr-qualityparameterdismiss_stale_reviews_on_pushhas drifted from the codified standard: expectedtrue, actualfalse. The codified JSON (standards/rulesets/pr-quality.json) is the source of truth (#575/#580); runscripts/apply-rulesets.sh --repo petry-projects/google-app-scriptsto converge.Standard: standards/github-settings.md#pr-quality--standard-ruleset-all-repositories
don-petry commentedon Aug 31, 2026
Weekly Compliance Audit (2026-08-31)
This finding is still open.
Detail: Ruleset
pr-qualityparameterdismiss_stale_reviews_on_pushhas drifted from the codified standard: expectedtrue, actualfalse. The codified JSON (standards/rulesets/pr-quality.json) is the source of truth (#575/#580); runscripts/apply-rulesets.sh --repo petry-projects/google-app-scriptsto converge.Standard: standards/github-settings.md#pr-quality--standard-ruleset-all-repositories
don-petry commentedon Aug 31, 2026
Dev-Lead: Analysis — no code change required (already compliant)
Finding
The codified source of truth for the
pr-qualityruleset in this repo is theJSON heredoc in
scripts/setup-pr-quality-ruleset.sh. It already codifies theexpected value:
The script is idempotent and reconverges drift on an existing ruleset via
gh api ... --method PUT(line 82). Guarding tests inscripts/tests/setup-pr-quality-ruleset.test.jsalready assert this parameter istrue(and pin the fullpull_requestparameter set); all 6 tests pass locally.There is no
standards/rulesets/pr-quality.jsonor other ruleset definitionfile in this repo — the heredoc is the sole codified source, and it is already
correct.
Conclusion
The repository code is already compliant with the codified standard, so no
source change brings it into compliance. The audit flagged
actual: falsebecause it reads the live GitHub ruleset via the API — the drift is in the
live repo configuration, not in any tracked file.
Remediation (operational, not a code PR)
Reconverge the live ruleset by running the already-correct script with repo-admin
ghauth (the in-repo equivalent ofapply-rulesets.sh):This requires admin credentials and mutates a protected-branch ruleset on
GitHub, so it is outside the scope of this code-PR flow and cannot be delivered
as a diff. Once run, a re-audit should clear this finding.
don-petry commentedon Sep 4, 2026
Weekly Compliance Audit (2026-09-04)
This finding is still open.
Detail: Ruleset
pr-qualityparameterdismiss_stale_reviews_on_pushhas drifted from the codified standard: expectedtrue, actualfalse. The codified JSON (standards/rulesets/pr-quality.json) is the source of truth (#575/#580); runscripts/apply-rulesets.sh --repo petry-projects/google-app-scriptsto converge.Standard: standards/github-settings.md#pr-quality--standard-ruleset-all-repositories
don-petry commentedon Sep 7, 2026
Dev-Lead: issue #555 implementation failed — will retry
All engines were rate-limited. This was attempt 1 of 3; dev-lead will retry automatically. You can also re-apply the
dev-leadlabel to retry now.rate-limitedLast 40 lines of engine output (redacted)
at throwErrorIfNotOK (file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:267315:24) at process.processTicksAndRejections (node:internal/process/task_queues:103:5) at async file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:267078:7 at async Models.generateContentStream (file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:268174:16) at async file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:310543:19 at async file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:287352:23 at async retryWithBackoff (file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:307380:23) at async GeminiChat.makeApiCallAndProcessStream (file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:331230:28) at async GeminiChat.streamWithRetries (file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:330983:29) at async Turn.run (file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:331905:24) { status: 429 } Attempt 10 failed: Your prepayment credits are depleted. Please go to AI Studio at https://ai.studio/projects to manage your project and billing. Learn more at https://ai.google.dev/gemini-api/docs/billing#prepay. . Max attempts reached Error when talking to Gemini API Full report available at: /tmp/gemini-client-error-Turn.run-sendMessageStream-2026-09-07T16-30-46-198Z.json RetryableQuotaError: Your prepayment credits are depleted. Please go to AI Studio at https://ai.studio/projects to manage your project and billing. Learn more at https://ai.google.dev/gemini-api/docs/billing#prepay. at classifyGoogleError (file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:306667:14) at retryWithBackoff (file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:307403:29) at process.processTicksAndRejections (node:internal/process/task_queues:103:5) at async GeminiChat.makeApiCallAndProcessStream (file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:331230:28) at async GeminiChat.streamWithRetries (file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:330983:29) at async Turn.run (file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:331905:24) at async GeminiClient.processTurn (file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:345450:22) at async GeminiClient.sendMessageStream (file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:345547:14) at async file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/gemini-CKAAKWBN.js:11773:26 at async main (file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/gemini-CKAAKWBN.js:17200:5) { cause: { code: 429, message: 'Your prepayment credits are depleted. Please go to AI Studio at https://ai.studio/projects to manage your project and billing. Learn more at https://ai.google.dev/gemini-api/docs/billing#prepay. ', details: [] }, retryDelayMs: undefined, status: 429 } { "session_id": "0b037393-dac6-4a0a-94bc-5ddc76d600db", "error": { "type": "Error", "message": "Your prepayment credits are depleted. Please go to AI Studio at https://ai.studio/projects to manage your project and billing. Learn more at https://ai.google.dev/gemini-api/docs/billing#prepay. ", "code": 429 } }don-petry commentedon Sep 7, 2026
Dev-Lead: issue #555 implementation failed — will retry
All engines were rate-limited. This was attempt 2 of 3; dev-lead will retry automatically. You can also re-apply the
dev-leadlabel to retry now.rate-limitedLast 40 lines of engine output (redacted)
at throwErrorIfNotOK (file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:267315:24) at process.processTicksAndRejections (node:internal/process/task_queues:103:5) at async file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:267078:7 at async Models.generateContentStream (file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:268174:16) at async file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:310543:19 at async file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:287352:23 at async retryWithBackoff (file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:307380:23) at async GeminiChat.makeApiCallAndProcessStream (file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:331230:28) at async GeminiChat.streamWithRetries (file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:330983:29) at async Turn.run (file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:331905:24) { status: 429 } Attempt 10 failed: Your prepayment credits are depleted. Please go to AI Studio at https://ai.studio/projects to manage your project and billing. Learn more at https://ai.google.dev/gemini-api/docs/billing#prepay. . Max attempts reached Error when talking to Gemini API Full report available at: /tmp/gemini-client-error-Turn.run-sendMessageStream-2026-09-07T18-50-18-270Z.json RetryableQuotaError: Your prepayment credits are depleted. Please go to AI Studio at https://ai.studio/projects to manage your project and billing. Learn more at https://ai.google.dev/gemini-api/docs/billing#prepay. at classifyGoogleError (file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:306667:14) at retryWithBackoff (file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:307403:29) at process.processTicksAndRejections (node:internal/process/task_queues:103:5) at async GeminiChat.makeApiCallAndProcessStream (file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:331230:28) at async GeminiChat.streamWithRetries (file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:330983:29) at async Turn.run (file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:331905:24) at async GeminiClient.processTurn (file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:345450:22) at async GeminiClient.sendMessageStream (file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/chunk-MFLFXOVQ.js:345547:14) at async file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/gemini-CKAAKWBN.js:11773:26 at async main (file:///home/runner/.npm-global/lib/node_modules/@google/gemini-cli/bundle/gemini-CKAAKWBN.js:17200:5) { cause: { code: 429, message: 'Your prepayment credits are depleted. Please go to AI Studio at https://ai.studio/projects to manage your project and billing. Learn more at https://ai.google.dev/gemini-api/docs/billing#prepay. ', details: [] }, retryDelayMs: undefined, status: 429 } { "session_id": "1f93b89d-1467-4a02-be91-648d1b606d1f", "error": { "type": "Error", "message": "Your prepayment credits are depleted. Please go to AI Studio at https://ai.studio/projects to manage your project and billing. Learn more at https://ai.google.dev/gemini-api/docs/billing#prepay. ", "code": 429 } }don-petry commentedon Sep 7, 2026
Dev-Lead Implementation Plan
Issue: #555 — Compliance: ruleset-drift-pr-quality-dismiss_stale_reviews_on_push
Scope
Ensure the repo's codified source of truth for the
pr-qualityruleset pinsdismiss_stale_reviews_on_push: trueand is durably guarded against future drift.Findings from investigation
scripts/setup-pr-quality-ruleset.sh(the in-repo convergence script) already codifiesdismiss_stale_reviews_on_push: true(delivered in Compliance: ruleset-drift-pr-quality-require_last_push_approval #539/feat: implement issue #539 — Compliance: ruleset-drift-pr-quality-require_last_push_approval #547), andscripts/tests/setup-pr-quality-ruleset.test.jsalready asserts it (dedicated test + full-parametertoEqualguard). All 9 tests pass.false) is converged by running the convergence script against the repo — a repo-admin/CI action, outside the code changes in this PR.Implementation Checklist
scripts/setup-pr-quality-ruleset.sh(outside the JSON heredoc soJSON.parsein tests is unaffected) notingdismiss_stale_reviews_on_push(Compliance: ruleset-drift-pr-quality-dismiss_stale_reviews_on_push #555) must not be relaxed.Tests to Write / Verify
dismiss_stale_reviews_on_push: true(dedicated +toEqual) — behavior-preserving; no new failing behavior to add (Phase 2 doc exception).Test Command
npm test(andnpx jest scripts/tests/setup-pr-quality-ruleset.test.jsfor the focused guard)don-petry commentedon Sep 7, 2026
Dev-Lead: Progress (in progress — not yet durable)
Investigation outcome
The codified source of truth (
scripts/setup-pr-quality-ruleset.sh) alreadypins
dismiss_stale_reviews_on_push: true, and the existing regression testalready fails if it regresses (dedicated assertion + full-parameter
toEqualguard). That value was codified in #539/#547. So no functional change to the
parameter value is required to satisfy this finding at the code level.
The live-GitHub ruleset drift (actual
false) is converged by running thepr-qualityconvergence script against the repo — a repo-admin/CI action,outside the code in this branch.
Files touched (this workspace, not yet pushed)
scripts/setup-pr-quality-ruleset.sh: added a durable "compliance-pinned"comment above the payload noting
dismiss_stale_reviews_on_push: true(Compliance: ruleset-drift-pr-quality-dismiss_stale_reviews_on_push #555)must not be relaxed (comment sits outside the JSON heredoc, so the test's
JSON.parseis unaffected).scripts/tests/setup-pr-quality-ruleset.test.js: extended the header commentto record the compliance findings the guard protects (Compliance: ruleset-drift-pr-quality-require_last_push_approval #520, Compliance: ruleset-drift-pr-quality-require_last_push_approval #539, Compliance: ruleset-drift-pr-quality-dismiss_stale_reviews_on_push #555).
Notes
was already codified and already covered by passing regression assertions.
npm run check) andthe test suite were run locally and were green in this workspace (provisional —
not the pushed run).
don-petry commentedon Sep 7, 2026
Dev-Lead: Implementation Complete — PR #576
The implementation for issue #555 is durable: commits are pushed and a pull request is open. This record is backed by verifiable artifacts you can confirm in one click.
7d908625415799d89b3f11eaf678c548ad4cdce1Review happens on the PR. Acceptance criteria and test results are evidenced by the PR's diff and CI checks — not asserted here. If a later stage fails, this claim is retracted in place.
don-petry commentedon Sep 11, 2026
Weekly Compliance Audit (2026-09-11)
This finding is still open.
Detail: Ruleset
pr-qualityparameterdismiss_stale_reviews_on_pushhas drifted from the codified standard: expectedtrue, actualfalse. The codified JSON (standards/rulesets/pr-quality.json) is the source of truth (#575/#580); runscripts/apply-rulesets.sh --repo petry-projects/google-app-scriptsto converge.Standard: standards/github-settings.md#pr-quality--standard-ruleset-all-repositories
don-petry commentedon Sep 18, 2026
Weekly Compliance Audit (2026-09-18)
This finding is still open.
Detail: Ruleset
pr-qualityparameterdismiss_stale_reviews_on_pushhas drifted from the codified standard: expectedtrue, actualfalse. The codified JSON (standards/rulesets/pr-quality.json) is the source of truth (#575/#580); runscripts/apply-rulesets.sh --repo petry-projects/google-app-scriptsto converge.Standard: standards/github-settings.md#pr-quality--standard-ruleset-all-repositories
feat: implement issue #555 — Compliance: ruleset-drift-pr-quality-dis…