Skip to content

DSH 插件化安装:宿主级挂载连续性插件(v0.17.1) - #103

Merged
mindcarver merged 1 commit into
mainfrom
feat/102-dsh-plugin-install
Sep 30, 2026
Merged

mindcarver merged 1 commit into
mainfrom
feat/102-dsh-plugin-install

Conversation

@mindcarver

Copy link
Copy Markdown
Owner

Refs #102

范围摘要

  • DeepSeek Harness 连续性插件 .dsh-plugin/continuity.mjs 的挂载方式从「复制 agent preset 的 agent.cordis.yml」改为宿主级用户 patch 层:在 $DSH_HOME/cordis.patch.yml 以 insert 列表追加 thinloop-continuity 条目,对全部 profile 与 agent preset 生效(含 Electron desktop 宿主经 runProfile 的同一组合代码),消除 preset 拷贝随 DSH 升级漂移的问题。
  • 依据:dsh-scope 事件过滤对未打标签的监听器始终放行(祖先作用域可观察后代活动),宿主层 ctx.on("agent/turn-stopping") 能收到每个 Agent 的停止事件,与官方 dsh-hooks-codex / dsh-hooks-claude-code 桥的挂载形态一致。
  • 纠正消息 source 从 { kind: "user" } 改为 { kind: "plugin", plugin: "thinloop-continuity" },与官方 Stop 桥一致,不再把纠正归因于人类用户。
  • scripts/verify-install.mjs 新增 DSH 只读挂载检查:扫描 $DSH_HOME/cordis.patch.yml 与 $DSH_HOME/profiles/*/cordis.patch.yml(跳过 node_modules bundle patch),挂载行指向当前源码时 hooks 为 PASS,未挂载保持 MANUAL(skills-only 仍是受支持形态);不运行任何 CLI 探测。
  • 文档:.dsh-plugin/README.md、docs/installation.md、docs/verification.md 同步宿主级挂载(含 patch 层必须用 insert、裸行会报 entry not found 的实测结论)与验证方式。
  • 版本推进 0.17.1(11 处版本表面)并新增 docs/releases/v0.17.1.md。

风险

  • 仅影响 DSH 安装/验证表面与其他平台的版本号;不改变 Skill 内容、其他平台 Hook 协议或运行时行为。
  • 挂载行指向源码检出内的插件文件,无载荷拷贝;仓库更新即生效。
  • desktop profile 由 Electron 独占管理,home 级挂载需重启 desktop 宿主后生效(启动时应用 patch 层)。

验收证据

  • A1(挂载检查两态):node --test tests/platform-capabilities.test.mjs 48/48 通过,新增 4 个 DSH 用例(home patch 挂载 PASS、profile patch 绝对路径 PASS、foreign 行与 bundle patch 忽略保持 MANUAL、DSH_HOME 覆盖);本机 node scripts/verify-install.mjs --platform dsh 在挂载后为 [PASS](skills 12/12、version 0.17.1、hooks 1/1 mounted via ~/.dsh/cordis.patch.yml)。
  • A2(真实会话行为,dsh --profile headless + --patch 模型 overlay):
    • 治疗组:坏状态文件(managed_by: scd-quickdev、缺六章节)目录中,Agent 停止前被纠正消息打断(stderr 推理记录收到纠正),补齐状态后(140 → 2996 字节,validateState 复核 issues: [])才允许停止,exit 0。
    • 对照组(未挂载插件):同坏状态文件,直答"2",文件原样 140 字节。
    • 负向(挂载插件、无状态文件):直答"4",静默不干预,未创建文件。
  • 组合检查:dsh --profile headless --dump-config 与 dsh --profile web --dump-config 均包含 thinloop-continuity 行且零 patch 错误;裸行形式实测报 entry "thinloop-continuity" not found(文档已记录正确形式)。
  • 全量测试 node --test tests/*.test.mjs:266/269 通过,3 个失败在干净 main 上同样失败(本机 Node 代理环境向子进程 stderr 注入 UNDICI-EHPA 警告,与本次差异无文件交集)。
  • node scripts/check-version.mjs PASS(11 surfaces 0.17.1);node scripts/sync-routing-kernel.mjs --check 通过;四个评测定义校验全部 PASS。

)

- 挂载方式从复制 agent preset 改为 $DSH_HOME/cordis.patch.yml 的 insert 块,
  覆盖全部 profile 与 preset(含 Electron desktop),消除 preset 拷贝漂移
- 纠正消息 provenance 改为 { kind: plugin, plugin: thinloop-continuity },
  对齐官方 dsh-hooks-codex Stop 桥
- verify-install 新增 DSH 只读挂载检查(无 CLI 探测),未挂载保持 MANUAL
- 三处文档同步宿主级挂载与验证方式;版本推进 0.17.1 并新增发布说明
- 测试:挂载/未挂载/DSH_HOME/foreign-row fixture 用例与插件结构断言
@mindcarver
mindcarver merged commit 9870a3e into main Sep 30, 2026
1 check passed
@mindcarver
mindcarver deleted the feat/102-dsh-plugin-install branch September 30, 2026 02:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant