anhtahaylove
30c96d43a5
fix(telegram): bound the per-user API key cache ( #13166 )
...
`resolveUserApiKey()` keyed an uncapped Map on an id taken straight from the webhook body. The LRU's recency test is what keeps this from regressing into a clear-when-full cache.
---
Validated in one consolidated worktree cut from `release/v3.8.51`, boarded together with the other 13 PRs of this batch — zero merge conflicts between them.
- `typecheck:core` clean
- complexity 2799 / baseline 3218 and cognitive-complexity 1265 / baseline 1437 — both under baseline
- 71 focused assertions green across the 13 test files this batch adds or touches
⚠️ base-red inherited: #12732 — `Docs Gates (fast-path)`, `Merge integrity`, `No new ESLint warnings`, `Unit Tests fast-path` and `Fast Quality Gates` all reproduce on the pure `release/v3.8.51` tip (provider count 356 vs the 358 the modules define, SKILL.md drift, and `open-sse/utils/stream.ts` at 3115 > frozen 3098). None of them touch this diff.
Thanks @anhtahaylove — the root-cause write-up, the measured before/after numbers and the red-before-green proof on every one of these made the batch reviewable as a unit.
2026-09-11 13:27:30 -03:00
..
2026-09-10 10:23:52 -03:00
2026-06-19 06:49:01 -03:00
2026-08-21 13:57:42 -03:00
2026-09-10 18:13:37 -03:00
2026-09-10 18:13:08 -03:00
2026-06-30 06:54:29 -03:00
2026-07-02 10:47:13 -03:00
2026-08-31 14:14:02 -03:00
2026-06-29 16:51:03 -03:00
2026-08-20 10:27:26 -03:00
2026-07-13 09:12:40 -03:00
2026-09-03 23:26:59 -03:00
2026-08-21 00:29:01 -03:00
2026-09-02 01:19:49 -03:00
2026-09-10 18:13:08 -03:00
2026-08-18 10:51:34 -03:00
2026-08-25 18:22:46 -03:00
2026-09-10 10:23:52 -03:00
2026-08-30 02:51:34 -03:00
2026-08-31 13:39:21 -03:00
2026-09-10 10:42:26 -03:00
2026-08-21 10:28:01 -03:00
2026-09-10 13:27:10 -03:00
2026-07-04 13:00:30 -03:00
2026-07-29 15:18:55 -03:00
2026-09-03 23:38:57 -03:00
2026-08-12 02:13:41 -03:00
2026-08-30 02:27:25 -03:00
2026-09-02 01:19:49 -03:00
2026-08-30 02:27:25 -03:00
2026-09-02 03:14:41 -03:00
2026-09-10 18:13:20 -03:00
2026-07-07 13:14:06 -03:00
2026-08-30 02:27:25 -03:00
2026-09-01 11:06:04 -03:00
2026-07-29 15:18:55 -03:00
2026-08-09 09:54:47 -03:00
2026-08-30 09:16:52 -03:00
2026-08-21 04:25:56 -03:00
2026-08-25 21:08:05 -03:00
2026-08-30 09:16:52 -03:00
2026-09-02 00:27:29 -03:00
2026-07-02 10:47:13 -03:00
2026-08-12 16:54:50 -03:00
2026-09-10 10:42:26 -03:00
2026-06-30 06:54:29 -03:00
2026-09-07 09:02:59 -03:00
2026-06-03 06:45:04 -03:00
2026-08-26 17:54:57 -03:00
2026-08-30 11:11:29 -03:00
2026-06-30 06:54:29 -03:00
2026-09-07 09:02:59 -03:00
2026-09-10 10:42:34 -03:00
2026-08-30 02:27:25 -03:00
2026-08-25 13:12:50 -03:00
2026-08-18 10:49:52 -03:00
2026-09-08 09:29:38 -03:00
2026-09-04 00:45:38 -03:00
2026-07-29 15:18:55 -03:00
2026-09-10 10:49:34 -03:00
2026-07-29 15:18:55 -03:00
2026-08-18 11:31:53 -03:00
2026-02-26 15:11:40 +00:00
2026-08-26 17:54:57 -03:00
2026-06-20 14:55:24 -03:00
2026-09-02 03:12:51 -03:00
2026-09-07 09:15:00 -03:00
2026-04-17 09:00:32 -03:00
2026-08-30 02:27:25 -03:00
2026-09-01 12:07:02 -03:00
2026-09-11 13:27:30 -03:00
2026-04-23 16:57:43 -03:00
2026-09-10 10:23:26 -03:00
2026-08-23 14:25:04 -03:00
2026-08-18 11:25:46 -03:00
2026-08-04 14:34:02 -03:00
2026-08-07 20:53:21 -03:00
2026-08-21 20:54:51 -03:00
2026-08-30 02:27:25 -03:00
2026-05-29 12:44:29 -03:00
2026-08-18 11:31:46 -03:00
2026-08-26 17:40:22 -03:00
2026-06-17 02:43:21 -03:00
2026-08-29 08:10:17 -03:00
2026-08-23 16:51:25 -03:00
2026-03-29 14:37:55 +02:00
2026-03-17 04:24:46 -03:00
2026-08-09 09:52:28 -03:00
2026-08-26 08:11:09 -03:00
2026-05-29 12:44:29 -03:00
2026-08-30 02:27:25 -03:00
2026-08-20 06:29:42 -03:00
2026-08-30 02:27:25 -03:00
2026-08-05 22:41:38 -03:00
2026-09-03 21:01:09 -03:00
2026-06-29 08:40:06 -03:00
2026-08-30 09:09:36 -03:00
2026-06-29 08:40:06 -03:00
2026-08-30 09:21:53 -03:00
2026-09-01 11:58:15 -03:00
2026-07-29 15:18:55 -03:00
2026-09-01 11:58:15 -03:00
2026-08-31 14:13:53 -03:00
2026-08-20 11:47:38 -03:00
2026-08-30 02:27:25 -03:00
2026-08-30 09:16:52 -03:00
2026-08-18 10:57:44 -03:00
2026-07-29 15:18:55 -03:00
2026-08-30 02:27:25 -03:00
2026-08-25 20:11:56 -03:00
2026-09-03 21:31:13 -03:00
2026-08-31 14:13:53 -03:00
2026-09-01 00:50:58 -03:00
2026-08-23 07:01:07 -03:00
2026-08-17 08:21:53 -03:00
2026-08-21 14:58:53 -03:00
2026-08-15 14:23:29 -03:00
2026-08-09 09:55:16 -03:00
2026-08-20 09:31:12 -03:00
2026-08-24 19:57:12 -03:00
2026-08-30 02:27:25 -03:00
2026-04-30 01:27:03 -03:00
2026-06-03 06:45:04 -03:00
2026-08-18 11:31:53 -03:00
2026-06-01 23:13:19 -03:00
2026-08-20 13:11:03 -03:00
2026-08-28 06:52:46 -03:00
2026-08-20 15:19:32 -03:00
2026-08-30 02:27:25 -03:00
2026-06-29 08:40:06 -03:00
2026-09-03 21:31:13 -03:00
2026-08-26 08:10:51 -03:00
2026-07-29 15:18:55 -03:00
2026-08-25 01:38:59 -03:00
2026-08-11 09:16:23 -03:00
2026-06-13 17:27:40 -03:00
2026-08-07 20:54:11 -03:00
2026-08-25 13:12:38 -03:00
2026-09-03 23:39:22 -03:00
2026-08-30 02:27:25 -03:00
2026-08-30 02:36:26 -03:00
2026-08-24 20:04:11 -03:00
2026-08-26 08:11:30 -03:00
2026-02-18 14:43:57 -03:00
2026-02-18 00:02:15 -03:00
2026-08-30 02:27:25 -03:00
2026-06-09 15:56:24 -03:00
2026-08-18 11:25:46 -03:00
2026-07-29 15:18:55 -03:00
2026-08-25 18:55:18 -03:00