前言¶
DeepSeek Harness(DSH)桌面版运行在 Electron 框架上,插件热更新并非对所有插件都有效。当遇到需要重启桌面进程的场景时,手动关闭应用再重新打开会打断对话上下文,且容易遗漏账号或会话状态的保存。本插件为 macOS 桌面版提供了一键重启的机制,在保证进程优雅退出和自动重载的同时,也提供了诊断与安全防护。
是什么¶
dsh-macos-restart 是一个为 DSH macOS 桌面版设计的社区插件,由 chai-yinfeng 维护。它通过在会话标题栏、侧边栏或设置页面中提供入口,让用户能够触发对 Electron 主进程的优雅关闭与自动重载。插件的核心价值在于:在无需离开 DSH 的情况下,完成桌面进程的重启,从而支持无法热重载的插件重新加载。
核心功能¶
- 入口点:会话标题栏右侧的图标(默认开启),侧边栏设置页旁的图标(默认关闭),设置中「Desktop Restart」页面,以及
/restart-desktop命令。支持可选的浮动按钮,位置会被记忆。 - 重启流程:客户端发送
{ "confirm": true }到 Host,Host 校验请求合法性后,写入状态记录,并启动独立的辅助进程。辅助进程向 Electron 主进程发送 SIGTERM,等待其退出和端口释放后,使用open -a重新启动应用。整个流程会记录状态变化,并通过日志与状态文件提供诊断。 - 安全与限制:仅接受来自本地回环的请求,拒绝跨站点访问。运行中的对话会返回 409 busy,要求二次确认后才允许 force 重启。插件安装/更新时返回 423,除非处于安装卡死的高级强制路径。可通过
allowRestart: false在配置中关闭操作。 - 诊断信息:状态文件
~/.dsh/dsh-restart/state.json记录最后重启的阶段与时间,设置页提供「Reveal latest log」按钮,Host 提供POST /plugins/dsh-restart/open-logs接口以在连接断开时打开日志目录。 - 卡死安装恢复:若插件管理器在 5 分钟内无进度,会显示「Force restart (advanced)」选项,该路径会强制杀死 Host 进程并释放锁,仅用于安装卡死场景。
安装与启用¶
在 DSH 中通过官方目录页安装:
dsh plugin add https://www.skillhub.cn/plugins/chai-yinfeng/dsh-macos-restart
安装后,在设置中启用侧边栏入口即可使用。命令 /restart-desktop 可在对话中直接调用。
典型用法¶
- 常规重启:在会话标题栏点击图标,或在设置页点击「Restart Desktop」按钮。流程会自动检查是否有正在进行的对话或插件更新,并在状态文件中记录阶段变化。
- 强制重启:当对话正在运行时,使用
/restart-desktop --force触发强制重启。此时会列出受影响的会话 ID,要求二次确认。 - 查看日志:在设置页「Desktop Restart」中点击「Reveal latest log」,或从命令行调用
POST /plugins/dsh-restart/open-logs,可在 Finder 中打开日志目录。 - 安装卡死恢复:若插件管理器无响应,在对话框中会弹出「Force restart (advanced)」选项,选择后可强制重启并释放安装锁。
适用场景与注意¶
本插件仅适用于 DSH 的 macOS 桌面版 Electron 应用,不支持 Windows、Linux、dsh web 或独立 CLI。重启操作会停止主进程并释放 Web 端口,建议在重启前保存当前对话状态。插件以当前 DSH 进程的权限运行,使用前应查看源码与许可证。仅当确实需要重启桌面进程时使用,避免不必要的中断。
短结尾¶
dsh-macos-restart 为 DSH macOS 桌面版提供了一键重启的能力,配合状态记录与安全校验,适合需要在桌面进程层面进行维护与恢复的场景。插件信息与源码可在目录页与 GitHub 仓库查看。