Skip to content

ci(cla-rerun): name a spent glaeda-route App budget and re-run the guard's rejects from that hour - #26992

Merged
teamleaderleo merged 3 commits into
mainfrom
cla-rerun-app-budget
Oct 28, 2026
Merged

teamleaderleo merged 3 commits into
mainfrom
cla-rerun-app-budget

Conversation

@teamleaderleo

Copy link
Copy Markdown
Collaborator

Summary

CLA policy guard on main reads on the glaeda-route App token (#25611), the same token the CLA quota re-run janitor reads and re-runs with. When that App budget runs out (2026-10-28 from 06:44Z), the guard rejects every pull request with its generic "rejected the proposed policy", and the janitor's log only said HTTP 403 on ...: the budget is spent, which read like the workflow token's budget.

scripts/ci/cla_quota_rerun.py now:

  • says it plainly when a call on the App token is refused for a spent budget: a ::warning title=glaeda-route App budget spent:: annotation names the budget and its reset, and states that the guard's rejects in that hour are the budget, not a policy;
  • waits for the reset as it already did for any spent budget (within the pass deadline; past it, the run ends red with the time, as before);
  • counts a guard reject that finished inside that App hour (the hour ending at the reset) as evidence, so a reject on a pull request that changes CLA policy, which had no evidence before, is re-run too after the reset. A real policy rejection in that hour costs one extra re-run, and MAX_GUARD_ATTEMPT still caps it.

The workflow token's spent-budget path and its messages are unchanged. No workflow, permission or token changes.

Measured context: since #26760 the App installation peaked at about 3150 of 5000 calls an hour today (probe lines from #26856 and the janitor's own Log the glaeda-route App's budget step), so this is the fallback for the next exhaustion, not a fix for a live one.

Testing

python3 -m unittest tests.test_cla_quota_rerun tests.test_glaeda_route_app_budget: 58 tests OK.

The new test_a_spent_app_budget_is_named_waited_out_and_its_guard_rejects_rerun fails on base (no App-budget message, and the policy-changing reject is left alone) and passes on head. test_a_spent_workflow_token_budget_is_not_called_the_apps keeps the workflow-token message as it was.

Observed / Not run

Observed: the unit tests above, red on base for the new test and green on head. Not run: a live pass against a spent App budget (none has happened since the morning of 2026-10-28).

Changelog

none

🤖 Generated with Claude Code

Agent session: agent session

…run the guard's rejects from that hour

CLA policy guard on main reads on the glaeda-route App token, the same one the
CLA quota re-run janitor reads and re-runs with. When that budget is spent the
guard rejects every pull request with its generic message, and the janitor
logged only "HTTP 403 on ...: the budget is spent". Now a refused call on the
App token says plainly that the glaeda-route App budget is spent and that the
guard's rejects in that hour are the budget, not a policy; the pass waits for
the reset as before, and a guard reject that finished in that App hour counts
as evidence, so policy-changing pull requests are re-run too.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-7a592ef92c66f080e3cc
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Owned by an agent session · session

@github-actions

Copy link
Copy Markdown
Contributor

All contributors have signed the CLA ✍️ ✅
Posted by the CLA Assistant Lite bot.

teamleaderleo and others added 2 commits October 28, 2026 21:48
…d reject in it is evidence

Review: a guard run that failed for another reason in that hour was re-run, and a
Retry-After or fallback wait was taken for the App hour's reset.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-7a592ef92c66f080e3cc
Review: a secondary limit or a permission refusal (403/429 with
X-RateLimit-Remaining above 0) carried a reset header and was taken for the
App hour running out. Now only X-RateLimit-Remaining 0 with its reset counts.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-7a592ef92c66f080e3cc
@teamleaderleo
teamleaderleo merged commit dc19258 into main Oct 28, 2026
38 checks passed
@teamleaderleo
teamleaderleo deleted the cla-rerun-app-budget branch October 28, 2026 22:35
@github-actions

Copy link
Copy Markdown
Contributor

cmux status (one comment, edited in place; each line is updated by the job that owns it)

Merge receipt for f0dcf77b92: every check was green at merge (10 verified; 16 skipped by policy). Full suite runs on main after merge.

teamleaderleo added a commit that referenced this pull request Oct 28, 2026
A secondary limit or a refusal on the glaeda-route App token (no
X-RateLimit-Remaining 0 with a reset) logged the 'App budget spent' warning
and promised re-runs after the reset, though it opens no App hour. It now
logs a plain line instead. Review nit on #26992.


Agent-Session: https://cmux.com/deeplink/agent?id=aid-7a592ef92c66f080e3cc

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant