dsh-restart: DeepSeek Harness Desktop One-Click Restart

前言

开发或调试 DSH 插件时,改完 bundle 或 client 代码后往往需要「完全退出应用再打开」才能加载新版本。macOS 上常见做法是 ⌘Q 退出后再从 Dock 或启动器点开,两步且容易漏掉「完全退出」。下面介绍社区插件 dsh-restart:在侧栏顶部增加常驻「重启」按钮,确认后由独立脚本完成退出、等待进程结束并自动重新打开 DSH。

这是什么

dsh-restart 由维护者 Arc-huangjingtong 发布,分类为客户端插件。仓库简介为:One-click restart plugin for DeepSeek Harness desktop(package.json 中描述为桌面端一键重启按钮)。它不改变 DSH 核心逻辑,只在界面侧栏顶栏、折叠按钮左侧放置 72×28 的胶囊按钮,点击经确认后触发完整重启流程。

社区目录页:https://www.skillhub.cn/plugins/Arc-huangjingtong/dsh-restart
源码与说明:https://github.com/Arc-huangjingtong/dsh-restart

核心功能

以下能力均来自仓库 README 与实现说明。

一键重启
点击按钮弹出确认;确认后 Host 以 detached: true 启动 scripts/restart-dsh.sh,由 helper 执行「正常退出 → 等待进程消失 → 重新打开」。界面会先消失,约 4–6 秒后应用自动回来。

失败兜底
helper 先尝试正常退出,最多等 10 秒;不行再发 TERM,再不行 KILL,确认完全退出后才 open 重开。重开前会清理 Electron/Node 相关环境变量(避免新实例以 Node 模式启动导致无窗口);失败每 2 秒重试,最多 3 次。

日志
每次重启写入 ~/.dsh/restart.log,便于排查「关了没起来」的情况。

平台与安全
仅 macOS:非 macOS 上按钮自动隐藏,接口返回 501。POST /api/dsh-restart/restart 只接受回环来源,降低跨站误触发风险。

Host / Client 分工
- GET /api/dsh-restart/status 返回 { canRestart, platform }
- Client 通过 shell.overlay 注册按钮,测量侧栏顶栏折叠按钮位置并随侧栏宽度、窗口大小、全屏状态对齐;全屏下折叠按钮移到左侧时,重启按钮改放到其右边。

安装与启用

本仓库是标准 DSH bundle 插件(dsh.bundle + dsh.client)。安装后必须完全退出并重新打开 DSH 一次,插件才会加载,按钮才会出现。

方式一:插件页安装(推荐)

  1. 打开 DSH → 设置 → 插件 → 添加插件
  2. 选择本仓库目录(包含 package.json 的那一层)
  3. 完全退出 DSH 再打开

方式二:命令行

将路径换成本机仓库目录的绝对路径(README 示例):

dsh plugin --profile desktop add /absolute/path/to/this/repo

装完同样需要完全退出 DSH 再打开。

卸载示例(README 原文):

dsh plugin --profile desktop remove @local/dsh-restart

卸载后也需完全退出并重新打开 DSH。

典型用法

DSH 重启并加载插件后,侧栏左上角会出现环形箭头按钮:

  • 悬停提示「重启 DeepSeek Harness」
  • 点击弹出确认,说明正在运行的会话与任务会中断
  • 点「立即重启」后应用退出并自动重新打开

调试 helper 时可干跑,只打印识别到的主进程 PID、不退出应用:

DRY_RUN=1 bash scripts/restart-dsh.sh

package.json 还提供:

npm run dry-run

(等价于上述 DRY_RUN=1 调用。)

适用场景与注意

适合谁
经常在 macOS 桌面端改插件、需要频繁「全量重启 DSH」的开发者;希望省掉 ⌘Q 再手动点开的一步。

务必知晓的限制
- 重启会中断当前会话里正在运行的任务。
- 若 helper 退出后 open -a 失败,DSH 不会自动回来,需查看 ~/.dsh/restart.log 并手动打开。
- 插件只对安装它的 profile 生效(文档示例为 desktop)。
- 仅在 macOS 桌面端测试;Web 端因 canRestart: false 隐藏按钮。
- 按钮布局依赖 DSH 0.2.1-rc.5 侧栏顶栏结构,DSH 大版本改版后选择器可能需要维护者微调。

安装前建议
插件在 DSH 进程权限下运行,安装前应阅读仓库源码与许可证(MIT)。Skillhub 目录为社区站点,与 DeepSeek / 幻方无官方从属关系,并非官方应用商店。

结尾

dsh-restart 把桌面端「完全退出再打开」收成侧栏一次确认操作,并用独立 helper、进程等待、环境清理与日志降低重启失败概率。需要安装或贡献时,可访问目录页与 GitHub 仓库核对最新 README 与版本(当前 package.json 为 0.1.0)。

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

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

Xiaoye