@yu_robotics/remote-cli-router 1.6.49 → 1.6.66

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/server.js CHANGED
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.RouterServer = void 0;
7
+ const ApprovalCards_1 = require("./feishu/ApprovalCards");
7
8
  const koa_1 = __importDefault(require("koa"));
8
9
  const koa_bodyparser_1 = __importDefault(require("koa-bodyparser"));
9
10
  const router_1 = __importDefault(require("@koa/router"));
@@ -26,9 +27,11 @@ class RouterServer {
26
27
  feishuLongConnHandler;
27
28
  connectionHub;
28
29
  bindingManager;
30
+ approvalCards;
29
31
  cleanupInterval = null;
30
32
  // Track streaming messages and coalesced Feishu card update state.
31
33
  streamingMessages = new Map();
34
+ completedTasks = new Map();
32
35
  queueMessageOperations = new Map();
33
36
  startedQueueMessages = new Map();
34
37
  STREAMING_SESSION_TIMEOUT_MS = 30 * 60 * 1000; // 30 minutes timeout
@@ -55,6 +58,16 @@ class RouterServer {
55
58
  });
56
59
  // Share ConnectionHub with Feishu handler
57
60
  this.feishuLongConnHandler.setConnectionHub(this.connectionHub);
61
+ this.approvalCards = new ApprovalCards_1.ApprovalCards({
62
+ ownsDevice: async (openId, deviceId) => (await this.bindingManager.getDeviceBinding(deviceId))?.openId === openId,
63
+ sendToDevice: (deviceId, message) => this.connectionHub.sendToDevice(deviceId, message),
64
+ create: (openId, elements) => this.feishuLongConnHandler.sendTaskNotificationCard(openId, elements),
65
+ update: (cardId, elements) => this.feishuLongConnHandler.updateApprovalCard(cardId, elements),
66
+ registerReplyRoute: (cardId, threadId, deviceId) => {
67
+ this.cardThreadMap.set(cardId, { threadId, deviceId, expiresAt: Date.now() + this.CARD_THREAD_MAP_TTL_MS });
68
+ },
69
+ });
70
+ this.feishuLongConnHandler.onApprovalAction = (openId, requestId, cardId, decision) => this.approvalCards.click(openId, requestId, cardId, decision);
58
71
  // Register callback for streaming message start
