dsh-restart
Restart button for the DeepSeek Harness desktop title bar: one click relaunches the whole application, including the shell and its host process. 适合需要频繁调试、快速重启DSH应用及后台进程的用户。
同名パッケージの別リポジトリ
インストール
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:kee0012/dsh-restartドキュメント
README 全文を読む ↗从 GitHub 安装(推荐,日常使用;拉取默认分支最新提交)
dsh plugin --profile desktop add github:kee0012/dsh-restart
> 安装后需要**重启 DSH**,新的服务端代码与 client bundle 才会生效。
卸载:`dsh plugin --profile desktop remove dsh-restart`,然后重启 DSH。
## 使用
1. 安装并重启 DSH 后,标题栏右侧会出现一个环形箭头按钮(标题栏不可用时则在会话头部)。
2. 悬停可见提示「立即重启 DeepSeek Harness(当前运行中的任务会中断)」。
3. 点击 → 出现「DSH 正在重启…」整屏提示 → 应用整体退出并自动重新打开 → 回到原来的工作区。
4. 若应用没有自动回来,按提示手动启动 DSH 即可;具体原因记录在日志里(见下一节)。
## 配置
无需配置,安装后即可使用。按钮位置按系统原生窗口按钮的宽度自动计算(见「已知限制」)。
## 兼容性
* **Profile**:`desktop`(桌面版,按钮落在窗口标题栏)与 `web`(`dsh web`,按钮落在会话头部工具区)。
* **操作系统**:Windows 桌面版为主要目标;macOS 桌面与 `dsh web` 走同构的 POSIX 路径。
* **运行环境**:Windows 需要 PowerShell 5.1+(系统自带)和可用的 WMI 服务。不依赖 Node 之外的任何运行时。
## 实现方式
插件注册一个同源 HTTP 路由,由一段临时脚本在应用外部重启整个应用;脚本经系统调度器创建,从而脱离 DSH 的进程树(否则它会随被关闭的进程一起消失),关闭旧实例、等端口释放后重新拉起应用,并在任务结束时删除自己。脚本内含宿主的环境变量快照,因此只写在当前用户的临时目录、任务结束即自删;同目录还有一份诊断日志,仅在排查「点了没反应」时才有用。
## 已知限制
* 重启是**整应用级**的:所有窗口与未保存的输入都会一起消失(这是桌面版外壳的设计使然——只重启服务端会被判成崩溃)。
* **服务端代码不热重载**:修改插件 `src/` 后需要重新构建并**重启 DSH**,改动才生效。
* 标题栏按钮的位置按原生窗口按钮的宽度估算;若系统使用超大字号或非默认 DPI 缩放导致原生按钮变宽,按钮可能与其重叠或留缝。
* macOS 桌面的按钮落位与 Windows 相同,但重启路径(终止进程后重新打开应用)**尚未在真机验证**。
* Windows 依赖 PowerShell 与 WMI;两者都不可用时插件会退回到较弱的启动方式,重启可能失败(日志里有记录)。
* 与社区插件 `PangXitong/dsh-restart-button` 同时安装会出现两个重启入口,建议只保留一个。
## 反馈与贡献
发现了 bug 或有功能建议,欢迎在 [Issues](https://github.com/kee0012/dsh-restart/issues) 中反馈。提 PR 前请先跑通通用的构建与检查命令。
### 从源码构建
```sh
npm run bundle # src/ → lib/(零依赖,仅用 Node 内置模块)
npm run gates # 产物一致性门禁
npm test # 单元与集成测试
src/ 是唯一的手写来源,lib/ 由构建脚本生成,请不要手改 lib/。
许可证
MIT。重启按钮的落位思路参考了社区插件 PangXitong/dsh-restart-button 的公开实现(Apache-2.0);本仓库为独立重写,只保留重启功能。
使用
- 安装并重启 DSH 后,标题栏右侧会出现一个环形箭头按钮(标题栏不可用时则在会话头部)。
- 悬停可见提示「立即重启 DeepSeek Harness(当前运行中的任务会中断)」。
- 点击 → 出现「DSH 正在重启…」整屏提示 → 应用整体退出并自动重新打开 → 回到原来的工作区。
- 若应用没有自动回来,按提示手动启动 DSH 即可;具体原因记录在日志里(见下一节)。
配置
无需配置,安装后即可使用。按钮位置按系统原生窗口按钮的宽度自动计算(见「已知限制」)。