dsh-conflict-guardian:在 DSH 启动时检测并处理插件冲突

前言

DeepSeek Harness(DSH)的插件机制允许通过组合文件挂载多个插件。实际开发中,同一模块可能被重复挂载,某个插件激活时抛错,也有插件等待一个无人提供的注入服务而保持 pending。若依赖人工检查组合文件、加载器状态和错误信息,排查链路较长。

dsh-conflict-guardian 把这类检查放到 DSH 每次启动时执行:先扫描加载器中的插件状态,再对重复挂载、激活失败、依赖缺失和未运行实例做自动处理,最后在 Web 界面弹出冲突报告。

这是什么

dsh-conflict-guardian 是 baisama-cloud 维护的一个 DSH 插件,许可证为 MIT。它解决的是启动阶段插件冲突不易被发现、处理不及时的问题。

它不会改写插件源码,也不解析插件源码内的服务注册;检测对象是加载器运行时状态与组合文件中的静态配置。

核心功能

下面介绍几类检测和处理方式。

重复挂载

  • 同一模块以完全相同配置重复挂载时,视为重复实例;
  • 自动停用后加载的实例,并保留第一份;
  • 不同配置的 Cordis 多实例不会被误判。

激活失败与依赖缺失

  • 激活时抛出错误的 failed 插件会被自动停用,并报告失败原因;
  • 因等待无人提供的注入服务而 pending 的插件会被自动停用,并列出缺失的服务名。

自动恢复

  • 对启用但没有运行实例的条目,插件会尝试恢复;
  • 恢复成功与否会提示。

组合文件静态检查

  • 静态扫描组合文件;
  • 发现同一文件内配置行 id 重复时给出警告;
  • 不修改配置文件。

Web 界面与接口

  • 打开 DSH 页面时,若有冲突即弹出报告;
  • 报告逐条显示冲突位置与处理结果;
  • 支持「重新检测」或「知道了」关闭。

接口方面,静态安装时宿主 lib/index.jswebServer 上注册:

POST /conflict-guardian/report
POST /conflict-guardian/rescan

动态插件运行时提供以下 harness.handle 调用入口:

harness.handle('conflict-report')
harness.handle('conflict-rescan')

动态插件运行时还会额外注册模型可调用的 conflict_check 工具。

安装与启用

已核实资料中给出的安装/打包步骤为:

npm pack

运行环境要求:

node >= 20

启用方式是在 DSH 配置的插件列表中加入该包,并在 cordis.patch.yml 中声明插入条目:

- insert:
    - id: dsh-conflict-guardian
      name: 'dsh-conflict-guardian'

如果以静态安装方式运行,lib/client.js 是已打包的浏览器 bundle;宿主 lib/index.js 提供上述路由入口。

如果以动态插件方式运行,宿主同样提供 harness.handle 调用入口,并注册 conflict_check 工具。

典型用法

  1. 安装并挂载后,每次 DSH 启动时插件自动扫描加载器;
  2. 发现冲突后立即自动处理,例如停用冲突实例或恢复未运行实例,并生成报告;
  3. 打开 DSH 页面时,若有冲突即弹出报告弹窗,可点击「重新检测」或「知道了」关闭;
  4. 在动态插件运行方式下,模型可通过 conflict_check 工具随时检查;
  5. 如需永久禁用某个冲突插件,可在组合文件中为该行设置 disabled: true,或删除多余行。

适用场景与注意

它适合维护 DSH 插件组合、希望减少启动阶段冲突排查成本的开发者。

需要注意:

  • 停用与恢复均为运行时操作,不修改任何 cordis.yml
  • 重启后仍按原配置加载,并再次运行检测;
  • conflict_check 工具仅在动态插件运行方式下注册;静态安装不引入额外依赖;
  • 冲突检测基于加载器运行时状态与组合文件静态分析,不解析插件源码内的服务注册;
  • 插件以当前 dsh 进程权限运行,安装前应检查源码、依赖与许可证。许可证为 MIT。

结尾

dsh-conflict-guardian 的价值在于把重复挂载、激活失败、依赖缺失和未运行实例这几类启动问题集中到一次扫描中处理,并通过 Web 报告给出位置与结果。

GitHub 仓库:https://github.com/baisama-cloud/dsh-conflict-guardian 。社区目录页地址未在已核实资料中给出,本文不补充链接。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