dsh-restart-button:DSH Web 界面可拖拽的一键重启按钮

前言

在 DeepSeek Harness(dsh)桌面端里,改插件、调 host 配置或 Cordis 补丁之后,往往需要整应用连同 host 进程一起退出再拉起,光刷新浏览器页面不够。从任务管理器手动结束 DeepSeek Harness.exe 再点开,步骤多,也容易和正在进行的对话状态搅在一起。下面介绍的 dsh-restart-button(维护者 NYSM803,客户端类插件)在 Web GUI 上挂一个可拖动的浮动按钮:确认后由插件负责关闭桌面应用及其 host,并在数秒内重新启动;若安全软件拦截或关闭失败,对话框会说明原因,而不会一直转圈。

这是什么

插件全名对应仓库 NYSM803/dsh-restart-button,在 SkillHub 目录 归类为客户端。它在 dsh 浏览器侧渲染浮动按钮与设置页,在 host 侧注册 API 并拉起独立的 relauncher 进程,专门面向 Windows 桌面版 dsh(dsh web 等纯 CLI host 上按钮仍可显示,但重启 API 无法找到可关闭的桌面进程,会失败)。

package 当前版本为 0.2.2,要求 dsh >= 0.2.2-rc.1、Node >= 22,许可证 MIT。host 提供 React 18。

核心功能

  • 可拖拽浮动按钮:拖到任意角落;位置写入 ~/.dsh/restart-button.json,重启后保留。
  • 确认后再执行:单击打开对话框;在关闭请求发出前可用「取消重启」撤回;发出后流程不可逆,对话框会提示。
  • 超时与自清理:若 45 秒内应用未关闭,插件自动终止任务并说明原因;失败时按钮会告知原因并清理状态,避免无限 loading。
  • 图标与外观:四种内置矢量图标,或上传 PNG / JPG / WebP / GIF / SVG(≤ 2 MB),存于 ~/.dsh/restart-button/icon.*;背景色可自定义,未设置时跟随 UI 主题,字标随深浅自动切换。
  • 位置锁定:可在设置里冻结按钮,防止误拖,仍保留点击重启。
  • 设置入口:Settings → Restart button,改动即时生效。

重启进行中会打断正在生成的回答;已保存的会话 transcript 不受影响(README 明确说明 in-flight answer 会被中断)。

安装与启用

任选一种方式安装(命令须与仓库 README 一致)。

图形界面:打开 插件 / Plugins → 安装插件,粘贴包地址(见下)。

终端(使用你日常的 profile,例如 desktop):

dsh plugin --profile desktop add https://codeload.github.com/NYSM803/dsh-restart-button/tar.gz/refs/heads/main

上述 codeload 形式仅需 pnpm。亦可使用 github:NYSM803/dsh-restart-button 简写,但 本机须已安装 git;否则 pnpm 解析会报 ERR_PNPM_GIT_RESOLVE_FAILED。

说明:host 侧在下次应用启动时挂载;浏览器侧在页面重载后生效。

典型用法

  1. 安装并重启/重载 dsh Web 界面后,在界面一角看到浮动重启按钮。
  2. 需要完整重启桌面 dsh 时,点击按钮,在对话框中确认;在关闭指令发出前仍可取消。
  3. 按需打开 Settings → Restart button 调整图标、背景色或锁定位置。
  4. 若重启异常,可查看启动器日志:%LOCALAPPDATA%\dsh-restart-button\relaunch.log,或通过 GET /api/restart-button/log 读取末段日志(每次尝试会重写该文件,再次点击前宜先读)。

重启链路概要:客户端 POST /api/restart-button/restart 后,host 以 detached 方式在应用自身可执行文件上启动 lib/relauncher.mjs(ELECTRON_RUN_AS_NODE),避免依赖易被安全软件拦下的 PowerShell 计划任务等路径;host 在 1.8 秒内校验启动器是否写出首行日志,否则以错误对话框反馈。

适用场景与注意

适合:长期在 Windows 桌面 dsh 上开发、频繁装/改插件或 host 配置,希望用一次确认完成「关应用 + 再起应用」的开发者。

限制与风险:

  • 仅 Windows 桌面应用 具备完整重启能力;relauncher 使用 tasklist / taskkill / cmd / powershell,且只识别单个镜像名 DeepSeek Harness.exe。
  • 360、火绒、Windows Defender 等可能拦截启动器或未签名脚本拉起的进程;README 给出了信任区/排除项示例路径,并说明临时退出安全软件也可验证,但加入白名单更稳妥。
  • 插件以 当前 dsh 进程权限 运行,安装前应自行审阅 源码与 MIT 许可证。
  • 若强制结束被拦截且进程仍存活,启动器 不会 再启第二个实例,需手动退出应用后重开。

常见界面提示与含义见仓库 README 的 Troubleshooting 表(例如启动器未跑起、超过 45 秒未生效、已不可取消等)。

配置与 API(摘录)

设置页字段:Icon、Background(含跟随主题)、Lock position。

开发者可调用的 HTTP 路由包括:/api/restart-button/config、/icon、/restart(支持 {"dryRun":true})、/status、/cancel、/log 等,详见 GitHub README。

结尾

dsh-restart-button 把「确认 → 关桌面进程 → 自动再拉起」收成 Web 界面上的一步操作,并处理取消、超时与安全软件导致的失败反馈。插件目录:SkillHub - dsh-restart-button;源码与完整说明:GitHub - NYSM803/dsh-restart-button。

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

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

Xiaoye