@luckydraw/cumulus 0.31.41 → 0.31.43

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/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # Changelog
2
2
 
3
+ ## v0.31.43
4
+
5
+ - Bug fixes and stability improvements
6
+
7
+ ## v0.31.42
8
+
9
+ - Bug fixes and stability improvements
10
+ - New guide: embed a persistent AI agent in your web app
11
+
3
12
  ## v0.31.41
4
13
 
5
14
  - Instance-scoped settings now fall back to shared config automatically
@@ -1 +1 @@
1
- {"version":3,"file":"webchat.d.ts","sourceRoot":"","sources":["../../../src/gateway/adapters/webchat.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAe7B,OAAO,EAIL,KAAK,sBAAsB,EAE5B,MAAM,sBAAsB,CAAC;AAO9B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAapD,MAAM,WAAW,oBAAoB;IACnC,6DAA6D;IAC7D,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;IACpB,wCAAwC;IACxC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,4FAA4F;IAC5F,UAAU,CAAC,EAAE,eAAe,EAAE,CAAC;IAC/B,qEAAqE;IACrE,YAAY,CAAC,EAAE,OAAO,CACpB,IAAI,CACF,sBAAsB,EACpB,UAAU,GACV,YAAY,GACZ,eAAe,GACf,aAAa,GACb,qBAAqB,GACrB,UAAU,CACb,CACF,CAAC;CACH;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,oFAAoF;IACpF,iBAAiB,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAChF,6EAA6E;IAC7E,uBAAuB,EAAE,MAAM,MAAM,EAAE,CAAC;CACzC;AAuKD,mCAAmC;AACnC,wBAAgB,WAAW,IAAI,MAAM,CAGpC;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,IAAI,CAAC,eAAe,EACzB,GAAG,EAAE,IAAI,CAAC,cAAc,EACxB,OAAO,CAAC,EAAE,MAAM,EAAE,GACjB,OAAO,CA2ET;AAkED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,oBAAoB,GAAG,oBAAoB,CAyUvF"}
1
+ {"version":3,"file":"webchat.d.ts","sourceRoot":"","sources":["../../../src/gateway/adapters/webchat.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAe7B,OAAO,EAIL,KAAK,sBAAsB,EAE5B,MAAM,sBAAsB,CAAC;AAO9B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAapD,MAAM,WAAW,oBAAoB;IACnC,6DAA6D;IAC7D,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;IACpB,wCAAwC;IACxC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,4FAA4F;IAC5F,UAAU,CAAC,EAAE,eAAe,EAAE,CAAC;IAC/B,qEAAqE;IACrE,YAAY,CAAC,EAAE,OAAO,CACpB,IAAI,CACF,sBAAsB,EACpB,UAAU,GACV,YAAY,GACZ,eAAe,GACf,aAAa,GACb,qBAAqB,GACrB,UAAU,CACb,CACF,CAAC;CACH;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,oFAAoF;IACpF,iBAAiB,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAChF,6EAA6E;IAC7E,uBAAuB,EAAE,MAAM,MAAM,EAAE,CAAC;CACzC;AAuKD,mCAAmC;AACnC,wBAAgB,WAAW,IAAI,MAAM,CAGpC;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,IAAI,CAAC,eAAe,EACzB,GAAG,EAAE,IAAI,CAAC,cAAc,EACxB,OAAO,CAAC,EAAE,MAAM,EAAE,GACjB,OAAO,CA2ET;AA2DD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,oBAAoB,GAAG,oBAAoB,CAyUvF"}
@@ -15,7 +15,7 @@ import { sendMessage, getOrCreateThread, clearThreadCache, } from '../../lib/gat
15
15
  import { executeRevert } from '../../lib/revert.js';
16
16
  import { catchUpSegmentation, loadSegmentBoundaries, saveSegmentBoundaries, } from '../../lib/segments.js';
17
17
  import { allNamespaceKeys, extraMcpServersForThread, namespaceForKey, threadAccessibleToScope, threadVisibleToScope, } from '../namespaces.js';
18
- import { markThreadBusy } from '../server.js';
18
+ import { markThreadBusy, enqueueAgentMessage, formatAgentMessageForRecipient } from '../server.js';
19
19
  import { VoiceTTSSession, isPiperAvailable, SAMPLE_RATE } from '../voice-tts.js';
20
20
  // ─── Rate limiting ───────────────────────────────────────────────────────────
21
21
  const RATE_LIMIT_WINDOW = 60_000; // 1 minute
@@ -158,7 +158,9 @@ export function serveStaticFile(req, res, apiKeys) {
158
158
  // When a user sends a message while streaming, we abort the current stream
159
159
  // and start a new one. Agent messages are queued instead.
160
160
  const activeStreams = new Map();
161
- const messageQueues = new Map();
161
+ // Agent messages arriving while a thread is busy go through the server's
162
+ // single agent queue (enqueueAgentMessage); markThreadBusy(false) drains it
163
+ // regardless of which transport ran the turn.
162
164
  // Track which WebSocket is currently streaming for each thread.
163
165
  // Used to: (1) prevent ping/pong from killing active streams, (2) re-attach new clients
164
166
  const streamingClients = new Map();
@@ -1133,10 +1135,12 @@ async function handleChatMessage(ws, data, pipelineOpts) {
1133
1135
  }
1134
1136
  }
1135
1137
  finally {
1136
- // Only clean up if this is still the active stream (not replaced by a newer one)
1138
+ // Only clean up if this is still the active stream (not replaced by a newer
1139
+ // one). markThreadBusy(false) also drains the server-side agent queue — the
1140
+ // one queue for all transports — spawning any queued agent turn now.
1137
1141
  if (activeStreams.get(threadName) === ac) {
1138
1142
  activeStreams.delete(threadName);
1139
- markThreadBusy(threadName, false); // Sync with server.ts
1143
+ markThreadBusy(threadName, false);
1140
1144
  }
1141
1145
  streamingClients.delete(threadName);
1142
1146
  streamBuffers.delete(threadName);
@@ -1148,9 +1152,6 @@ async function handleChatMessage(ws, data, pipelineOpts) {
1148
1152
  if (streamCompletions.get(threadName) === streamCompletion) {
1149
1153
  streamCompletions.delete(threadName);
1150
1154
  }
1151
- // Drain any queued agent messages now that the thread is idle
1152
- const currentWs = streamingClients.get(threadName) || ws;
1153
- drainMessageQueue(threadName, currentWs, pipelineOpts);
1154
1155
  }
1155
1156
  }
1156
1157
  // ─── Agent message injection (queued if busy, delivered if idle) ─────────────
@@ -1162,12 +1163,9 @@ async function handleInjectMessage(ws, data, pipelineOpts) {
1162
1163
  }
1163
1164
  const isStreaming = activeStreams.has(threadName);
1164
1165
  if (isStreaming) {
1165
- // BUSY — queue the message, don't kill the active stream
1166
- if (!messageQueues.has(threadName)) {
1167
- messageQueues.set(threadName, []);
1168
- }
1169
- const queue = messageQueues.get(threadName);
1170
- queue.push({
1166
+ // BUSY — queue into the server's single agent queue; markThreadBusy(false)
1167
+ // drains it when the stream ends, whatever transport ran it
1168
+ const position = enqueueAgentMessage(threadName, {
1171
1169
  text: message,
1172
1170
  sender,
1173
1171
  type: messageType || 'direct',
@@ -1175,12 +1173,11 @@ async function handleInjectMessage(ws, data, pipelineOpts) {
1175
1173
  visibility,
1176
1174
  timestamp: Date.now(),
1177
1175
  });
1178
- console.log(`[WebChat] Agent message queued for busy thread "${threadName}" (position ${queue.length})`);
1179
- wsSend(ws, { type: 'inject_queued', threadName, position: queue.length });
1176
+ wsSend(ws, { type: 'inject_queued', threadName, position });
1180
1177
  return;
1181
1178
  }
1182
1179
  // IDLE — deliver immediately with per-recipient formatting
1183
- const formatted = formatAgentMessage(message, sender, threadName, {
1180
+ const formatted = formatAgentMessageForRecipient(message, sender, threadName, {
1184
1181
  type: messageType || 'direct',
1185
1182
  targets: targets || [threadName],
1186
1183
  visibility,
@@ -1188,55 +1185,6 @@ async function handleInjectMessage(ws, data, pipelineOpts) {
1188
1185
  await handleChatMessage(ws, { type: 'message', threadName, message: formatted }, pipelineOpts);
1189
1186
  wsSend(ws, { type: 'inject_delivered', threadName });
1190
1187
  }
1191
- function formatAgentMessage(messageText, senderName, recipientName, opts) {
1192
- if (opts.type === 'broadcast') {
1193
- const prefix = `[${senderName} → all]:`;
1194
- const replyHint = `(Reply using send_to_agent("${senderName}", your_response) to respond directly, or broadcast(your_message) to reply to the group. Be concise and task-focused — no pleasantries or sign-offs.)`;
1195
- return `${prefix}\n${messageText}\n\n${replyHint}`;
1196
- }
1197
- // Single-target: no CC regardless of visibility
1198
- if (opts.targets.length <= 1) {
1199
- const prefix = `[${senderName} → ${recipientName}]:`;
1200
- const replyHint = `(Reply using send_to_agent("${senderName}", your_response) to respond directly. Be concise and task-focused — no pleasantries or sign-offs.)`;
1201
- return `${prefix}\n${messageText}\n\n${replyHint}`;
1202
- }
1203
- // Multi-target: apply visibility rules
1204
- const visibility = opts.visibility || 'cc';
1205
- const otherTargets = opts.targets.filter(t => t !== recipientName);
1206
- if (visibility === 'blind') {
1207
- const prefix = `[${senderName} → ${recipientName}]:`;
1208
- const replyHint = `(Reply using send_to_agent("${senderName}", your_response) to respond directly. Be concise and task-focused — no pleasantries or sign-offs.)`;
1209
- return `${prefix}\n${messageText}\n\n${replyHint}`;
1210
- }
1211
- if (typeof visibility === 'object' && Array.isArray(visibility.hidden)) {
1212
- const hiddenSet = new Set(visibility.hidden);
1213
- const isHidden = hiddenSet.has(recipientName);
1214
- let visibleOthers;
1215
- if (isHidden) {
1216
- // Hidden agents (observers) CAN see all other targets (asymmetric)
1217
- visibleOthers = otherTargets;
1218
- }
1219
- else {
1220
- // Visible agents do NOT see hidden agents
1221
- visibleOthers = otherTargets.filter(t => !hiddenSet.has(t));
1222
- }
1223
- let prefix;
1224
- if (visibleOthers.length > 0) {
1225
- prefix = `[${senderName} → ${recipientName} (cc: ${visibleOthers.join(', ')})]:`;
1226
- }
1227
- else {
1228
- prefix = `[${senderName} → ${recipientName}]:`;
1229
- }
1230
- const replyHint = visibleOthers.length > 0
1231
- ? `(Reply using send_to_agent("${senderName}", your_response) to respond directly, or send_to_agent(["${senderName}", ${visibleOthers.map(t => `"${t}"`).join(', ')}], your_response) to reply to the group. Be concise and task-focused — no pleasantries or sign-offs.)`
1232
- : `(Reply using send_to_agent("${senderName}", your_response) to respond directly. Be concise and task-focused — no pleasantries or sign-offs.)`;
1233
- return `${prefix}\n${messageText}\n\n${replyHint}`;
1234
- }
1235
- // Default: "cc" — everyone sees everyone
1236
- const prefix = `[${senderName} → ${recipientName} (cc: ${otherTargets.join(', ')})]:`;
1237
- const replyHint = `(Reply using send_to_agent("${senderName}", your_response) to respond directly, or send_to_agent(["${senderName}", ${otherTargets.map(t => `"${t}"`).join(', ')}], your_response) to reply to the group. Be concise and task-focused — no pleasantries or sign-offs.)`;
1238
- return `${prefix}\n${messageText}\n\n${replyHint}`;
1239
- }
1240
1188
  async function handleDeleteThread(ws, data) {
1241
1189
  const { threadName } = data;
1242
1190
  if (!threadName || typeof threadName !== 'string') {
@@ -1255,8 +1203,10 @@ async function handleDeleteThread(ws, data) {
1255
1203
  '.embeddings.bin',
1256
1204
  '.segments.json',
1257
1205
  '.adaptive.json',
1206
+ '.config.json',
1258
1207
  '.sessions',
1259
1208
  '.content',
1209
+ '.prompts',
1260
1210
  ];
1261
1211
  for (const ext of extensions) {
1262
1212
  const filePath = basePath + ext;
@@ -1339,39 +1289,4 @@ async function handleDeleteMessages(ws, data) {
1339
1289
  });
1340
1290
  }
1341
1291
  }
1342
- function drainMessageQueue(threadName, ws, pipelineOpts) {
1343
- const queue = messageQueues.get(threadName);
1344
- if (!queue || queue.length === 0)
1345
- return;
1346
- // Clear queue before sending (prevents re-entrance)
1347
- messageQueues.delete(threadName);
1348
- console.log(`[WebChat] Draining ${queue.length} queued message(s) for "${threadName}"`);
1349
- let formatted;
1350
- if (queue.length === 1) {
1351
- // Single message — deliver normally with per-recipient formatting
1352
- const msg = queue[0];
1353
- formatted = formatAgentMessage(msg.text, msg.sender, threadName, {
1354
- type: msg.type,
1355
- targets: msg.targets,
1356
- visibility: msg.visibility,
1357
- });
1358
- }
1359
- else {
1360
- // Multiple messages — batch format ("while you were busy")
1361
- const lines = [`[While you were busy, ${queue.length} messages arrived]\n`];
1362
- for (const msg of queue) {
1363
- const time = new Date(msg.timestamp).toLocaleTimeString();
1364
- lines.push(`[From agent "${msg.sender}"] (${time}):`);
1365
- lines.push(msg.text);
1366
- lines.push('');
1367
- }
1368
- lines.push('(Review the above messages. Reply only if actionable work is needed.');
1369
- lines.push('Use send_to_agent("name", response) to respond to a specific agent.)');
1370
- formatted = lines.join('\n');
1371
- }
1372
- // Fire-and-forget: send the batched message as a new turn
1373
- handleChatMessage(ws, { type: 'message', threadName, message: formatted }, pipelineOpts).catch(err => {
1374
- console.error(`[WebChat] Failed to drain queue for "${threadName}":`, err);
1375
- });
1376
- }
1377
1292
  //# sourceMappingURL=webchat.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"webchat.js","sourceRoot":"","sources":["../../../src/gateway/adapters/webchat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"webchat.js","sourceRoot":"","sources":["../../../src/gateway/adapters/webchat.ts"],"names":[],"mappings":"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"}
@@ -71,10 +71,17 @@ export interface GatewayServerHandle {
71
71
  setFederationRouter: (router: import('./federation.js').FederationRouter) => void;
72
72
  }
73
73
  /**
74
- * Mark a thread as busy/idle from external modules (e.g., webchat adapter).
75
- * This ensures MCP inject checks see WebSocket-streaming threads as busy.
74
+ * Mark a thread as busy/idle from any transport (SSE turns, webchat adapter,
75
+ * agent injects). Busy→idle is THE drain point for queued agent messages —
76
+ * every transport that ends a turn lands here, so a message queued via one
77
+ * transport can never be stranded by a turn that ran on another.
76
78
  */
77
79
  export declare function markThreadBusy(threadName: string, busy: boolean): void;
80
+ /**
81
+ * Queue an agent message for a busy thread. Single queue for ALL transports
82
+ * (REST /api/agents/inject and webchat WS inject). Returns queue position.
83
+ */
84
+ export declare function enqueueAgentMessage(threadName: string, msg: AgentQueuedMessage): number;
78
85
  /** Check if a thread is currently busy (from any source). */
79
86
  export declare function isThreadBusy(threadName: string): boolean;
80
87
  /**
@@ -83,6 +90,16 @@ export declare function isThreadBusy(threadName: string): boolean;
83
90
  * net to swallow these without crashing while still surfacing real faults.
84
91
  */
85
92
  export declare function isBenignSocketError(err: unknown): boolean;
93
+ export interface AgentQueuedMessage {
94
+ text: string;
95
+ sender: string;
96
+ type: string;
97
+ targets: string[];
98
+ visibility?: string | {
99
+ hidden: string[];
100
+ };
101
+ timestamp: number;
102
+ }
86
103
  /**
87
104
  * Format an agent message for a specific recipient, applying visibility rules.
88
105
  *
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/gateway/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/gateway/server.ts"],"names":[],"mappings":"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"}
@@ -81,20 +81,46 @@ async function buildBridgeContextBlock(threadName, executorUrl) {
81
81
  /** Federation router reference — set by daemon when hub mode is active */
82
82
  let federationRouter;
83
83
  /**
84
- * Mark a thread as busy/idle from external modules (e.g., webchat adapter).
85
- * This ensures MCP inject checks see WebSocket-streaming threads as busy.
84
+ * Pipeline options for spawning turns outside a request context (agent queue
85
+ * drains). Set once at server startup; the object is shared with the running
86
+ * server, so later mutations (e.g. broadcastToThread wiring) are visible here.
87
+ */
88
+ let agentPipelineOpts;
89
+ /**
90
+ * Mark a thread as busy/idle from any transport (SSE turns, webchat adapter,
91
+ * agent injects). Busy→idle is THE drain point for queued agent messages —
92
+ * every transport that ends a turn lands here, so a message queued via one
93
+ * transport can never be stranded by a turn that ran on another.
86
94
  */
87
95
  export function markThreadBusy(threadName, busy) {
88
96
  if (busy) {
89
97
  threadBusy.set(threadName, true);
98
+ return;
90
99
  }
91
- else {
92
- // Only clear if still marked — another path may have set it busy again
93
- if (threadBusy.get(threadName)) {
94
- threadBusy.set(threadName, false);
95
- }
100
+ // Only clear if still marked — another path may have set it busy again
101
+ if (threadBusy.get(threadName)) {
102
+ threadBusy.set(threadName, false);
103
+ }
104
+ // User-queued messages take priority: their drain pass toggles busy and
105
+ // lands back here when the user queue is empty.
106
+ const pendingUser = threadQueues.get(threadName);
107
+ if (!pendingUser?.length && agentPipelineOpts) {
108
+ drainAgentQueue(threadName, agentPipelineOpts);
96
109
  }
97
110
  }
111
+ /**
112
+ * Queue an agent message for a busy thread. Single queue for ALL transports
113
+ * (REST /api/agents/inject and webchat WS inject). Returns queue position.
114
+ */
115
+ export function enqueueAgentMessage(threadName, msg) {
116
+ if (!agentQueues.has(threadName)) {
117
+ agentQueues.set(threadName, []);
118
+ }
119
+ const queue = agentQueues.get(threadName);
120
+ queue.push(msg);
121
+ console.log(`[Gateway] Agent message from "${msg.sender}" queued for busy thread "${threadName}" (position ${queue.length})`);
122
+ return queue.length;
123
+ }
98
124
  /** Check if a thread is currently busy (from any source). */
99
125
  export function isThreadBusy(threadName) {
100
126
  return !!threadBusy.get(threadName);
@@ -117,7 +143,9 @@ async function drainQueue(threadName, opts) {
117
143
  await processMessage(threadName, item, opts);
118
144
  }
119
145
  finally {
120
- threadBusy.set(threadName, false);
146
+ // Via markThreadBusy so queued agent messages drain once the user queue
147
+ // empties (its guard defers the agent drain while user messages remain)
148
+ markThreadBusy(threadName, false);
121
149
  // Process next in queue
122
150
  if (queue.length > 0) {
123
151
  drainQueue(threadName, opts).catch(err => console.error(`[Gateway] queue drain error for ${threadName}:`, err));
@@ -417,11 +445,7 @@ async function handleAgentInject(req, res, pipelineOpts, scope) {
417
445
  const isBusy = threadBusy.get(targetName);
418
446
  if (isBusy) {
419
447
  // Queue the raw message for batching when thread finishes
420
- if (!agentQueues.has(targetName)) {
421
- agentQueues.set(targetName, []);
422
- }
423
- const queue = agentQueues.get(targetName);
424
- queue.push({
448
+ const position = enqueueAgentMessage(targetName, {
425
449
  text: message,
426
450
  sender,
427
451
  type,
@@ -429,7 +453,7 @@ async function handleAgentInject(req, res, pipelineOpts, scope) {
429
453
  visibility,
430
454
  timestamp: Date.now(),
431
455
  });
432
- results.push({ target: targetName, status: 'queued', position: queue.length });
456
+ results.push({ target: targetName, status: 'queued', position });
433
457
  }
434
458
  else {
435
459
  // Deliver immediately — format with per-recipient visibility
@@ -484,8 +508,7 @@ async function handleAgentInject(req, res, pipelineOpts, scope) {
484
508
  })
485
509
  .catch(err => console.error(`[Gateway] agent inject error for ${targetName}:`, err))
486
510
  .finally(() => {
487
- threadBusy.set(targetName, false);
488
- drainAgentQueue(targetName, pipelineOpts);
511
+ markThreadBusy(targetName, false); // triggers agent-queue drain
489
512
  });
490
513
  results.push({ target: targetName, status: 'delivered' });
491
514
  }
@@ -554,6 +577,9 @@ export function formatAgentMessageForRecipient(messageText, senderName, recipien
554
577
  return `${prefix}\n${messageText}\n\n${replyHint}`;
555
578
  }
556
579
  function drainAgentQueue(threadName, pipelineOpts) {
580
+ // Another turn may have grabbed the thread between busy→false and this call
581
+ if (threadBusy.get(threadName))
582
+ return;
557
583
  const queue = agentQueues.get(threadName);
558
584
  if (!queue || queue.length === 0)
559
585
  return;
@@ -583,6 +609,7 @@ function drainAgentQueue(threadName, pipelineOpts) {
583
609
  }
584
610
  // Fire-and-forget: send the batched message as a new turn
585
611
  threadBusy.set(threadName, true);
612
+ const broadcast = pipelineOpts.broadcastToThread;
586
613
  sendMessage({
587
614
  threadName,
588
615
  message: formatted,
@@ -593,11 +620,30 @@ function drainAgentQueue(threadName, pipelineOpts) {
593
620
  extraMcpServers: extraMcpServersForThread(threadName, pipelineOpts.namespaces ?? []),
594
621
  gatewayAgentsConfig: pipelineOpts.gatewayAgentsConfig,
595
622
  hfApiKey: pipelineOpts.hfApiKey,
623
+ })
624
+ .then(result => {
625
+ // Notify connected clients (e.g. webchat) that the drained turn happened —
626
+ // without this, a drain after a WS turn is invisible until reload
627
+ if (!broadcast || !result)
628
+ return;
629
+ const newMessages = [];
630
+ if (result.userMessage) {
631
+ newMessages.push({ id: result.userMessage.id, role: 'user', content: formatted });
632
+ }
633
+ if (result.assistantMessage) {
634
+ newMessages.push({
635
+ id: result.assistantMessage.id,
636
+ role: 'assistant',
637
+ content: result.response,
638
+ });
639
+ }
640
+ if (newMessages.length > 0) {
641
+ broadcast(threadName, { type: 'new_messages', threadName, messages: newMessages });
642
+ }
596
643
  })
597
644
  .catch(err => console.error(`[Gateway] agent queue drain error for ${threadName}:`, err))
598
645
  .finally(() => {
599
- threadBusy.set(threadName, false);
600
- drainAgentQueue(threadName, pipelineOpts);
646
+ markThreadBusy(threadName, false); // re-drains if more queued meanwhile
601
647
  });
602
648
  }
603
649
  // ─── Route helpers ───────────────────────────────────────────────────────────
@@ -817,8 +863,10 @@ async function handleDeleteThread(threadName, req, res) {
817
863
  '.embeddings.bin',
818
864
  '.segments.json',
819
865
  '.adaptive.json',
866
+ '.config.json',
820
867
  '.sessions',
821
868
  '.content',
869
+ '.prompts',
822
870
  ];
823
871
  for (const ext of extensions) {
824
872
  const filePath = basePath + ext;
@@ -1556,6 +1604,9 @@ function saveMediaFile(mediaDir, originalFilename, data, baseUrl) {
1556
1604
  // ─── Server ──────────────────────────────────────────────────────────────────
1557
1605
  export async function startGatewayServer(options) {
1558
1606
  const { port, ...pipelineOpts } = options;
1607
+ // Shared reference (not a copy): later mutations like broadcastToThread
1608
+ // wiring must be visible to queue drains triggered from markThreadBusy
1609
+ agentPipelineOpts = pipelineOpts;
1559
1610
  // Namespace-scoped keys (task 097 P2) must authenticate like base keys; fold
1560
1611
  // them into the valid-key set. The namespace→key mapping stays in
1561
1612
  // `namespaces` for scope resolution.