Skip to content

dsh-reboot

Verified

dsh-reboot · v0.3.0 · MIT · Web UI

DeepSeek Harness 一键重启插件:restart_host 工具 + 设置页「重启」入口;CLI 宿主看门狗按原命令行原端口重启(页面自动恢复),桌面端自动重启整个客户端(TypeScript + vitest)

Install

dsh plugin add dsh-reboot

Confirm the layer applied with dsh --profile default --dump-config — see the install guide.

Source

Tags

Creators

Readme

dsh-reboot

DeepSeek Harness(DeepSeek CLI / 桌面客户端)一键重启插件:改完插件或配置后,不用再手动关掉重开客户端。

npm 包名为 dsh-reboot(dsh-restart 名字在 npm 上已被占用)。

功能

  • restart_host 工具:对话里让 AI 重启宿主("帮我重启加载新插件")。调用前强制走 approval 确认(approval 缺席时拒绝,fail-closed)。
  • 设置页「重启」入口(v0.3.0):设置弹窗左侧导航底部新增「重启」页,点击按钮即确认(原输入框工具行按钮已迁走)。
  • /restart/api HTTP 路由:POST trigger {confirm:true} / POST status,带浏览器信任围栏。

各端行为

宿主形态 行为
CLI(dsh --profile web 等) 触发后派生分离看门狗(%TEMP%\dsh-restart\watchdog.mjs),宿主优雅退出(ctx.appExit(0))后按原命令行在原端口重启;浏览器页面自动重连,会话跨进程恢复。web profile 未带 --no-open 时自动补上,避免重复开标签页。
桌面客户端 整客户端自动重启(v0.2.2):看门狗经 relay 跳板脱离客户端进程树(taskkill /T 沿父链追杀,树内子进程必被连带杀掉),从树外延迟 taskkill /T /F 强杀客户端进程树(含宿主自身),随后直接拉起客户端 exe(剥掉 ELECTRON_RUN_AS_NODE 还原 GUI 模式,不带 windowsHide——CREATE_NO_WINDOW 会令 Electron 首窗口以隐藏状态创建)。杀进程失败时放弃重启避免双开,由用户手动重开。

配置(cordis.patch.yml insert.config)

- insert:
    - id: restart
      name: dsh-reboot
      config:
        delayMs: 800    # 触发后延迟退出毫秒数(让响应先送达浏览器)
        respawn: true   # CLI 宿主退出后是否自动重启(桌面端始终交给 Electron)

安装

dsh plugin add dsh-reboot           # npm
dsh plugin add <本地目录>            # 本地开发

安全模型

  • restart_host 工具调用强制走宿主 approval 确认(缺席时 fail-closed 拒绝)。
  • /restart/api 沿用 dsh-emotion 同款浏览器信任围栏(Host 必须为 loopback/受信主机、拒绝跨站);本机进程可直接访问(loopback 信任模型),与官方本地信任边界一致。
  • 重启会中断运行中的任务;会话与工作区数据落盘保留,重启后自动恢复。

开发

npm install
npm run build   # tsc: src/*.ts → lib/*.js
npm test        # vitest

注意 lib/client.js 必须保持无模块语法的脚本形态(esnext/bundler 构建,见 tsconfig)。

License

MIT