dsh-restart-button

DSH PLUGIN会话与消息

仓库 yami0310/dsh-restart-button · npm dsh-restart-button

会话与消息 L5 · 运行验证通过 安全审查:低风险 可信度:金 可安装插件
安装这个插件

为 DeepSeek Harness 侧栏底部添加一键重启按钮,两段式确认后干净重启桌面窗口,仅支持 Windows。

一句话选型结论

按资料字段整理

dsh-restart-button 是会话与消息类的 DSH 可安装插件,验证等级 L5 · 运行验证通过,安全审查为低风险,列出 4 项功能,有可直接复制的安装命令。验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么;涉及密钥或系统权限的,建议先在隔离环境试装。

分类会话与消息 收录类型可安装插件 验证等级L5 · 运行验证通过 安全审查低风险
验证等级 L5 L5 · 运行验证通过
GitHub 星标 1 复刻 0 · 未关闭 issue 0
最近更新 2026-11-09 创建于 2026-11-09
README 7.0 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add github:yami0310/dsh-restart-button#v1.0.0
  1. 1
    确认版本与运行环境

    兼容的 DSH 版本为 0.2.2-rc.1,Node.js 要求 >=18;版本不匹配时安装会报错。

  2. 2
    执行安装命令

    在 DSH 里执行上面的命令;多包仓库要注意区分具体子包名,别装错包。

  3. 3
    确认已挂载

    用 dsh plugin list 查看列表里是否出现这个插件,出现即挂载成功。

  4. 4
    试跑并检查权限

    加载后跑一个最小用例,确认它能正常工作;同时看它申请了哪些文件、命令或网络权限。

兼容 DSH 版本0.2.2-rc.1版本不匹配时安装会报错
Node.js 要求>=18来自仓库 package.json 的 engines 字段
前置依赖无需要同时安装的同级依赖
npm 包名dsh-restart-button可用 npm view 查看包信息

能做什么

4 项功能
字段来自项目仓库与公开索引,中文说明由本站标注

dsh-restart-button:为 DeepSeek Harness 侧栏加上重启入口

  • 侧栏底部圆环重启按钮
  • 两段式确认防误触
  • 重启后不留控制台窗口
  • 仅支持 Windows 平台

适用场景

终端命令

上游标签

deepseek-harnessdsh-pluginelectronrestartsidebarwindows

验证等级与安全审查

L5 · 运行验证通过
自动化流程结论,不是人工审核
验证等级L5 · 运行验证通过在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度活跃按仓库活跃度与最近更新时间给出
可信度金综合仓库活跃度与验证结果

上面的结论来自上游最近一次自动化验证(2026-11-10): 同一套检查会在插件发新版后重跑,页面显示的是最新一次的逐项结果。

逐项检查结果

L1 · 已找到 ✓ 通过
  • L1.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L2 · 结构化 ✓ 通过
  • L2.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L3 · 安装规范 ✓ 通过
  • L3.1_INSTALL_COMMAND_PARSED 安装命令已解析 方式:安装规范解析
  • L3.2_DSH_VERSION_DECLARED DSH 版本已声明 方式:DSH 版本声明
L4 · 安装已测 ✓ 通过
  • L4.1_INSTALL_EXECUTED_CONFINED 受限沙盒内执行安装 方式:沙盒安装执行
  • L4.2_INSTALL_SUCCESS 沙盒安装成功 方式:沙盒安装执行
  • L4.3_ARTIFACT_CONFIRMED 安装产物已确认 方式:沙盒安装执行
L5 · 运行已测 ✓ 通过
  • L5.1_INSTALL_PASSED_SANDBOXED 沙盒安装通过 方式:沙盒安装执行
  • L5.2_WEB_BOOT_READY Web 启动就绪 方式:Web 启动
  • L5.3_HTTP_SERVED HTTP 服务响应 方式:HTTP 请求
  • L5.4_PLUGIN_INVENTORY_ACTIVE 插件清单中已激活 方式:插件清单查询

风险详情

  • 结论说明 静态扫描 低;动态审计无结论(以下以静态为准)→ 总评级 低。
  • 风险计数 严重 0 / 高 0

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 验证等级 L5:安装和运行都在沙盒里跑通过,装完能直接用的概率高。
  • 静态安全审查为低风险,没有发现明显可疑行为。
  • 有可直接复制的安装命令,不用自己翻文档找入口。
  • 标注了兼容的 DSH 版本(0.2.2-rc.1),按版本装不容易报错。
  • 列出了 4 项功能,能直接看出它解决什么问题。

先想清楚的地方

  • 验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么。

更适合

  • 需要在会话与消息场景里给 DSH 补能力的人。
  • 想装完就能用、不想自己排依赖的人。
  • 能接受在本地装依赖、愿意自己确认权限的人。

不太适合

  • 只使用 DSH 官方内置能力、不接受第三方插件的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
