yunweibang
f4a2bbe0c9
fix(feishu): add early event-level dedup to prevent duplicate replies ( #43762 )
...
* fix(feishu): add early event-level dedup to prevent duplicate replies
Add synchronous in-memory dedup at EventDispatcher handler level using
message_id as key with 5-minute TTL and 2000-entry cap.
This catches duplicate events immediately when they arrive from the Lark
SDK — before the inbound debouncer or processing queue — preventing the
race condition where two concurrent dispatches enter the pipeline before
either records the messageId in the downstream dedup layer.
Fixes the root cause reported in #42687 .
* fix(feishu): correct inverted dedup condition
check() returns false on first call (new key) and true on subsequent
calls (duplicate). The previous `!check()` guard was inverted —
dropping every first delivery and passing all duplicates.
Remove the negation so the guard correctly drops duplicates.
* fix(feishu): simplify eventDedup key — drop redundant accountId prefix
eventDedup is already scoped per account (one instance per
registerEventHandlers call), so the accountId prefix in the cache key
is redundant. Use `evt:${messageId}` instead.
* fix(feishu): share inbound processing claim dedupe
---------
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-03-13 22:37:40 -05:00
..
2026-03-13 23:56:24 +00:00
2026-03-14 02:09:53 +00:00
2026-03-14 03:22:53 +00:00
2026-03-14 00:04:18 +00:00
2026-02-18 16:14:07 +00:00
2026-03-13 18:51:21 +00:00
2026-02-26 04:36:25 +01:00
2026-03-13 19:53:40 +00:00
2026-03-06 01:14:00 -05:00
2026-03-14 00:06:47 +00:00
2026-03-13 18:29:56 +00:00
2026-02-18 16:48:35 +00:00
2026-03-13 23:49:07 +00:00
2026-03-10 23:52:31 +00:00
2026-03-14 00:06:47 +00:00
2026-03-10 23:54:12 +00:00
2026-03-14 00:53:47 +00:00
2026-03-13 20:38:24 +00:00
2026-03-10 20:16:35 -04:00
2026-03-13 19:59:11 +00:00
2026-03-14 00:54:42 +00:00
2026-03-14 00:36:31 +00:00
2026-03-14 00:36:31 +00:00
2026-02-22 08:00:41 +00:00
2026-03-13 21:02:19 +00:00
2026-03-02 19:57:33 +00:00
2026-03-13 18:38:12 +00:00
2026-03-07 10:41:05 +00:00
2026-03-13 23:47:22 +00:00
2026-03-13 19:32:59 +00:00
2026-02-16 16:42:28 +00:00
2026-03-14 00:55:32 +00:00
2026-03-14 00:51:12 +00:00
2026-03-06 19:35:26 -05:00
2026-03-13 19:56:04 +00:00
2026-02-18 01:34:35 +00:00
2026-03-13 19:18:45 +00:00
2026-03-02 20:05:12 -05:00
2026-03-13 19:50:27 +00:00
2026-03-09 01:50:42 +01:00
2026-03-09 01:50:42 +01:00
2026-03-13 20:16:57 +00:00
2026-03-13 22:37:40 -05:00
2026-03-14 00:26:03 +00:00
2026-03-14 00:26:03 +00:00
2026-03-13 20:20:27 +00:00
2026-03-02 08:54:20 +00:00
2026-03-14 00:22:19 +00:00
2026-03-14 00:22:19 +00:00
2026-03-13 19:16:38 +00:00
2026-03-13 23:50:15 +00:00
2026-03-13 23:50:15 +00:00
2026-03-13 23:58:45 +01:00
2026-03-12 01:42:12 -04:00
2026-03-13 20:18:50 +00:00
2026-02-19 02:36:47 -08:00
2026-03-13 19:56:04 +00:00
2026-02-21 21:40:39 +00:00
2026-02-18 01:34:35 +00:00
2026-03-13 18:51:02 +00:00
2026-03-13 19:53:40 +00:00
2026-03-02 19:57:33 +00:00
2026-03-13 20:34:25 +00:00
2026-03-13 18:46:11 +00:00
2026-03-12 04:01:49 -04:00
2026-03-13 19:57:49 +00:00
2026-03-12 01:20:04 -04:00
2026-03-13 20:40:19 +00:00
2026-03-13 21:02:19 +00:00
2026-03-13 21:02:19 +00:00
2026-03-13 20:37:21 +00:00
2026-03-13 21:02:19 +00:00
2026-03-13 20:19:39 +00:00
2026-03-13 20:13:53 +00:00
2026-03-13 18:38:12 +00:00
2026-03-13 20:19:39 +00:00
2026-03-08 00:39:54 +00:00
2026-03-13 21:01:35 +00:00
2026-03-07 23:31:25 +00:00
2026-02-22 23:20:09 +01:00
2026-02-22 23:20:09 +01:00
2026-03-13 20:43:54 +00:00
2026-02-24 01:52:17 +00:00
2026-03-13 20:43:08 +00:00
2026-02-22 23:20:09 +01:00
2026-03-13 21:18:13 +00:00
2026-03-11 01:43:06 +00:00
2026-03-13 21:02:19 +00:00
2026-03-02 21:55:01 +00:00
2026-03-13 20:12:04 +00:00
2026-03-12 21:00:00 -04:00
2026-03-13 12:35:39 +11:00
2026-02-24 03:05:03 +00:00
2026-02-24 03:05:03 +00:00
2026-03-13 23:54:12 +00:00
2026-02-24 03:05:03 +00:00
2026-03-13 23:55:07 +00:00
2026-03-13 23:55:07 +00:00
2026-02-24 23:29:44 +00:00
2026-02-24 23:29:44 +00:00
2026-03-13 19:39:07 +00:00
2026-03-13 19:06:22 +00:00
2026-03-09 07:01:42 +00:00
2026-03-13 22:07:14 +00:00
2026-03-13 22:07:14 +00:00
2026-03-14 00:20:47 +00:00
2026-02-16 08:24:55 -05:00
2026-03-13 18:35:55 +00:00
2026-02-25 00:42:04 +00:00
2026-03-13 18:49:41 +00:00
2026-02-19 14:55:06 +01:00
2026-03-11 02:38:00 +00:00
2026-03-11 02:38:00 +00:00
2026-03-11 02:38:00 +00:00
2026-03-11 02:38:00 +00:00
2026-02-23 05:45:54 +00:00
2026-03-08 23:38:24 +00:00
2026-03-13 23:44:44 +00:00
2026-03-08 23:38:24 +00:00
2026-03-13 20:31:20 +00:00
2026-03-13 18:33:59 +00:00
2026-03-13 19:31:59 +00:00
2026-02-16 23:53:21 +01:00
2026-03-11 23:29:53 +00:00
2026-03-08 18:40:14 +00:00
2026-03-13 18:53:02 +00:00
2026-02-18 00:45:43 -05:00
2026-03-13 19:59:11 +00:00
2026-02-26 03:59:17 +01:00
2026-02-19 20:03:57 -05:00
2026-02-19 20:03:57 -05:00
2026-03-13 18:34:13 +00:00
2026-02-25 01:28:47 +00:00
2026-03-13 20:06:14 +00:00
2026-03-13 18:48:12 +00:00
2026-03-10 21:42:15 +01:00
2026-02-25 02:13:07 +00:00
2026-03-01 20:13:24 -06:00
2026-02-25 02:28:42 +00:00
2026-03-05 18:52:39 -08:00
2026-03-14 00:51:12 +00:00
2026-02-22 10:28:42 +00:00
2026-02-18 01:34:35 +00:00
2026-02-22 20:04:51 +00:00
2026-02-22 20:04:51 +00:00
2026-03-10 21:42:15 +01:00
2026-02-19 14:27:36 +00:00
2026-03-13 21:40:54 +00:00
2026-03-10 21:42:15 +01:00
2026-03-14 00:26:57 +00:00
2026-03-13 21:40:53 +00:00
2026-03-12 01:16:03 -04:00
2026-03-07 19:18:05 +00:00
2026-03-13 20:19:38 +00:00
2026-03-13 21:40:54 +00:00
2026-03-13 18:13:39 +00:00
2026-03-13 21:40:54 +00:00
2026-03-13 19:59:11 +00:00
2026-03-13 20:18:50 +00:00
2026-03-13 21:40:54 +00:00
2026-02-22 18:37:25 +00:00
2026-03-13 19:54:16 +00:00
2026-03-02 19:57:33 +00:00
2026-03-13 19:53:40 +00:00
2026-02-22 18:37:25 +00:00
2026-03-13 11:26:14 -07:00
2026-03-13 11:26:14 -07:00
2026-03-13 23:45:36 +00:00
2026-03-02 17:12:33 +00:00
2026-03-13 18:08:48 +00:00
2026-03-02 19:57:33 +00:00
2026-03-13 19:54:16 +00:00
2026-03-02 17:23:29 +00:00
2026-03-14 00:43:19 +00:00
2026-02-22 10:44:47 +01:00
2026-03-14 00:44:12 +00:00
2026-03-14 00:27:40 +00:00
2026-03-12 18:15:35 +02:00
2026-03-13 19:18:45 +00:00
2026-03-02 05:20:19 +00:00
2026-03-13 20:12:04 +00:00
2026-03-13 23:43:06 +00:00
2026-03-13 23:43:06 +00:00
2026-03-13 19:30:06 +00:00
2026-02-16 14:59:30 +00:00
2026-02-26 22:01:06 +01:00
2026-02-19 13:54:35 +00:00
2026-03-07 10:41:05 +00:00
2026-03-14 01:05:46 +00:00
2026-03-13 19:01:16 +00:00
2026-02-19 15:08:14 +00:00
2026-03-13 19:45:37 +00:00
2026-03-06 11:13:30 -05:00
2026-03-13 18:54:21 +00:00
2026-03-06 11:13:30 -05:00
2026-03-14 01:03:24 +00:00
2026-03-09 19:14:08 -04:00
2026-03-13 19:04:41 +00:00
2026-03-13 21:40:54 +00:00
2026-03-13 19:34:10 +00:00
2026-03-13 23:39:44 +00:00
2026-03-13 23:39:44 +00:00
2026-03-14 00:58:12 +00:00
2026-03-14 00:23:57 +00:00
2026-03-14 01:29:04 +00:00
2026-02-19 13:54:35 +00:00
2026-03-13 20:38:24 +00:00
2026-02-22 21:19:09 +00:00
2026-03-14 01:04:18 +00:00
2026-03-14 01:04:18 +00:00
2026-03-13 19:24:22 +00:00
2026-03-08 03:02:25 +00:00
2026-03-13 18:38:12 +00:00
2026-02-26 13:19:59 +01:00
2026-03-13 18:06:53 +00:00
2026-03-14 00:39:27 +00:00
2026-03-13 23:37:37 +00:00
2026-03-14 00:28:34 +00:00
2026-03-02 10:14:38 -06:00
2026-03-13 19:24:22 +00:00
2026-02-22 17:11:54 +00:00
2026-03-13 19:18:45 +00:00
2026-02-19 14:27:36 +00:00
2026-03-13 21:40:54 +00:00
2026-03-10 20:16:35 -04:00
2026-03-13 20:18:50 +00:00
2026-02-18 01:34:35 +00:00
2026-03-04 10:52:33 -08:00
2026-03-13 19:35:27 +00:00
2026-03-13 19:39:07 +00:00
2026-02-22 21:19:09 +00:00
2026-02-23 13:53:10 -05:00
2026-03-13 20:18:50 +00:00
2026-02-22 21:19:09 +00:00
2026-03-13 21:40:54 +00:00
2026-03-12 01:16:49 +01:00
2026-03-14 01:01:27 +00:00
2026-02-24 01:09:31 +00:00
2026-03-13 19:53:40 +00:00
2026-03-10 23:55:10 +00:00
2026-03-13 19:23:25 +00:00
2026-02-22 10:59:34 +01:00
2026-03-13 19:22:21 +00:00
2026-03-02 20:35:45 +00:00
2026-03-13 19:13:51 +00:00
2026-02-19 12:51:30 +00:00
2026-03-13 19:13:01 +00:00
2026-02-19 12:51:30 +00:00
2026-03-13 18:10:40 +00:00
2026-02-19 13:28:18 +00:00
2026-03-13 19:53:40 +00:00
2026-03-07 10:41:05 +00:00
2026-02-23 05:20:14 +01:00
2026-03-13 19:15:25 +00:00
2026-03-13 19:15:25 +00:00
2026-03-13 19:44:09 +00:00
2026-02-19 13:28:18 +00:00
2026-03-13 23:59:31 +00:00
2026-02-23 05:20:14 +01:00
2026-03-13 19:13:51 +00:00
2026-02-23 05:20:14 +01:00
2026-03-13 23:59:31 +00:00
2026-02-23 05:20:14 +01:00
2026-03-14 00:11:03 +00:00
2026-03-14 00:09:15 +00:00
2026-03-12 18:15:35 +02:00
2026-03-14 00:13:07 +00:00
2026-03-14 00:19:04 +00:00
2026-03-12 18:15:35 +02:00
2026-03-13 19:36:49 +00:00
2026-03-03 00:30:34 +00:00
2026-03-13 20:37:54 +00:00
2026-03-07 21:36:24 +00:00
2026-03-07 21:36:24 +00:00
2026-03-09 08:27:29 -07:00
2026-03-13 17:47:47 +00:00
2026-03-08 01:14:16 +00:00
2026-03-13 18:26:42 +00:00
2026-03-13 19:10:11 +00:00
2026-03-13 19:37:49 +00:00
2026-03-12 20:07:44 +05:30
2026-03-14 00:24:59 +00:00
2026-03-14 00:24:59 +00:00
2026-03-13 19:53:40 +00:00
2026-03-01 21:41:47 +00:00
2026-03-14 00:38:14 +01:00
2026-03-14 00:38:14 +01:00
2026-03-03 02:58:20 +00:00
2026-03-13 22:04:54 +00:00
2026-03-10 23:40:10 +00:00
2026-03-13 19:17:24 +00:00
2026-02-22 10:16:02 +01:00
2026-02-21 19:13:46 +00:00
2026-02-21 19:26:04 +01:00
2026-03-02 14:36:41 +00:00
2026-03-13 19:03:01 +00:00
2026-03-03 20:14:41 -05:00
2026-03-13 22:02:18 +00:00
2026-02-24 03:11:33 +00:00
2026-03-13 20:37:38 +00:00
2026-03-13 20:37:38 +00:00
2026-03-13 18:48:03 +00:00
2026-02-18 01:34:35 +00:00
2026-03-13 19:15:25 +00:00
2026-03-13 20:12:04 +00:00
2026-02-19 11:08:23 +01:00
2026-03-13 19:50:27 +00:00
2026-03-02 23:07:20 +00:00
2026-03-13 19:42:47 +00:00
2026-02-18 01:34:35 +00:00
2026-03-13 19:16:38 +00:00
2026-03-14 00:17:20 +00:00
2026-03-08 02:16:03 +00:00
2026-03-13 19:57:49 +00:00
2026-03-09 06:19:30 +00:00
2026-03-13 19:35:27 +00:00
2026-02-28 11:18:01 +05:30
2026-03-13 19:17:24 +00:00
2026-02-26 11:00:09 +01:00
2026-03-13 19:03:01 +00:00
2026-03-03 02:41:52 -05:00
2026-03-13 18:56:54 +00:00
2026-03-13 19:21:17 +00:00
2026-03-11 01:43:06 +00:00
2026-03-13 19:13:01 +00:00
2026-03-11 01:43:06 +00:00
2026-02-26 18:09:01 +01:00
2026-03-11 01:43:06 +00:00
2026-03-14 00:42:13 +00:00
2026-03-13 18:38:11 +00:00
2026-03-13 19:30:46 +00:00
2026-03-07 23:27:51 +00:00
2026-03-13 19:34:10 +00:00
2026-02-22 17:20:27 +01:00
2026-03-13 18:24:02 +00:00
2026-03-13 23:46:45 +00:00
2026-02-26 21:59:55 +00:00
2026-03-14 00:22:19 +00:00
2026-02-18 01:34:35 +00:00
2026-03-06 21:47:32 -06:00
2026-03-12 21:52:17 -07:00
2026-03-12 21:52:17 -07:00
2026-03-14 00:56:42 +00:00
2026-02-24 02:05:37 +00:00
2026-03-13 19:46:52 +00:00
2026-02-24 02:05:37 +00:00
2026-03-13 19:42:47 +00:00
2026-03-12 23:56:48 +00:00
2026-03-13 21:40:52 +00:00
2026-03-12 23:56:48 +00:00
2026-03-03 03:04:13 +00:00
2026-03-02 16:45:12 +00:00
2026-03-13 20:00:43 +00:00
2026-03-14 00:40:23 +00:00
2026-02-22 07:44:57 +00:00
2026-03-13 19:53:40 +00:00
2026-03-07 18:00:38 +05:30
2026-03-07 18:00:38 +05:30
2026-03-13 20:38:24 +00:00
2026-02-18 01:34:35 +00:00
2026-03-14 00:41:22 +00:00
2026-03-07 16:43:19 -08:00