dsh-tray-restart

DSH PLUGIN会话与消息

仓库 QIRSHENG/dsh-tray-restart

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

dsh-tray-restart 是 QIRSHENG 维护的 会话与消息 类 DSH 可安装插件, 仓库为 QIRSHENG/dsh-tray-restart,许可证 MIT。 下面按「装什么、怎么装、验没验过、跑起来要注意什么」逐项列出。

一句话选型结论

按资料字段整理

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

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

安装

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

    仓库没有标注兼容版本与 Node.js 要求,先确认你的 DSH 版本能装,再继续。

  2. 2
    执行安装命令

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

  3. 3
    确认已挂载

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

  4. 4
    试跑并检查权限

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

兼容 DSH 版本未标注版本不匹配时安装会报错
Node.js 要求未标注来自仓库 package.json 的 engines 字段
前置依赖无需要同时安装的同级依赖
npm 包名未发布到 npm可用 npm view 查看包信息

能做什么

会话与消息
字段来自项目仓库与公开索引,中文说明由本站标注

上游标签

deepseek-harnessdshdsh-pluginelectronrestarttraywindows

验证等级与安全审查

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

选择建议

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

值得选的地方

  • 验证等级 L5:安装和运行都在沙盒里跑通过,装完能直接用的概率高。
  • 静态安全审查为低风险,没有发现明显可疑行为。
  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有声明 Node.js 版本要求,版本不匹配可能装不上。
  • 验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么。

更适合

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

不太适合

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

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
插件验证等级安全审查星标兼容版本安装命令
dsh-tray-restart当前 L5 · 运行验证通过 低风险 0 未标注 有
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 未标注 无

仓库档案

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

README 全文

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

dsh-tray-restart

给 DeepSeek Harness 官方桌面端 的 Windows 系统托盘(任务栏通知区)右键菜单加三项:
「重启应用与 Host」、「刷新页面」(刷新前端)和 「彻底退出 Harness」(结束所有
Harness 进程),并在桌面端每次自动更新覆盖 app.asar 之后自动重打补丁。

Adds Restart App and Host, Reload Page (refresh the frontend) and Force Quit
(kill every Harness process) items to the Windows system-tray menu of the official
DeepSeek Harness desktop shell, and re-applies the patch after every desktop update.


效果 / What you get

托盘菜单从:

打开 DeepSeek Harness
────────────
退出 DeepSeek Harness

变成:

打开 DeepSeek Harness
重启应用与 Host          ← 新增
刷新页面                 ← 新增(刷新前端,Host 不重启)
────────────
彻底退出 Harness         ← 新增(结束所有 Harness 进程)
退出 DeepSeek Harness
  • 重启应用与 Host:执行 app.relaunch(); quitWithoutConfirmation(),与官方开发版应用菜单
    里的同名项一致——干净退出 Host、重启整个应用,不弹“任务仍在运行”的确认框。
  • 刷新页面:对主窗口执行 webContents.reload(),等价于前台按 Ctrl+R。只重载前端页面,
    Host、会话和正在跑的任务都不受影响;前端改坏了、白屏或要重新加载界面时用。
  • 彻底退出 Harness:先正常请求退出,同时启动一个脱离应用进程的 PowerShell 清理脚本
    (%USERPROFILE%\.dsh\dsh-tray-restart\quit-all.ps1,插件启动时写入)。脚本等待约 1.2 秒后
    强制结束所有匹配的进程:桌面端 Electron 全部进程、dsh-desktop-host、%LOCALAPPDATA%\Programs\DeepSeek Harness\ 下的运行时、.dsh\profiles 启动的子进程、rea / Windows-MCP / GitHub-MCP
    以及 @dsh-ops 启动的 shell。

前两项复用官方已有的本地化文案(messages.restartAppHostMenu / messages.reloadPageMenu),
中英文随系统语言切换。

安装 / Install

需要 DSH 桌面端 0.2.x(Windows)。已在 @deepseek-ai/dsh-desktop 0.2.1-rc.2 +
Windows 11 + Node 24 上验证。

方式一:插件管理器(桌面端推荐)

  1. 把本仓库克隆到任意目录:
git clone https://github.com/QIRSHENG/dsh-tray-restart.git
  1. 打开 DeepSeek Harness → 设置 → 插件,选择“从本地目录安装”,指向克隆下来的
    dsh-tray-restart 目录(就是含 package.json 的那一层)。
  2. 安装完成后 完全退出并重新打开 DeepSeek Harness。

桌面端 profile 由 Electron 应用独占管理,dsh plugin --profile desktop ... 会被拒绝,
所以桌面端请走插件管理器(或由 agent 调用 plugin_manager 的 install_bundle)。

方式二:CLI(非桌面端独占的 profile)

dsh plugin --profile  add github:QIRSHENG/dsh-tray-restart
# 或本地目录
dsh plugin --profile  add C:\path\to\dsh-tray-restart

安装完成后 完全退出并重新打开 DeepSeek Harness。桌面端主进程代码只在启动时加载,
所以托盘菜单会在下一次启动时出现。

