openclaw-lark-multi-agent 1.8.13 → 1.8.14

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.
@@ -1589,6 +1589,21 @@ export class FeishuBot {
1589
1589
  }
1590
1590
  else if (state === 'target_ended')
1591
1591
  state = 'pending';
1592
+ else if (state === 'pending') {
1593
+ // Safe recovery for a NON-INSERTABLE target (audit P1 #2
1594
+ // 2026-10-17): this branch only runs for EXPLICIT no-effect
1595
+ // receipts (attempted===false, definitively not inserted — the
1596
+ // outer guard). If the exact target run has settled, or the
1597
+ // target has refused insertion for over 60s (e.g. a long-lived
1598
+ // maintenance run), hand the input to the ordinary queue: the
1599
+ // gateway queues it behind whatever currently holds the session
1600
+ // instead of parking it in bridge-side limbo forever. Unknown
1601
+ // receipts never enter this branch and are never replayed.
1602
+ const boundSince = Number.isFinite(item.boundSince) ? item.boundSince : Date.now();
1603
+ item.boundSince = boundSince;
1604
+ if (originalRunEnded || Date.now() - boundSince > 60_000)
1605
+ state = 'ordinary';
1606
+ }
1592
1607
  }
1593
1608
  if (state === 'target_ended')
1594
1609
  state = 'rejected'; // prior explicit backend refusal; never silently move it to a successor
@@ -2286,8 +2286,11 @@ export class OpenClawClient {
2286
2286
  return unknown();
2287
2287
  };
2288
2288
  try {
2289
+ // The outer race must honor the SAME total budget as the scan itself
2290
+ // (audit P1 2026-10-17: an 8000ms scan raced against a 1500ms timer was
2291
+ // still killed at 1500ms — three real 650ms pages never got to finish).
2289
2292
  return await Promise.race([scan(), new Promise((_, reject) => {
2290
- timer = setTimeout(() => reject(new Error('activity lookup timeout')), 1500);
2293
+ timer = setTimeout(() => reject(new Error('activity lookup timeout')), 8000);
2291
2294
  })]);
2292
2295
  }
2293
2296
  catch {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openclaw-lark-multi-agent",
3
- "version": "1.8.13",
3
+ "version": "1.8.14",
4
4
  "description": "Multi-bot Lark/Feishu bridge for OpenClaw, with per-bot model routing and isolated sessions",
5
5
  "type": "module",
6
6
  "scripts": {