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

自升级助手 snow930/dsh-self-upgrade

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

在设置页一键检查并升级到最新版本

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

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

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

状态速览

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

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

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

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

可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 17 处,展示前 13 条)
  • 读取本地文件
    lib/index.js:163
    if (existsSync(pkgPath)) {
  • 读取本地文件
    lib/index.js:164
    const pkg = JSON.parse(readFileSync(pkgPath, "utf8"));
  • 发起网络请求
    lib/index.js:195
    const response = await fetch(REGISTRY_LATEST_URL, { signal: AbortSignal.timeout(REGISTRY_TIMEOUT_MS) });
  • 读取本地文件
    lib/index.js:300
    running = JSON.parse(await readFile(RUNNING_PATH, "utf8"));
  • 写入本地文件
    lib/index.js:339
    await mkdir(STATE_DIR, { recursive: true });
  • 写入本地文件
    lib/index.js:340
    await writeFile(LOG_PATH, `[upgrade] requested at ${new Date().toISOString()} — current ${meta.current} → ${target}\n`);
  • 写入本地文件
    lib/index.js:341
    await writeFile(RUNNING_PATH, `${JSON.stringify(meta, null, 1)}\n`);
  • 写入本地文件
    lib/index.js:342
    await writeFile(SCRIPT_PATH, buildScript(meta), { mode: 0o755 });
  • 执行外部命令固定命令
    lib/index.js:344
    const child = spawn("/usr/bin/env", ["bash", SCRIPT_PATH], {
  • 读取本地文件
    lib/index.js:359
    running = JSON.parse(readFileSync(RUNNING_PATH, "utf8"));
  • 读取本地文件
    lib/index.js:362
    if (existsSync(LOG_PATH)) {
  • 读取本地文件
    lib/index.js:363
    logTail = readFileSync(LOG_PATH).toString("utf8").slice(-4000);
  • 发起网络请求
    lib/client.js:25
    const response = await fetch(path, {
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

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

README

由 DeepSeek 最新模型翻译生成
dsh-self-upgrade DSH(DeepSeek Harness)自升级插件:在 Web GUI 设置页添加「系统更新」区块,一键检查版本并执行升级。 功能 - 版本检查:自动对比运行中的 DSH 宿主版本与 npm registry 最新版 - 一键升级:点击按钮执行 npm install -g @deepseek-ai/dsh@latest - 实时进度:SSE 流式推送安装日志,无需刷新即可看到每行输出 - 自动重启:安装完成后自动停止旧实例、等待端口释放、后台拉起新实例、刷新页面 - 安全回滚:npm 安装失败时旧实例不受影响,天然回滚 安装 推荐:从 npm 安装: dsh plugin --profile web add dsh-self-upgrade 或手动编辑 profiles/web/package.json:dependencies 增加 "dsh-self-upgrade": "^0.1.0"、dsh.profile.bundles 追加 "dsh-self-upgrade",然后在 profiles/web 下 pnpm install。
展开完整文档(README 剩余 1 节)
dsh-self-upgrade

DSH(DeepSeek Harness)自升级插件:在 Web GUI 设置页添加「系统更新」区块,一键检查版本并执行升级。

功能

- 版本检查:自动对比运行中的 DSH 宿主版本与 npm registry 最新版
- 一键升级:点击按钮执行 npm install -g @deepseek-ai/dsh@latest
- 实时进度:SSE 流式推送安装日志,无需刷新即可看到每行输出
- 自动重启:安装完成后自动停止旧实例、等待端口释放、后台拉起新实例、刷新页面
- 安全回滚:npm 安装失败时旧实例不受影响,天然回滚

安装

推荐:从 npm 安装:

dsh plugin --profile web add dsh-self-upgrade

或手动编辑 profiles/web/package.json:dependencies 增加 "dsh-self-upgrade": "^0.1.0"、dsh.profile.bundles 追加 "dsh-self-upgrade",然后在 profiles/web 下 pnpm install。

本地开发(维护者迭代):link 到本地检出,修改源码后重启 DSH Web 即生效,无需重新发布 npm:

dsh plugin --profile web add link:~/git/dsh-self-upgrade

工作原理

服务端(lib/index.js)

Cordis 插件,注册 4 个 loopback-only HTTP 端点:

| 端点 | 方法 | 功能 |
| /api/self-upgrade/check | GET | 返回 {current, latest, hasUpdate} |
| /api/self-upgrade/run | POST | 生成升级脚本并以 detached 进程执行 |
| /api/self-upgrade/status | GET | 返回阶段推断 + 日志尾部(轮询用) |
| /api/self-upgrade/stream | GET | SSE 实时流式推送日志(安装阶段用) |

升级脚本流程:npm install -g → kill 旧进程 → 等端口释放 → setsid nohup dsh web。

客户端(lib/client.js)

通过 settings.section slot 注册设置页一级区块「系统更新」。安装阶段用 EventSource 接收 SSE 实时日志;重启阶段(旧进程已死)自动 fallback 到轮询。

安全

- 所有端点仅接受 loopback(127.0.0.1 / ::1)请求
- 升级脚本内容由服务端固定生成,不接受任意命令注入
- 目标版本白名单校验(仅 semver 格式)
- npm 安装失败 = 旧进程不动,零影响

文件结构

dsh-self-upgrade/
├── package.json # 插件清单 + dsh.client 声明 ├── cordis.patch.yml # loader entry 注册 ├── lib/ │ ├── index.js # 服务端 cordis 插件 │ └── client.js # 客户端 settings.section UI └── README.md

卸载

从 profile package.json 删除 dsh-self-upgrade 依赖和 bundles 条目,pnpm install 即可。
预览分享卡片长什么样 ↓snow930/dsh-self-upgrade
分享 · DeepSeek Harness Hub
snow930/dsh-self-upgrade

在设置页一键检查并升级到最新版本

这是你的仓库?认领条目

回到顶部