deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
baisama-cloud/dsh-conflict-guardian
Detects DSH plugin conflicts (duplicate mounts, failed/pending plugins, duplicate config row ids) at startup, auto-stops or restores the affected plugins, and shows a conflict report popup in the web UI. DSH 启动时检测插件冲突并自动停用/恢复,弹窗汇报冲突详情。
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:baisama-cloud/dsh-conflict-guardian
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
在 DeepSeek Harness(DSH)每次启动时检测插件冲突、自动停用或恢复冲突插件,并在 Web 界面弹出冲突报告,保证 DSH 稳定运行。
插件激活(即每次 DSH 启动)即扫描一次加载器(loader)中的插件树,发现冲突立即处理,处理结果通过弹窗汇报——哪些插件冲突、在哪里冲突、做了什么处理。
tool-subagent 的 spawn/fork 双实例)是合法的 Cordis 多实例模式,不会误判;service X has been registered at …),自动停用并报告失败原因;所有停用/恢复都是运行时操作,不修改任何
cordis.yml——重启后仍按原配置加载,扫描会再次运行,正好符合「每次启动都判断、有冲突就关停」的设计。
与 DSH 插件包相同的分发方式(参考 dsh-session-mover / dsh-omni-bridge):
# 克隆到本地后,用 dsh 的 bundle patch 机制挂载
npm pack # 生成 dsh-conflict-guardian-0.1.0.tgz
或在 DSH 配置的插件列表中加入该包,cordis.patch.yml 已声明:
- insert:
- id: dsh-conflict-guardian
name: 'dsh-conflict-guardian'
lib/client.js 是已打包的浏览器 bundle(window.__ModuleLoader__.load 形态,与 dsh-omni-bridge 相同);宿主 lib/index.js 在 webServer 上注册 POST /conflict-guardian/report 与 /conflict-guardian/rescan 路由供客户端调用。若作为动态插件运行,宿主同样提供 harness.handle('conflict-report' / 'conflict-rescan') 配对,并额外注册模型可调用的 conflict_check 工具(两种方式都已内置,逻辑共用)。
conflict_check 工具随时检查。ctx.get('loader') 枚举加载器树中的真实插件条目(跳过 group/include 容器),读取每个条目的模块名、配置、启用状态与 fiber 状态(pending / active / failed);entry._dispose() 停用后加载实例(运行时停用,不写配置);await() 取回原始错误;pending 的 fiber 列出 fiber.inject 中无人提供的服务名 → 停用;entry.refresh() 重新启动,按恢复后 fiber 是否 active 判定成功与否;harness.handle(动态插件)提供给客户端弹窗。disabled: true 或删除多余行;conflict_check 仅在动态插件运行方式下注册(静态安装不引入额外依赖)。CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。