Repository navigation
修复 DSH v4 拒绝连续性纠正消息的来源格式 #108
Copy link
Copy link
Closed
Description
结果与范围
修复 Thinloop 的 DSH 连续性纠正消息在 Session v4 下触发 format v4 message requires a producer-owned source kind。修改 .dsh-plugin/continuity.mjs、直接相关测试及插件说明。
方案与确认
将退役的 { kind: "plugin", plugin: "thinloop-continuity" } 改成 { kind: "plugin:thinloop-continuity" },保留纠正消息内容和连续性闸门行为。
方案确认:需要确认:否;状态:默认免确认。
根因:Confirmed。本机 DSH Desktop 0.2.1-rc.2 的实际安装代码拒绝 source.kind === "plugin";现有插件在 agent/turn-stopping 纠正路径返回该值。先添加真实 listener 回归用例并观察失败,再执行修复。
验收与任务
- A1:不可恢复的 SCD 状态触发纠正时,实际
agent.steer消息携带 v4 可接受的生产方来源;相同未修改状态不会重复纠正。 - A2:修复后的消息可通过实际安装 DSH 0.2.1-rc.2 的会话格式写入校验,旧来源被同一校验拒绝;仓库相关测试与检查通过。
- A3:本机 DSH 组合包含启用的 Thinloop 与 dsh-mem0 插件,入口仍使用已有源码路径;保留无关未提交工作与运行中的桌面会话。
- T1:添加失败回归、修正来源字段及对应说明。
- T2:完成工程验证和独立新上下文验收。
- T3:合并、同步已安装客户端并清理任务资源。
验证
- A1 PASS:
node --test tests/plugin-compatibility.test.mjs tests/validate-state.test.mjs tests/check-state.test.mjs,38 项通过;先前回归实际观察到旧来源与期望不同而失败。 - A2 PASS:
node --test tests/*.test.mjs,357 项通过;node --check .dsh-plugin/continuity.mjs、node scripts/check-version.mjs(0.17.1、11 个表面)、node scripts/sync-routing-kernel.mjs --check、node scripts/generate-readme-diagrams.mjs --check、git diff --check均通过。本仓库为直接运行的 JS,无独立构建步骤。 - A2 运行时格式验证:从
/Applications/DeepSeek Harness.app/Contents/Resources/app.asar提取的实际 0.2.1-rc.2 格式库,对两个插件实际构造的 5 种消息执行encodeEvent与restoreReleasedV4Artifact;5 种新来源均通过,同样内容改回旧来源均被拒绝。脚本:/Users/carver/Documents/Codex/2026-10-21/format-v4-message-requires-a-producer/work/dsh-v4-fix/verify-installed-v4.mjs。 - A3 PASS:应用捆绑 CLI
--profile headless --dump-config退出 0,thinloop-continuity与dsh-mem0均启用且指向现有源码文件;主检出无关文件未改动,未重启桌面应用。 - 相邻本地修复:dsh-mem0 的来源字段、读取端
plugin:识别与对应测试已修复(共 4 个文件),npm test19 项通过。读取端新增回归先观察到插件文本被误识别为用户问题的失败,修复后通过。该目录原本未跟踪,保留为本地未提交工作,不把整个未完成模块加入本 PR。 - 真实桌面聊天由用户重启后验收,不以静态配置或格式校验冒充真实聊天结果。
完成审计
- 验收闭合:A1、A2、A3 工程 PASS,独立验收 PASS。
- 实施账目:T1 DONE;T2 DONE(独立新上下文子智能体
/root/accept_dsh_v4,目标758c0ae5788c450857c1f7c2e87eac390332b74e,返回 PASS);T3 DONE(已合并、同步并完成精确任务资源清理)。 - 交付状态:分支
fix/108-dsh-v4-source,目标提交758c0ae,基准71d8083;4 文件、9 增 9 删,无页面变更。PR 修复 DSH v4 连续性消息来源格式 #109 的 Thinloop CI 已 PASS;独立验收 PASS,合并、安装同步与清理均已完成。
独立验收证据
实际调用新上下文子智能体 /root/accept_dsh_v4,亲读 Issue/PR/AGENTS 与完整差异。对 A1 直接运行 38 项相关测试;A2 直接运行全部 357 项测试及实际安装库 5 正/5 反校验,并比对安装包代码;A3 独立运行捆绑 CLI config-dump(退出 0),核对两个启用的源码挂载。相邻 mem0 四文件快照差异与 19 项测试亦通过。结论 PASS(工程阶段);真实桌面聊天留给用户重启后验收。
最终交付与清理审计
- 合并:PR 修复 DSH v4 连续性消息来源格式 #109 已 MERGED;head
758c0ae5788c450857c1f7c2e87eac390332b74e,main 合并提交ae1d2c8c15273e08c96ce2e8aaed1c2fc4746eb5。PR CI 与合并提交的 CI 均 success(run 39583355569 / 39666905901)。本地 main 与 origin/main 相同,四个交付文件与独立验收目标逐文件一致。 - 合并后验证:在 main 运行两个相关测试文件,18/18 通过;实际安装 DSH 格式校验再次 5 正/5 反通过。mem0 四个任务修改文件的 SHA256 与独立验收时一致。
- 安装:Codex 12/12 skills 源链接刷新并 PASS;Claude Code 原生刷新后版本 0.17.1、12/12 skills、2/2 hooks、完整受管 payload PASS;ZCode 0.17.0 的旧 app-server 更新路径返回异常,改用其原生
zcode plugins marketplace update thinloop --json与zcode plugins update thinloop@thinloop --json,两个返回 ok=true、无目标 error diagnostics,随后版本 0.17.1、12/12 skills、2/2 runnable hooks 及 payload PASS。未修改客户端版本或全局身份配置。 - 其他受支持安装:Pi、CodeWhale、Reasonix 源链接检查 PASS。OpenCode 静态检查对运行时发现标 MANUAL,已直接执行
opencode debug skill(退出 0),12/12 Thinloop skills 被发现。DSH 12/12 源链接 PASS,保守 YAML 检查因现有!!js标 MANUAL,已由独立捆绑 CLI config-dump 与实际格式库校验补充直接证据;不宣称运行中的桌面进程已重新加载。WorkBuddy 按仓库规则 SKIP。 - 清理:任务工作树
work/thinloop-dsh-v4已移除;本地与远端fix/108-dsh-v4-source均不存在;未创建任务连续性状态文件。原主检出三个无关未跟踪项及 mem0 已有未提交工作均保留。 - 三本账:A1/A2/A3 PASS;T1/T2/T3 DONE;CI、独立验收、合并版本、安装状态和任务资源清理已闭合。无页面变更。真实桌面聊天仍由用户重启 DSH 后使用验收。
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
Activity