← 返回列表
未验证
侧边栏一键完整重启服务,页面自动重连不刷新
尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/21 · 已提供中文文档
dsh-web-restart 用于 deepseek harness 重启
综合分
28.1
GitHub 分
28.1
用户评分
—
★ Stars
1
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add csdjl88/dsh-web-restart该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-host-webserver@deepseek-ai/dsh-tools@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-client-ui-primitives@deepseek-ai/dsh-client-ui-slots用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
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 及所有内层参数,并总是确保带 --no-open 不弹浏览器) - 🛡️ 启动守卫(无守护进程):新进程由守卫在「旧进程已退出 + 端口已释放」后才启动,彻底避免端口占用竞态(DSH 的 webserver 启动即监听且无重试) - 🔄 页面不刷新、不新建标签:重启期间按钮显示「重启中…」,页面保持不动,DSH 客户端 WebSocket 自动重连(connection/reset)在原会话标签页恢复界面(会话由 DSH 持久化保留) - 🧰 agent 可调用工具:dsh_restart 工具与按钮共用同一重启逻辑,可在对话中直接触发 - 🌐 中英双语 UI 文案与 README - 🚫 幂等保护:重启在途时重复点击/调用会被拒绝 安装 dsh plugin --profile web add github:csdjl88/dsh-web-restart 重启 DSH 后生效(侧边栏底部出现按钮)。 使用 Web 按钮 侧边栏底部点击「重启 DSH」即可。按钮变「重启中…」并自动轮询;页面不刷新 —— DSH 的 WebSocket 自动重连在同一会话标签页恢复界面(不新建标签)。若 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 (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
扫码进群