botmux 2.13.2 → 2.14.0

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.
Files changed (58) hide show
  1. package/dist/core/command-handler.d.ts.map +1 -1
  2. package/dist/core/command-handler.js +10 -4
  3. package/dist/core/command-handler.js.map +1 -1
  4. package/dist/core/dashboard-ipc-server.d.ts.map +1 -1
  5. package/dist/core/dashboard-ipc-server.js +65 -3
  6. package/dist/core/dashboard-ipc-server.js.map +1 -1
  7. package/dist/core/dashboard-rows.d.ts.map +1 -1
  8. package/dist/core/dashboard-rows.js +6 -1
  9. package/dist/core/dashboard-rows.js.map +1 -1
  10. package/dist/core/scheduler.d.ts +1 -0
  11. package/dist/core/scheduler.d.ts.map +1 -1
  12. package/dist/core/scheduler.js +1 -0
  13. package/dist/core/scheduler.js.map +1 -1
  14. package/dist/core/session-manager.d.ts.map +1 -1
  15. package/dist/core/session-manager.js +90 -52
  16. package/dist/core/session-manager.js.map +1 -1
  17. package/dist/core/types.d.ts +18 -2
  18. package/dist/core/types.d.ts.map +1 -1
  19. package/dist/core/types.js +14 -3
  20. package/dist/core/types.js.map +1 -1
  21. package/dist/core/worker-pool.d.ts.map +1 -1
  22. package/dist/core/worker-pool.js +22 -22
  23. package/dist/core/worker-pool.js.map +1 -1
  24. package/dist/daemon.d.ts.map +1 -1
  25. package/dist/daemon.js +131 -80
  26. package/dist/daemon.js.map +1 -1
  27. package/dist/dashboard/operator-selector.d.ts +17 -0
  28. package/dist/dashboard/operator-selector.d.ts.map +1 -0
  29. package/dist/dashboard/operator-selector.js +37 -0
  30. package/dist/dashboard/operator-selector.js.map +1 -0
  31. package/dist/dashboard/web/groups.d.ts.map +1 -1
  32. package/dist/dashboard/web/groups.js +61 -7
  33. package/dist/dashboard/web/groups.js.map +1 -1
  34. package/dist/dashboard-web/app.js +60 -53
  35. package/dist/dashboard-web/style.css +10 -1
  36. package/dist/dashboard.js +119 -34
  37. package/dist/dashboard.js.map +1 -1
  38. package/dist/im/lark/card-handler.js +8 -8
  39. package/dist/im/lark/card-handler.js.map +1 -1
  40. package/dist/im/lark/client.d.ts +20 -0
  41. package/dist/im/lark/client.d.ts.map +1 -1
  42. package/dist/im/lark/client.js +65 -8
  43. package/dist/im/lark/client.js.map +1 -1
  44. package/dist/im/lark/event-dispatcher.d.ts +39 -4
  45. package/dist/im/lark/event-dispatcher.d.ts.map +1 -1
  46. package/dist/im/lark/event-dispatcher.js +84 -49
  47. package/dist/im/lark/event-dispatcher.js.map +1 -1
  48. package/dist/services/groups-store.d.ts +22 -0
  49. package/dist/services/groups-store.d.ts.map +1 -1
  50. package/dist/services/groups-store.js +39 -1
  51. package/dist/services/groups-store.js.map +1 -1
  52. package/dist/services/schedule-store.d.ts +1 -0
  53. package/dist/services/schedule-store.d.ts.map +1 -1
  54. package/dist/services/schedule-store.js +1 -0
  55. package/dist/services/schedule-store.js.map +1 -1
  56. package/dist/types.d.ts +12 -0
  57. package/dist/types.d.ts.map +1 -1
  58. package/package.json +1 -1
package/dist/daemon.js CHANGED
@@ -6,7 +6,7 @@ import { fileURLToPath } from 'node:url';
6
6
  const __filename = fileURLToPath(import.meta.url);
7
7
  const __dirname = dirname(__filename);
8
8
  import { config } from './config.js';
9
- import { replyMessage, resolveAllowedUsers } from './im/lark/client.js';
9
+ import { replyMessage, resolveAllowedUsers, sendMessage } from './im/lark/client.js';
10
10
  import { loadBotConfigs, registerBot, getBot, getAllBots, findOncallChat } from './bot-registry.js';
11
11
  import * as sessionStore from './services/session-store.js';
12
12
  import * as scheduleStore from './services/schedule-store.js';
