Skip to content

fix(server): raise storyboard eval/step rate limits for member dev iteration#3279

Draft
bokelley wants to merge 1 commit intomainfrom
claude/issue-3277-storyboard-rate-limit-relaxation
Draft

fix(server): raise storyboard eval/step rate limits for member dev iteration#3279
bokelley wants to merge 1 commit intomainfrom
claude/issue-3277-storyboard-rate-limit-relaxation

Conversation

@bokelley
Copy link
Copy Markdown
Contributor

Closes #3277

Storyboard eval rate limits were too tight for member developer iteration: 5 evals/hr = roughly 2 debug cycles before hitting the wall on a single agent. This PR implements Option B from the issue (the author's recommendation): raise the caps to match a realistic iteration cadence.

Changes:

  • storyboardEvalRateLimiter: max 5 → 10/hr
  • storyboardStepRateLimiter: max 30 → 60/hr
  • Both 429 handlers: fix retryAfter to use the real window-position value from the Retry-After header via parseRetryAfterSeconds (was hardcoded Math.ceil(60 * 60) = always 3600s regardless of elapsed time). Pattern matches agentReadRateLimiter in the same file.
  • Error message strings updated to reflect new limits

Non-breaking justification: server-side config change only; no protocol schema, task definition, or API contract changes. Admin bypass (skipForAdmins) and skipFailedRequests: true behavior unchanged.

Option A (per-agent keying) deferred: the issue author recommends "only do A if non-admin reports keep coming." Option A also has an open design question (multiply-vs-fixed ceiling) and the correct key source is req.params.encodedUrl not req.body.agent_url — needs owner input before implementation.

Pre-PR review:

  • code-reviewer: approved — one blocker (missing changeset) fixed; retryAfter pattern is correct; no new security surface
  • internal-tools-strategist: approved — standardHeaders: true sets the Retry-After header before the handler fires so res.getHeader('Retry-After') is always available; window-transition behavior (users at 5/5 before deploy get 5 more in-place) is intentional

Triage-managed PR. This bot does not currently iterate on
review comments or PR conversation threads (only on the source
issue). To unblock:

  • Push fixup commits directly: gh pr checkout <num>
    fix → push.
  • Or re-trigger: comment /triage execute on the source
    issue.

See #3121
for context.

Session: https://claude.ai/code/session_01SPJGvJCxD961HSCvtwyj3D


Generated by Claude Code

…eration (#3277)

Bumps storyboard eval cap from 5→10/hr and step cap from 30→60/hr so
members can complete a typical 4-5 cycle debug session without hitting
the wall. Admin bypass (skipForAdmins) is unchanged.

Also fixes both 429 handlers to use the real Retry-After window position
instead of a hardcoded Math.ceil(60*60) — matching the existing pattern
used by agentReadRateLimiter in the same file.

https://claude.ai/code/session_01SPJGvJCxD961HSCvtwyj3D
@bokelley
Copy link
Copy Markdown
Contributor Author

claude-triaged


Generated by Claude Code

@bokelley bokelley added the claude-triaged Issue has been triaged by the Claude Code triage routine. Remove to re-triage. label Apr 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

claude-triaged Issue has been triaged by the Claude Code triage routine. Remove to re-triage.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Storyboard eval rate limit (5/hr) too tight for member dev iteration

2 participants