Skip to content

feat: token budget enforcement per virtual key (Story 3.3)#133

Merged
farovictor merged 1 commit intomainfrom
feat/token-budget
Apr 6, 2026
Merged

feat: token budget enforcement per virtual key (Story 3.3)#133
farovictor merged 1 commit intomainfrom
feat/token-budget

Conversation

@farovictor
Copy link
Copy Markdown
Owner

Summary

  • New token_budget field on VirtualKey (0 = unlimited, any positive value = max total tokens)
  • Proxy checks UsageStore.TotalTokens(keyID) before forwarding; returns 429 token budget exceeded when the cumulative token count meets or exceeds the budget
  • Migration 010_add_virtual_key_token_budget.sql

Behaviour

  • Budget is checked against the cumulative total tokens recorded across all past requests for that key
  • token_budget: 0 is treated as unlimited (no check performed)
  • The check happens before the upstream call, so a request that would overflow is rejected immediately

Test plan

  • TestTokenBudget_AllowedWhenUnderBudget — 200 when usage < budget
  • TestTokenBudget_BlockedWhenExceeded — 429 when usage >= budget
  • TestTokenBudget_ZeroMeansUnlimited — 200 even with massive pre-seeded usage when budget=0

🤖 Generated with Claude Code

- Add token_budget field to VirtualKey (0 = unlimited)
- Proxy checks UsageStore.TotalTokens before forwarding; returns 429 when budget reached
- Migration 010_add_virtual_key_token_budget.sql
- Tests: under budget allowed, exceeded blocked, zero means unlimited

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@farovictor farovictor self-assigned this Apr 6, 2026
@farovictor farovictor merged commit 9fb8748 into main Apr 6, 2026
8 checks passed
@farovictor farovictor deleted the feat/token-budget branch April 6, 2026 21:50
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