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

插件更新器 shehuilaoliumang/dsh-plugin-updater

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

检查已装插件新版本并一键更新

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

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

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

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么[目录]—
dsh 原生插件 · other
暂无时间戳·判据 →
装得上吗[实装验证]—
本站尚未做安装检查
暂无时间戳·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]✓
活跃:最近一次提交在 2 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

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

验证判据与等级说明 →

可信度证据

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

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

读写/删除本地文件发起外部网络请求
查看扫描证据(共 9 处,展示前 9 条)
  • 发起网络请求
    index.js:211
    const response = await fetch(registryUrlFor(registry, packageName), {
  • 读取本地文件
    index.js:477
    const raw = await readFile(SETTINGS_FILE, 'utf8')
  • 写入本地文件
    index.js:486
    await mkdir(dirname(SETTINGS_FILE), { recursive: true })
  • 写入本地文件
    index.js:487
    await writeFile(SETTINGS_FILE, `${JSON.stringify(settings, null, 2)}\n`, 'utf8')
  • 发起网络请求
    client.js:703
    const request = fetch(STATE_URL + (force === true ? '?force=1' : ''), { headers: { accept: 'application/json' } })
  • 发起网络请求
    client.js:721
    return fetch(UPDATE_URL, {
  • 发起网络请求
    client.js:738
    return fetch(SETTINGS_URL, {
  • 发起网络请求
    client.js:758
    return fetch(BATCH_URL, {
  • 发起网络请求
    client.js:778
    fetch(PROGRESS_URL, { headers: { accept: 'application/json' } })
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

社区实装还没有人打卡 · 装过的第一个就是你
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

检查 DeepSeek Harness 已安装插件是否有新版本,并在插件页 / 插件详情页一键更新。Plugin Updater for DeepSeek Harness.

README

由 DeepSeek 最新模型翻译生成
dsh-plugin-updater 检查已安装的 DeepSeek Harness 插件是否有新版本,并一键更新。 在 DeepSeek Harness 的 插件(Plugins) 页里检查已安装插件是否有新版本,并对可更新的插件提供一键更新。 入口分三处,各司其职: - 侧栏 → 更新检查(sidebar.panellist 图标 + 同名 main 面板):日常入口。图标与插件页图标同排,有可更新插件时右上角带提示点;点开就是完整的检查面板与自动更新设置。 - 插件 → 更新检查(plugins.tab):插件页内的总览标签页,内容与侧栏面板一致(复用同一组件),支持搜索、按状态筛选、逐条更新与批量更新。 - 插件详情页(plugins.detail.badge + plugins.detail.actions):就地更新。在 bundle 详情页标题旁出现「可更新 1.2.3」标签,页头出现「更新到 1.2.3」按钮;行配置页与官方插件页(没有整包可替换的对象)返回 null,不画多余控件。 发现性问题由右下角的限时提醒补足:启动后若检测到可更新插件,会弹出一个 5 秒后自动消失、也可手动关闭的提醒卡,可直接「全部更新」或跳到插件页;同一批可更新插件在同一浏览器会话内只提醒一次。设置页不新增入口——自动更新设置就在本插件的总览与侧栏面板里。
展开完整文档(README 剩余 1 节)
dsh-plugin-updater

检查已安装的 DeepSeek Harness 插件是否有新版本,并一键更新。

在 DeepSeek Harness 的 插件(Plugins) 页里检查已安装插件是否有新版本,并对可更新的插件提供一键更新。

入口分三处,各司其职:

- 侧栏 → 更新检查(sidebar.panellist 图标 + 同名 main 面板):日常入口。图标与插件页图标同排,有可更新插件时右上角带提示点;点开就是完整的检查面板与自动更新设置。
- 插件 → 更新检查(plugins.tab):插件页内的总览标签页,内容与侧栏面板一致(复用同一组件),支持搜索、按状态筛选、逐条更新与批量更新。
- 插件详情页(plugins.detail.badge + plugins.detail.actions):就地更新。在 bundle 详情页标题旁出现「可更新 1.2.3」标签,页头出现「更新到 1.2.3」按钮;行配置页与官方插件页(没有整包可替换的对象)返回 null,不画多余控件。

发现性问题由右下角的限时提醒补足:启动后若检测到可更新插件,会弹出一个 5 秒后自动消失、也可手动关闭的提醒卡,可直接「全部更新」或跳到插件页;同一批可更新插件在同一浏览器会话内只提醒一次。设置页不新增入口——自动更新设置就在本插件的总览与侧栏面板里。

功能

- 列出当前 profile 中通过 plugin_manager 安装的插件,显示当前版本与注册表上的最新版本。
- 状态:可更新 / 已是最新 / 本地版本更新 / 检查失败 / 已忽略,以及本地、Git、压缩包、随 DSH 提供等跳过状态;跳过与失败会直接在行内给出原因。
- 一键更新:点击「更新」立即执行(先卸载旧版本、再安装新版本;安装失败时自动尝试回滚),过程中轮询 Host 进度,实时显示「卸载旧版本 → 安装 x.y.z → 确认结果」与已用时长。
- 批量更新:「全部更新(N)」会先确认一次,然后由 Host 顺序执行,结束后汇总成功/失败;失败行可单独重试。
- 忽略此版本:按“包名 + 版本”记录在 Host 端设置文件里,忽略后不计入可更新数量,可随时取消忽略;忽略只针对该版本——上游再发新版本时会重新出现在「可更新」里。旧版存在浏览器 localStorage 的忽略记录会在首次升级后自动迁移。
- 自动更新(默认关闭,在「更新检查」页顶部设置:)
- 打开页面时自动更新:DSH Web UI 每次打开时检查一次,并把所有可更新插件自动更新掉,完成后用限时提醒汇总结果。
- 定时后台更新:DSH 运行期间按固定间隔检查并更新,间隔可设 30 分钟~30 天;开启后约 1.5 秒会先执行一次。
- 自动更新同样只处理 npm 第三方插件,并复用“失败自动回滚”的更新流程。
- 分组可折叠:「可更新」与「其他插件」两个分组都可点标题展开/收起;有可更新项时「其他插件」默认收起,点一次即展开(首次点击有效)。
- 侧栏角标即时刷新:检查完成、单个/批量更新结束、忽略/取消忽略之后,侧栏图标上的提示点都会随最新状态更新,不需要重开页面。
- 版本自证:页脚始终显示「更新检查 v0.4.3」与「Host v0.4.3」两个版本号以及最近检查时间;浏览器端与 Host 端版本不一致时,Host 版本会标红并提示重启 DSH,便于确认当前页面实际跑的是哪一版。
- 需要重启时给出提示;安装日志写入 profile 的插件管理器日志。
- 更新被拒绝时区分原因:桌面端仍在使用某个插件(bundle-in-use),会提示「重启 DSH 后再更新」;如果该插件的 profile 启动项已经丢失,会显示「启动项缺失,重启后再更新即可恢复」。批量更新遇到需要重启的情况会立即暂停,不再继续尝试后续插件。
- pnpm 层失败按原因归类:profile 的锁文件损坏(Broken lockfile / ERR_PNPM_LOCKFILE_MISSING_DEPENDENCY)、新版本等待期拦截(ERR_PNPM_RESOLUTION_POLICY_VIOLATIONS_UNHANDLED 等)会在错误行下给出可执行的修复提示;锁文件损坏属于全局性故障,批量更新在第一个失败处立即暂停,不再逐个插件重复失败的卸载/重载。

常见问题:更新失败 / 需要重启

- 提示需要重启 DSH:官方桌面端不允许卸载「正在被当前进程加载」的插件,Host 半只能给出提示;重启 DSH 后再点一次更新即可。
- 插件显示“启动项缺失”:早期版本的桌面插件管理器在卸载失败后可能已经从 profile 的 dsh.profile.bundles 里写掉了启动行(依赖仍在)。重启 DSH 后执行一次更新,安装成功会写回启动行;若仍缺失,可在「插件」页手动重新启用该插件。
- 批量更新中途暂停:第一个需要重启的插件之后的插件会被标记为“暂停”,重启后重新批量更新即可继续。
- 所有插件一起更新失败,日志里是 pnpm 的 internal error:通常是 profile 的 pnpm-lock.yaml 损坏(某个依赖只有 importer 条目、缺少 packages/snapshots 条目,例如 Broken lockfile: no entry for <pkg>@<version>)。修复命令:在 profile 目录执行 pnpm install --lockfile-only --fix-lockfile,完成后重新检查即可;pnpm 会同时把该版本写进 pnpm-workspace.yaml 的 minimumReleaseAgeExclude。
- 目标版本刚发布就更新失败:pnpm 11 默认有 24 小时的新版本等待期。CLI 的 add 路径会自动把该版本加入 minimumReleaseAgeExclude 并放行;若日志里出现 ERR_PNPM_RESOLUTION_POLICY_VIOLATIONS_UNHANDLED,按上一条先修锁文件,再重试。
- pnpm 安装长时间无输出:插件管理器有 10 分钟空闲超时(idleTimeoutMs),超时会被终止并回滚旧版本;可重试或检查网络/registry 后重试。

更新规则

- 只处理来自 npm registry 的已安装 bundle;link:/file: 本地插件、Git、tarball 与随 DSH 分发的 official bundle 不在此处更新。
- 更新动作与内置插件管理器的 Update 语义一致:remove + install(安装失败则尽量装回旧版本)。
- 版本比较使用 SemVer;pre-release 版本按 SemVer 规则排序。
- 忽略记录与自动更新设置存在 ~/.dsh/plugin-updater/settings.json(可用 DSH_HOME 覆盖用户目录),不写入 profile 的 package.json 或 cordis.patch.yml。

实现

- Host 半(index.js)注册五条同源 JSON 路由:
- GET /dsh-plugin-updater/api/state[?force=1]:聚合 pluginManager.listBundles() 的已装插件,向 registry 查询 packument 的 dist-tags.latest,返回每个插件的状态、自身版本、自动更新设置、下次定时时间与上次自动执行结果。
- POST /dsh-plugin-updater/api/update:body { "name": "<package>" },执行单个更新并返回结果(错误带稳定的 code、detail 与 failureClass;failureClass 把 pnpm 的锁文件损坏 / 等待期拦截翻译成前端可执行的修复提示)。
- GET /dsh-plugin-updater/api/progress:返回当前正在执行的更新所处阶段(checking / removing / installing / verifying)、序号与总数,供前端显示进度。
- GET|POST /dsh-plugin-updater/api/settings:读取/合并保存自动更新设置(autoUpdate.pageOpen、autoUpdate.scheduled.{enabled,intervalMinutes} 与忽略表 ignored),设置写入 ~/.dsh/plugin-updater/settings.json,与 profile 配置隔离。
- POST /dsh-plugin-updater/api/update-batch:body { "names": ["..."] }(省略则用当前全部可更新项),顺序更新并汇总成功/失败;遇到需要重启或全局性失败(stopped.reason)时立即暂停后续项。
- registry 优先级:pluginManager.registries() 的 resolved / registry / fallbackRegistries → pluginRegistryProbe.fastest() → https://registry.npmjs.org/。
- Client 半(client.js):注册 sidebar.panellist(id: dsh-plugin-updater,order 2)提供侧栏图标(有可更新插件时带提示点),并注册同名 main 面板(key: dsh-plugin-updater)承载完整检查面板;注册 plugins.tab 槽位(order 10)渲染同一份总览与自动更新设置卡;注册 plugins.detail.badge(order 5)与 plugins.detail.actions(order 10)两个详情页槽位,按 subject.kind 只对 bundle 详情页渲染更新标签与按钮,行/官方插件 subject 返回 null;注册 shell.overlay 槽位渲染右下角 5 秒限时提醒(倒计时进度条、可关闭、可直接全部更新)。启动时会把旧 localStorage 忽略记录迁移到 Host,并按设置决定自动更新还是弹提醒。各组件共享同一份 Host 状态缓存,任何写操作完成会广播一次状态变更,侧栏角标等镜像组件据此重新读取;文案走 Client locale(zh/en,两份字典键集合一致);样式只使用 --dsw-alias-* 主题 token。

安装

plugin_manager action=install_bundle target=<本目录的绝对路径>

Host 半(index.js)改动需要重启 DSH 后才会载入;Client 半通常由 HMR 自动更新。插件页顶部「更新检查」里可打开自动更新设置。

License

MIT
预览分享卡片长什么样 ↓shehuilaoliumang/dsh-plugin-updater
分享 · DeepSeek Harness Hub
shehuilaoliumang/dsh-plugin-updater

检查已装插件新版本并一键更新

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部