Mike Cao
d2b4aa174e
Rate limit dynamic client registration per source address
...
Replace the process-wide registration counter used without Redis with a
shared per-key fixed-window limiter, so one requester can no longer
exhaust the registration budget for every other client on the process.
The in-memory fallback is bounded (expired windows are swept, then the
oldest keys are shed) so memory stays constant under key churn.
Also fixes checkMcpRateLimit inverting redis.rateLimit's result: it
resolves true once the counter reaches its threshold, so with Redis the
MCP endpoint was denying requests below the limit and allowing those
above it. Both call sites now share the same limiter and semantics.
2026-09-05 17:57:20 -07:00
..
2026-09-05 17:57:20 -07:00
2026-09-05 14:09:33 -07:00
2026-08-14 10:32:09 -07:00
2026-08-27 00:09:03 -07:00
2026-09-01 21:50:07 -07:00
2026-09-03 16:58:47 -07:00
2026-06-04 19:56:02 -07:00
2026-06-04 19:56:02 -07:00
2026-09-01 21:50:07 -07:00
2026-09-03 16:58:47 -07:00
2026-07-24 13:52:37 -07:00
2026-06-29 18:17:57 -07:00
2026-07-24 13:52:37 -07:00
2026-06-02 22:35:07 -07:00
2026-05-14 22:05:34 -07:00
2026-07-18 03:23:54 +08:00
2026-07-30 09:34:35 -07:00
2026-07-24 13:52:37 -07:00
2026-07-30 09:34:35 -07:00
2026-08-04 15:34:36 -07:00
2026-07-24 13:52:37 -07:00
2026-06-26 13:31:37 +02:00
2026-07-24 13:52:37 -07:00
2026-06-22 22:07:07 -07:00
2026-07-24 13:52:37 -07:00
2026-04-27 13:31:47 -07:00
2026-07-24 15:47:01 -07:00
2026-07-24 15:47:01 -07:00
2026-07-24 13:52:37 -07:00
2026-06-11 19:01:04 -07:00
2026-03-08 22:24:24 -07:00
2026-07-24 13:52:37 -07:00
2026-07-21 17:52:40 +05:30
2026-07-21 17:52:40 +05:30
2026-07-24 13:52:37 -07:00
2026-06-02 22:35:07 -07:00
2026-05-14 22:05:34 -07:00
2026-03-09 19:51:20 +00:00
2026-07-24 13:52:37 -07:00
2026-07-17 16:31:06 +02:00
2026-07-24 13:52:37 -07:00
2026-07-04 18:45:45 +07:00
2026-07-24 14:36:54 -07:00
2026-07-24 14:36:54 -07:00
2026-03-21 11:21:07 -07:00
2026-05-14 22:05:34 -07:00
2026-03-09 19:56:41 +00:00
2026-07-23 11:50:35 -07:00
2026-07-23 11:50:35 -07:00
2026-07-24 13:52:37 -07:00
2026-07-01 09:53:08 -07:00
2026-08-10 12:41:41 -07:00
2026-09-05 17:57:20 -07:00
2026-09-05 17:57:20 -07:00
2026-06-17 10:02:12 -07:00
2026-07-24 13:52:37 -07:00
2026-05-19 15:46:01 -07:00
2026-02-22 23:28:12 -08:00
2026-06-15 20:08:53 -07:00
2026-06-15 20:08:53 -07:00
2026-07-23 11:50:35 -07:00
2026-06-22 22:07:07 -07:00
2026-08-13 22:39:31 +05:30
2026-09-03 16:58:47 -07:00
2026-07-24 13:52:37 -07:00
2026-08-27 00:09:03 -07:00
2026-07-21 12:33:41 -07:00
2026-07-24 13:52:37 -07:00
2026-05-07 13:24:45 -07:00
2026-07-24 13:52:37 -07:00
2026-05-07 10:46:03 -07:00
2026-07-24 13:52:37 -07:00
2026-07-28 14:07:09 -07:00
2026-09-03 16:58:47 -07:00
2026-07-24 13:52:37 -07:00
2026-04-07 21:24:11 +02:00
2026-07-24 13:52:37 -07:00