Repository navigation
fix(rate-limit-guard): tell Claude to keep working at the threshold - #6326
Conversation
An interactive session waits out a usage limit and continues on its own, so the lines sent to Claude no longer say "pause edge". They name the threshold and, at it, end "Keep working." (once per batch). The operator-mode suggestion and the /rate-limit-guard status reply use the same wording, and the status tool's JSON drops lanes_pause_edge. The toast, notice row and transcript line keep their wording, and the loop lanes' 95% pause floor is unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The recorded guard-mods exception now admits one directive on a context channel: rate-limit-guard's threshold line ends "Keep working.", per the owner decision of 2026-10-04 (accounts are rotated by hand on the alerts, and an interactive session waits out a usage limit itself). The general facts-not-orders rule is unchanged. The status tool's JSON keeps lanes_pause_edge: it is a fact consumers may read, so the earlier removal and its CHANGELOG clause are reverted. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Claude finished @kyle-sexton's task in 2m 43s —— View job Code review complete
No findings. This is a clean, well-scoped wording change. What I checked:
Author-claimed, not independently re-run by me: |
|
Claude finished @kyle-sexton's task in 1m 47s —— View job Security review complete
No security issues found. This PR only changes wording in Two things I checked specifically given this PR's shape, both clear:
GitHub Actions hardening is out of scope for this lane (zizmor's advisory lane covers it), and no workflow files are touched here anyway. |
|
claude-security-review has reviewed this pull request through 6777d1e; a later push is reviewed from there. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e8d718c777
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
claude-review has reviewed this pull request through 6777d1e; a later push is reviewed from there. |
Lines to Claude read 'at 95% (97% used)' and the status reply '97% used, at 95%' once usage passed the threshold. The edge verdict now reads 'at or above'. The hook-observability exception names the observed stumble behind its 'Keep working.' directive. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Claude finished @kyle-sexton's task in 4m 22s —— View job Code review complete (incremental: e8d718c → 5f26b56)
This commit fixes both things Codex flagged on the prior revision: One finding, cross-file, not on a line this commit touched:
No other findings. The test file's expectation updates match |
|
Claude finished @kyle-sexton's task in 1m 25s —— View job Security review complete
No security issues found. Skip-gate reasoning: this increment (diff since
No injection surface, no secret handling, no auth/access-control code in this increment. GitHub Actions hardening is out of scope for this lane (zizmor's advisory lane covers it); no workflow files are touched. |
|
Claude finished @kyle-sexton's task in 3m 45s —— View job Code review complete (incremental:
|
…keep-working # Conflicts: # plugins/rate-limit-guard/.claude-plugin/plugin.json # plugins/rate-limit-guard/CHANGELOG.md # plugins/rate-limit-guard/hooks/rate-limit-guard.test.ts
|
Claude finished @kyle-sexton's task in 1m 6s —— View job Security review complete
Skip gate: no new security-relevant surface.
Per the skip gate in
No security issues found. |
|
Claude finished @kyle-sexton's task in 5m 4s —— View job Code review complete (skip gate: no new content on this head)
No new findings — skip gate applies. Head
I independently re-verified the fixed state is still intact at the current head, not just trusting the prior rounds' claims:
No inline comments to post; nothing on this head is new relative to what two prior Claude rounds and Codex already reviewed and verified fixed. |
No related issue: owner decision 2026-10-04 that guard lines must not tell Claude to stop
Summary
rate-limit-guard's lines to Claude no longer say "pause edge", which read as a cue to stop. They name the threshold as a fact, and the line at the threshold ends
Keep working.(once per batch). The owner rotates accounts by hand on the alerts, and interactive Claude Code waits out a usage limit on its own (docs). Loop lanes keep their fixed 95% pause floor:-pand--bgsessions do not auto-wait.Fix
plugins/rate-limit-guard/hooks/register.tsx: model-facing lines and the/rate-limit-guardstatus reply use threshold wording (at 95%,nearing 95%,reset, now below 95%); the last threshold line of a batch endsKeep working.. The toast, notice row and transcript line keep "pause edge". The status tool's JSON keepslanes_pause_edge.docs/conventions/hook-observability/README.md: the recorded guard-mods exception admits exactly one directive,Keep working., on rate-limit-guard's threshold line, citing the 2026-10-04 owner decision. The general rule (context channels carry facts, not orders) is unchanged.Verification
claude plugin test plugins/rate-limit-guard(fresh config dir): 129 pass, 0 fail.scripts/check-changelog-parity.sh --check-bump origin/main: pass.scripts/check-loop-lane-floor-drift.sh: 7 consumers match the floor, no unregistered copy.scripts/sync-shared-copies.sh --check: all 335 registered copies match.Related
🤖 Generated with Claude Code