DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

13520rygvv /

13520rygvv/dsh-restart-button

Verified

DSH desktop plugin: a one-click restart button in Settings, plus a customizable shortcut.

★ 1 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@1f0921a2

DSH 重启按钮(dsh-restart-button)

给 DeepSeek Harness 桌面版 的本地插件:在「设置 → 通用」里加一个一键重启按钮,并把同一动作做成可自定义的快捷键。不用再右键托盘图标退出、再手动启动。

仅支持 Windows 桌面版。原理依赖 Electron 主进程 + Host 进程的父子关系,Web/CLI 部署不适用。

功能

  • 设置里的重启按钮:设置 → 通用 → 「重启 DeepSeek Harness」→ 点「重启」,约 2 秒窗口关闭并自动重新打开。
  • 快捷键:默认 Ctrl+Alt+R(仅桌面端默认绑定),在 设置 → 通用 → 键盘快捷键 里可以改成任意组合(支持单键/双键)。
  • 左下角账号菜单:点左下角头像 → 弹窗里在「退出登录」上方多一项「重启」(官方菜单没有插件扩展位,这一项是克隆官方菜单行实现的,见「已知限制」)。
  • 有任务时会先问:仅当真的有进行中的任务(agent 正在生成/工具在跑、排队的用户消息、后台 job、挂起的定时任务)时,才会弹出确认卡片(Esc 取消);空闲时一键直接走。
  • 优雅重启:结束的是 Electron 外壳,宿主进程会因 IPC 断开自行完成关闭(会话日志正常落盘),然后重新启动应用。

安装

这是 DSH 的本地插件包(dsh.bundle),把整个目录放在任意位置,然后用 DSH 的插件管理器安装:

plugin_manager install_bundle  target = <本目录的绝对路径>

或在会话里让 DSH 的 agent 帮你装(对它说「装一下这个本地插件」)。安装会写入 desktop profile 的 bundle 列表,插件对所有会话生效并随应用启动加载。

使用

操作 位置
重启按钮 设置 → 通用(在「当前版本」上方)
账号菜单入口 左下角头像 → 账户弹窗 → 「退出登录」上方
改快捷键 设置 → 通用 → 键盘快捷键 → 「重启 DeepSeek Harness」→ 点键位重新录制
查看诊断日志 插件目录下的 launch.log(重启脚本每一步)、orchestrator.log(交接记录)、blocked.json(最近一次被拦截的原因)

实现原理

页面(设置行 / 快捷键)
   └─ POST /api/dsh-restart            ← 走 DSH 自带的 /api 鉴权载体
        └─ 宿主插件:判断是否有任务 → 需要确认就先回 needs-confirmation
             └─ spawn + await launch.ps1        (同步等交接完成)
                  └─ WMI Win32_Process.Create   (让重启脚本独立于宿主存活)
                       └─ restart.ps1:结束 Electron 主进程
                            → Host 感知 IPC 断开,自行优雅退出(会话落盘)
                            → Start-Process 重新启动 DeepSeek Harness.exe

几个关键点:

  • 宿主进程用 detached: true 拉起的 PowerShell 会直接退出且不执行脚本(实测),所以改用 WMI 创建独立进程;
  • 判断「是否有任务」不能用 agent.inbox.nextStep:系统通知(例如权限变更提示)会滞留在 idle 会话里,导致永远误报;
  • 快捷键默认值只声明桌面端:Web 端的 page.refresh(刷新页面)已占用 primary+alt+KeyR。

文件结构

文件 作用
index.js 宿主半边:/api/dsh-restart 路由、任务检测、启动重启编排脚本
client.js 页面半边:设置行、确认卡片、快捷键命令、文案字典
launch.ps1 编排器:用 WMI 创建真正执行重启的脚本(宿主退出后仍存活)
restart.ps1 真正重启:校验进程路径 → 结束主进程 → 等待宿主优雅退出 → 启动应用
cordis.patch.yml 插件加载条目
locale/*.json 插件管理页显示用的标题/描述
icon.svg 插件图标

已知限制

  • 仅 Windows 桌面版;重启时没有「你确定要退出吗」的原生对话框(有任务时由插件自己的卡片确认)。
  • 依赖系统自带的 WMI 与 PowerShell 7(没有 PowerShell 7 时回退到 Windows PowerShell)。
  • 重启会中断正在生成的任务(确认卡片里会说明)。
  • 账号菜单那一项依赖官方 DOM:DSH 的账户弹窗是硬编码菜单、没有插件扩展位,插件是克隆「退出登录」那一行(保留原生样式、图标位、悬停)后替换文案/图标/点击实现的。DSH 改版后该行可能不再出现,另外两个入口不受影响;届时告诉项目维护者适配即可。

更新记录

每次迭代、修复都会在这里记一条;提交号可在 GitHub 提交历史里对应查看。

2026-10-23

初版(6516780)

  • 设置 → 通用 增加「重启 DeepSeek Harness」按钮。
  • 重启链路:结束 Electron 外壳 → 宿主因 IPC 断开自行优雅退出(会话日志落盘)→ 重新启动应用;执行重启的进程由 WMI 独立创建,不随宿主退出而中断。
  • 有任务时先确认:判断依据是真实工作(运行中的 agent、排队的用户消息、运行中/正在停止的后台任务、挂起的定时任务),空闲时一键直接重启。

账号菜单入口(cf26aa6)

  • 左下角头像弹窗在「退出登录」上方增加「重启」。官方菜单没有插件扩展位,这一项是克隆官方「退出登录」行(沿用原生样式、图标位、悬停)后替换文案/图标/点击实现的,DSH 改版后可能失效,见「已知限制」。
  • 同时补充 README 的三入口说明与兼容性说明。

快捷键修复(4f8ea5c)

  • 修复:某些启动顺序下「重启 DeepSeek Harness」没有出现在 设置 → 通用 → 键盘快捷键 列表里。原因是客户端比快捷键服务先激活导致注册被跳过;改为等待服务就绪后再注册。
  • 清理了排查用的临时诊断代码。

文档(458d949)

  • 补充「关于上传」一节,说明本仓库由 AI 助手代为创建、提交和推送。

早期开发中的两个问题(发布仓库前已修)

  • 用 detached 方式拉起 PowerShell 会让脚本直接退出、什么都不执行;改为由编排脚本通过 WMI 创建独立进程来执行重启。
  • 判断「是否有任务」时曾把 idle 会话 inbox 里滞留的系统通知(例如权限变更提示)算作任务,导致空闲时误报;改为只看真正会打断的工作。

关于上传

本仓库不是仓库主人手动创建/上传的:代码由仓库主人在 DSH(DeepSeek Harness)会话中与 AI 助手协作完成,仓库创建、提交、推送以及临时访问令牌的创建与删除,全部由该 AI 助手代为自动执行(主人只授权了 GitHub 登录会话并选择了公开可见性)。因此提交历史里的自动化痕迹(单次批量提交、临时 PAT)是预期现象。

—/ 5

No ratings yet

Verified DSH bundle

Commit 1f0921a2f412

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout