前言¶
开发或调试 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 一次,插件才会加载,按钮才会出现。
方式一:插件页安装(推荐)¶
- 打开 DSH → 设置 → 插件 → 添加插件
- 选择本仓库目录(包含
package.json的那一层) - 完全退出 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