@@ -15,7 +15,7 @@ import { parseEventMessage, resolveNonsupportMessage, stripLeadingMentions } fro
15
15
  import { expandMergeForward } from './im/lark/merge-forward.js';
16
16
  import { logger } from './utils/logger.js';
17
17
  import { ensureCjkFontsInstalled } from './utils/font-installer.js';
18
- import { sessionKey } from './core/types.js';
18
+ import { sessionKey, sessionAnchorId } from './core/types.js';
19
19
  import * as scheduler from './core/scheduler.js';
20
20
  import { scanMultipleProjects } from './services/project-scanner.js';
21
21
  import { buildRepoSelectCard, buildStreamingCard, getCliDisplayName } from './im/lark/card-builder.js';
@@ -35,18 +35,31 @@ const lastRepoScan = new Map();
35
35
  const cliVersionCache = new Map();
36
36
  const VERSION_CHECK_INTERVAL = 60_000; // cache 1 min
37
37
  /**
38
- * Reply to a message, automatically using reply_in_thread for p2p sessions.
39
- * Always reply in thread to create/continue a topic.
40
- * This ensures topic-style replies in all chat types (p2p, group, topic group).
38
+ * Reply into a session scope-aware.
39
+ *
40
+ * `anchor` is whatever the caller has at hand:
41
+ * - thread-scope sessions → rootMessageId
42
+ * - chat-scope sessions → chatId
43
+ *
44
+ * Behaviour:
45
+ * - thread-scope (or no matching DS, the legacy default) → reply with
46
+ * reply_in_thread=true to the anchor message_id
47
+ * - chat-scope → send a plain
48
+ * message to ds.chatId (no reply, no thread). Cards / button values
49
+ * embed the chatId so handleCardAction can route back into the same
50
+ * session.
51
+ *
52
+ * Lark message ids start with `om_` and chat ids with `oc_`, so the two
53
+ * address spaces never collide; the lookup just tries both.
41
54
  */
