dsh-plugin-ui-toggle:在 Web UI 中管理 DSH 插件状态

前言

DeepSeek Harness (DSH) 允许通过编辑 cordis.patch.yml 文件来管理插件。但在实际开发中,频繁地修改配置文件或重启服务来测试插件开关并不高效。dsh-plugin-ui-toggle 插件提供了一种直接在 Web UI 中操作插件开关的方案,避免了手动编辑配置和重启带来的中断。

插件介绍

这是一个由 Biobuilder-ai 维护的客户端插件。它的核心功能是在 DSH 的 Web 界面中开启或关闭任何已组合的插件条目。通过在配置文件中写入禁用标记,它实现了开关的即时生效和持久化存储。

核心功能

  • Web UI 开关:通过设置菜单提供可视化的插件开关。
  • 即时生效:切换开关后立即改变运行时状态,无需重启服务。
  • 持久化存储:将开关状态写入 cordis.patch.yml,重启后依然有效。
  • 零依赖:不依赖额外的运行时组件。

安装与启用

  1. 使用官方安装命令添加插件:
dsh plugin --profile web add github:Biobuilder-ai/dsh-plugin-ui-toggle
  1. 安装完成后,重启 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 开发者提供了一个低侵入、无额外依赖的调试手段。

文档来源: Biobuilder-ai/dsh-plugin-ui-toggle

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

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

小夜