59
72
  this.feishuLongConnHandler.setOnStartStreaming((messageId, openId, feishuMessageId, deviceId, threadId, pendingNewThread, queueCardId) => {
60
73
  console.log(`[RouterServer] Registering streaming session: msgId=${messageId}, feishuMsgId=${feishuMessageId}, deviceId=${deviceId}, threadId=${threadId}, pendingNewThread=${pendingNewThread}`);
@@ -231,6 +244,8 @@ class RouterServer {
231
244
  this.wss.on('connection', (ws, req) => {
232
245
  console.log('New WebSocket connection from:', req.socket.remoteAddress);
233
246
  let deviceId = null;
247
+ let taskRecoveryEnabled = false;
248
+ let approvalCardsEnabled = false;
234
249
  let heartbeatTimeout = null;
235
250
  // Reset heartbeat timeout
236
251
  const resetHeartbeat = () => {
@@ -249,14 +264,30 @@ class RouterServer {
249
264
  let finishQueueMessage;
250
265
  try {
251
266
  const message = JSON.parse(data.toString());
267
+ if (deviceId && message.type !== types_1.MessageType.BINDING_REQUEST
268
+ && !this.connectionHub.isCurrentConnection(deviceId, ws))
269
+ return;
252
270
  // Update heartbeat on any message
253
271
  resetHeartbeat();
272
+ if (message.type === 'approval_request' || message.type === 'approval_resolved') {
273
+ if (!approvalCardsEnabled || !deviceId)
274
+ return;
275
+ if (message.type === 'approval_request') {
276
+ await this.approvalCards.receive(message, deviceId, () => this.connectionHub.isCurrentConnection(deviceId, ws));
277
+ }
278
+ else
279
+ await this.approvalCards.resolve(message, deviceId);
280
+ return;
281
+ }
254
282
  if (message.type === 'queue_started') {
255
283
  await this.handleQueueStarted(message, deviceId);
256
284
  return;
257
285
  }
258
286
  // Serialize queued output through card creation, asynchronous tool/image
259
287
  // updates, and completion. Other threads retain independent streams.
288
+ if (taskRecoveryEnabled && (message.type === 'task_resume' || message.type === types_1.MessageType.RESPONSE)) {
289
+ this.startedQueueMessages.set(message.messageId, Date.now());
290
+ }
260
291
  if (this.startedQueueMessages.has(message.messageId)) {
261
292
  const previous = this.queueMessageOperations.get(message.messageId);
262
293
  const completed = new Promise((resolve) => {
@@ -270,8 +301,26 @@ class RouterServer {
270
301
  this.queueMessageOperations.set(message.messageId, completed);
271
302
  if (previous)
272
303
  await previous;
304
+ if (deviceId && !this.connectionHub.isCurrentConnection(deviceId, ws))
305
+ return;
273
306
  }
274
307
  switch (message.type) {
308
+ case 'task_resume': {
309
+ if (!taskRecoveryEnabled || !deviceId)
310
+ break;
311
+ const current = () => this.connectionHub.isCurrentConnection(deviceId, ws);
312
+ let success = false;
313
+ try {
314
+ success = await this.handleTaskResume(message, deviceId, current);
315
+ }
316
+ catch (error) {
317
+ console.error('[RouterServer] Failed to recover task card:', error);
318
+ }
319
+ if (current())
320
+ ws.send(JSON.stringify({ type: 'task_resume_ack', messageId: message.messageId,
321
+ recoveryId: message.taskResume?.recoveryId, state: message.taskResume?.state, success, timestamp: Date.now() }));
322
+ break;
323
+ }
275
324
  case types_1.MessageType.BINDING_REQUEST:
276
325
  // Device sends binding request with deviceId and optional protocolVersion
277
326
  deviceId = message.data.deviceId;
@@ -294,6 +343,7 @@ class RouterServer {
294
343
  ws.close();
295
344
  break;
296
345
  }
346
+ this.approvalCards.disconnect(deviceId);
297
347
  if (message.data.capabilities?.queueStarted === true) {
298
348
  this.connectionHub.registerConnection(deviceId, ws, { queueStarted: true });
299
349
  }
@@ -301,6 +351,8 @@ class RouterServer {
301
351
  this.connectionHub.registerConnection(deviceId, ws);
302
352
  }
303
353
  console.log(`Device registered: ${deviceId} (protocol v${clientVersion})`);
354
+ taskRecoveryEnabled = message.data.capabilities?.taskRecovery === true;
355
+ approvalCardsEnabled = message.data.capabilities?.approvalCards === true;
304
356
  // Send confirmation with version info for client-side version check
305
357
  ws.send(JSON.stringify({
306
358
  type: types_1.MessageType.BINDING_CONFIRM,
@@ -310,6 +362,10 @@ class RouterServer {
310
362
  success: true,
311
363
  routerVersion: types_1.ROUTER_VERSION,
312
364
  minCliVersion: types_1.MIN_SUPPORTED_CLI_VERSION,
365
+ ...((taskRecoveryEnabled || approvalCardsEnabled) ? { capabilities: {
366
+ ...(taskRecoveryEnabled ? { taskRecovery: true } : {}),
367
+ ...(approvalCardsEnabled ? { approvalCards: true } : {}),
368
+ } } : {}),
313
369
  }
314
370
  }));
315
371
  }
@@ -328,11 +384,16 @@ class RouterServer {
328
384
  }));
329
385
  break;
330
386
  case types_1.MessageType.RESPONSE:
387
+ if (taskRecoveryEnabled && deviceId && this.isCompletedTask(message.messageId, deviceId)) {
388
+ ws.send(JSON.stringify({ type: 'task_result_ack', messageId: message.messageId, timestamp: Date.now() }));
389
+ break;
390
+ }
331
391
  // Device sends response to command - forward to Feishu via long connection
332
392
  const responseOpenId = message.openId || message.data?.openId;
333
393
  const responseMessageId = message.messageId;
334
394
  const sessionAbbr = message.sessionAbbr || message.data?.sessionAbbr;
335
- const cwd = message.cwd || message.data?.cwd || this.streamingMessages.get(message.messageId)?.queueStarted?.cwd;
395
+ const cwd = message.cwd || message.data?.cwd || this.streamingMessages.get(message.messageId)?.queueStarted?.cwd
396
+ || this.streamingMessages.get(message.messageId)?.recoveryCwd;
336
397
  const responseThreadId = message.threadId || message.data?.threadId;
337
398
  const responseThreads = message.threads || message.data?.threads;
338
399
  const queueConfirmation = message.queueConfirmation || message.data?.queueConfirmation;
@@ -378,13 +439,25 @@ class RouterServer {
378
439
  const success = message.success ?? message.data?.success;
379
440
  const errorMsg = message.error || message.data?.error;
380
441
  if (success) {
381
- await this.feishuLongConnHandler.sendMessage(responseOpenId, output || '✅ Command completed successfully');
442
+ const delivered = await this.feishuLongConnHandler.sendMessage(responseOpenId, output || '✅ Command completed successfully');
443
+ if (delivered === false)
444
+ throw new Error('Failed to deliver task result');
382
445
  }
383
446
  else {
384
- await this.feishuLongConnHandler.sendMessage(responseOpenId, `❌ Command failed:\n${errorMsg || 'Unknown error'}`);
447
+ const delivered = await this.feishuLongConnHandler.sendMessage(responseOpenId, `❌ Command failed:\n${errorMsg || 'Unknown error'}`);
448
+ if (delivered === false)
449
+ throw new Error('Failed to deliver task result');
385
450
  }
386
451
  }
387
452
  }
453
+ if (taskRecoveryEnabled && deviceId && this.connectionHub.isCurrentConnection(deviceId, ws)
454
+ && responseOpenId && responseMessageId && !queueConfirmation
455
+ && typeof (message.success ?? message.data?.success) === 'boolean') {
456
+ this.rememberCompletedTask(responseMessageId, deviceId);
457
+ if (this.connectionHub.isCurrentConnection(deviceId, ws)) {
458
+ ws.send(JSON.stringify({ type: 'task_result_ack', messageId: responseMessageId, timestamp: Date.now() }));
459
+ }
460
+ }
388
461
  break;
389
462
  case 'stream':
390
463
  // Handle streaming output from device
@@ -471,9 +544,9 @@ class RouterServer {
471
544
  ws.on('close', () => {
472
545
  if (heartbeatTimeout)
473
546
  clearTimeout(heartbeatTimeout);
474
- if (deviceId) {
475
- this.connectionHub.unregisterConnection(deviceId);
547
+ if (deviceId && this.connectionHub.unregisterConnection(deviceId, ws)) {
476
548
  // Clean up any streaming sessions for this device
549
+ this.approvalCards.disconnect(deviceId);
477
550
  this.cleanupStreamingSessionsForDevice(deviceId);
478
551
  console.log('Device disconnected:', deviceId);
479
552
  }
@@ -588,7 +661,7 @@ class RouterServer {
588
661
  }
589
662
  const elements = [...streamData.elements];
590
663
  if (streamData.currentTextContent.trim()) {
591
- elements.push((0, ToolFormatter_1.createMarkdownElement)(streamData.currentTextContent));
664
+ elements.push(...this.renderCurrentText(streamData));
592
665
  }
593
666
  streamData.lastRenderedTextLength = streamData.currentTextContent.length;
594
667
  streamData.hasUpdated = true;
@@ -608,8 +681,9 @@ class RouterServer {
608
681
  }
609
682
  // Flush current text content to elements if any
610
683
  if (streamData.currentTextContent.trim()) {
611
- streamData.elements.push((0, ToolFormatter_1.createMarkdownElement)(streamData.currentTextContent));
684
+ streamData.elements.push(...this.renderCurrentText(streamData));
612
685
  streamData.currentTextContent = '';
686
+ streamData.recoveryPlainText = false;
613
687
  streamData.lastRenderedTextLength = 0;
614
688
  }
615
689
  streamData.updatePending = false;
@@ -635,8 +709,9 @@ class RouterServer {
635
709
  }
636
710
  // Flush current text content to elements if any
637
711
  if (streamData.currentTextContent.trim()) {
638
- streamData.elements.push((0, ToolFormatter_1.createMarkdownElement)(streamData.currentTextContent));
712
+ streamData.elements.push(...this.renderCurrentText(streamData));
639
713
  streamData.currentTextContent = '';
714
+ streamData.recoveryPlainText = false;
640
715
  streamData.lastRenderedTextLength = 0;
641
716
  }
642
717
  streamData.updatePending = false;
@@ -663,8 +738,9 @@ class RouterServer {
663
738
  }
664
739
  // Flush current text content to elements if any
665
740
  if (streamData.currentTextContent.trim()) {
666
- streamData.elements.push((0, ToolFormatter_1.createMarkdownElement)(streamData.currentTextContent));
741
+ streamData.elements.push(...this.renderCurrentText(streamData));
667
742
  streamData.currentTextContent = '';
743
+ streamData.recoveryPlainText = false;
668
744
  streamData.lastRenderedTextLength = 0;
669
745
  }
670
746
  streamData.updatePending = false;
@@ -718,8 +794,9 @@ class RouterServer {
718
794
  return;
719
795
  }
720
796
  if (streamData.currentTextContent.trim()) {
721
- streamData.elements.push((0, ToolFormatter_1.createMarkdownElement)(streamData.currentTextContent));
797
+ streamData.elements.push(...this.renderCurrentText(streamData));
722
798
  streamData.currentTextContent = '';
799
+ streamData.recoveryPlainText = false;
723
800
  streamData.lastRenderedTextLength = 0;
724
801
  }
725
802
  streamData.updatePending = false;
@@ -730,6 +807,104 @@ class RouterServer {
730
807
  streamData.hasUpdated = true;
731
808
  }
732
809
  }
810
+ rememberCompletedTask(messageId, deviceId) {
811
+ this.completedTasks.set(messageId, { deviceId, completedAt: Date.now() });
812
+ for (const [id, receipt] of this.completedTasks) {
813
+ if (Date.now() - receipt.completedAt > 24 * 60 * 60 * 1000 || this.completedTasks.size > 1000) {
814
+ this.completedTasks.delete(id);
815
+ }
816
+ }
817
+ }
818
+ isCompletedTask(messageId, deviceId) {
819
+ const receipt = this.completedTasks.get(messageId);
820
+ return receipt?.deviceId === deviceId && Date.now() - receipt.completedAt <= 24 * 60 * 60 * 1000;
821
+ }
822
+ /** A resumed segment may start inside a code fence or a table from the old card. */
823
+ renderCurrentText(stream) {
824
+ if (!stream.recoveryPlainText)
825
+ return [(0, ToolFormatter_1.createMarkdownElement)(stream.currentTextContent)];
826
+ const characters = Array.from(stream.currentTextContent);
827
+ const elements = [];
828
+ for (let start = 0; start < characters.length; start += 1000) {
829
+ const text = characters.slice(start, start + 1000).join('')
830
+ .replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
831
+ elements.push((0, ToolFormatter_1.createMarkdownElement)(`<raw>${text}</raw>`));
832
+ }
833
+ return elements;
834
+ }
835
+ /** Restore only task routing and future output; no old transcript is replayed. */
836
+ async handleTaskResume(message, deviceId, isCurrent) {
837
+ const info = message.taskResume;
838
+ const { messageId, openId, threadId } = message;
839
+ if (typeof messageId !== 'string' || !messageId || typeof openId !== 'string' || !openId
840
+ || typeof threadId !== 'string' || !threadId || !info
841
+ || typeof info.recoveryId !== 'string' || !info.recoveryId || info.recoveryId.length > 100
842
+ || typeof info.threadName !== 'string' || info.threadName.length > 100
843
+ || typeof info.backend !== 'string' || info.backend.length > 100
844
+ || typeof info.cwd !== 'string' || info.cwd.length > 4096
845
+ || typeof info.preview !== 'string' || info.preview.length > 240
846
+ || !['running', 'completed', 'failed'].includes(info.state)
847
+ || (info.error !== undefined && (typeof info.error !== 'string' || info.error.length > 500)))
848
+ return false;
849
+ if (this.isCompletedTask(messageId, deviceId))
850
+ return true;
851
+ const previous = this.streamingMessages.get(messageId);
852
+ if (previous && (previous.deviceId !== deviceId || previous.openId !== openId
853
+ || (previous.threadId && previous.threadId !== threadId)))
854
+ return false;
855
+ // A failed terminal patch can retry on its own recovery card, but an old
856
+ // finalizing card cannot accept a newly resumed stream.
857
+ const reusable = previous?.feishuMessageId && (!previous.finalizing
858
+ || (previous.recoveryId === info.recoveryId && info.state !== 'running'));
859
+ if (previous && reusable) {
860
+ if (previous.recoveryId !== info.recoveryId) {
861
+ await previous.updateInFlight;
862
+ if (!isCurrent() || this.streamingMessages.get(messageId) !== previous || previous.finalizing)
863
+ return false;
864
+ // Seal the old Markdown component before adding the gap notice. Later
865
+ // output may begin inside a lost code fence or table and stays plain.
866
+ if (previous.currentTextContent.trim())
867
+ previous.elements.push(...this.renderCurrentText(previous));
868
+ previous.currentTextContent = '';
869
+ previous.elements.push((0, ToolFormatter_1.createMarkdownElement)('🔄 **Connection restored** — output during the interruption may be missing.'));
870
+ previous.recoveryPlainText = true;
871
+ previous.lastRenderedTextLength = 0;
872
+ previous.recoveryId = info.recoveryId;
873
+ previous.recoveryCwd = info.cwd;
874
+ previous.threadId = previous.threadId ?? threadId;
875
+ previous.threadName = previous.threadName ?? info.threadName;
876
+ previous.createdAt = Date.now();
877
+ await this.updateStreamingText(messageId, openId, previous);
878
+ if (!isCurrent())
879
+ return false;
880
+ }
881
+ this.cardThreadMap.set(previous.feishuMessageId, { threadId, deviceId, expiresAt: Date.now() + this.CARD_THREAD_MAP_TTL_MS });
882
+ }
883
+ else {
884
+ const escape = (value) => value.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
885
+ const intro = `🔄 **${info.state === 'running' ? 'Connection restored — task continues' : 'Task status recovered'}**\n\n`
886
+ + `Output before this card, including output during disconnection, was not retained.\n\n`
887
+ + `**Thread:** <raw>${escape(info.threadName)}</raw> · **Backend:** <raw>${escape(info.backend)}</raw>\n`
888
+ + `**Working directory:** <raw>${escape(info.cwd)}</raw>\n**Task:** <raw>${escape(info.preview)}</raw>`;
889
+ const cardId = await this.feishuLongConnHandler.sendStreamingStart(openId, intro, info.threadName);
890
+ if (!cardId || !isCurrent())
891
+ return false;
892
+ this.streamingMessages.set(messageId, {
893
+ openId, deviceId, threadId, threadName: info.threadName, feishuMessageId: cardId,
894
+ elements: [(0, ToolFormatter_1.createMarkdownElement)(intro)], currentTextContent: '', hasUpdated: false,
895
+ createdAt: Date.now(), updatePending: false, finalizing: false, lastRenderedTextLength: 0,
896
+ recoveryId: info.recoveryId, recoveryPlainText: true, recoveryCwd: info.cwd,
897
+ });
898
+ this.cardThreadMap.set(cardId, { threadId, deviceId, expiresAt: Date.now() + this.CARD_THREAD_MAP_TTL_MS });
899
+ }
900
+ if (info.state !== 'running') {
901
+ await this.finalizeStreamingMessage(messageId, info.state === 'completed', undefined, info.error, undefined, info.cwd);
902
+ if (!isCurrent())
903
+ return false;
904
+ this.rememberCompletedTask(messageId, deviceId);
905
+ }
906
+ return true;
907
+ }
733
908
  /** Create a fresh card before accepting any output for a dequeued task. */
734
909
  async handleQueueStarted(message, deviceId) {
735
910
  const info = message.queueStarted;
@@ -851,23 +1026,29 @@ class RouterServer {
851
1026
  if (feishuMessageId) {
852
1027
  // Flush any remaining text content
853
1028
  if (streamData.currentTextContent.trim()) {
854
- streamData.elements.push((0, ToolFormatter_1.createMarkdownElement)(streamData.currentTextContent));
1029
+ streamData.elements.push(...this.renderCurrentText(streamData));
855
1030
  streamData.currentTextContent = '';
1031
+ streamData.recoveryPlainText = false;
856
1032
  }
857
1033
  // If there are no elements at all, use the output parameter as fallback
858
1034
  if (streamData.elements.length === 0 && output) {
859
1035
  streamData.elements.push((0, ToolFormatter_1.createMarkdownElement)(output));
860
1036
  }
861
1037
  if (success) {
862
- await this.feishuLongConnHandler.finalizeStreamingMessage(feishuMessageId, streamData.elements, sessionAbbr, openId, cwd, streamData.threadName, streamData.threads, streamData.threadId, queueConfirmation);
1038
+ const finalized = await this.feishuLongConnHandler.finalizeStreamingMessage(feishuMessageId, streamData.elements, sessionAbbr, openId, cwd, streamData.threadName, streamData.threads, streamData.threadId, queueConfirmation);
1039
+ if (finalized === false)
1040
+ throw new Error('Failed to finalize task card');
863
1041
  }
864
1042
  else {
865
1043
  // Add error message to elements
1044
+ const finalElements = [...streamData.elements];
866
1045
  if (!queueConfirmation) {
867
1046
  const errorMsg = error || 'Command failed';
868
- streamData.elements.push((0, ToolFormatter_1.createMarkdownElement)(`\n\n❌ **Error:** ${errorMsg}`));
1047
+ finalElements.push((0, ToolFormatter_1.createMarkdownElement)(`\n\n❌ **Error:** ${errorMsg}`));
869
1048
  }
870
- await this.feishuLongConnHandler.finalizeStreamingMessage(feishuMessageId, streamData.elements, undefined, openId, cwd, streamData.threadName, streamData.threads, streamData.threadId, queueConfirmation);
1049
+ const finalized = await this.feishuLongConnHandler.finalizeStreamingMessage(feishuMessageId, finalElements, undefined, openId, cwd, streamData.threadName, streamData.threads, streamData.threadId, queueConfirmation);
1050
+ if (finalized === false)
1051
+ throw new Error('Failed to finalize task card');
871
1052
  }
872
1053
  }
873
1054
  else if (streamData.queueStarted) {
@@ -879,12 +1060,16 @@ class RouterServer {
879
1060
  .concat(streamData.currentTextContent, output || '')
880
1061
  .filter(Boolean)
881
1062
  .join('\n\n');
882
- await this.feishuLongConnHandler.sendMessage(openId, `${text}\n\n${success ? '✅ Completed' : `❌ Error: ${error || 'Command failed'}`}`);
1063
+ const delivered = await this.feishuLongConnHandler.sendMessage(openId, `${text}\n\n${success ? '✅ Completed' : `❌ Error: ${error || 'Command failed'}`}`);
1064
+ if (delivered === false)
1065
+ throw new Error('Failed to deliver task result');
883
1066
  }
884
1067
  // Clean up streaming session state (but NOT cardThreadMap — keep it alive
885
1068
  // so users can reply to the completed card and route to the same thread).
886
- this.streamingMessages.delete(messageId);
887
- this.lastStreamUpdateTime.delete(messageId);
1069
+ if (this.streamingMessages.get(messageId) === streamData) {
1070
+ this.streamingMessages.delete(messageId);
1071
+ this.lastStreamUpdateTime.delete(messageId);
1072
+ }
888
1073
  }
889
1074
  /**
890
1075
  * Cleanup stale streaming sessions that have timed out
@@ -954,11 +1139,27 @@ class RouterServer {
954
1139
  */
955
1140
  async stop() {
956
1141
  console.log('Stopping router server...');
1142
+ this.approvalCards.destroy();
957
1143
  // Stop cleanup interval
958
1144
  if (this.cleanupInterval) {
959
1145
  clearInterval(this.cleanupInterval);
960
1146
  this.cleanupInterval = null;
961
1147
  }
1148
+ // Finalize in-flight streaming cards before losing the Feishu connection,
1149
+ // so a graceful restart does not leave users with permanently unfinished
1150
+ // cards. (A hard crash still cannot do this.)
1151
+ for (const [messageId, session] of Array.from(this.streamingMessages.entries())) {
1152
+ if (session.finalizing)
1153
+ continue;
1154
+ try {
1155
+ await this.finalizeStreamingMessage(messageId, false, undefined, 'Router server is restarting — task was interrupted.');
1156
+ }
1157
+ catch (error) {
1158
+ console.error(`[RouterServer] Failed to finalize streaming card ${messageId} during shutdown:`, error);
1159
+ }
1160
+ }
1161
+ this.streamingMessages.clear();
1162
+ this.lastStreamUpdateTime.clear();
962
1163
  // Stop Feishu long connection
963
1164
  try {
964
1165
  await this.feishuLongConnHandler.stop();
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}