DSH 冲突管家(P2M)

前言

DeepSeek Harness(DSH)采用“一切皆插件”的架构。随着插件数量增加,同名服务注册、版本漂移等问题会引发冲突,导致 DSH 闪退。DSH 冲突管家(P2M)用于自动拦截此类冲突,按插件累计使用时长排序并隔离肇事插件,同时提供统一的插件启停与优先级管理。

它是什么

dsh-p2m 是一个由 GiantAxeint 维护的 DSH 插件冲突管理器。它属于 admin-security 类别,采用 MIT 许可证。

P2M 的核心作用是:
1. 自动拦截:拦截同名服务注册、版本漂移等会导致 DSH 闪退的冲突。
2. 优先级与隔离:按用时排序,隔离肇事插件。
3. 统一管理:统一管理插件启停、动态维护优先级。

核心能力

根据已核实的事实,该插件具备以下能力:

  1. 自动拦截与隔离:自动拦截同名服务注册、版本漂移等冲突,按用时排序并隔离肇事插件。
  2. 试用门禁:新插件启用前在子进程中试跑,若崩溃则提供“取消开启”或“无视风险继续使用”的选项。
  3. 启动前体检:启动前进行 peer 版本体检和静态扫描全补丁层。
  4. 零运行时依赖:插件自身不依赖运行时环境,连 YAML 解析器也内置。
  5. 统一管理:统一管理插件启停、动态维护优先级。

安装与启用

环境要求:DSH(CLI 全局安装)、Node ≥ 18。

使用官方 CLI 安装:

dsh plugin --profile web add github:GiantAxeint/DSH-P2M

安装后,P2M 会自动工作。其 Entry ID 固定为 p2m,Guard 自愈机制依赖此 ID,请勿修改。

工作机制

P2M 采用分层优先级机制:
* Tier 0:DSH 本体(识别规则:name 以 @deepseek-ai/ 开头,或配置的 coreEntryIds)。
* Tier 1:P2M 自身(Entry ID 为 p2m)。
* Tier 2:其他插件(按 usage.json 累计使用毫秒降序排序)。

决策铁律:
* 任何决策永远不禁用 Tier 0 和 Tier 1。
* 同层冲突牺牲“用时短者”。

数据与日志

P2M 的数据存储在 <DSH_HOME>/p2m/(默认 ~/.dsh/p2m/)。

关键文件:
* plugin-guard.yml:唯一 guard 文件,被禁插件的持久名单。
* usage.json:每插件累计使用时长台账。
* incidents.jsonl:冲突/隔离/恢复的流水日志。
* state.json:P2M 自身状态。

日志示例:
每次 DSH 启动加载 P2M 时,日志中会出现一行:

[p2m] boot #11 | guard=<...> | autoIsolate=true

boot #N 表示本机累计第 N 次成功执行 boot 例程。

API 调用

在 DSH 运行期,可通过 ctx.p2m 调用以下方法:

  • 列表与状态:ctx.p2m.list(), ctx.p2m.status()
  • 台账与流水:ctx.p2m.usage(), ctx.p2m.incidents(n)
  • 冲突管理:ctx.p2m.scanConflicts(), ctx.p2m.enable(id), ctx.p2m.disable(id)
  • 体检与门禁:ctx.p2m.preflight(), ctx.p2m.trial(id)

注意事项

  • Entry ID 固定:P2M 的 entry id 固定为 p2m,Guard 自愈机制依赖它。
  • 决策边界:涉及 DSH 本体与自身的决策永远只报告、不自动禁用。
  • 安装限制:官方 dsh plugin add 是“下载即重启”流,P2M 无法在重启前介入该流。

总结

P2M 是一个为 DSH 插件系统提供冲突检测、隔离与优先级管理的工具。它通过试用门禁和启动前体检,降低了插件冲突导致的闪退风险,适合需要管理大量 DSH 插件的用户。

插件目录 | GitHub 仓库

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

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

小夜