Repository navigation
v0.4.2 — 定期总结不再说「在空转」
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