前言¶
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 进程的权限运行,安装前应检查源码与许可证。