🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

侧栏重启按钮 1207291706/dsh-restart-foot

DeepSeek Harness
12072917063 天前有提交已提供中文文档扫描:含敏感能力

在侧栏底部一键重启桌面端,让新插件和配置立即生效

29.8/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/11/3 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add 1207291706/dsh-restart-foot
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
dsh 原生插件 · browser
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 3 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 13 处,展示前 13 条)
  • 读取本地文件
    index.js:86
    return existsSync(absolute) ? absolute : fileName;
  • 读取本地文件
    index.js:93
    return existsSync(absolute) ? absolute : "powershell.exe";
  • 读取本地文件
    index.js:107
    const exe = override !== undefined && override !== "" && existsSync(override)
  • 读取本地文件
    index.js:113
    if (!existsSync(exe)) return null;
  • 写入本地文件
    index.js:185
    writeFileSync(file, `${lines.join("\r\n")}\r\n`);
  • 写入本地文件
    index.js:209
    writeFileSync(file, `${lines.join("\r\n")}\r\n`);
  • 写入本地文件
    index.js:233
    writeFileSync(file, `#!/bin/sh\n${lines.join("\n")}\n`, { mode: 0o755 });
  • 执行外部命令来自配置/变量
    index.js:255
    child = spawn(script.command, script.args, options);
  • 执行外部命令来自配置/变量
    index.js:336
    child = spawn(command, args, { windowsHide: true, ...options });
  • 写入本地文件
    index.js:455
    writeFileSync(probeBatch, `@echo off\r\necho hidden-ok> "${batchFile}"\r\nexit /b 0\r\n`);
  • 读取本地文件
    index.js:478
    wscriptOnDisk: existsSync(systemExe("wscript.exe")),
  • 读取本地文件
    index.js:480
    markers: { hiddenBatch: existsSync(batchFile) },
  • 发起网络请求
    client.js:103
    fetch(RESTART_URL, {
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

DSH 侧边栏底部、账号入口上方有个重启按钮:点两下就能关掉桌面应用再拉回来,不会弹出控制台窗口。

README

由 DeepSeek 最新模型翻译生成
dsh-restart-foot 给 DeepSeek Harness 桌面端加一枚重启按钮,放在侧栏底部、头像 / 设置入口的正上方。 English — One row in the sidebar's foot area that stops the whole application (main process, renderers, and the DSH host itself) and starts it again, so freshly installed plugins and settings take effect without quitting by hand. Desktop shell only. 中文 — 在 DSH 桌面端侧栏底部、头像/设置入口的正上方加一枚「重启 DeepSeek Harness」按钮:点击两次确认后,结束整个应用(主进程、渲染进程、宿主自身)并重新拉起。装完插件、改完配置不用手动退出了。 Where the button sits / 位置 这一行注册在 sidebar.footer.action 插槽里。
展开完整文档(README 剩余 1 节)
dsh-restart-foot

给 DeepSeek Harness 桌面端加一枚重启按钮,放在侧栏底部、头像 / 设置入口的正上方。

English — One row in the sidebar's foot area that stops the whole application (main process, renderers, and the DSH host itself) and starts it again, so freshly installed plugins and settings take effect without quitting by hand. Desktop shell only.

中文 — 在 DSH 桌面端侧栏底部、头像/设置入口的正上方加一枚「重启 DeepSeek Harness」按钮:点击两次确认后,结束整个应用(主进程、渲染进程、宿主自身)并重新拉起。装完插件、改完配置不用手动退出了。

Where the button sits / 位置

这一行注册在 sidebar.footer.action 插槽里。侧栏底部是纵向堆叠结构(.footArea → .footerActions → .settingsArea),所以这个列表渲染在设置 / 账号座位正上方:

┌ sidebar foot ────────────────┐
│ ⟳ Restart DeepSeek Harness │ ← this plugin (sidebar.footer.action)
│ [avatar] account / settings │ ← ui-settings / ui-settings-account
└───────────────────────────────┘

注意:头像背后的弹出菜单(Settings / Feedback / Sign out)由随包发布的 @deepseek-ai/dsh-client-ui-settings-account(AccountMenu)渲染,行是写死的,没有插入插槽。因此本插件把按钮放在菜单上方那一行,而不是菜单里面——这是唯一不遮挡随包 UI 的加法方案。

Behaviour / 行为

- 第一次点击让按钮进入待确认状态(变成错误色,文字显示 “Click again to confirm”;5 s 后回到空闲)。
- 第二次点击发送 POST /dsh-restart-foot/restart。宿主写一个 cmd 批处理,并通过 wscript.exe 启动它。
- 不弹控制台窗口:wscript.exe 是 GUI 子系统程序,Windows 不会给它分配控制台;它用隐藏窗口样式运行批处理。辅助进程无论如何都是脱离父进程启动的,因为桌面应用通过 job object 管理子进程——普通子进程会随应用一起被杀掉,重启永远做不完。脱离父进程让它活下来;wscript 让它不可见。
- 批处理先等 1 s,让 HTTP 响应回到页面,然后结束该应用镜像的所有进程,轮询直到镜像真正消失(最多 20 s),按 pid 强制结束残留进程,最后才重新启动可执行文件。等待很关键:第一份还在关闭时就启动第二份,正是外壳报「安装损坏」或「实例已在运行」的原因。
- 重新拉起前会清掉 ELECTRON_RUN_AS_NODE。 宿主带着这个标志运行——桌面外壳以 Node 模式从应用二进制启动 DSH 宿主——所以辅助进程如果继承它再去启动二进制,只会得到一个没有脚本的裸 Node 进程,立刻退出。这种故障看起来就是「关掉之后再也没回来」,也正是这一行存在的原因。
- 启动后,批处理会确认应用是否已经回来(最多等 20 秒),并记录 application is back 或一条警告,所以只看日志就能知道是哪一步失败了。
- 会写出两个辅助脚本:wscript 启动器和作为兜底的裸批处理;每个都先以分离方式尝试,再以隐藏方式尝试。启动失败绝不会被吞掉:页面会显示原因(把鼠标悬停在按钮上),/ping 也会把它留在 lastLaunchError 里。
- 日志:%TEMP%\dsh-restart-foot.log(每一步一行:request、stop、wait rounds、force-stop、start、back / did-not-appear)。
- 正在运行的智能体回合会被中断,和任何重启一样。会话日志在磁盘上,所以重新打开的会话可以继续。
- 控件是一个紧凑的图标按钮,用 shell 自带的 Button、Tooltip 和刷新图标搭成,所以它的颜色、悬停填充和焦点环都遵循设计系统。动效只出现在交互时:图标在悬停时转半圈,按下时轻微下沉,待命时轻推两下,重启时旋转——没有空闲动画,因为一直转的箭头会把注意力从对话上拉走。prefers-reduced-motion 会关掉所有这些动效。

Requirements / 环境要求

- Windows 上的 DeepSeek Harness 桌面应用。只有页面来源是 dsh-app: 时,客户端那一半才会注册;在普通浏览器里(http://127.0.0.1:<port>)没有可重启的应用,所以这一行根本不会注册。
- 除非 process.execPath 确实是应用的可执行文件,否则宿主那一半会以 501 拒绝(从终端 dsh web 启动的 node.exe 会被拒绝)。
- Node 20+。无需构建步骤,无运行时 npm 依赖。

Install / 安装

From GitHub (current route / 当前安装方式):

dsh plugin add github:1207291706/dsh-restart-foot
same source, explicit git form / 同一来源的 git 写法
dsh plugin add git+https://github.com/1207291706/dsh-restart-foot.git
into a named profile / 指定 profile
dsh plugin add --profile desktop github:1207291706/dsh-restart-foot

From npm — not available yet / 暂未上架 npm: the package is finished and packed (npm publish --dry-run passes), but www.npmjs.com returns 403 on the author's network, so the account cannot be registered from there. The npm form below starts working the day it is published: 包已经打好、npm publish --dry-run 通过,但作者所在网络访问 www.npmjs.com 返回 403,无法注册账号;下面这条命令在正式上架后即可使用。

dsh plugin add dsh-restart-foot

然后刷新页面(或者用老办法重启一次),让客户端模块生效。

Uninstall

dsh plugin remove dsh-restart-foot

Routes / 路由

| Method | Path | Purpose |
| GET | /dsh-restart-foot/ping | 存活探测:平台、是否找到桌面目标、可执行文件路径、解析出的 PowerShell 路径,以及 lastLaunchError。 |
| POST | /dsh-restart-foot/restart | 安排重启。需要 x-dsh-restart-foot: 1 请求头,用来挡住乱发的 GET、预取器和其他标签页,避免它们把应用停掉;跨源调用方设不了这个头,因为本服务器从不放行对应的 CORS 预检。 |
| POST | /dsh-restart-foot/restart?probe=1 | 只报告目标,不碰任何进程。 |
| POST | /dsh-restart-foot/selfcheck | 诊断用:启动 cmd / PowerShell 探针,只写标记文件,并对一个不存在的映像跑一次 taskkill,然后报告退出码和捕获到的 stderr。不碰真实进程。同样需要该请求头。 |

如果点了没反应,按这个顺序排查:按钮的 tooltip(失败文本)、/dsh-restart-foot/ping(lastLaunchError)、/dsh-restart-foot/selfcheck(这台主机实际能启动哪些启动类型),最后看 %TEMP%\dsh-restart-foot.log(helper 自己做了什么)。

这些路由由 DSH web 服务器提供,任何能连上该端口的客户端都能访问;不想这样就把服务器绑到 loopback(默认如此)。

Layout / 文件

| File | Role |
| index.js | 宿主侧:路由、helper 写入器和启动尝试。 |
| client.js | 浏览器侧:注册进 sidebar.footer.action 的那一行。 |
| cordis.patch.yml | 打包补丁:插入 restart-foot 行。 |
| locale/zh.json, locale/en.json | 插件列表用的 meta.title / meta.description,以及该行的词典。 |
| icon.svg | 插件图标(原创作品,MIT)。 |

Credits / 致谢

重启 helper 的做法——分离式 helper、按映像名停止、确认退出后再启动——沿用 CZY1326 的 MIT 许可项目 dsh-restart-button。本包是独立实现,有自己的槽位放置、路由前缀、helper 脚本和日志文件。

License

MIT — 见 LICENSE。
预览分享卡片长什么样 ↓1207291706/dsh-restart-foot
分享 · DeepSeek Harness Hub
1207291706/dsh-restart-foot

在侧栏底部一键重启桌面端,让新插件和配置立即生效

这是你的仓库?认领条目

回到顶部