dsh-plugin-guard:防止插件崩溃的守护插件

DeepSeek Harness (DSH) 采用插件化架构,这意味着扩展功能非常灵活,但也带来了风险:一个编写不当的插件可能在启动时抛出异常,导致整个 Web UI 崩溃。dsh-plugin-guard 是为此设计的插件,它通过隔离机制,确保单个插件的故障不会拖垮整个系统。

它是什么

dsh-plugin-guard 是 DSH 的安全守护插件。它在 Settings → Plugins 中提供一个专门的 Plugin Guard 标签页。该插件监控用户配置的插件,扫描其完整性,并在检测到损坏或异常时将其隔离,确保 Web 客户端始终能够正常启动。

核心功能

  • 扫描与隔离:自动验证所有用户安装的插件。对于会在启动时导致崩溃的插件,将其隔离并标记为“损坏”,同时保持 Web 客户端运行。
  • 插件控制:支持启用、暂停或卸载用户插件。这些配置会持久化保存到配置文件中。
  • 双语界面:界面支持英文和中文,并会自动跟随 DSH 的语言设置。
  • 一键自更新:通过 npm 检查新版本,并提供“Update now”按钮,支持直接在插件界面内更新自身。
  • 独立修复脚本:提供 lib/profile-guard.js,可在 Web 客户端启动前运行,修复受损的配置文件。

安装与启用

使用 DSH CLI 安装:

dsh plugin --profile web add dsh-plugin-guard

如果需要手动安装,需编辑 <dsh-home>/profiles/web/package.json:

{
  "dependencies": {
    "dsh-plugin-guard": "^0.1.0"
  },
  "dsh": {
    "profile": {
      "bundles": ["dsh-plugin-guard"]
    }
  }
}

然后在该配置文件目录下运行 pnpm install(或 npm install),最后重启 Web 客户端。

典型用法

1. 更新插件
打开 Settings → Plugins → Plugin Guard,点击 Update now 按钮,等待安装完成后重启 Web 客户端。

2. 修复受损配置
如果 Web 客户端因插件损坏而无法启动,可以直接运行守护脚本来修复:

node <dsh-home>/profiles/web/node_modules/dsh-plugin-guard/lib/profile-guard.js

注意事项

  • 权限与范围:该插件不会修改 DSH 应用程序安装目录,仅维护用户配置文件(如 package.json、cordis.patch.yml)。
  • 网络请求:仅向 npm registry 发起只读的版本检查请求,不发送任何数据或进行遥测。
  • 生效时机:禁用或卸载该插件需要重启 DSH 才能生效。

总结

dsh-plugin-guard 为 DSH 生态提供了一道安全防线。通过隔离机制和自更新能力,它解决了“坏插件拖垮系统”的痛点。对于依赖插件化架构的开发者而言,这是一个保障开发环境稳定性的必要工具。

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

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

小夜