在设置页重载内核或彻底重启应用
30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/2 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add MerlinShieh/dsh-plugin-restart-control该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
是什么
dsh 原生插件 · desktop
装得上吗
实装验证未通过(unknown),装前请到仓库确认最近更新与 issue
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 33 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
⚠︎ 实装验证未通过(unknown · 2026/10/2) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 9 处,展示前 9 条)
- 读取本地文件lib/index.js:83
if (existsSync(candidate) && statSync(candidate).isFile()) return candidate - 读取本地文件lib/index.js:83
if (existsSync(candidate) && statSync(candidate).isFile()) return candidate - 读取本地文件lib/index.js:268
const previous = readFileSync(patchPath, 'utf8') - 写入本地文件lib/index.js:275
if (changed) writeFileSync(patchPath, next, 'utf8') - 执行外部命令来自配置/变量lib/index.js:297
const helper = spawn(executable, ['-e', RESTART_HELPER_SOURCE], { - 读取本地文件lib/index.js:310
if (!existsSync(file)) return { exists: false, logPath: file, tail: '' } - 读取本地文件lib/index.js:312
const lines = readFileSync(file, 'utf8').split(/ ? /).filter((line) => line !== '') - 写入本地文件lib/index.js:462
mkdirSync(dirname(logPath()), { recursive: true }) - 发起网络请求lib/client.js:63
const response = await fetch(API_PATH, {
扫描于 2026/11/2(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-ui-settings@deepseek-ai/dsh-client-ui-settings-general给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 重载内核
- 重启应用
DSH 设置页「重启 / Restart」分区:重载内核(官方 HMR 重组插件树)+ 重启应用(detached 助手重启外壳)| Restart control for DeepSeek Harness
README
由 DeepSeek 最新模型翻译生成dsh-plugin-restart-control
给 DeepSeek Harness 的设置页加一个重启 / Restart 分区,提供两个档位:
| 档位 | 做什么 | 代价 |
| 重载内核 | 让 DSH 自己的 HMR 重新组合整棵插件树(配置重读、插件重新挂载) | 秒级;进程与窗口保留;换包版本 / 原生模块并不生效 |
| 重启应用 | 由一个分离助手结束外壳进程并重新拉起同一个可执行文件 | 更彻底;会中断正在运行的任务;窗口重建 |
示意
为什么是这两档
官方桌面版(Electron 外壳 + host 子进程)里,"重启内核"有一个硬约束:
- 插件够不到外壳。host 与 Electron 主进程之间的 IPC 是一张封闭白名单(dsh-desktop-host 的 process.on("message") 只认 shutdown / quit-inspection / update-tasks),发出白名单外的消息会被主进程直接 SIGTERM。所以插件无法请求外壳执行 app.relaunch()。
- host 也不能自己重启。主进程把 host 的任何主动退出都判为失败:dsh desktop host stopped、acknowledged an unrequested shutdown → 弹崩溃恢复对话框。
展开完整文档(README 剩余 1 节)
dsh-plugin-restart-control
给 DeepSeek Harness 的设置页加一个重启 / Restart 分区,提供两个档位:
| 档位 | 做什么 | 代价 |
| 重载内核 | 让 DSH 自己的 HMR 重新组合整棵插件树(配置重读、插件重新挂载) | 秒级;进程与窗口保留;换包版本 / 原生模块并不生效 |
| 重启应用 | 由一个分离助手结束外壳进程并重新拉起同一个可执行文件 | 更彻底;会中断正在运行的任务;窗口重建 |
示意
为什么是这两档
官方桌面版(Electron 外壳 + host 子进程)里,"重启内核"有一个硬约束:
- 插件够不到外壳。host 与 Electron 主进程之间的 IPC 是一张封闭白名单(dsh-desktop-host 的 process.on("message") 只认 shutdown / quit-inspection / update-tasks),发出白名单外的消息会被主进程直接 SIGTERM。所以插件无法请求外壳执行 app.relaunch()。
- host 也不能自己重启。主进程把 host 的任何主动退出都判为失败:dsh desktop host stopped、acknowledged an unrequested shutdown → 弹崩溃恢复对话框。只有主进程自己在更新流程里会"停 host 再拉起 host"。
因此本插件提供的是官方语义下可达成的最强两档,也正是 DSH 自己使用的两条路径:
- 重载内核 = 官方 HMR 路径。向当前 profile 的 cordis.patch.yml 追加/更新一行带时间戳的注释(# dsh-plugin-restart-control: kernel reload marker …),HMR 检测到配置层变化后重新组合插件树。这与 dsh-market 做插件启停时用的机制完全相同——只增删自己那一行注释,不改动你的任何既有配置。
- 重启应用 = 分离助手路径。助手用 process.execPath 以 ELECTRON_RUN_AS_NODE=1 启动(不要求系统另装 Node),先结束外壳(外壳退出会断开 host 的 IPC,host 随之优雅关闭),兜底强杀 host,等端口释放后再拉起新实例。全程按 PID 结束进程——助手与目标同名,taskkill /IM 会把它自己也带走。
安装
⚠️ 装完必须启用:dsh plugin add 只把包装进 profile,不会写 profile 的组合包列表。装好后要到 设置 → 插件 打开 dsh-plugin-restart-control 的开关(等价于把它加进 dsh.profile.bundles),否则它不会被加载。官方插件管理器(设置页 / plugin_manager 工具)会替你做这一步。
方式一:GitHub(推荐)
dsh plugin --profile <profile> add "github:MerlinShieh/dsh-plugin-restart-control"
实测 pnpm 约 5 秒完成安装,包会解析为 dsh-plugin-restart-control。
方式二:Release tarball(离线 / 内网)
dsh plugin --profile <profile> add https://github.com/MerlinShieh/dsh-plugin-restart-control/releases/download/v0.1.0/dsh-plugin-restart-control-0.1.0.tgz
方式三:官方桌面版(设置页)
官方桌面版独占 desktop profile:外部 CLI 会对它报 profile "desktop" is managed exclusively by the Electron application。请在 设置 → 插件 → 添加插件 里填入上面任一种安装源,再打开组合包开关。
方式四:本地路径(开发迭代)
pnpm add file:/绝对路径/dsh-plugin/restart-control
注意 file: 安装是快照:改了插件源码后要重新 pnpm add 才生效;而且插件位于 node_modules,不参与 DSH 的 HMR 监视,宿主半区的代码改动需要重启应用。
npm 包尚未发布:dsh-plugin-restart-control 目前还没有发布到 npm。发布之后即可用更短的 dsh plugin --profile <profile> add dsh-plugin-restart-control,安装体验与官方插件完全一致(支持版本范围与 pnpm update)。
使用
装好后打开 设置 → 重启 / Restart:
- 重载内核:点一下即写入标记行并触发热重载;界面会提示"插件树正在重新组合"。
- 重启应用:点击后进入二次确认(避免误点中断任务);确认后界面提示"正在重启",应用回来后本页自动恢复。
- 查看重启日志:助手把每一步写进 $DSH_HOME/dsh-plugin-restart-control/restart.log,设置页可直接查看尾部——重启失败时这是唯一的证据来源。
若当前有正在运行的任务,分区顶部会给出橙色提示;重启应用会中断它们。
安全模型
控制路由只接受:
- 回环(或 webRuntime.trustedHosts 里声明的权威)Host 头;
- 同源浏览器标记(Sec-Fetch-Site 不是 cross-site,Origin 与 Host 一致);
- content-type: application/json 的 POST,body 上限 64 KiB。
这是防 DNS-rebinding / 跨站请求的栅栏,不是身份认证——与 dsh-dream-skin、dsh-better-sidebar 的路由策略一致。
兼容性
- peerDependencies 使用范围声明(>=0.1.0-rc.6 <0.3.0-0),因此在 DSH 0.2.0-rc.2 上通过官方兼容性检查。
- 宿主半区需要 webServer 与 webRuntime 两个服务;缺失时插件不会被挂载(不会让启动失败)。
- 客户端半区只需要 slots 与 locale;平台 seed(react、react/jsx-runtime)解析失败时退化成「不可见但无害」,只在控制台留一条警告。
已知限制
- 「重载内核」不等于重启进程:它不会重新加载 Node 已经 import 的模块,也不解决原生模块(native addon)占用。需要那类效果时请用「重启应用」。
- 「重启应用」是强制结束:助手按 PID 结束外壳,不会走 before-quit 的确认流程。DSH 的会话日志是追加写入的,风险较低,但正在运行的任务会被中断。
- 失败恢复是精简版:助手只写日志,不提供像 dsh-market 那样的恢复页。若应用没有自动回来,请手动启动,并在日志里查看卡在哪一步。
- 触发器依赖 profile 的 cordis.patch.yml 存在且非空;该文件不存在时「重载内核」会返回 patch-missing 并保持禁用状态。
开发
本插件的客户端半区是源码即产物(lib/client.js 直接就是可分发的 bundle,内部经 react/jsx-runtime 调用,不用 JSX),因此没有构建步骤:
lib/index.js 宿主半区(ESM) lib/restart-helper.js 分离助手源码(模板字符串导出) lib/client.js 客户端 bundle(window.__ModuleLoader__.load 注册) cordis.patch.yml profile patch 层:insert 一个 loader 条目
locale/{zh,en}.json 插件元信息本地化
改动后在目标 profile 重装(pnpm add file:...)或直接热重载即可。
License
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
MerlinShieh/dsh-plugin-restart-control
在设置页重载内核或彻底重启应用
相关插件 · 桌面端
Codex 任务面板chuspeeism/dashi-taskboard
现代化可灵活嵌入的任务面板,支持 Codex、DeepSeek Harness
★ 3,409已汉化DSH
71.7
多智能体自进化开发平台Prism-Shadow/penguin-harness
统一、稳定的 Agent 自进化框架全自动优化:任意模型 · 任意算法 · 任意 Benchmark
★ 3,111已汉化DSH
71.1
桌面宠物PC2005-cloud/dsh-pet
DSH 桌面宠物:一行命令装好即用的透明动画小桌宠,支持多开、大小位置随心配置;还内置 DIY 素材链,能用 AI…
★ 5,341已汉化DSH
71
多端 Agent 工作台GCWing/OpenBitFun
OpenBitFun 是一个高度可定制的开源 Agent 工作台,让任务按你的方式持续推进。
★ 3,449已汉化DSH
70.8
DSH Desktopanywhere-labs/dsh-desktop
为 DeepSeek Harness DSH 插件生态打造的现代化桌面端解决方案。万物皆「插件」,桌面本身也是「插件」。
★ 34,532已汉化DSH
70.7
桌面宠物伴侣OpenPetsHQ/openpets
桌面伴侣平台,带宠物、插件,还能选配本地智能体集成。
★ 1,353已汉化DSH
70.2
这是你的仓库?认领条目