42
- async function sessionReply(rootId, content, msgType = 'text', larkAppId) {
55
+ async function sessionReply(anchor, content, msgType = 'text', larkAppId) {
43
56
  let ds;
44
57
  if (larkAppId) {
45
- ds = activeSessions.get(sessionKey(rootId, larkAppId));
58
+ ds = activeSessions.get(sessionKey(anchor, larkAppId));
46
59
  }
47
60
  else {
48
61
  for (const s of activeSessions.values()) {
49
- if (s.session.rootMessageId === rootId) {
62
+ if (sessionAnchorId(s) === anchor) {
50
63
  ds = s;
51
64
  break;
52
65
  }
@@ -55,7 +68,14 @@ async function sessionReply(rootId, content, msgType = 'text', larkAppId) {
55
68
  const appId = larkAppId ?? ds?.larkAppId ?? getAllBots()[0]?.config.larkAppId;
56
69
  if (!appId)
57
70
  throw new Error('No bot configured');
58
- return replyMessage(appId, rootId, content, msgType, true);
71
+ // Chat-scope: post a plain message to the chat. No reply_in_thread → keeps
72
+ // the conversation flat in 普通群 / p2p. The card layer carries chatId in
73
+ // its button values, so handleCardAction routes back via sessionKey(chatId).
74
+ if (ds?.scope === 'chat') {
75
+ return sendMessage(appId, ds.chatId, content, msgType);
76
+ }
77
+ // Thread-scope (or unknown / legacy): reply in thread.
78
+ return replyMessage(appId, anchor, content, msgType, true);
59
79
  }
60
80
  // ─── PID file ────────────────────────────────────────────────────────────────
61
81
  function getPidFile() {
@@ -187,7 +207,8 @@ const cardDeps = {
187
207
  lastRepoScan,
188
208
  };
189
209
  // ─── Event handling ──────────────────────────────────────────────────────────
190
- async function handleNewTopic(data, chatId, messageId, chatType = 'group', larkAppId) {
210
+ async function handleNewTopic(data, ctx) {
211
+ const { chatId, messageId, chatType, scope, anchor, larkAppId } = ctx;
191
212
  await resolveNonsupportMessage(data, larkAppId);
192
213
  const { parsed, resources } = parseEventMessage(data);
193
214
  // Expand merge_forward: fetch sub-messages and collect their resources
@@ -200,28 +221,29 @@ async function handleNewTopic(data, chatId, messageId, chatType = 'group', larkA
200
221
  const cmdContent = stripLeadingMentions(content, parsed.mentions);
201
222
  const senderOpenId = data.sender?.sender_id?.open_id;
202
223
  const botCfg = getBot(larkAppId).config;
203
- logger.info(`New topic: "${content.substring(0, 60)}" (resources: ${resources.length}, active: ${getActiveCount()}, messageId: ${messageId}, chatId: ${chatId}`);
224
+ logger.info(`New session: "${content.substring(0, 60)}" (scope=${scope}, anchor=${anchor.substring(0, 12)}, resources: ${resources.length}, active: ${getActiveCount()}, messageId: ${messageId}, chatId: ${chatId})`);
204
225
  // Intercept daemon commands in new topics (no session needed for some commands)
205
226
  const invocation = parseSlashCommandInvocation(cmdContent);
206
227
  if (invocation) {
207
228
  const { cmd, content: commandContent } = invocation;
208
229
  if (PASSTHROUGH_COMMANDS.has(cmd)) {
209
- await sessionReply(messageId, `${cmd} 需要在已有会话内使用(先发一条普通消息启动 CLI)。`, 'text', larkAppId);
230
+ await sessionReply(anchor, `${cmd} 需要在已有会话内使用(先发一条普通消息启动 CLI)。`, 'text', larkAppId);
210
231
  return;
211
232
  }
212
233
  if (DAEMON_COMMANDS.has(cmd)) {
213
234
  // Oncall groups: any member can talk, but daemon commands (except /oncall
214
235
  // itself which gates bind/unbind inside) are owner-only.
215
236
  if (cmd !== '/oncall' && findOncallChat(larkAppId, chatId) && !canOperate(larkAppId, chatId, senderOpenId)) {
216
- await sessionReply(messageId, `⚠️ ${cmd} 仅 oncall owner 可执行。`, 'text', larkAppId);
237
+ await sessionReply(anchor, `⚠️ ${cmd} 仅 oncall owner 可执行。`, 'text', larkAppId);
217
238
  return;
218
239
  }
219
240
  const session = sessionStore.createSession(chatId, messageId, cmdContent.substring(0, 50), chatType);
220
241
  session.larkAppId = larkAppId;
221
242
  session.ownerOpenId = senderOpenId;
222
243
  session.lastCallerOpenId = senderOpenId;
244
+ session.scope = scope;
223
245
  sessionStore.updateSession(session);
224
- activeSessions.set(sessionKey(messageId, larkAppId), {
246
+ activeSessions.set(sessionKey(anchor, larkAppId), {
225
247
  session,
226
248
  worker: null,
227
249
  workerPort: null,
@@ -229,6 +251,7 @@ async function handleNewTopic(data, chatId, messageId, chatType = 'group', larkA
229
251
  larkAppId,
230
252
  chatId,
231
253
  chatType,
254
+ scope,
232
255
  spawnedAt: Date.now(),
233
256
  cliVersion: cliVersionCache.get(botCfg.cliId)?.version ?? 'unknown',
234
257
  lastMessageAt: Date.now(),
@@ -236,7 +259,7 @@ async function handleNewTopic(data, chatId, messageId, chatType = 'group', larkA
236
259
  ownerOpenId: senderOpenId,
237
260
  });
238
261
  // Pass mention-stripped content so /command argument parsing works.
239
- await handleCommand(cmd, messageId, { ...parsed, content: commandContent }, commandDeps, larkAppId);
262
+ await handleCommand(cmd, anchor, { ...parsed, content: commandContent }, commandDeps, larkAppId);
240
263
  return;
241
264
  }
242
265
  }
@@ -246,16 +269,20 @@ async function handleNewTopic(data, chatId, messageId, chatType = 'group', larkA
246
269
  parsed.attachments = attachments;
247
270
  }
248
271
  if (needLogin) {
249
- sessionReply(messageId, '⚠️ 部分图片/文件下载失败(缺少 User Token)。请在话题中发送 /login 授权后重新发送。', 'text', larkAppId);
272
+ sessionReply(anchor, '⚠️ 部分图片/文件下载失败(缺少 User Token)。请在话题中发送 /login 授权后重新发送。', 'text', larkAppId);
250
273
  }
251
274
  refreshCliVersion(botCfg.cliId, botCfg.cliPathOverride);
252
- // Create session in pending-repo state — don't spawn CLI yet
275
+ // Create session in pending-repo state — don't spawn CLI yet.
276
+ // For thread-scope, rootMessageId == anchor (the thread root).
277
+ // For chat-scope, rootMessageId stores the seed message_id (audit only);
278
+ // routing keys off chatId via sessionAnchorId().
253
279
  const session = sessionStore.createSession(chatId, messageId, parsed.content.substring(0, 50), chatType);
254
280
  session.larkAppId = larkAppId;
255
281
  session.ownerOpenId = senderOpenId;
282
+ session.scope = scope;
256
283
  sessionStore.updateSession(session);
257
- messageQueue.ensureQueue(messageId);
258
- messageQueue.appendMessage(messageId, parsed);
284
+ messageQueue.ensureQueue(anchor);
285
+ messageQueue.appendMessage(anchor, parsed);
259
286
  // Oncall group: pin working dir from binding, skip repo selection entirely.
260
287
  const oncallEntry = findOncallChat(larkAppId, chatId);
261
288
  const ds = {
@@ -266,6 +293,7 @@ async function handleNewTopic(data, chatId, messageId, chatType = 'group', larkA
266
293
  larkAppId,
267
294
  chatId,
268
295
  chatType,
296
+ scope,
269
297
  spawnedAt: Date.now(),
270
298
  cliVersion: cliVersionCache.get(botCfg.cliId)?.version ?? 'unknown',
271
299
  lastMessageAt: Date.now(),
@@ -282,7 +310,7 @@ async function handleNewTopic(data, chatId, messageId, chatType = 'group', larkA
282
310
  ds.session.workingDir = oncallEntry.workingDir;
283
311
  sessionStore.updateSession(ds.session);
284
312
  }
285
- activeSessions.set(sessionKey(messageId, larkAppId), ds);
313
+ activeSessions.set(sessionKey(anchor, larkAppId), ds);
286
314
  // Oncall-bound chat: spawn CLI immediately with the pinned working dir.
287
315
  if (oncallEntry) {
288
316
  const selfBot = getBot(larkAppId);
@@ -300,8 +328,8 @@ async function handleNewTopic(data, chatId, messageId, chatType = 'group', larkA
300
328
  if (projects.length > 0) {
301
329
  lastRepoScan.set(chatId, projects);
302
330
  const currentCwd = getSessionWorkingDir(ds);
303
- const cardJson = buildRepoSelectCard(projects, currentCwd, messageId);
304
- ds.repoCardMessageId = await sessionReply(messageId, cardJson, 'interactive', larkAppId);
331
+ const cardJson = buildRepoSelectCard(projects, currentCwd, anchor);
332
+ ds.repoCardMessageId = await sessionReply(anchor, cardJson, 'interactive', larkAppId);
305
333
  logger.info(`[${tag(ds)}] Waiting for repo selection (${projects.length} projects)`);
306
334
  }
307
335
  else {
@@ -313,7 +341,8 @@ async function handleNewTopic(data, chatId, messageId, chatType = 'group', larkA
313
341
  logger.info(`Session ${session.sessionId} ready (no projects to select), total active: ${getActiveCount()}`);
314
342
  }
315
343
  }
316
- async function handleThreadReply(data, rootId, larkAppId) {
344
+ async function handleThreadReply(data, ctx) {
345
+ const { chatId: ctxChatId, chatType: ctxChatType, scope, anchor, larkAppId } = ctx;
317
346
  await resolveNonsupportMessage(data, larkAppId);
318
347
  const { parsed, resources } = parseEventMessage(data);
319
348
  // Expand merge_forward: fetch sub-messages and collect their resources
@@ -338,40 +367,48 @@ async function handleThreadReply(data, rootId, larkAppId) {
338
367
  if (invocation) {
339
368
  const { cmd, content: commandContent } = invocation;
340
369
  if (PASSTHROUGH_COMMANDS.has(cmd)) {
341
- const ds = activeSessions.get(sessionKey(rootId, larkAppId));
370
+ const ds = activeSessions.get(sessionKey(anchor, larkAppId));
342
371
  if (ds?.worker && !ds.worker.killed) {
343
372
  ds.worker.send({ type: 'raw_input', content: commandContent });
344
373
  ds.lastMessageAt = Date.now();
345
- logger.info(`[${rootId.substring(0, 12)}] Passthrough ${cmd} → worker`);
374
+ logger.info(`[${anchor.substring(0, 12)}] Passthrough ${cmd} → worker`);
346
375
  }
347
376
  else {
348
- sessionReply(rootId, `${cmd} 需要活跃的 CLI 进程,当前话题无运行中的会话。`, 'text', larkAppId);
377
+ sessionReply(anchor, `${cmd} 需要活跃的 CLI 进程,当前话题无运行中的会话。`, 'text', larkAppId);
349
378
  }
350
379
  return;
351
380
  }
352
381
  if (DAEMON_COMMANDS.has(cmd)) {
353
382
  // Oncall owner gate for thread-reply daemon commands
354
- const existingDs = activeSessions.get(sessionKey(rootId, larkAppId));
355
- const threadChatId = existingDs?.chatId ?? data?.message?.chat_id;
383
+ const existingDs = activeSessions.get(sessionKey(anchor, larkAppId));
384
+ const threadChatId = existingDs?.chatId ?? ctxChatId ?? data?.message?.chat_id;
356
385
  const threadSenderOpenId = parsed.senderId || data?.sender?.sender_id?.open_id;
357
386
  if (cmd !== '/oncall' && threadChatId && findOncallChat(larkAppId, threadChatId) && !canOperate(larkAppId, threadChatId, threadSenderOpenId)) {
358
- sessionReply(rootId, `⚠️ ${cmd} 仅 oncall owner 可执行。`, 'text', larkAppId);
387
+ sessionReply(anchor, `⚠️ ${cmd} 仅 oncall owner 可执行。`, 'text', larkAppId);
359
388
  return;
360
389
  }
361
390
  // Pass mention-stripped content so /command argument parsing works.
362
- handleCommand(cmd, rootId, { ...parsed, content: commandContent }, commandDeps, larkAppId);
391
+ handleCommand(cmd, anchor, { ...parsed, content: commandContent }, commandDeps, larkAppId);
363
392
  return;
364
393
  }
365
394
  }
366
- logger.info(`Thread reply in ${rootId}: ${content.substring(0, 100)} (resources: ${resources.length})`);
367
- let ds = activeSessions.get(sessionKey(rootId, larkAppId));
368
- // If another bot already owns this thread, ignore unmentioned replies here as a
395
+ logger.info(`Reply in ${scope}-scope session ${anchor.substring(0, 12)}: ${content.substring(0, 100)} (resources: ${resources.length})`);
396
+ let ds = activeSessions.get(sessionKey(anchor, larkAppId));
397
+ // If another bot already owns this anchor, ignore unmentioned replies here as a
369
398
  // second line of defense. Explicit @mentions are still allowed to spin up/take over.
399
+ // For chat-scope: another bot's session in the same chat is keyed by its own chatId.
400
+ // For thread-scope: same rootMessageId may have peer sessions across bots.
370
401
  if (!ds) {
371
402
  const mentionedThisBot = isBotMentioned(larkAppId, data?.message ?? {}, data?.sender?.sender_id?.open_id);
372
- const hasOtherBot = [...activeSessions.values()].some(s => s.session.rootMessageId === rootId && s.larkAppId !== larkAppId);
403
+ const hasOtherBot = [...activeSessions.values()].some(s => {
404
+ if (s.larkAppId === larkAppId)
405
+ return false;
406
+ if (s.scope === 'chat')
407
+ return s.chatId === ctxChatId && scope === 'chat';
408
+ return s.session.rootMessageId === anchor;
409
+ });
373
410
  if (hasOtherBot && !mentionedThisBot) {
374
- logger.info(`[${larkAppId}] Ignoring thread ${rootId}; another bot already owns it`);
411
+ logger.info(`[${larkAppId}] Ignoring ${scope}-scope ${anchor}; another bot already owns it`);
375
412
  return;
376
413
  }
377
414
  }
@@ -382,7 +419,7 @@ async function handleThreadReply(data, rootId, larkAppId) {
382
419
  parsed.attachments = attachments;
383
420
  }
384
421
  if (needLogin) {
385
- sessionReply(rootId, '⚠️ 部分图片/文件下载失败(缺少 User Token)。请在话题中发送 /login 授权后重新发送。', 'text', effectiveAppId);
422
+ sessionReply(anchor, '⚠️ 部分图片/文件下载失败(缺少 User Token)。请在话题中发送 /login 授权后重新发送。', 'text', effectiveAppId);
386
423
  }
387
424
  // Update last message time + last caller (used by `botmux send` to address
388
425
  // reply cards to whoever triggered this turn — matters in oncall groups
@@ -411,39 +448,48 @@ async function handleThreadReply(data, rootId, larkAppId) {
411
448
  if (!ds.pendingFollowUps)
412
449
  ds.pendingFollowUps = [];
413
450
  ds.pendingFollowUps.push(enriched);
414
- await sessionReply(rootId, '请先在上方卡片中选择仓库,您的消息已暂存,选择后会自动发送。', 'text', larkAppId);
451
+ await sessionReply(anchor, '请先在上方卡片中选择仓库,您的消息已暂存,选择后会自动发送。', 'text', larkAppId);
415
452
  return;
416
453
  }
417
- // Route to file queue
418
- messageQueue.ensureQueue(rootId);
419
- messageQueue.appendMessage(rootId, parsed);
454
+ // Route to file queue (keyed by anchor: rootMessageId for thread, chatId for chat)
455
+ messageQueue.ensureQueue(anchor);
456
+ messageQueue.appendMessage(anchor, parsed);
420
457
  if (!ds) {
421
- // No active session for this thread — auto-create with repo selection
422
- if (activeSessions.has(sessionKey(rootId, larkAppId))) {
423
- logger.info(`[${larkAppId}] Session already exists for thread ${rootId}, skipping auto-create`);
458
+ // No active session at this anchor — auto-create. This branch is mostly a
459
+ // safety net; the dispatcher routes here only when isSessionOwner() returns
460
+ // true, but races (between check and execution, or session-closed events)
461
+ // can land us here.
462
+ if (activeSessions.has(sessionKey(anchor, larkAppId))) {
463
+ logger.info(`[${larkAppId}] Session already exists for ${scope}-scope ${anchor}, skipping auto-create`);
424
464
  return;
425
465
  }
426
- const chatId = data?.message?.chat_id ?? '';
427
- const chatType = (data?.message?.chat_type === 'p2p' ? 'p2p' : 'group');
466
+ const autoCreateChatId = ctxChatId ?? data?.message?.chat_id ?? '';
467
+ const autoCreateChatType = ctxChatType ?? (data?.message?.chat_type === 'p2p' ? 'p2p' : 'group');
428
468
  const botCfg = getBot(larkAppId).config;
429
- logger.info(`No active session for thread ${rootId}, auto-creating new session...`);
469
+ logger.info(`No active session for ${scope}-scope ${anchor}, auto-creating new session...`);
430
470
  refreshCliVersion(botCfg.cliId, botCfg.cliPathOverride);
431
471
  const senderOId = data.sender?.sender_id?.open_id;
432
- const session = sessionStore.createSession(chatId, rootId, parsed.content.substring(0, 50), chatType);
472
+ // For thread-scope: rootMessageId = anchor (real thread root).
473
+ // For chat-scope: rootMessageId = the message_id that triggered this auto-create
474
+ // (used as audit trail; routing key is chatId).
475
+ const rootIdForStore = scope === 'thread' ? anchor : parsed.messageId;
476
+ const session = sessionStore.createSession(autoCreateChatId, rootIdForStore, parsed.content.substring(0, 50), autoCreateChatType);
433
477
  session.larkAppId = larkAppId;
434
478
  session.ownerOpenId = senderOId;
435
479
  session.lastCallerOpenId = senderOId;
480
+ session.scope = scope;
436
481
  sessionStore.updateSession(session);
437
482
  // Oncall group: pin working dir from binding, skip repo selection entirely
438
483
  // (mirrors handleNewTopic — auto-create was missing this check).
439
- const oncallEntry = findOncallChat(larkAppId, chatId);
484
+ const oncallEntry = findOncallChat(larkAppId, autoCreateChatId);
440
485
  // Cross-bot inheritance: when another bot already pinned a working dir for
441
- // this thread (typical: Bot A is mid-task and @mentions Bot B for review),
486
+ // this anchor (typical: Bot A is mid-task and @mentions Bot B for review),
442
487
  // inherit it so we can spawn immediately with the @-content as the prompt
443
488
  // — same shape as a human-initiated start, no repo selection round-trip.
489
+ // Only meaningful for thread-scope (peer lookup is by rootMessageId).
444
490
  let inheritedFrom = null;
445
- if (!oncallEntry) {
446
- const peers = sessionStore.findActiveSessionsByRoot(rootId);
491
+ if (!oncallEntry && scope === 'thread') {
492
+ const peers = sessionStore.findActiveSessionsByRoot(anchor);
447
493
  const peer = peers.find(p => p.larkAppId !== larkAppId && !!p.workingDir);
448
494
  if (peer && peer.workingDir) {
449
495
  inheritedFrom = { sessionId: peer.sessionId, larkAppId: peer.larkAppId, workingDir: peer.workingDir };
@@ -456,8 +502,9 @@ async function handleThreadReply(data, rootId, larkAppId) {
456
502
  workerPort: null,
457
503
  workerToken: null,
458
504
  larkAppId,
459
- chatId,
460
- chatType,
505
+ chatId: autoCreateChatId,
506
+ chatType: autoCreateChatType,
507
+ scope,
461
508
  spawnedAt: Date.now(),
462
509
  cliVersion: cliVersionCache.get(botCfg.cliId)?.version ?? 'unknown',
463
510
  lastMessageAt: Date.now(),
@@ -474,15 +521,15 @@ async function handleThreadReply(data, rootId, larkAppId) {
474
521
  newDs.session.workingDir = pinnedWorkingDir;
475
522
  sessionStore.updateSession(newDs.session);
476
523
  }
477
- activeSessions.set(sessionKey(rootId, larkAppId), newDs);
524
+ activeSessions.set(sessionKey(anchor, larkAppId), newDs);
478
525
  // Pinned (oncall binding or inherited from peer bot in same thread):
479
526
  // spawn CLI immediately, skip repo selection.
480
527
  if (pinnedWorkingDir) {
481
528
  const selfBot = getBot(larkAppId);
482
- const prompt = buildNewTopicPrompt(parsed.content, session.sessionId, botCfg.cliId, botCfg.cliPathOverride, attachments, parsed.mentions, await getAvailableBots(larkAppId, chatId), undefined, { name: selfBot.botName, openId: selfBot.botOpenId });
529
+ const prompt = buildNewTopicPrompt(parsed.content, session.sessionId, botCfg.cliId, botCfg.cliPathOverride, attachments, parsed.mentions, await getAvailableBots(larkAppId, autoCreateChatId), undefined, { name: selfBot.botName, openId: selfBot.botOpenId });
483
530
  forkWorker(newDs, prompt);
484
531
  const reason = oncallEntry
485
- ? `oncall-bound chat ${chatId}`
532
+ ? `oncall-bound chat ${autoCreateChatId}`
486
533
  : `inherited from peer session ${inheritedFrom.sessionId.substring(0, 8)} (app=${inheritedFrom.larkAppId ?? 'unknown'})`;
487
534
  logger.info(`[${tag(newDs)}] ${reason} → workingDir=${pinnedWorkingDir}, skipped repo select`);
488
535
  return;
@@ -494,17 +541,17 @@ async function handleThreadReply(data, rootId, larkAppId) {
494
541
  projects = scanMultipleProjects(scanDirs2);
495
542
  }
496
543
  if (projects.length > 0) {
497
- lastRepoScan.set(chatId, projects);
544
+ lastRepoScan.set(autoCreateChatId, projects);
498
545
  const currentCwd = getSessionWorkingDir(newDs);
499
- const cardJson = buildRepoSelectCard(projects, currentCwd, rootId);
500
- newDs.repoCardMessageId = await sessionReply(rootId, cardJson, 'interactive', larkAppId);
546
+ const cardJson = buildRepoSelectCard(projects, currentCwd, anchor);
547
+ newDs.repoCardMessageId = await sessionReply(anchor, cardJson, 'interactive', larkAppId);
501
548
  logger.info(`[${tag(newDs)}] Waiting for repo selection (${projects.length} projects)`);
502
549
  }
503
550
  else {
504
551
  // No projects found — skip repo selection, spawn directly
505
552
  newDs.pendingRepo = false;
506
553
  const selfBot = getBot(larkAppId);
507
- const prompt = buildNewTopicPrompt(parsed.content, session.sessionId, botCfg.cliId, botCfg.cliPathOverride, attachments, parsed.mentions, await getAvailableBots(larkAppId, chatId), undefined, { name: selfBot.botName, openId: selfBot.botOpenId });
554
+ const prompt = buildNewTopicPrompt(parsed.content, session.sessionId, botCfg.cliId, botCfg.cliPathOverride, attachments, parsed.mentions, await getAvailableBots(larkAppId, autoCreateChatId), undefined, { name: selfBot.botName, openId: selfBot.botOpenId });
508
555
  forkWorker(newDs, prompt);
509
556
  }
510
557
  return;
@@ -539,7 +586,7 @@ async function handleThreadReply(data, rootId, larkAppId) {
539
586
  const dsBotCfg = getBot(ds.larkAppId).config;
540
587
  const prevTitle = ds.currentTurnTitle || ds.session.title || getCliDisplayName(dsBotCfg.cliId);
541
588
  const prevMode = ds.displayMode ?? 'hidden';
542
- const frozenCard = buildStreamingCard(ds.session.sessionId, ds.session.rootMessageId, readUrl, prevTitle, ds.lastScreenContent ?? '', 'idle', dsBotCfg.cliId, prevMode, ds.streamCardNonce, ds.currentImageKey, !!ds.adoptedFrom, false);
589
+ const frozenCard = buildStreamingCard(ds.session.sessionId, sessionAnchorId(ds), readUrl, prevTitle, ds.lastScreenContent ?? '', 'idle', dsBotCfg.cliId, prevMode, ds.streamCardNonce, ds.currentImageKey, !!ds.adoptedFrom, false);
543
590
  // Freeze through the serialization queue to avoid racing with an in-flight PATCH.
544
591
  // scheduleCardPatch replaces any stale pending item (latest-wins).
545
592
  scheduleCardPatch(ds, frozenCard);
@@ -710,17 +757,6 @@ export async function startDaemon(botIndex) {
710
757
  startedAt: Date.now(),
711
758
  lastHeartbeat: Date.now(),
712
759
  };
713
- writeDaemonDescriptor(desc);
714
- const descriptorHeartbeat = setInterval(() => {
715
- desc.lastHeartbeat = Date.now();
716
- try {
717
- writeDaemonDescriptor(desc);
718
- }
719
- catch { /* best effort */ }
720
- }, 30_000);
721
- // Don't keep the event loop alive on this interval alone.
722
- if (typeof descriptorHeartbeat.unref === 'function')
723
- descriptorHeartbeat.unref();
724
760
  // Initialise worker pool with daemon callbacks
725
761
  initWorkerPool({
726
762
  sessionReply,
@@ -738,14 +774,31 @@ export async function startDaemon(botIndex) {
738
774
  // so dashboard IPC and other consumers can list/lookup live sessions.
739
775
  setActiveSessionsRegistry(activeSessions);
740
776
  // Seed dashboard IPC botName with the bot's config id; the friendly name from
741
- // /bot/v3/info is wired into the registry descriptor (above) but the IPC server
777
+ // /bot/v3/info is wired into the registry descriptor (below) but the IPC server
742
778
  // also needs its own copy for SessionRow.botName.
743
779
  setBotName(cfg.larkAppId);
744
780
  setLarkAppId(cfg.larkAppId);
745
- // Bind dashboard IPC HTTP server. Binds to 127.0.0.1 only — the dashboard
746
- // sibling process is the sole consumer and runs on the same host.
781
+ // Bind dashboard IPC HTTP server BEFORE publishing the registry descriptor.
782
+ // Otherwise the dashboard process can race-fetch the IPC port from the
783
+ // descriptor and hit ECONNREFUSED before we're listening — that left every
784
+ // newly-started daemon's hydrate failing on dashboard startup. Binds to
785
+ // 127.0.0.1 only since the dashboard sibling runs on the same host.
747
786
  const ipcHandle = await startIpcServer({ port: ipcPort, host: '127.0.0.1' });
748
787
  logger.info(`[dashboard-ipc] listening on 127.0.0.1:${ipcHandle.port} (bot ${idx})`);
788
+ // Now that the IPC port is actually listening, publish the descriptor so
789
+ // the dashboard can discover us and successfully fetch /api/sessions etc.
790
+ desc.lastHeartbeat = Date.now();
791
+ writeDaemonDescriptor(desc);
792
+ const descriptorHeartbeat = setInterval(() => {
793
+ desc.lastHeartbeat = Date.now();
794
+ try {
795
+ writeDaemonDescriptor(desc);
796
+ }
797
+ catch { /* best effort */ }
798
+ }, 30_000);
799
+ // Don't keep the event loop alive on this interval alone.
800
+ if (typeof descriptorHeartbeat.unref === 'function')
801
+ descriptorHeartbeat.unref();
749
802
  // Per-bot initialization
750
803
  for (const bot of getAllBots()) {
751
804
  const cfg = bot.config;
@@ -783,11 +836,9 @@ export async function startDaemon(botIndex) {
783
836
  // Start event dispatcher for this bot
784
837
  startLarkEventDispatcher(cfg.larkAppId, cfg.larkAppSecret, {
785
838
  handleCardAction: (data, appId) => handleCardAction(data, cardDeps, appId),
786
- handleNewTopic: (data, chatId, messageId, chatType, appId) => handleNewTopic(data, chatId, messageId, chatType, appId),
787
- handleThreadReply: (data, rootId, appId) => handleThreadReply(data, rootId, appId),
788
- isSessionOwner: (rootId, appId) => {
789
- return activeSessions.has(sessionKey(rootId, appId));
790
- },
839
+ handleNewTopic: (data, ctx) => handleNewTopic(data, ctx),
840
+ handleThreadReply: (data, ctx) => handleThreadReply(data, ctx),
841
+ isSessionOwner: (anchor, appId) => activeSessions.has(sessionKey(anchor, appId)),
791
842
  });
792
843
  }
793
844
  // Restore active sessions from previous run
@@ -1 +1 @@
1
- {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"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"}