dsh-restart:DeepSeek Harness 的一键重启与故障恢复插件

前言

在 DeepSeek Harness (DSH) 的开发与维护中,宿主进程(dsh web)的代码更新或异常处理往往需要重启服务才能生效。以往这通常需要切换回终端窗口手动执行重启命令。dsh-restart 插件将这一过程移至 Web GUI,通过一个 Web 按钮配合后台辅助进程,实现了重启操作的图形化,并在重启失败时提供独立的恢复控制台。

插件定位

dsh-restart 是一个由 zhengjy01 维护的工作流插件,采用 MIT 许可证。它不直接在宿主进程内执行重启逻辑,而是将重启任务委托给一个 detached helper,通过 Web 界面触发,并自动处理页面重连、日志捕获和错误恢复。

核心功能

插件主要提供以下能力:
* Web GUI 一键重启:在设置面板提供“重启”卡片和侧边栏入口,支持手动点击立即重启。
* 人工审批门禁:默认开启。当代理调用重启工具时,只提交请求而不执行重启,必须由用户在面板中点击“批准并重启”才能执行。
* 自动检测策略:根据宿主进程是否为 launchd job,自动选择 launchctl kickstart 委托方式或直接重启相同命令。
* 独立恢复控制台:在 http://127.0.0.1:3099 启动辅助服务,即使 DSH 主进程崩溃,该控制台仍保持运行,显示启动日志和错误信息。
* 代理工具:提供 dsh_restart_status(只读查询状态)和 dsh_restart(提交重启请求)两个工具。

安装与启用

在命令行中执行以下命令安装插件:

dsh plugin --profile web add github:zhengjy01/dsh-restart

安装完成后,重启一次 DSH 以加载插件。之后即可在设置面板的“插件配置 → Web 插件”中看到“重启”卡片,或在左侧边栏看到重启图标。

典型用法

1. 手动重启

  1. 打开「设置 → 插件配置 → Web 插件 → 重启」面板。
  2. 点击「立即重启」按钮。
  3. 页面会显示重启阶段和耗时,新进程启动后页面会自动重连。

2. 代理触发重启(需人工批准)

  1. 代理在对话中调用 dsh_restart 工具。
  2. 工具不会立即重启,而是生成一个待审批请求(文件存储在 ~/.dsh/dsh-restart/pending-approval.json)。
  3. 用户在面板中看到红色的确认卡片,包含请求原因和时间倒计时。
  4. 用户点击「批准并重启」后,重启才会执行。

注意事项

  • 权限与授权:代理工具 dsh_restart 需要调用方声明 confirm: true,但这仅作为自证声明。插件默认开启人工审批,代理无法绕过用户点击直接重启宿主。
  • 控制台持久性:辅助进程的恢复控制台(127.0.0.1:3099)拥有独立的端口,即使 DSH 主进程死亡,该控制台仍保持运行,方便排查启动错误。
  • 历史记录:重启历史记录保存在 ~/.dsh/dsh-restart/history.. 目录下。
羽毛球分组比赛记分
小程序二维码

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

小夜