插件验证等级安全审查星标兼容版本安装命令
dsh-restart-button当前 L5 · 运行验证通过 低风险 1 0.2.2-rc.1 有
dsh-desktop L3 · 安装规范通过 低风险 3.0 万 未标注 无
openpets L4 · 沙盒安装通过 低风险 1,274 未标注 有
deeptide L4 · 沙盒安装通过 低风险 1,104 0.1.1-rc.2 有
jingyun-dsh L3 · 安装规范通过 低风险 1,004 未标注 有
study-mate 未做沙盒验证 未标注 856 未标注 无

仓库档案

会话与消息
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方yami0310仓库 dsh-restart-button · 默认分支 main
分类会话与消息desktop
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言JavaScript仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue1 / 0 / 0收录时的数值,非实时
创建 / 更新2026-11-09 · 2026-11-09最后推送 2026-11-09
本站收录2026-11-10首次进入本站目录的时间

README 全文

7.0 KB
作者原文,中文版优先;只做安全转义,不改内容

dsh-restart-button

给 DeepSeek Harness 的侧栏底部加一个「重新启动」按钮:一键重启,重启完不留控制台窗口,桌面窗口正常出现。

> 仅支持 Windows。 整个实现建立在 schtasks / wscript / taskkill / job object 这些 Windows 机制上。

用法

左侧栏底部会出现一个圆环箭头按钮:

  • 点一下 → 变成「确认重启?」
  • 再点一下 → 真的重启(确认状态 3 秒后自动过期)

展开侧栏时显示文字,收成竖条时只剩图标。

安装

git clone https://github.com/yami0310/dsh-restart-button.git

然后在 DSH 里用插件管理器加载这个目录(link: 方式,方便以后 git pull 更新):

plugin_manager install_bundle target=link:<仓库路径>

插件管理器会把包名加进 profile 的 dsh.profile.bundles,客户端半边会热加载;宿主半边要重启一次 DSH 才生效。

为什么不点一下就直接重启

这个按钮会立刻掐断当前会话(进程被杀)。侧栏底部紧挨着设置入口,手滑一下代价太大,所以加了一次确认。

重启是怎么做的

按钮 ──POST──> 宿主半边 ──schtasks /run──> 任务计划服务
│
▼
wscript
│
▼
node 助手(helper.mjs)
│
┌────────────────────────┼────────────────────────┐
▼                        ▼                        ▼
先杀 GUI 主进程          清理剩余进程            spawn 新实例
(避免崩溃弹窗)        (按镜像名一把清)      等新宿主开始监听

助手跑完就退出,没有常驻进程,所以不会留下控制台窗口。

九个坑(都踩过)

坑 现象 处理
按进程树杀(taskkill /T) 助手把自己也杀了,日志断在 "force killing" 助手是 node.exe,只按镜像名杀应用进程
job object 连坐 DSH 的进程都在一个 KILL_ON_JOB_CLOSE 且不许 breakaway 的 job 里;直接 spawn 的助手会继承它,DSH 一死助手跟着死 绕开 DSH:schtasks /run → 任务计划服务 → wscript → 助手。助手不在 DSH 的 job 里(实测 DSH job 有 7 个进程,助手那个 job 只有 2 个)
先杀 renderer 会弹崩溃窗 主进程还活着而 renderer 先死,主进程的 render-process-gone 回调触发 reportFatal,弹出「Desktop renderer exited: killed」,还给三个按钮。用户点了「重启」,App 自己又起来一份 —— 表现为「杀完之后冒出一批全新 PID」 先杀 GUI 主进程,主进程没了就没人弹窗;再清理剩下的。杀不掉就整体放弃,宁可不重启也不弹窗
权限不够,杀不掉 DSH 通常以管理员身份启动(IsInRole(Administrator) 为 True)。默认的计划任务是普通权限,taskkill 直接返回「拒绝访问」,日志连写 3 次「强杀 GUI 主进程」然后 ABORT —— 看起来像「点了没反应」 建任务时加 /RL HIGHEST。/query /fo list /v 里看不到权限字段,得读 /xml 的 HighestAvailable 来校验,否则会复用旧任务
windowsHide:true 把窗口一起藏了 重启确实成功,进程、端口都对,但桌面上看不到 DSH 窗口。对照实验(同一个 notepad,只改这一个参数):windowsHide:true → MainWindowHandle=0、IsWindowVisible=False;false → handle=4002634、visible=True。这个参数是为控制台程序设计的,对 GUI 程序会连窗口一起隐藏 拉起 DSH 时用 windowsHide: false;只有调用 tasklist/taskkill/netstat/powershell 这些命令行工具时才用 true
写死端口等就绪 DSH 每次启动端口都随机(50054 → 52583 → 59072 …),等固定端口会假失败 改成「新出现的宿主进程有没有在 LISTENING」
端口挑错 同一个宿主进程同时监听好几个端口(实测 17321 是 API 网关、59785 才是 web 界面),日志写 DONE 端口 17321,排查的人照着打开只会得到 {"ok":false,"error":"not_found"} 探一下 /:web 界面未登录返回 401 + 正文 dsh web authentication required;API 网关返回 404 JSON。只认前者
继承 ELECTRON_RUN_AS_NODE=1 新实例当 node 跑,没窗口、不启 web server 拉起前 delete env.ELECTRON_RUN_AS_NODE
失败后 busy 永久卡住 重启失败时进程还活着,busy 停在 true,之后每次点按钮都 409「已经有一次重启在进行」,只能重启 DSH 才能恢复 busy 带 90 秒超时:超时了进程还在,说明上次没成功,自动放行

