dsh-macos-restart:macOS 桌面版一键重启插件

前言

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 仓库查看。

羽毛球分组比赛记分
小程序二维码

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

Xiaoye