win
95814974de
feat(rpm): add token bucket smoothing for RPM rate limiting
- New RPMTokenBucketService: per-account continuous-refill token buckets
(rate = rpm/60 tokens/sec, capacity = rpm). No new dependencies.
- GatewayService.AcquireRPMToken() delegates to the bucket service.
- Gateway handler inserts RPM token wait BEFORE wrapReleaseOnDone in both
Gemini and Anthropic dispatch paths; timeout returns 429 and releases slot.
- Config: gateway.rpm_smoothing.enabled (default false) + max_wait_ms (default 5000).
- 7 unit tests covering: immediate acquire, zero RPM, timeout, wait+refill,
context cancel, account isolation, bucket reset on RPM change.
2026-04-29 01:22:54 +08:00
..
2026-04-29 01:22:54 +08:00
2026-03-18 15:03:24 +08:00
2026-04-29 01:22:54 +08:00
2026-02-08 12:05:39 +08:00
2026-02-08 12:05:39 +08:00
2026-03-27 14:33:05 +08:00
2026-04-28 22:35:24 +08:00
2026-04-29 00:43:23 +08:00
2026-04-28 23:39:50 +08:00
2026-04-29 01:22:54 +08:00
2026-03-17 15:38:18 +08:00
2026-03-09 19:55:18 +08:00
2026-02-28 15:01:20 +08:00
2026-03-18 14:13:52 +08:00