排查用的自检模式

不想真重启、只想确认「助手会怎么处理当前进程」时,在仓库目录里:

DSH_RESTART_DRYRUN=1 node lib/helper.mjs ""

Windows CMD 写法:

set DSH_RESTART_DRYRUN=1
node lib\helper.mjs "C:\Program Files\DeepSeek Harness\DeepSeek Harness.exe"

它会往日志里打印每个进程被归为哪一类(MAIN / host / renderer / plugin-child)
以及当前所有监听端口,不动任何进程。

日志在 %USERPROFILE%\.dsh\restart-button.log。

配置

环境变量 作用
DSH_RESTART_DRYRUN=1 只自检,不重启
DSH_RESTART_NODE 指定内置 node.exe 的路径。插件默认从「exe 同级的 resources/runtime/...」和「~/.dsh/dsh-runtimes/...」两处找,都不在时才需要设这个

安全

接口只接受本机同源请求:Host 必须是 127.0.0.1 / localhost / [::1],且 Origin(若有)必须与 Host 完全一致。浏览器里别的页面发不出去这个 POST(实测外站 Origin 返回 403)。

同时只允许一个重启在进行,连点第二下返回 409。

文件

路径 作用
lib/client.js 网页半边:侧栏按钮 + 两段式确认
lib/index.js 宿主半边:/api/dsh-restart-button 路由,写启动脚本、建任务、触发
lib/helper.mjs 重启助手:杀 → 等 → 拉起 → 等就绪
~/.dsh/restart-button.launch.vbs 生成的启动脚本(纯 ASCII,wscript 用)
~/.dsh/restart-button.log 助手日志
计划任务 DSHRestartButton 让助手脱离 DSH 的 job object

卸载

插件页停用 dsh-restart-button 即可。想连计划任务一起清掉:

schtasks /delete /tn DSHRestartButton /f

License

MIT

常见问题

9 问
答案由本站依据条目字段整理,不引用上游原文
dsh-restart-button 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add github:yami0310/dsh-restart-button#v1.0.0` 即可。对应的 npm 包名是 `dsh-restart-button`。

dsh-restart-button 的验证等级是什么意思?

L5 · 运行验证通过。在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来

dsh-restart-button 安全吗?

低风险。静态扫描 低;动态审计无结论(以下以静态为准)→ 总评级 低。

dsh-restart-button 装之前要先确认什么?

先看它会读写哪些文件、执行哪些命令、连接哪些网络地址;验证等级只说明装得上、跑得起来,不等于安全。涉及密钥或系统权限的,建议先在隔离环境试装。

dsh-restart-button 支持哪些 DSH 版本?

上游记录的兼容版本包括 0.2.2-rc.1。

dsh-restart-button 需要什么运行环境?

Node.js >=18。环境不满足时安装会失败,建议先确认本机版本。

dsh-restart-button 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

dsh-restart-button 有哪些功能?

侧栏底部圆环重启按钮、两段式确认防误触、重启后不留控制台窗口、仅支持 Windows 平台。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

同名或近似条目

8 条
不同作者的仓库分开列,请确认你要装的是哪一个
会话与消息
按星标排序,可作替代方案

dsh-desktop

dsh-desktop

为 DeepSeek Harness (DSH) 插件生态打造的现代化桌面端解决方案。万物皆「插件」,桌面本身也是「插件」。

L3 · 安装规范通过 3.0 万 星

openpets

openpets

L4 · 沙盒安装通过 1,274 星

deeptide

deeptide

L4 · 沙盒安装通过 1,104 星

jingyun-dsh

jingyun-dsh

井云 DSH 客户端插件,为 DeepSeek Harness 注入会员登录、订阅支付、算力管控与应用市场,让智能体和技能快速变成可交易商品

L3 · 安装规范通过 1,004 星

study-mate

study-mate

StudyMate 是 DSH 的「学习模式」预设与技能包,为数学、计算机科目定制学习路线、讲解课件与练习评估,跨科目共享记忆。

未标注验证等级 856 星

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 2026-11-10。