dsh-restart-confirm: DSH Web UI 侧边栏一键重启按钮

前言

DeepSeek Harness (DSH) Web 进程同时承载 WebUI 和 harness 后端。重启 dsh web 会同时刷新这两部分。直接重启存在误触风险,可能导致正在进行的任务中断。该插件在 Web UI 侧边栏添加了一个重启按钮,要求用户在重启前进行强制二次确认,并在确认后自动重新拉起进程。

插件介绍

  • 定位:DSH Web UI 侧边栏一键重启按钮,强制二次确认,自动重新拉起。
  • 维护者:seanwhy
  • 许可证:MIT

核心功能

  • 强制二次确认:点击按钮后弹出两个确认对话框,只有第二次确认才会发送重启请求,两次均可取消。
  • 自适应布局和尺寸:按钮固定在侧边栏折叠/展开按钮附近,SVG 图标大小随布局自动调整。
  • 自动重新拉起并立即刷新:重启进程后,客户端轮询 /dsh-health 端点,检测到新进程就绪后立即刷新。
  • 跨平台,零硬编码路径:根据当前进程的 process.execPath 和 process.argv 重建启动命令,适配各种启动方式(CLI、PWA、supervisor 脚本)。
  • 优雅终止 (SIGTERM -> SIGKILL):先发送 SIGTERM,若进程未退出则发送 SIGKILL。
  • 可配置:支持设置延迟、自定义命令、仅终止模式。
  • 重入保护:重启进行中时拒绝第二个请求。
  • 仅环回访问:重启接口仅接受 127.0.0.1 / ::1 的请求。
  • 主题感知 UI:使用 DSH 主题 token,适配浅色/深色模式。
  • 等待中圆点:默认隐藏,轮询市场操作快照,仅在另一个插件处于待安装/更新/移除状态时显示(需重启)。

安装与启用

使用以下命令安装插件:

dsh plugin --profile web add github:seanwhy/dsh-restart-confirm

安装完成后,重启 dsh web 一次以加载插件。

典型用法

  • 点击侧边栏按钮进行强制二次确认后重启。
  • 配置 killOnly 模式配合外部监控器使用:当启用 killOnly 时,插件仅终止进程,不负责重新拉起,适合由外部进程管理器(如 supervisor)接管重启逻辑。
  • 配置自定义命令:通过 customRestartCommand 指定替代默认 argv 的启动命令。

工作原理与安全

  • 安全机制:POST /restart-dsh 仅接受环回调用者。Web 服务器默认绑定到环回地址。插件不会向任何地方发送数据,/dsh-health 仅用于本地健康检查。
  • 重启机制:插件启动一个 detached helper 进程(独立于 DSH 主进程),该 helper 负责执行延迟、终止进程、延迟重新拉起等操作。主进程的客户端轮询 /dsh-health 端点,检测到 bootId 变化后立即刷新。
  • 重入保护:重启进行中时拒绝第二个请求。
  • 优雅终止:先发送 SIGTERM,若进程未退出则发送 SIGKILL。

注意事项

  • 版本兼容性:版本 0.1.2 适配 DSH 0.1.0-rc.6 到 0.1.0-rc.8。
  • 权限与安全:插件以当前 dsh 进程的权限运行,安装前应检查源码与许可证。

结尾

相关链接:
- DSH 插件目录
- GitHub 仓库

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

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

小夜