Fix tool call timeout by implementing chunked response with keepalive

- Added special handling for HumanAgent_Chat tool calls to prevent Node.js undici 5-minute timeout
- Send HTTP headers immediately with Transfer-Encoding: chunked to stop headersTimeout
- Implement 4-minute keepalive mechanism writing space character to reset bodyTimeout
- Allows indefinite wait times for human responses in tool calls
- Tested successfully with 35+ minute wait time without timeout

Resolves issue where VS Code MCP client would cancel tool calls after ~5-6 minutes
with error 'The user cancelled the tool call' due to undici hardcoded timeouts.
This commit is contained in:
B Harper
2025-11-19 15:32:59 +11:00
parent 164b6b9f1e
commit accdbdc602
4 changed files with 310 additions and 1 deletions
+87
View File
@@ -691,3 +691,90 @@
2025-11-18T02:22:23.278Z - RESPONSE ENDPOINT CALLED - RequestID: 4-1763432483320
2025-11-18T02:26:48.410Z - RESPONSE ENDPOINT CALLED - RequestID: 3-1763432790349
2025-11-18T02:27:14.305Z - RESPONSE ENDPOINT CALLED - RequestID: 4-1763432819507
2025-11-18T02:39:58.506Z - RESPONSE ENDPOINT CALLED - RequestID: 4-1763433568966
2025-11-18T02:53:30.480Z - RESPONSE ENDPOINT CALLED - RequestID: 3-1763434329608
2025-11-18T02:56:15.460Z - RESPONSE ENDPOINT CALLED - RequestID: 4-1763434424942
2025-11-18T03:38:45.925Z - RESPONSE ENDPOINT CALLED - RequestID: 5-1763434725081
2025-11-18T03:40:19.015Z - RESPONSE ENDPOINT CALLED - RequestID: 3-1763437187183
2025-11-18T03:41:59.378Z - RESPONSE ENDPOINT CALLED - RequestID: 4-1763437242001
2025-11-18T03:43:01.827Z - RESPONSE ENDPOINT CALLED - RequestID: 5-1763437369466
2025-11-18T06:14:00.728Z - RESPONSE ENDPOINT CALLED - RequestID: 6-1763437423019
2025-11-18T06:18:02.912Z - RESPONSE ENDPOINT CALLED - RequestID: 3-1763446658929
2025-11-18T06:23:47.631Z - RESPONSE ENDPOINT CALLED - RequestID: 3-1763447021849
2025-11-18T06:25:57.558Z - RESPONSE ENDPOINT CALLED - RequestID: 4-1763447105247
2025-11-18T06:27:25.839Z - RESPONSE ENDPOINT CALLED - RequestID: 5-1763447231081
2025-11-18T06:32:46.263Z - RESPONSE ENDPOINT CALLED - RequestID: 6-1763447483088
2025-11-18T06:34:23.905Z - RESPONSE ENDPOINT CALLED - RequestID: 7-1763447622207
2025-11-18T06:35:14.021Z - RESPONSE ENDPOINT CALLED - RequestID: 8-1763447690581
2025-11-18T06:36:31.582Z - RESPONSE ENDPOINT CALLED - RequestID: 9-1763447750484
2025-11-18T06:37:44.404Z - RESPONSE ENDPOINT CALLED - RequestID: 10-1763447818173
2025-11-18T06:38:38.546Z - RESPONSE ENDPOINT CALLED - RequestID: 11-1763447875648
2025-11-18T06:39:48.141Z - RESPONSE ENDPOINT CALLED - RequestID: 12-1763447932022
2025-11-18T06:43:40.511Z - RESPONSE ENDPOINT CALLED - RequestID: 13-1763448001173
2025-11-18T06:45:17.457Z - RESPONSE ENDPOINT CALLED - RequestID: 14-1763448230522
2025-11-18T06:46:27.529Z - RESPONSE ENDPOINT CALLED - RequestID: 15-1763448329021
2025-11-18T06:48:28.407Z - RESPONSE ENDPOINT CALLED - RequestID: 16-1763448405443
2025-11-18T06:50:29.838Z - RESPONSE ENDPOINT CALLED - RequestID: 17-1763448526213
2025-11-18T06:52:12.050Z - RESPONSE ENDPOINT CALLED - RequestID: 18-1763448650631
2025-11-19T01:24:09.277Z - RESPONSE ENDPOINT CALLED - RequestID: 3-1763515019650
2025-11-19T01:25:33.021Z - RESPONSE ENDPOINT CALLED - RequestID: 3-1763515517453
2025-11-19T01:26:25.579Z - RESPONSE ENDPOINT CALLED - RequestID: 4-1763515548791
2025-11-19T01:27:28.483Z - RESPONSE ENDPOINT CALLED - RequestID: 5-1763515595531
2025-11-19T01:30:18.613Z - RESPONSE ENDPOINT CALLED - RequestID: 6-1763515656709
2025-11-19T01:32:02.270Z - RESPONSE ENDPOINT CALLED - RequestID: 7-1763515831756
2025-11-19T01:35:55.654Z - RESPONSE ENDPOINT CALLED - RequestID: 8-1763515932210
2025-11-19T01:36:23.176Z - RESPONSE ENDPOINT CALLED - RequestID: 9-1763516165498
2025-11-19T01:37:00.835Z - RESPONSE ENDPOINT CALLED - RequestID: 10-1763516192706
2025-11-19T01:39:10.905Z - RESPONSE ENDPOINT CALLED - RequestID: 11-1763516230904
2025-11-19T01:39:49.004Z - RESPONSE ENDPOINT CALLED - RequestID: 12-1763516367404
2025-11-19T01:40:17.739Z - RESPONSE ENDPOINT CALLED - RequestID: 13-1763516398238
2025-11-19T01:41:36.756Z - RESPONSE ENDPOINT CALLED - RequestID: 14-1763516481876
2025-11-19T01:42:38.294Z - RESPONSE ENDPOINT CALLED - RequestID: 15-1763516526387
2025-11-19T01:45:01.737Z - RESPONSE ENDPOINT CALLED - RequestID: 16-1763516585390
2025-11-19T01:45:35.148Z - RESPONSE ENDPOINT CALLED - RequestID: 17-1763516718714
2025-11-19T01:46:43.539Z - RESPONSE ENDPOINT CALLED - RequestID: 18-1763516759168
2025-11-19T01:47:16.740Z - RESPONSE ENDPOINT CALLED - RequestID: 19-1763516833761
2025-11-19T01:51:18.447Z - RESPONSE ENDPOINT CALLED - RequestID: 20-1763517065160
2025-11-19T01:53:24.021Z - RESPONSE ENDPOINT CALLED - RequestID: 21-1763517148133
2025-11-19T01:55:22.395Z - RESPONSE ENDPOINT CALLED - RequestID: 22-1763517220485
2025-11-19T01:55:56.343Z - RESPONSE ENDPOINT CALLED - RequestID: 23-1763517336062
2025-11-19T02:01:39.996Z - RESPONSE ENDPOINT CALLED - RequestID: 24-1763517693982
2025-11-19T02:02:56.332Z - RESPONSE ENDPOINT CALLED - RequestID: 25-1763517710116
2025-11-19T02:03:13.157Z - RESPONSE ENDPOINT CALLED - RequestID: 26-1763517783066
2025-11-19T02:05:42.415Z - RESPONSE ENDPOINT CALLED - RequestID: 27-1763517881460
2025-11-19T02:10:16.438Z - RESPONSE ENDPOINT CALLED - RequestID: 28-1763517957632
2025-11-19T02:11:54.688Z - RESPONSE ENDPOINT CALLED - RequestID: 29-1763518226131
2025-11-19T02:12:39.655Z - RESPONSE ENDPOINT CALLED - RequestID: 30-1763518329883
2025-11-19T02:15:30.961Z - RESPONSE ENDPOINT CALLED - RequestID: 31-1763518367194
2025-11-19T02:16:41.402Z - RESPONSE ENDPOINT CALLED - RequestID: 32-1763518543112
2025-11-19T02:17:43.201Z - RESPONSE ENDPOINT CALLED - RequestID: 33-1763518614727
2025-11-19T02:19:21.697Z - RESPONSE ENDPOINT CALLED - RequestID: 34-1763518676927
2025-11-19T02:20:18.802Z - RESPONSE ENDPOINT CALLED - RequestID: 35-1763518774294
2025-11-19T02:43:24.964Z - RESPONSE ENDPOINT CALLED - RequestID: 3-1763520157655
2025-11-19T02:45:01.206Z - RESPONSE ENDPOINT CALLED - RequestID: 4-1763520219515
2025-11-19T02:46:19.104Z - RESPONSE ENDPOINT CALLED - RequestID: 5-1763520313847
2025-11-19T02:57:37.343Z - RESPONSE ENDPOINT CALLED - RequestID: 3-1763521014023
2025-11-19T02:59:52.681Z - RESPONSE ENDPOINT CALLED - RequestID: 4-1763521113125
2025-11-19T03:02:14.607Z - RESPONSE ENDPOINT CALLED - RequestID: 5-1763521251826
2025-11-19T03:03:54.164Z - RESPONSE ENDPOINT CALLED - RequestID: 6-1763521353229
2025-11-19T03:06:19.281Z - RESPONSE ENDPOINT CALLED - RequestID: 7-1763521454858
2025-11-19T03:07:37.298Z - RESPONSE ENDPOINT CALLED - RequestID: 8-1763521598807
2025-11-19T03:11:39.988Z - RESPONSE ENDPOINT CALLED - RequestID: 9-1763521816638
2025-11-19T03:13:32.720Z - RESPONSE ENDPOINT CALLED - RequestID: 10-1763521924945
2025-11-19T03:15:58.163Z - RESPONSE ENDPOINT CALLED - RequestID: 11-1763522057738
2025-11-19T03:17:35.340Z - RESPONSE ENDPOINT CALLED - RequestID: 12-1763522181228
2025-11-19T03:18:55.097Z - RESPONSE ENDPOINT CALLED - RequestID: 13-1763522268824
2025-11-19T03:19:49.257Z - RESPONSE ENDPOINT CALLED - RequestID: 14-1763522377448
2025-11-19T03:21:18.464Z - RESPONSE ENDPOINT CALLED - RequestID: 15-1763522444120
2025-11-19T03:23:03.579Z - RESPONSE ENDPOINT CALLED - RequestID: 16-1763522504241
2025-11-19T03:23:50.363Z - RESPONSE ENDPOINT CALLED - RequestID: 17-1763522596596
2025-11-19T03:25:51.736Z - RESPONSE ENDPOINT CALLED - RequestID: 18-1763522683032
2025-11-19T03:36:07.974Z - RESPONSE ENDPOINT CALLED - RequestID: 3-1763523299064
2025-11-19T03:37:27.924Z - RESPONSE ENDPOINT CALLED - RequestID: 4-1763523384331
2025-11-19T03:38:54.188Z - RESPONSE ENDPOINT CALLED - RequestID: 5-1763523460761
2025-11-19T03:45:59.295Z - RESPONSE ENDPOINT CALLED - RequestID: 3-1763523836543
2025-11-19T03:46:34.788Z - RESPONSE ENDPOINT CALLED - RequestID: 4-1763523964130
2025-11-19T03:52:41.873Z - RESPONSE ENDPOINT CALLED - RequestID: 3-1763524321397
2025-11-19T04:29:21.690Z - RESPONSE ENDPOINT CALLED - RequestID: 4-1763524368377
2025-11-19T04:29:57.436Z - RESPONSE ENDPOINT CALLED - RequestID: 5-1763526575920
2025-11-19T04:32:45.235Z - RESPONSE ENDPOINT CALLED - RequestID: 3-1763526722087