palz-connector 1.3.4 → 1.3.5

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.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "palz-connector",
3
3
  "name": "Palz Connector Channel",
4
- "version": "1.3.4",
4
+ "version": "1.3.5",
5
5
  "description": "Palz IM 接入 OpenClaw",
6
6
  "channels": [
7
7
  "palz-connector"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "palz-connector",
3
- "version": "1.3.4",
3
+ "version": "1.3.5",
4
4
  "type": "module",
5
5
  "main": "index.ts",
6
6
  "description": "Palz IM 接入 OpenClaw — 模块化架构,基于 OpenClaw Runtime 消息管道",
package/src/bot.ts CHANGED
@@ -45,8 +45,10 @@ function extractPlainText(content: OpenAIContent): string {
45
45
 
46
46
  // ============ reasoning 激活状态缓存(内存) ============
47
47
 
48
- /** 已激活 reasoning stream session key 集合,避免每次请求重复发送 /reasoning stream */
49
- const reasoningActivated = new Set<string>();
48
+ const REASONING_ACTIVATE_TTL_MS = 15 * 60 * 1000; // 15 分钟
49
+
50
+ /** 已激活 reasoning stream 的 session key → 激活时间戳(ms),超过 TTL 后重新发送激活指令 */
51
+ const reasoningActivated = new Map<string, number>();
50
52
 
51
53
  /** 已扫描过 session store 的 agent 集合,每个 agent 只扫描一次 */
52
54
  const reasoningScannedAgents = new Set<string>();
@@ -64,7 +66,7 @@ function prefillReasoningActivated(core: any, agentId: string, log: (...args: an
64
66
  let count = 0;
65
67
  for (const [key, entry] of Object.entries(store)) {
66
68
  if ((entry as any)?.reasoningLevel === "stream") {
67
- reasoningActivated.add(key);
69
+ reasoningActivated.set(key, Date.now());
68
70
  count++;
69
71
  }
70
72
  }
@@ -600,7 +602,9 @@ async function _dispatchPalzMessageInner(params: HandlePalzMessageParams): Promi
600
602
  prefillReasoningActivated(core, route.agentId, log);
601
603
  }
602
604
 
603
- if (showProcess && !reasoningActivated.has(route.sessionKey)) {
605
+ const reasoningExpired = !reasoningActivated.has(route.sessionKey)
606
+ || (Date.now() - reasoningActivated.get(route.sessionKey)! > REASONING_ACTIVATE_TTL_MS);
607
+ if (showProcess && reasoningExpired) {
604
608
  try {
605
609
  log(`${tag}: [REASONING ACTIVATE] 开始激活 reasoning stream, sessionKey=${route.sessionKey}`);
606
610
  // 构造 directive-only 的 context,Body 仅包含 /reasoning stream
@@ -659,7 +663,7 @@ async function _dispatchPalzMessageInner(params: HandlePalzMessageParams): Promi
659
663
  });
660
664
 
661
665
  if (activateSuccess) {
662
- reasoningActivated.add(route.sessionKey);
666
+ reasoningActivated.set(route.sessionKey, Date.now());
663
667
  log(`${tag}: [REASONING ACTIVATE] 激活成功, sessionKey=${route.sessionKey}`);
664
668
  } else {
665
669
  log(`${tag}: [REASONING ACTIVATE] 未收到确认 ack, 下次请求将重试, sessionKey=${route.sessionKey}`);