DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

csdjl88 /

csdjl88/dsh-web-restart

Verified

dsh-web-restart for deepseek harness restart

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@5916dd8e

dsh-web-restart

DSH Web 插件:侧边栏一键完整重启 DSH —— 点击按钮后结束当前 dsh web 进程,并以完全相同命令经启动守卫重新拉起(无需 systemd/Docker 等守护进程),页面自动恢复,同时提供 agent 可调用工具。

npm 包名 dsh-restart 已被同名项目占用,本插件定名 dsh-web-restart。

功能特性

  • 🔘 侧边栏底部重启按钮:位于 sidebar.footer.action 操作区(Cordis 生命周期面板旁),点击即重启,无确认弹窗(本机信任模型)
  • ♻️ 完整进程重启:结束当前 dsh web 进程,以完全相同的命令行重新拉起(保留 --profile / --patch 及所有内层参数)
  • 🛡️ 启动守卫(无守护进程):新进程由守卫在「旧进程已退出 + 端口已释放」后才启动,彻底避免端口占用竞态(DSH 的 webserver 启动即监听且无重试)
  • 🔄 页面自动恢复:重启期间按钮显示「重启中…」,轮询健康检查,新进程就绪后自动刷新回到当前会话(会话由 DSH 持久化保留)
  • 🧰 agent 可调用工具:dsh_restart 工具与按钮共用同一重启逻辑,可在对话中直接触发
  • 🌐 中英双语 UI 文案与 README
  • 🚫 幂等保护:重启在途时重复点击/调用会被拒绝

安装

dsh plugin --profile web add dsh-web-restart

重启 DSH 后生效(侧边栏底部出现按钮)。

使用

Web 按钮

侧边栏底部点击「重启 DSH」即可。按钮变「重启中…」并自动轮询;新进程就绪后页面自动刷新回到当前会话。若 30 秒内未就绪,会显示错误提示(请查看运行 dsh 的终端日志)。

Agent 工具

在对话中要求「重启一下 DSH」即可(工具名 dsh_restart,可选参数 reason)。注意:重启会中断所有正在运行的 agent 任务与后台作业。

工作原理

点击按钮 / 调用工具
   └─ POST /dsh-restart(幂等,单飞)
        └─ spawn 启动守卫(同一 node + 原命令行 + 自动追加 --no-open)
             └─ 旧进程 1s 后退出
                  └─ 守卫轮询:旧进程退出 & 端口空闲
                       └─ 以原命令(带 --no-open)重新拉起 dsh web(独立会话)
                            └─ 页面不刷新、不新建标签,DSH 自动重连恢复原会话
  • 重启命令总是带 --no-open(原命令没有则自动追加):重启时浏览器已在用户面前,不再自动弹新窗口
  • 页面不整页刷新:重启期间按钮显示「重启中…」,DSH 客户端 WebSocket 自动重连(connection/reset)恢复界面,回到原会话标签页,不新建标签
  • HTTP 端点:POST /dsh-restart(触发)、GET /dsh-restart/health(健康检查,返回 pid 供前端识别新进程)
  • 环境契约:DSH_RESTARTED_BY / DSH_RESTART_OLD_PID / DSH_RESTART_PORT

如何停止重启后的 DSH(重要)

重启后的 dsh web 运行在**独立会话(进程组)**中。原 dsh 是终端前台进程组的组长,它退出后原进程组变成孤儿组,无法再接收终端的 Ctrl+C —— 这是 Unix 进程模型的固有行为,插件无法让重启后的进程恢复 Ctrl+C 停止。请用以下任一方式停止:

  • 关闭运行 dsh 的终端窗口(守卫检测到终端关闭后自动终止 dsh,端口随之释放)—— 最推荐
  • 在终端按 Ctrl+D(同样是终端关闭信号)
  • 或在新终端执行 pkill -f "dsh web" / kill <pid>(lsof -iTCP:3080 可查 pid)

兼容性

  • 本插件面向终端前台运行 dsh web(无外部守护)的场景设计,重启链路已通过真实 dsh web 实例验证
  • ⚠️ 在 systemd / Docker / pm2 等带自动重启策略的守护环境下慎用:旧进程退出会同时触发「外部守护拉起」与「本插件启动守卫拉起」,产生两个实例争抢端口(一个 EADDRINUSE 崩溃)。守护环境下应关闭守护的重启策略,或移除本插件
  • 需要 DSH 0.1.0-rc.7 及以上

开发

npm run check   # 语法检查
npm test        # 单元测试 + 进程级 e2e(真实验证重启链路)

许可证

MIT

—/ 5

No ratings yet

Verified DSH bundle

Commit 5916dd8ea559

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