Skip to content

v0.4.2 — 定期总结不再说「在空转」

Choose a tag to compare

@Signalight Signalight released this 23 Oct 10:40
· 1 commit to main since this release

v0.4.2 — 定期总结不再说「在空转」

问题

桌宠的「定期总结」每 5 次请求都会生成一条,但内容一直是「这批请求没有动作、没有工具调用、记录是空的、像在空转」。总结模型没说错——是喂给它的数据是空的。

根因

0.3.3 起,插件从 hooks.trajectory 的 eventNodes 重建会话节点时,读的是带包装的形状 { data: { kind, node } }。

而 dsh-client-ui-trajectory 的快照构建器是把最终节点本身直接放进 eventNodes 的:

finalized.push(data.node);   // 快照里 eventNodes[i] 就是节点

节点形状实际是:

{ kind: "user" | "assistant" | "tool-result", seq, turn, step,
  blocks: [{ kind: "tool-call", callId, name, argsRaw }, …] }

于是 entry.data 恒为 undefined,节点数组恒为空 —— 总结请求里的 user(用户指令)、assistant(模型的回复文字)、actions(工具调用)全都为空,模型只能如实回答「看起来什么都没干」。

修复

  • 两种形状都接受:优先直读最终节点,旧的包装形状保留为回退;
  • 顺带修好同源的静默问题:「遇到错误」场景语音与「完成」提示音的门禁依赖 turn-error 节点,而 0.2 线不发这种节点。现在由 requests 里每一轮最新那次请求失败合成(重试成功的轮次不会被误判成错误);
  • 桌宠气泡文字不受影响(它读的是 partial,一直正常)。

新增测试

3 个单元测试:直读最终节点的投影、端到端总结载荷(用户指令 / 回复文字 / 工具调用 / 失败标记)、turn-error 合成。测试总数 64。

升级

dsh plugin --profile desktop add @signalight/dsh-codex-pet@0.4.2

或在插件市场点「更新」,然后重启桌面版。

完整差异:v0.4.1...v0.4.2