kid-tea
dsh-plugin-conflict-checker
DeepSeek Harness plugin conflict checker: pre-flight duplicate loader-entry-id detection + optional real startup smoke test (CLI + Web GUI tab).
- Stars
- 0
- Language
- JavaScript
- Created
- Aug 16, 2026
- Updated
- Aug 16, 2026
Introduction
dsh-plugin-conflict-checker
DeepSeek Harness 插件冲突检测器(host + client bundle plugin)。
安装后:
- host 侧注册工具
check_plugin_conflicts - Web 设置 → 插件 里新增「冲突检测」标签页,点击按钮即可检测,结果直接显示在页面里
功能
- 静态检查当前 profile 的插件 patch 合成结果:
- 重复 loader entry id(会导致
duplicate loader entry id启动崩溃) - patch 目标不存在 / name mismatch / insert 非 group
- 重复 loader entry id(会导致
- 可选 smoke:
- 用 OS 分配的空闲端口真实拉起一次
dsh web - 等待
dsh web: http://...就绪输出 - 超时或提前退出则判定启动失败/卡死
- 用 OS 分配的空闲端口真实拉起一次
安装
如果路径含空格,pnpm 的 dsh plugin add 可能把路径拆开;建议先用无空格 junction 再安装:
mklink /J D:\cfchk-plugin "D:\deepseek harness\plugin\dsh-plugin-conflict-checker"
dsh plugin --profile web add D:\cfchk-plugin
然后重启对应 profile。
使用
GUI 按钮
- 打开 Web 设置
- 进入「插件」
- 找到「冲突检测」标签页
- 勾选“同时进行真实启动测试(smoke)”可选
- 点击「检测插件冲突」
- 结果直接显示在下方
Agent 工具
在 DSH 会话中让 Agent 调用:
{
"profile": "web",
"smoke": true,
"smokeTimeout": 60000
}
返回 JSON:
{
"ok": true,
"fatal": [],
"warnings": [],
"entryCount": 146,
"smoke": { "ok": true, "url": "http://127.0.0.1:30706" }
}
局限性 / Limitations
- 静态检查只覆盖已知的启动失败模式:重复 loader entry id、patch 目标不存在、name mismatch、insert 非 group、bundle 缺失/无
dsh.bundle声明。它不能保证覆盖所有未知插件冲突。 smoke模式会真实拉起一次dsh web,但只验证“能输出就绪 URL、不会在超时时间内卡死”;无法覆盖所有运行时问题(外部服务不可用、网络、浏览器端报错、端口被占用等)。- 当前检测逻辑通过子进程运行 bundled checker,而不是在 host 进程内直接合成;这样实现简单,但会额外启动一个 Node 子进程。
- 当前 GUI 标签页默认检测
webprofile,可在页面里手动改成其他 profile。 - Windows 下
dsh plugin add对含空格路径支持不好,安装时建议使用无空格 junction。 - 本项目仍属早期工具,DSH 的 slot/版本契约可能随版本变化;如果遇到新版不兼容,请以当前已安装的
@deepseek-ai/*包类型和实际行为为准。
开发
npm run typecheck
npm run build
npm run verify
说明
当前实现:
- host 注册工具 + HTTP 路由
/dsh-plugin-conflict-checker/check - client 注册
settings.plugins.tab,渲染检测按钮和结果 - 检测逻辑仍由 bundled checker 子进程执行,避免在 host 进程里重复实现一整套合成器