restart-bell:DSH Web GUI 一键重启与关闭(无控制台黑窗)

前言

在 DeepSeek Harness(DSH)里改插件或改配置,往往要等进程完全退出再手动打开桌面端,改动才会真正生效。习惯用任务管理器或命令行杀进程的人还要面对子进程、单实例锁和随机端口等问题;早期用脚本辅助重启时,分离启动 cmd.exe 还容易弹出命令行黑窗。restart-bell(重启铃)是维护者 zhaoyushuo987 提交的客户端类 DSH 插件:在 Web GUI 顶部增加一个可拖动的 ⟳ 按钮,点开后在列表里选「重启」或「关闭」,由本机助手完成强杀与可选拉起,全程不弹出控制台窗口。下面按定位、功能、安装、用法和注意事项说明。

这是什么

restart-bell 只做一件事:在 DSH Web 界面标题栏区域放一个 ⟳ 小圆钮(默认左上角,按住可拖动,位置会记住)。单击后弹出小列表,提供「重启」与「关闭」两个操作。插件归类为客户端(dsh.client.platform 为 web),当前资料中的版本为 0.4.0,许可证 MIT,面向 Windows 10 / 11。仓库与说明见 GitHub;社区目录页为 skillhub.cn/plugins/zhaoyushuo987/restart-bell。DSH 生态采用「一切皆插件」思路,该目录为社区站点,与 DeepSeek / 幻方无官方从属关系。

核心功能

界面与交互

  1. 装好后首次加载时,DSH 会自动重启一次,以便插件生效。
  2. 在窗口左上角(标题栏区域)可见 ⟳ 按钮;按住可拖到顶部任意位置。
  3. 单击 ⟳ 弹出列表;选「重启」或「关闭」。点空白处或按 Esc 收起列表。

「重启」与「关闭」分别做什么

按钮 作用
重启 强制关闭整个 DSH,再用同一个 DeepSeek Harness.exe 原样重新启动(便于装完插件或改完配置后立即生效)
关闭 只强制关闭整个 DSH,不重新打开(彻底退出、释放内存时使用)

实现要点(便于理解行为)

  • 列表为前端 DOM,重启/关闭通过向本机 GUI 服务 POST 触发,请求头带 x-restart-bell,路由为 POST /api/restart-bell/restart 与 POST /api/restart-bell/quit。
  • 宿主先返回 200,再在 %TEMP%\restart-bell\ 下写入 VBS 助手,用 wscript.exe 分离运行(GUI 子系统,不出现控制台黑窗)。v0.3.0 起弃用会弹黑窗的 cmd.exe 方案。
  • 助手先按配置的 delayMs(默认 1200ms)等待,再强杀主进程并清理同名进程,重启前会清除 ELECTRON_RUN_AS_NODE 等环境变量,避免 exe 以 Node 模式空跑后立刻退出(v0.3.1 修复的问题)。拉起后会核对新进程是否存活,失败则用 explorer.exe 兜底。
  • 可选配置:delayMs(触发到强杀的缓冲,默认 1200)、enabled: false 可整体停用插件逻辑。

安装与启用

插件以 link 方式挂到 profile 的 node_modules(本机可用 junction 指向源码目录,改源码后重启即生效)。安装前请自行查看仓库源码与 MIT 许可证;插件以当前 DSH 进程权限运行,需有结束本机 DSH 进程的能力。

普通 profile(命令行可管理)

在已取得 restart-bell 源码目录的前提下执行:

dsh plugin --profile <profile 名> add link:<源码目录路径>

将 <profile 名> 与 <源码目录路径> 换成你的实际值。

桌面 App 的 profile(默认名 desktop)

该 profile 由 Electron 应用独占,命令行 add/remove 可能被拒绝(提示 profile "desktop" is managed exclusively by the Electron application)。可任选其一:

  1. 在 App 内插件管理界面添加;或
  2. 手动修改 package.json 并在 profiles\desktop\node_modules 建 junction,例如资料中的示例命令:
dsh plugin --profile desktop add link:C:\Users\86158\Documents\deepseek-harness\restart-bell

卸载示例:

dsh plugin --profile desktop remove restart-bell

手动改 desktop profile 时,资料要求:在 <用户目录>\.dsh\profiles\desktop\package.json 的 dependencies 增加 "restart-bell": "link:C:/路径/restart-bell",在 dsh.profile.bundles 增加 "restart-bell";在 profiles\desktop\node_modules 下建 junction 指向源码目录,例如:

New-Item -ItemType Junction -Path .\restart-bell -Target C:\路径\restart-bell

完成后重启一次 DSH,左上角应出现 ⟳ 按钮。

典型用法

经过上面的安装与一次重启,日常使用可按下面三步:

  1. 确认 ⟳ 按钮位置(需要时可拖动到习惯的位置)。
  2. 改完插件或配置需要立即生效时:单击 ⟳ →「重启」,等待进程下线再回来(桌面端本窗口会一起结束;若用浏览器打开 GUI,前端会等 ping 失败后再等 ping 成功才刷新,超时会有文案提示)。
  3. 仅想退出 DSH:单击 ⟳ →「关闭」。

适用场景与注意

适合谁: 主要在 Windows 上使用 DSH 桌面端、经常安装或调整插件、又不想每次用手动杀进程或记命令的人。

平台: README 标明平台为 Windows 10 / 11;未在其他系统上验证的行为不要假设可用。

浏览器 / 远程看 GUI: 点「重启」时桌面窗口会结束;纯浏览器标签在 DSH 下线后需等待服务起来再刷新。桌面端若使用 --port 0 随机端口,旧标签页可能无法自动连回,资料中会提示手动重新打开 DSH。

排障: 关不掉或起不来时,查看 %TEMP%\restart-bell\helper.log(每条带本地时间戳)。常见线索包括:仅有 start(WScript 未执行)、relaunch failed、no process after launch; retry via explorer 等;完整对照表见仓库 README。

反馈: 问题可发到 Issues,附上 helper.log 尾部几行。

结尾

restart-bell 在 Web GUI 顶部提供可拖动的 ⟳ 入口,用「重启」「关闭」覆盖改配置后生效与彻底退出两类需求,并通过 VBS + wscript 避免控制台黑窗。安装以 profile 的 link: 方式为准;详情与版本以仓库为准。

  • 目录页:https://www.skillhub.cn/plugins/zhaoyushuo987/restart-bell
  • GitHub:https://github.com/zhaoyushuo987/restart-bell
羽毛球分组比赛记分
小程序二维码

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

Xiaoye