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.
- package/dist/feishu-bot.js +15 -0
- package/dist/openclaw-client.js +4 -1
- package/package.json +1 -1
package/dist/feishu-bot.js
CHANGED
|
@@ -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
|
package/dist/openclaw-client.js
CHANGED
|
@@ -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')),
|
|
2293
|
+
timer = setTimeout(() => reject(new Error('activity lookup timeout')), 8000);
|
|
2291
2294
|
})]);
|
|
2292
2295
|
}
|
|
2293
2296
|
catch {
|