> 安装后如果托盘还没变,先退出应用(托盘 → 退出),在 PowerShell 里运行一次
> node lib/patcher.mjs status 确认 status: "patched",再启动应用。

为什么需要改 app.asar / Why an asar patch

DSH 插件跑在 Host 子进程里(Cordis),而系统托盘属于 Electron 主进程。官方没有暴露
托盘 / Electron 主进程的扩展点,所以插件只能给 resources/app.asar 里的
/lib/main.js 打一个最小补丁。

补丁的设计约束:

  • 等长改写:托盘菜单模板被压紧,插入两项后用尾部空白补齐,/lib/main.js 的
    字节数完全不变 → asar 头里其它文件的 offset 全部保持有效。
  • 只改托盘这一处:仅 DesktopTray.relabel() 的 tray.setContextMenu(...) 模板;
    为腾出字节会同时压缩两段纯注释(不改变任何行为)。锚点不唯一、结构不认识或长度
    会变大时 拒绝写入。
  • 可升级旧补丁:1.0.x 只加了重启项;1.1.0 会把旧补丁原地升级成「重启 + 刷新」两项。
  • 同步完整性摘要:同时刷新 asar 目录里 /lib/main.js 的 SHA-256(等长 hex),
    即使 EnableEmbeddedAsarIntegrityValidation 被打开也不会失配。
  • 可回滚:首次写入前把原始 /lib/main.js 保存到
    %USERPROFILE%\.dsh\dsh-tray-restart\main.original.js,restore 命令可原样写回。
  • 幂等:已经是补丁状态时只做只读检查。

插件在每次 Host 启动约 2 秒后运行一次检查,因此桌面端自动更新把 app.asar 换回官方版本后,
下一次启动会自动重打补丁(那一次启动看到的还是旧菜单,再启动一次即可)。

> 更新后的第一次启动只负责重打补丁;托盘菜单在下一次启动才出现。

手动命令 / Manual CLI

任何 Node.js ≥ 20 都可以直接运行补丁器(不需要安装插件):

node lib/patcher.mjs status          # 只读检查
node lib/patcher.mjs apply           # 需要时打补丁(幂等)
node lib/patcher.mjs apply --dry-run # 只检查能否安全打补丁
node lib/patcher.mjs restore         # 写回安装前的原始 main.js

加 --json 输出机器可读结果,加 --asar 指定别的 app.asar。

默认路径:%LOCALAPPDATA%\Programs\DeepSeek Harness\resources\app.asar;
也可用环境变量 DSH_DESKTOP_APP_ASAR 覆盖。

每次运行的记录在 %USERPROFILE%\.dsh\dsh-tray-restart\status.json。

卸载 / Uninstall

# 1. 先还原托盘菜单
node lib/patcher.mjs restore

# 2. 移除插件(桌面端:在插件管理器里移除;其它 profile 用 CLI)
dsh plugin --profile  remove dsh-tray-restart

如果 restore 报 size-mismatch(桌面端版本已经变化),直接重新安装官方桌面端即可。

安全边界 / Safety

  • 只支持 官方 Windows 桌面端(打包的 Electron 应用);开发模式、dsh web、
    dsh --profile headless 没有系统托盘,插件会安全跳过。
  • 只改写 /lib/main.js 中一段已知的托盘菜单模板;任何结构变化都会让补丁失败而不是写坏文件。
  • 不改注册表、不加启动项、不联网。
  • 桌面端升级后若补丁失败,菜单只是保持官方原样,不会影响应用启动。
  • 如果应用因任何原因无法启动,先 node lib/patcher.mjs restore;仍不行则重装桌面端。

已知限制 / Limitations

  • 需要重启应用才能看到菜单(主进程代码只在启动时读取)。
  • 官方桌面端更新后需要启动两次:第一次重打补丁,第二次显示菜单。
  • 与其它直接修改 app.asar 的工具可能冲突;发现 status: "unsupported" 时不要强行写入。
  • 非 Windows 平台不支持(macOS 的菜单栏与 Linux 的托盘实现不同)。

文件结构 / Layout

index.js            Cordis Host 插件:每次 Host 启动检查/重打补丁
lib/patcher.mjs     等长改写补丁器 + CLI(status / apply / restore)
cordis.patch.yml    bundle patch:插入插件行
locale/*.json       插件管理器展示文案
icon.svg            插件图标

开发 / Development

node --check index.js
node --test test/patcher.test.mjs     # 用合成 asar 验证打补丁/还原
node lib/patcher.mjs apply --dry-run --json

补丁器是纯 ESM、零依赖;只使用 node:fs、node:crypto、node:path。

License

MIT License © 2026 QIRSHENG

常见问题

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

在 DSH 里执行 `dsh plugin --profile web add github:QIRSHENG/dsh-tray-restart#v1.2.0` 即可。

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

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

dsh-tray-restart 安全吗?

低风险。

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

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

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

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

这条记录的数据可靠吗?

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

同名或近似条目

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

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 星

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