DeepSeek Harness 插件:dsh-better-restart

DeepSeek Harness (DSH) 采用插件化架构,Web 界面中的重启功能是日常开发调试中的常见需求。dsh-better-restart 是一个社区维护的插件,它为 DSH Web 界面增加了“原地重启”的能力,并在重启前提供确认机制。

核心功能

该插件分为主机端和客户端两部分,通过浏览器与 Node 进程的交互实现功能。

  • 主机端:通过 webServer 暴露两个接口。
    • POST /better-restart/status:查询当前 Agent 的运行状态。
    • POST /better-restart:执行重启操作。优先使用启动器提供的 appRestart 服务(返回 204),若不可用则回退到 Root-include recompose 模式(返回 202)。
  • 客户端:在设置栏新增“重启应用”按钮。
    • 确认机制:点击后弹出对话框,每 1.5 秒轮询 Agent 活动状态。若有对话正在运行,需明确确认后才能重启;无运行对话则直接通过。
    • 状态反馈:重启过程中显示加载动画并禁用按钮。
  • 服务接口:通过 betterRestartUi Cordis 服务向其他浏览器插件暴露 status() 和 restart() 方法。
  • 无依赖:插件运行时完全自包含,除 Node.js 内置模块外无其他包依赖。

安装与启用

安装前请确保已安装 Node.js 22.19+ 或 24+,以及 pnpm 11。

方式一:从源码安装(推荐)

若你已经检出 DeepSeek Harness 源码,可直接在源码目录下执行:

git clone --depth 1 --branch dsh-v0.1.2-rc.1 https://github.com/deepseek-ai/deepseek-harness.git
cd deepseek-harness && pnpm install && pnpm run build
pnpm dsh plugin --profile web add -w github:lovstudio/dsh-better-restart#v0.1.4
pnpm dsh web

方式二:无源码安装

若仅需使用该插件而不需要 Harness 源码,可使用 npx 直接安装:

npx @deepseek-ai/dsh plugin --profile web add -w github:lovstudio/dsh-better-restart#v0.1.4
npx @deepseek-ai/dsh web

使用步骤

  1. 启动 Web UI:执行 dsh web。
  2. 在设置头部找到 Restart app 按钮。
  3. 点击后弹出确认对话框,确认后应用将在原地重启,当前浏览器标签页会自动刷新。

技术细节与注意事项

  • 依赖要求:插件依赖 @deepseek-ai/dsh-base 中的 webServer 和 agents。appRestart 和 loader 为可选依赖,若两者均不可用,重启操作将返回 503 错误。
  • 重启机制:
    • 首选:appRestart(进程级重启)。
    • 回退:Root-include recompose。此模式会禁用并重新启用 Loader 的根 cordis:include 条目,重新读取配置和插件列表。由于复用 Node 进程,终端保持运行,但需注意浏览器端需等待 Socket 关闭响应(202)后才会刷新。
  • ESM 缓存:Node.js 的 ESM 缓存机制意味着,对于已加载模块,只有通过 Harness 的 HMR 监听器才能检测到源码编辑的变化。
  • 客户端自动加载:插件客户端模块在插件组合后由模块系统自动注入页面,无需重新构建 Web 应用。
  • 文本资源:界面文案位于 @lovstudio/dsh-better-restart 包中,自动注册到 better-restart-ui 语言环境命名空间。

生态与来源

此插件由 Lovstudio 维护,遵循 MIT 许可证。它不是 DeepSeek 官方维护的包,但可通过 DeepSeek Harness 的插件机制集成使用。

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

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

小夜