READMESource: main@2ac832f7
dsh-restart-now
DSH 桌面版一键重启插件:在侧边栏底部与设置页各加一个「重启应用」入口, 点击后安全地退出并重新拉起 DeepSeek Harness 桌面应用。
工作原理
- 宿主半边(
lib/index.js)注册两条路由:GET /plugins/dsh-restart-now/environment—— 环境探测(desktop / web)POST /plugins/dsh-restart-now/restart—— 重启动作
- 门禁顺序:
allowRestart总开关 → 环境判定(非 desktop 一律 403, 绝不触碰 web 环境的进程)→ Q6 围栏(loopback 直连 + 无转发头 +Origin==Host,防浏览器端任意页面打本机端口)→ exe 存在性 fail-fast。 - 重启机制(v0.7 勘误,WMI 逃逸树 + 单一杀手):宿主把助手脚本写到
%TEMP%\dsh-restart-now-helper-<stamp>.cjs,经 WMI(Win32_Process.Create, 父进程为 WmiPrvSE,脱离宿主进程树,不会被 taskkill 连坐)拉起 node 助手; 助手全权执行:延时 →taskkill /PID <ppid> /T /F→ 轮询旧进程退出 → 重新拉起DeepSeek Harness.exe。失败写%TEMP%\dsh-restart-now-*.err.log。 - 客户端半边(
lib/client.js)启动时探测环境,仅 desktop 挂载sidebar.footer.action与settings.section双入口;web 环境零挂载。
配置
设置页「重启应用」区块可直接编辑并保存(落 restart-now.config.json);
也可在 profile 的 cordis.patch.yml 条目 config 块中设置。
优先级:代码默认 < patch 条目 < 配置文件(UI 保存写入文件层)。
| 键 | 默认 | 说明 |
|---|---|---|
allowRestart |
true |
总开关,false 时动作口返回 403 disabled |
confirm |
true |
点击后二次确认 |
hideSidebarButton |
false |
隐藏侧栏底部重启入口(保存后立即生效) |
delayMs |
50 |
应答后到杀树的延时(毫秒,0–60000) |
exePath |
'' |
exe 绝对路径;留空时从当前安装位置自动推导 |
安装
在 DSH 桌面版所在机器上运行:
dsh plugin --profile desktop add dsh-restart-now
DSH CLI 会通过 pnpm 从 npm 安装插件,并将其登记到桌面 profile;不需要下载或解压项目源码。安装完成后重启 DSH。升级时再次运行该命令。
适用范围
- 操作系统:暂时仅支持 Windows 10/11。重启链路(WMI
Win32_Process.Create、 wscript VBS 派发、taskkill /T、DeepSeek Harness.exe路径推导)目前全部是 Windows 机制;在其他系统上安装后插件不挂载任何入口,动作口返回 403unsupported-platform。macOS / Linux 支持在计划中。 - DSH Desktop:0.2.0 及以上(验证于 0.2.0-rc.2)。注意
DeepSeek Harness.exe文件属性里的 44.0.0 是内嵌 Electron 运行时版本,不是产品版本;产品版本以dsh --version/ 包@deepseek-ai/dsh-desktop为准。Web profile /dsh web下插件不生效(不挂载入口,动作口拒绝并提示使用 dshmarket 的宿主重启)。
开发
npm test # node:test
No comments yet. Be the first to write one.