前言¶
DeepSeek Harness (DSH) 允许通过编辑 cordis.patch.yml 文件来管理插件。但在实际开发中,频繁地修改配置文件或重启服务来测试插件开关并不高效。dsh-plugin-ui-toggle 插件提供了一种直接在 Web UI 中操作插件开关的方案,避免了手动编辑配置和重启带来的中断。
插件介绍¶
这是一个由 Biobuilder-ai 维护的客户端插件。它的核心功能是在 DSH 的 Web 界面中开启或关闭任何已组合的插件条目。通过在配置文件中写入禁用标记,它实现了开关的即时生效和持久化存储。
核心功能¶
- Web UI 开关:通过设置菜单提供可视化的插件开关。
- 即时生效:切换开关后立即改变运行时状态,无需重启服务。
- 持久化存储:将开关状态写入
cordis.patch.yml,重启后依然有效。 - 零依赖:不依赖额外的运行时组件。
安装与启用¶
- 使用官方安装命令添加插件:
dsh plugin --profile web add github:Biobuilder-ai/dsh-plugin-ui-toggle
- 安装完成后,重启
dsh web服务使插件生效。
典型用法¶
通过 Web UI 操作¶
进入 Web 界面的 Settings → Plugins → Plugin switches。列表中的每一项对应 Loader 树中的一个条目。点击开关即可启用或禁用该条目。
通过 API 操作¶
插件提供了同源 API 接口:
- 列出条目:GET /ui-toggle/entries
- 设置状态:POST /ui-toggle/set,请求体为 { id, enabled }
工作原理¶
插件在 cordis.patch.yml 文件末尾维护了一个受管理的代码块(managed block)。当你在 UI 中切换开关时,插件会在这个块中写入或删除 - id: <entry id> 和 disabled: true|false 行。
# >>> dsh-plugin-ui-toggle:begin — managed block, edited from the web UI
- id: "web-ui-git-graph"
disabled: true
# <<< dsh-plugin-ui-toggle:end
DSH 的 HMR 服务会监听文件变化并重新应用补丁,从而实现状态更新。
适用场景与注意¶
- 适用场景:适合需要频繁测试插件组合、动态调整功能模块的开发者。
- 核心限制:某些核心插件(如
dsh-plugin-ui-toggle自身、主机服务等)无法被关闭,UI 会标记为 Required 并拒绝写入。 - 依赖关系:关闭一个依赖项会导致该依赖项消失(从 Loader 树中移除)。
- 配置文件位置:受管理的代码块固定在
cordis.patch.yml的末尾,不要手动删除整个块,否则会清除所有通过 UI 设置的覆盖。
总结¶
dsh-plugin-ui-toggle 通过读写 cordis.patch.yml 中的特定块,解决了插件状态持久化和动态调整的问题,为 DSH 开发者提供了一个低侵入、无额外依赖的调试手段。