saram ali
7995e408ce
fix(discord): clear stale heartbeat timers in SafeGatewayPlugin.connect() ( #65087 )
...
* fix(discord): clear stale heartbeat timers in SafeGatewayPlugin.connect()
The @buape/carbon@0.15 .0 heartbeat setup has a race where stopHeartbeat()
runs before heartbeatInterval is assigned, leaving a stale setInterval with
a closed reconnectCallback. When the stale interval fires ~41s later it
throws an uncaught exception that bypasses the EventEmitter error path and
crashes the gateway process via process.on('uncaughtException').
Add a connect() override in SafeGatewayPlugin that unconditionally clears
both heartbeatInterval and firstHeartbeatTimeout before calling super. The
parent's connect() only calls stopHeartbeat() when isConnecting=false; when
isConnecting=true it returns early without clearing — this override fills
that gap.
Fixes #65009 . Related: #64011 , #63387 , #62038 .
* test(discord): assert super.connect() delegation in SafeGatewayPlugin tests
* fix(ci): update raw-fetch allowlist line numbers for gateway-plugin.ts
The connect() override added in the heartbeat fix shifted the two
pre-existing fetch() callsites from lines 370/436 to 387/453.
* docs(changelog): add discord heartbeat crash note
* test(cli): align plugin registry load-context mock
---------
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-04-12 18:40:04 +01:00
..
2026-04-08 01:36:38 +01:00
2026-04-12 00:05:01 +01:00
2026-04-11 18:36:48 +01:00
2026-04-11 01:27:48 +01:00
2026-04-11 18:36:48 +01:00
2026-04-11 12:34:57 -05:00
2026-04-11 13:26:50 +01:00
2026-04-12 18:26:43 +01:00
2026-04-08 15:58:45 +01:00
2026-04-06 14:16:03 +01:00
2026-04-06 14:16:03 +01:00
2026-04-06 22:21:01 +01:00
2026-04-06 22:21:01 +01:00
2026-04-06 22:21:01 +01:00
2026-04-12 17:05:18 +01:00
2026-04-11 18:36:48 +01:00
2026-04-08 01:36:38 +01:00
2026-04-04 01:07:28 +09:00
2026-04-04 01:07:28 +09:00
2026-04-06 13:51:51 +01:00
2026-04-06 13:51:51 +01:00
2026-04-07 03:46:24 +01:00
2026-04-06 07:41:08 +01:00
2026-04-06 07:41:08 +01:00
2026-04-06 14:16:03 +01:00
2026-04-06 14:16:03 +01:00
2026-04-08 18:03:03 +02:00
2026-04-06 15:38:04 +01:00
2026-04-06 15:38:04 +01:00
2026-04-07 03:37:15 +01:00
2026-04-11 02:15:21 +01:00
2026-04-08 11:47:59 +01:00
2026-04-08 11:47:59 +01:00
2026-04-07 03:02:41 +08:00
2026-04-11 18:36:48 +01:00
2026-04-06 23:31:34 +01:00
2026-04-07 02:58:10 +08:00
2026-04-07 02:58:10 +08:00
2026-04-11 13:26:50 +01:00
2026-04-06 13:51:51 +01:00
2026-04-06 14:16:03 +01:00
2026-04-07 19:59:51 +08:00
2026-04-11 12:53:56 +01:00
2026-04-11 12:53:56 +01:00
2026-04-10 11:45:28 +01:00
2026-04-11 15:48:58 +10:00
2026-04-11 13:26:50 +01:00
2026-04-08 01:36:38 +01:00
2026-04-11 00:39:04 +01:00
2026-04-09 14:29:54 +05:30
2026-04-03 19:09:21 +01:00
2026-04-11 13:26:50 +01:00
2026-04-11 13:26:50 +01:00
2026-04-11 02:55:01 +01:00
2026-04-11 18:36:48 +01:00
2026-04-08 01:36:38 +01:00
2026-04-04 18:24:29 -07:00
2026-04-07 23:57:46 +01:00
2026-04-08 01:36:38 +01:00
2026-04-10 12:14:36 +01:00
2026-04-11 13:26:50 +01:00
2026-04-03 19:10:56 +01:00
2026-04-11 18:36:48 +01:00
2026-04-10 09:00:19 +01:00
2026-04-10 09:00:19 +01:00
2026-04-08 15:58:45 +01:00
2026-04-11 13:26:50 +01:00
2026-04-04 01:07:28 +09:00
2026-04-04 00:28:25 +01:00
2026-04-11 01:27:48 +01:00
2026-04-08 15:58:45 +01:00
2026-04-07 09:44:53 +01:00
2026-04-06 13:42:44 +01:00
2026-04-03 20:34:23 +01:00
2026-04-07 02:03:33 +01:00
2026-04-11 13:42:17 +01:00
2026-04-03 19:53:38 +01:00
2026-04-11 10:43:22 +01:00
2026-04-11 21:16:50 +01:00
2026-04-08 01:36:38 +01:00
2026-04-08 01:36:38 +01:00
2026-04-03 19:09:20 +01:00
2026-04-08 01:44:13 +01:00
2026-04-06 13:51:51 +01:00
2026-04-12 18:40:04 +01:00
2026-04-03 19:09:20 +01:00
2026-04-11 13:26:50 +01:00
2026-04-08 09:58:22 +01:00
2026-04-11 08:22:36 +01:00
2026-04-11 13:26:50 +01:00
2026-04-11 08:12:34 +01:00
2026-04-11 08:08:41 +01:00
2026-04-11 13:26:50 +01:00
2026-04-11 13:26:50 +01:00
2026-04-04 04:26:51 +09:00
2026-04-11 13:26:50 +01:00
2026-04-11 08:08:41 +01:00
2026-04-11 08:22:36 +01:00
2026-04-11 08:22:36 +01:00
2026-04-11 08:12:34 +01:00
2026-04-11 13:26:50 +01:00
2026-04-11 08:08:41 +01:00
2026-04-11 08:08:41 +01:00
2026-04-11 08:08:41 +01:00
2026-04-03 19:54:37 +01:00
2026-04-07 02:03:34 +01:00
2026-04-07 17:50:38 +01:00
2026-04-08 18:03:03 +02:00
2026-04-08 01:36:38 +01:00
2026-04-12 16:08:12 +01:00
2026-04-10 21:53:47 +01:00
2026-04-12 16:08:12 +01:00
2026-04-07 13:01:23 +01:00
2026-04-11 12:34:57 -05:00
2026-04-11 12:34:57 -05:00
2026-04-11 12:34:57 -05:00
2026-04-11 12:34:57 -05:00
2026-04-04 16:55:04 +09:00
2026-04-11 13:26:50 +01:00
2026-04-07 01:16:15 +01:00
2026-04-06 14:16:03 +01:00
2026-04-04 02:35:36 +01:00
2026-04-08 00:30:22 +01:00
2026-04-06 14:16:03 +01:00
2026-04-08 11:47:59 +01:00
2026-04-03 19:10:56 +01:00
2026-04-12 17:32:11 +01:00
2026-04-12 17:32:11 +01:00
2026-04-08 01:36:38 +01:00
2026-04-04 18:09:44 +03:00
2026-04-07 07:36:11 +01:00
2026-04-03 20:34:23 +01:00
2026-04-08 01:36:38 +01:00
2026-04-03 21:34:42 +01:00
2026-04-04 16:55:04 +09:00
2026-04-04 16:55:04 +09:00
2026-04-12 18:26:43 +01:00
2026-04-08 01:36:38 +01:00
2026-04-07 17:50:38 +01:00