在侧边栏一键重启 Web 服务,需二次确认后自动拉起
24.9/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/13 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add seanwhy/dsh-restart-confirm该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
是什么
dsh 原生插件 · browser
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 75 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
⚠︎ 实装验证未通过(dependency_conflict · 2026/10/13) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件发起外部网络请求
查看扫描证据(共 4 处,展示前 4 条)
- 写入本地文件lib/index.js:173
writeFileSync(scriptPath, unixHelperScript({ scriptPath, pid, cwd, relaunch, config, logPath }), 'utf8') - 发起网络请求lib/client.js:337
return fetch('/dsh-health', { method: 'GET', cache: 'no-store' }) - 发起网络请求lib/client.js:347
fetch('/api/plugin-marketplace', { - 发起网络请求lib/client.js:410
return fetch('/restart-dsh', { method: 'POST', cache: 'no-store' })
扫描于 2026/11/2(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-host-webserver@deepseek-ai/dsh-shell@deepseek-ai/schemastery给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 侧边栏一键重启
- 二次确认
- 自动重新拉起
README
由 DeepSeek 最新模型翻译生成dsh-restart-confirm
DeepSeek Harness Web 界面侧边栏一键重启按钮——并且带强制二次确认,点击两次确认后才会真正重启。
| 按钮 | 紧贴侧边栏折叠按钮的紧凑重启图标(↻)——展开时位于"收起侧边栏"左侧,56px 收起栏中位于"打开侧边栏"上方 |
| 安全 | 必须先连续确认两次才会触发重启 |
| 范围 | 重启 dsh web 进程——WebUI 与 Harness 后台是同一个进程,重启后两者一起恢复 |
| 重新拉起 | 自动以启动 DSH 时的完全相同的命令重新运行(process.execPath + process.argv)——无硬编码路径,所有参数(--host、--port、--trusted-host、profile)原样保留 |
| 平台 | macOS · Linux · Windows(独立的后台助手进程在进程被杀后继续执行) |
| 待重启提示 | 默认隐藏;每 5 秒读取插件市场操作状态,只有其他插件处于待安装/更新/移除(需要重启)时才显示绿色点 |
功能特性
- 二次确认 —— 点击按钮先弹出第一个对话框,再弹出最终警告框。只有第二次确认才会发送请求,两个对话框都可以取消。
展开完整文档(README 剩余 1 节)
dsh-restart-confirm
DeepSeek Harness Web 界面侧边栏一键重启按钮——并且带强制二次确认,点击两次确认后才会真正重启。
| 按钮 | 紧贴侧边栏折叠按钮的紧凑重启图标(↻)——展开时位于"收起侧边栏"左侧,56px 收起栏中位于"打开侧边栏"上方 |
| 安全 | 必须先连续确认两次才会触发重启 |
| 范围 | 重启 dsh web 进程——WebUI 与 Harness 后台是同一个进程,重启后两者一起恢复 |
| 重新拉起 | 自动以启动 DSH 时的完全相同的命令重新运行(process.execPath + process.argv)——无硬编码路径,所有参数(--host、--port、--trusted-host、profile)原样保留 |
| 平台 | macOS · Linux · Windows(独立的后台助手进程在进程被杀后继续执行) |
| 待重启提示 | 默认隐藏;每 5 秒读取插件市场操作状态,只有其他插件处于待安装/更新/移除(需要重启)时才显示绿色点 |
功能特性
- 二次确认 —— 点击按钮先弹出第一个对话框,再弹出最终警告框。只有第二次确认才会发送请求,两个对话框都可以取消。
- 自适应位置与尺寸 —— 通过 DOM 放置把按钮钉在侧边栏折叠按钮旁:展开时位于"收起侧边栏"左侧,56px 收起栏中位于"打开侧边栏"上方。展开行图标为 16px,收起栏为 18px;MutationObserver 保证在重渲染和折叠/展开切换后位置始终正确。
- 自动重新拉起并立即刷新 —— 杀掉进程后,插件用相同参数、相同工作目录重新启动 DSH。客户端比较健康接口返回的进程 bootId,新进程就绪后立即刷新页面,不再固定等待 15–20 秒。
- 跨平台、零硬编码路径 —— 重启命令直接从当前运行进程自身重建,兼容任何启动方式(命令行、PWA、supervisor 脚本)。
- 优雅杀进程 —— 先发 SIGTERM,进程仍存活才用 SIGKILL。
- 可配置 —— 杀进程前延迟、杀后延迟、自定义重启命令、仅杀不重启(配合外部 supervisor)。
- 防重入 —— 重启进行中再次请求会被拒绝。
- 仅本机回环 —— 重启接口拒绝非回环地址的调用。
- 跟随主题 —— 使用 DSH 自带的 --dsw-alias-* 令牌,按钮与弹窗自动适配明/暗主题。
兼容性
0.1.2 已针对 DSH 0.1.0-rc.6 到 0.1.0-rc.8 做适配。客户端只注入 runtime,并通过公开的标签、slot/data 属性和类名后缀定位侧边栏,不再要求侧边栏客户端包出现在本插件自己的注入图中;Host 端也会按新版 shell 合约传递 workspace root。
安装
方式 A —— GitHub(推荐)
dsh plugin --profile web add github:seanwhy/dsh-restart-confirm
然后重启一次 dsh web 使 bundle 层生效。
方式 B —— DSH 插件市场
本仓库带有 dsh-plugin topic,会被 DSH 插件市场 收录。打开 设置 → 插件 → 插件市场,搜索 dsh-restart-confirm,一键安装。
方式 C —— 手动
1. 在 ~/.dsh/profiles/web/package.json 添加依赖: {
"dependencies": {
"dsh-restart-confirm": "github:seanwhy/dsh-restart-confirm"
}
}
2. 在 ~/.dsh/profiles/web/cordis.patch.yml 添加加载行(用 dsh plugin 命令安装会自动完成):
- insert:
- id: dsh-restart-confirm
name: dsh-restart-confirm
3. 在 profile 目录执行 pnpm install,然后重启 dsh web。
配置
插件配置(设置 → 插件 → dsh-restart-confirm → 配置,或在 profile manifest 中):
| 选项 | 类型 | 默认值 | 含义 |
| delaySeconds | number | 3 | 响应返回后多久杀掉进程(给浏览器时间显示"重启中"状态) |
| relaunchDelaySeconds | number | 2 | 杀掉进程后多久重新拉起 DSH |
| customRestartCommand | string | '' | 自定义用于重新拉起的 shell 命令(替代自动重建的 argv) |
| killOnly | boolean | false | 只杀进程、不重新拉起(适用于外部 supervisor 自动重启的场景) |
工作原理
| 层 | 文件 | 作用 |
| Host | lib/index.js | 在 webServer 注册带进程 bootId 的 GET /dsh-health 与 POST /restart-dsh;启动独立后台助手:等待 → SIGTERM →(SIGKILL)→ 用原始 argv 重新拉起 |
| Client | lib/client.js | 纯 vanilla(无 React)客户端,通过 DOM 放置固定尺寸图标;仅在插件市场报告待重启插件时显示绿点;等待 bootId 变化并在新服务健康后立即刷新 |
| Bundle | cordis.patch.yml | 挂载两半的加载行 |
处理函数先回复浏览器再执行杀进程;杀进程/重新拉起的延迟由助手脚本承担。客户端不猜测重启完成时间,而是轮询健康接口,bootId 变化且新服务就绪后立即刷新。
为什么需要独立的助手进程?
如果插件在自己的进程内直接杀掉 DSH,就没人能再把它拉起来了。助手进程是脱离的(Unix 用 nohup sh … &,Windows 用 Start-Process -WindowStyle Hidden),在 Harness 退出后仍存活,并把 DSH 重新带回来。
安全说明
- POST /restart-dsh 只接受回环地址(127.0.0.1 / ::1),且只接受 POST。
- 默认 web profile 的 webServer 绑定在回环地址。
- 插件不向任何地方发送数据;/dsh-health 只是本地存活探针。
开发
客户端 bundle 是手写的、符合 DSH Web shell 线格式(window.__ModuleLoader__.load({ id, factory })),无需构建步骤、无任何依赖(不用 React)。通过稳定的 aria-label、公开的 slot/data hook 和 CSS-module 类后缀定位侧边栏折叠按钮,不硬编码任何 hash 类名:
node --check lib/index.js
node --check lib/client.js
License
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
seanwhy/dsh-restart-confirm
在侧边栏一键重启 Web 服务,需二次确认后自动拉起
相关插件 · 浏览器
智能体插件框架deepseek-ai/deepseek-harness
DeepSeek Harnessdsh是由 DeepSeek AI 开发的开源 agent harness智能体框架。
★ 270,422已汉化DSH
71.9
多设备 Agent 看板YaoApp/yao
✨ 所有 Agent 和工作区集中管理,覆盖你的每一台设备。任务看板追踪进度,桌面端、移动端、浏览器、API…
★ 8,147已汉化DSH
71.2
可扩展侧边栏工作台omdsh-dev/DSH-better-sidebar
DSH 的双工作台:原生右侧栏 + 自绘底部面板,并把 ctx.betterSidebar 服务开放给所有插件
★ 4,761已汉化DSH
71.1
浏览器自动化桥Tencent/BrowserSkill
你的 Agent。你的浏览器。连接,就能协作。
★ 9,967已汉化DSH
71
AI 小说创作工作台EthanYoQ/AI-Novel-Writer
AI 小说作家 / AI Novel Writer
★ 1,591已汉化DSH
70.7
智能体浏览器引擎platonai/Browser4
DeepSeek Harness 集成
★ 1,175已汉化DSH
70.4
这是你的仓库?认领条目