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

插件更新检查 daha1216/dsh-update-checker

DeepSeek 客户端v1.7.3
daha12164 天前有提交已提供中文文档扫描:含敏感能力兼容 / 相关生态

DSH 插件:一键检查已安装插件哪些有上游更新(只检查,绝不安装),附带更新说明

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

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

相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/daha1216/dsh-update-checker.git

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
生态插件
可安装,未声明 dsh 能力
装得上吗
本站已在 dsh 0.2.1-rc.2 下真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 4 天前
档位由哪些信号合成

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

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意

npm 同名包「dsh-update-checker」归属 airmetro/dsh-update-checker,装到的可能不是本插件

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包dsh-update-checker @ 1.7.3
✓Node 引擎要求 >=22 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/11/3 09:51:13

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

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

读写/删除本地文件写入剪贴板(不计风险)读取剪贴板或密钥环境变量发起外部网络请求
查看扫描证据(共 6 处,展示前 6 条)
  • 发起网络请求
    index.js:223
    async fetch(request) {
  • 发起网络请求
    index.js:385
    const response = await fetchHandler.fetch(request);
  • 写入剪贴板
    client/client.js:696
    void navigator.clipboard.writeText(text);
  • 读取密钥环境变量
    lib/checker.js:413
    const token = process.env.GITHUB_TOKEN || process.env.GH_TOKEN;
  • 读取本地文件
    lib/checker.js:547
    return JSON.parse(await readFile(path, 'utf8'));
  • 读取本地文件
    lib/checker.js:564
    text = await readFile(file, 'utf8');
扫描于 2026/11/2(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

界面预览

2 张 · 点击查看大图

功能亮点

  • 一键检查插件更新
  • 展示更新说明
  • 仅检查不安装

README

由 DeepSeek 最新模型翻译生成
🔔 dsh-update-checker · 插件更新巡检器 DeepSeek Harness 第三方插件一键与后台智能巡检:上游探测、Release 变更深度解析、侧边栏角标提醒与一键「让 AI 更新」 中文 · English DeepSeek Harness(DSH)生态发展得越来越快,上下文压缩、技能管理、会话时光机等各类第三方插件,大幅拓展了智能体的能力边界。但日常使用中,你可能会遇到这些情况: - 关键安全漏洞已经修复、重要特性已经发布,你却完全不知道上游出了新版本? - 每次都要手动在 npm、GitHub Releases 与本地开发目录之间逐个比对版本,又繁琐又费时? - 市面上的更新工具要么容易暗中破坏本地依赖环境,要么动辄消耗大量网络配额? dsh-update-checker 是专为 DeepSeek Harness 打造的原生级「插件更新巡检器」。它坚守 「纯净只读巡检 · 绝不越权修改」 的安全铁律,不仅提供一键全景扫描与详尽的 Release 变更对比,还支持低开销的后台定时自动巡检与侧边栏轻量角标提醒。发现新版本时,轻轻一点,就能把更新指令交给 AI 智能体,在受控环境下安全完成。
展开完整文档(README 剩余 1 节)
🔔 dsh-update-checker · 插件更新巡检器

DeepSeek Harness 第三方插件一键与后台智能巡检:上游探测、Release 变更深度解析、侧边栏角标提醒与一键「让 AI 更新」

中文 · English

DeepSeek Harness(DSH)生态发展得越来越快,上下文压缩、技能管理、会话时光机等各类第三方插件,大幅拓展了智能体的能力边界。但日常使用中,你可能会遇到这些情况:
- 关键安全漏洞已经修复、重要特性已经发布,你却完全不知道上游出了新版本?
- 每次都要手动在 npm、GitHub Releases 与本地开发目录之间逐个比对版本,又繁琐又费时?
- 市面上的更新工具要么容易暗中破坏本地依赖环境,要么动辄消耗大量网络配额?

dsh-update-checker 是专为 DeepSeek Harness 打造的原生级「插件更新巡检器」。它坚守 「纯净只读巡检 · 绝不越权修改」 的安全铁律,不仅提供一键全景扫描与详尽的 Release 变更对比,还支持低开销的后台定时自动巡检与侧边栏轻量角标提醒。发现新版本时,轻轻一点,就能把更新指令交给 AI 智能体,在受控环境下安全完成。

📸 实机体验

| 侧边栏常驻提醒浮层(后台智能巡检) | 设置中心「插件更新」全景管理面板 |
| 后台定时巡检静默运行,发现新版本时在侧边栏底部展示数量角标,点击唤起交互气泡,支持一键「让 AI 更新」与版本忽略 | 一键全景扫描,按状态与安装来源即时筛选,后台巡检收成一行、按需展开配置,直观浏览 Release 变更日志 |

✨ 核心特性

1. 🔍 一键全景扫描与多源状态精准识别

- 全依赖自动穿透:智能解析当前配置档的 package.json,自动区分第三方扩展,自动跳过官方内置的基础包(@deepseek-ai/*)。
- 全源格式兼容:
- npm 版本依赖(^1.2.3、~0.1.6、精确版本):优先查询 npm 官方镜像源,并支持 npmmirror 智能回退。
- GitHub 远程引用(github:owner/repo#tag):精准比对 GitHub Releases 最新稳定版本;未写 #ref 时用已装版本与最新 tag 比较,落后即判「有更新」,版本号无法排序时才判「跟踪分支」(v0.4.1 起)。
- 本地开发安装(file: / link:):若项目声明了 GitHub 仓库,自动比对本地与上游差异,清晰标明「本地领先」、「本地落后」或「与上游一致」。
- 状态细分与统计筛选:状态筛选提供 全部、有更新、已是最新、需关注;安装来源(npm / GitHub / 本地)是另一个独立下拉筛选,因为本地检出同样可能落后上游。列表支持一键按状态或名称排序。
- 紧凑列表:每行合并名称、状态与版本,介绍默认一行,安装 spec 与发行说明展开查看——一屏能看到更多插件(v0.7.0 起)。

2. 🔔 智能后台调度巡检与侧边栏实时气泡

- 灵活的后台巡检机制:支持在设置中心自定义巡检频率(每 30 分钟 / 1 小时 / 2 小时 / 6 小时或自定义分钟数)。
- 非侵入式轻量提醒:发现新版可更新(含 npm/GitHub 安装的 update 与本地安装落后的 local-behind)后,仅在左下角侧边栏底部显示低调的待更新数量角标(如 ↑ 插件更新 2),绝不弹窗打扰当前对话与编码心流。
- 丰富的气泡操作:
- 版本迁移直观对比:清晰展示每个待更新插件的 当前安装版本 → 最新稳定版本。
- 忽略本次提醒:本次暂不提醒,待检测到更高版本或手动点击检查时重新触发。
- 全部忽略:将当前所有待更新插件标记为已阅,跳过当前版本的持续提醒。
- 状态持久化防丢失:即便重启 DSH 桌面端或重载宿主,忽略列表与待更新状态完整保留。

3. 🤖 无缝联动智能体:「让 AI 更新」与「一键更新」

- 坚守只读安全底线:插件自身绝不静默运行任何安装脚本、绝不修改 node_modules 与配置文件。
- 一键智能委托:在气泡弹窗或插件列表点击「让 AI 更新」,插件会自动在当前会话输入框填入标准化提示词(例如 帮我更新 billion-context 插件)。未聚焦或无会话时自动回退为剪贴板复制,由 DSH 智能体遵循该插件的官方规范完成环境备份、版本更新与重启验证。
- 一键更新(批量):检测到多个插件可更新时,气泡底部与设置页头部出现「一键更新」按钮。点击后新建一个对话,把整份更新清单填进它的输入框但不发送——清单含插件名、已装 → 最新版本、安装来源(file: / link: / github: / npm)与 profile 名,AI 据此逐个更新并回报结果。发送与否始终由你决定;新会话无法创建时回退当前输入框,再回退剪贴板。

4. 📖 深度 Release 变更日志解析(Changelog Diff)

- 区间化更新呈现:自动抓取并聚合「当前安装版本 → 最新版本」之间的所有 Release 发行记录,不漏掉任何中间修复。
- 纯原生 Markdown 渲染:内置自主实现的高性能轻量 Markdown AST 解析器(涵盖多级标题、列表、代码围栏、引用块、粗体与链接等)。
- 零 XSS 隐患:纯字符串到 AST 再到安全 React 节点,全程不使用 innerHTML;链接额外做协议白名单,仅 http(s): 可成为可点击锚点(v0.4.0 起)。
- 按需惰性渲染:默认保持折叠,展开单行时才解析渲染正文,即便长达数万字的更新日志也能瞬间展开,丝滑流畅。

5. ⚡ 工业级统一出站网络层与零配额浪费

- 单飞并发合并(Single-Flight Coalescing):同一时刻对相同 URL 的并发探测合并为单一网络请求(如多个插件引用同一上游仓库时共享一次请求)。
- TTL 内存缓存 + ETag 条件请求(304 Not Modified):
- 响应结果在 5 分钟内直接由内存返回;
- 缓存过期后自动附带 If-None-Match 发起条件验证,GitHub 304 响应完全不消耗匿名 API 配额(60次/小时/IP)!
- 支持高额 API Token:在宿主环境配置 GITHUB_TOKEN 或 GH_TOKEN,自动以 Bearer 头鉴权,配额提升至 5,000 次/小时。
- 全局并发限流与熔断保护:出站并发上限严格控制为 6;若遭遇上游 403/429 限流,自动按 x-ratelimit-reset 进入静默冷却,并平滑降级至 jsDelivr CDN 保证可用性。
- npm dist-tags 极速路径:优先请求仅 ~200B 的轻量级 dist-tags,绝大多数已是最新版的插件一击即中,省去下载 MB 级完整 packument 的巨额带宽与时间。

6. 🛡️ 架构稳定性与原生设计融合

- 严格遵循 Cordis 4 生命周期:清理逻辑全部通过 ctx.effect 挂载;调度器状态使用闭包隔离,杜绝向 ctx 挂载私有属性导致宿主崩溃的风险。
- 原子化落盘与 Profile 隔离:状态写入采用临时文件(tmp)+ 重命名(rename)的原子操作;缓存按 Profile 严格分离存储,多 Profile 环境下绝不串台。
- 进程内串行写锁(withStateLock):彻底解决后台巡检落盘与用户前端操作(如点击忽略)之间的并发竞态问题。
- 深度融合 DSH Design Tokens:经历 v0.3.2 配色全量重构,深色模式下按钮文字、高亮链接、卡片阴影与边框完全对齐官方无障碍标准。

🧭 状态含义一览

| 状态标识 | 界面展示 | 详细含义 |
| update | 有更新 | 上游存在比当前安装版本更新的正式稳定版,可展开查看多版本 Release 日志。 |
| local-behind | 本地 · 上游有新版 | 本地开发安装(file: / link:)声明的版本低于上游最新版;v0.4.0 起同样计入侧边栏角标提醒。 |
| local-ahead | 本地 · 领先上游 | 本地安装版本高于上游最新正式版(处于前沿开发中或上游发生版本回滚)。 |
| local-latest | 本地 · 与上游一致 | 本地安装版本与上游最新正式版完全吻合。 |
| latest | 已是最新 | npm 安装版本与上游最新稳定版一致。 |
| branch | 跟踪分支 | 安装来源为分支或特定 Commit(如 #main、commit sha),且已装版本号无法与 tag 排序;可排序时改判「有更新」或「已是最新」(v0.4.1 起)。 |
| unknown | 无法比较 | 引用形式无法识别出标准版本号(如非标准 tag)。 |
| local | 本地安装 | 本地安装且未声明上游 GitHub 仓库,无参考基准。 |
| error | 检查失败 | 查询上游失败(网络超时、域名无法解析或触发限流等),卡片内展示具体原因。 |

📦 安装与配置

前置要求:已安装 DeepSeek Harness 且 Node.js 版本 ≥ 22。

方式一:推荐通过 Profile 安装(GitHub 远程源)

在终端中执行以下命令(以桌面版 Profile 为例):

桌面版安装
dsh plugin --profile desktop add github:daha1216/dsh-update-checker

Web 独立服务部署安装
dsh plugin --profile web add github:daha1216/dsh-update-checker

💡 重要说明:
1. 安装完成后,请完全退出并重新启动 DSH 桌面端(使宿主模块加载生效),然后刷新一次 GUI 页面(加载设置页脚本)。
2. 后续若要更新巡检器自身,重新运行上述相同的 add 命令即可。

兼容性:engines.dsh 声明 ^0.2.0-rc.1,即 DSH 0.2.0-rc.1 及以上、0.3.0 之前。装到不匹配的版本时,插件管理器会以 incompatible-version 明确拒绝;确实要在别的版本上试,可用 dsh plugin allow-version 加一次性豁免。DSH 升到 0.3.x 后需要本插件发新版放开范围。

方式二:本地开发安装(Checkout 模式)

如果你希望在本地克隆并进行调试修改:

git clone https://github.com/daha1216/dsh-update-checker.git "D:/dsh work/dsh-update-checker"bash
dsh plugin --profile desktop add "file:D:/dsh work/dsh-update-checker"

🔑 环境变量与限额优化

| 环境变量 | 作用说明 |
| GITHUB_TOKEN / GH_TOKEN | 以 Bearer 格式鉴权 GitHub API。未设置时保持匿名模式(60 次/小时/IP);设置后配额提升至 5,000 次/小时。 |

🏗️ 项目架构与技术细节

dsh-update-checker/
├── index.js # Cordis 宿主插件核心:路由注册、RPC 通信、后台定时巡检调度器、生命周期管理 ├── lib/ │ ├── http.js # 统一出站网络层:单飞并发合并、TTL 缓存、ETag 304 条件复用、主机熔断与降级 │ ├── checker.js # 纯函数检查逻辑:package.json 解析、多源版本探查、Release 聚合对比 │ ├── reminder.js # 提醒状态管理:指纹计算、忽略策略、多 Profile 原子化落盘与并发串行写锁 │ └── md.js # 零依赖轻量 Markdown 解析器:安全 AST 构建与 React 元素映射 ├── client/ │ └── client.js # 客户端设置中心与侧边栏渲染面板:双语国际化、UI 状态机、交互反馈 ├── locale/ # 插件元信息多语言配置(zh.json / en.json) ├── assets/ # 实机界面展示资源 └── test/ # 详尽的自动化测试套件

1. 通信机制与安全栅栏
- 客户端设置页与侧边栏浮层通过 Connection RPC 通道(/dsh-update-checker)与宿主端通信。
- 宿主端把通道以 kind: 'prefix' 路由挂载到受信任的 webServer 上,逐分支遵循官方 /api 传输规范,并用严格的同源与 Loopback 校验作为请求安全防护栏。

2. 调度器容错与并发保证
- 调度器完全闭包化,杜绝属性逃逸污染。定时器在纤维失效前即由 ctx.effect 严格清理。
- 运行中修改检查频率支持即时重排,任意时刻保证全局只有一个活跃的巡检定时器。
- 扫描结果落盘与用户前台点击「忽略」通过 withStateLock 排队处理,杜绝数据覆写。

🧪 自动化测试

项目遵循严格的测试驱动开发规范,内置 11 个独立测试套件、覆盖 362 项断言,涵盖纯函数、出站层、HTTP 桥、端到端集成与宿主生命周期验证: bash

首次运行先装开发依赖(lifecycle / reminder-scheduler 需要真实的 @deepseek-ai/cordis)

npm install

运行离线全量单元测试

npm test

运行真实环境端到端测试(临时隔离环境)

npm run test:e2e

@deepseek-ai/cordis 在插件运行时是 peer 依赖(由宿主提供),这里作为 devDependency 只为让两个需要真实 Cordis 上下文的套件能在任意机器上跑起来。若想复用宿主自带的 cordis 而不是 npm 装的那份,设置 DSH_CORDIS_PATH 指向它的 lib/index.js 即可,会优先生效;两个套件在拿不到 cordis 时会打印明确的 SKIP 提示,而不是静默通过。

测试矩阵包含:
- test/checker.test.mjs:69 项断言,覆盖版本比较精度/范围、来源判定、精确 pin 与状态流转;
- test/http.test.mjs:28 项测试,覆盖 TTL 缓存、单飞合并、ETag 304、容量上限、错误体释放与熔断降级;
- test/host.test.mjs:30 项测试,loopback 栅栏与 node:http → fetch 桥的真实 socket 行为(超大请求、断连、错误收敛);
- test/integration.test.mjs:33 项测试,脚本化网络模拟下的复杂检查流(含 #semver: 范围、404 不回源镜像、两个 registry 传输失败时改用 CDN 备用源);
- test/md.test.mjs:23 项测试,深度校验 Markdown 语法解析保真度;
- test/render-harness.mjs:客户端设置页与浮层气泡离线渲染冒烟测试;
- test/lifecycle.test.mjs:真实 Cordis 4 环境下插件加载、卸载与资源释放测试;
- test/reminder.test.mjs:77 项断言,后台提醒状态机、忽略语义、指纹防碰撞与原子读写校验;
- test/reminder-panel.test.mjs:19 项源码守卫,锁定强制刷新、计时/看门狗与状态行文案;
- test/batch-update.test.mjs:43 项断言,一键更新清单构造、可更新判定与「新建对话只填不发」的交接链;
- test/reminder-scheduler.test.mjs:35 项断言,调度器防重排竞态、强制刷新下限与 RPC 降级回归测试。

📝 更新日志

v0.7.3(2026-10-30)
- 「一键更新」在 0.2.1-rc.3 宿主上真的会新建对话了:rc.3 的 startSession 原生支持草稿({ prompt },经 conversation.input.requestDraftInitialization 落到新会话的输入框)。插件此前是自己调 startSession(),再等「主会话绑定换成另一个 session」才填草稿——但宿主新建会话时可能复用已有的空白会话,绑定不会变,这个等待永远不成立,10 秒后提示词被丢进剪贴板,而面板早已关闭,看起来就是点了没反应。现在优先走宿主原生草稿接口,一次调用完成「新建 + 预填 + 不发送」,失败也由宿主自己的通知通道报出来。
- whenDraftExists: 'replace':一次点击一个结果——不管会话是新建的还是复用的空白会话,点完输入框里就是那份清单。旧宿主忽略选项参数时退回自填路径,并加了 500 毫秒宽限期:绑定没变(即复用了空白会话)就填当前输入框,不再空等。
- 测试:test/batch-update.test.mjs 增至 54 项断言,新增「走原生草稿接口」「参数与 whenDraftExists 正确」「原生路径不直接写 composer」「复用空白会话时草稿落到当前会话」「两条路径都不提交」等断言。

未发布(安全与健壮性巡检,2026-10-27)
- 宿主进程不再可能被一次断连打崩:node:http → fetch 桥的全部异步路径(读请求体、fetch、写响应、waitForDrain)现在收敛在一个 try/catch/finally 里;客户端在响应中途断开时取消响应体并停止写,500 响应只回 update check failed,不再把内部错误文本或绝对路径带回渲染层。新增 test/host.test.mjs 用真实 socket 覆盖超大请求、断连与抛错。
- loopback 栅栏改为解析 Host 而不是 split(':'):127.0.0.1:56185@evil.example 这类 userinfo 前缀不再被当作回环,IPv6 [::1]:56185 恢复正常;Origin 比较走规范化 authority。
- 请求 URL 不再取自 Host:桥接层用固定内部 origin + req.url 的 pathname/search 构造 Request,absolute-form 请求行与畸形 Host 不再让 new Request() 抛错。
- check.run 的强制刷新加了 30 秒下限:连点「立即检查」复用在途/刚完成的扫描,避免一轮又一轮烧掉 GitHub 匿名配额(90 秒非强制新鲜窗口保留)。
- 扫描器的输入边界收紧:profile package.json 不可读/非法 JSON 现在显式失败,不再伪装成「没有插件」;依赖名按 npm 形状校验,../ 之类的键不会被拼进 node_modules 路径;packument 名称统一 encodeURIComponent;主 registry 404 不再回源 npmmirror(避免泄露私有包名)。
- 版本判定修正:超过 2^53 的版本段按字符串比较不再丢精度;1/1.2 视为 npm 范围而非精确 pin;#semver:^1.2.0 按范围选最高满足 tag,不再建议跨大版本;git+ssh / ssh:// / git:// / scp 形式的 GitHub 依赖恢复识别。
- npm 侧多了 CDN 备用源:当两个 registry 都连不上(企业 TLS 解密网关、DNS 污染、registry 故障)时,改用 unpkg / jsDelivr 的 package.json 读最新版本号,npm 包不再整行变红;registry 明确 404(包不存在)时仍然不向任何第三方主机回源,传输失败的主机冷却 60 秒避免每条包都撞一次超时。新增集成测试覆盖普通名、scoped 名与「404 不走 CDN」。
- 进程级内存与文件卫生:HTTP 响应缓存加 400 条上限并在 fiber 卸载时清空;每次扫描的缓存结果按 profile 释放;提醒 ignored 表随扫描结果裁剪;配置/状态/快照文件以 0700/0600 写入且失败时清理临时文件;配置写失败不再回报「保存成功」。
- 客户端定时器与指纹:checkNow 的 500ms ticker / 90s watchdog 在成功、超时、卸载时都会被清理;draftInNewSession 先订阅再首次填充,同步挂载的新会话不会再留下永久监听;提醒指纹改为 JSON 数组编码,插件名里的 @/| 不再造成误判。测试矩阵扩到 11 个套件、362 断言。

v0.7.1(2026-10-27)
- 修复:侧栏入口被同一行的其它插件挤掉。侧栏底部是多个插件共用的 flex 行,本插件此前写死 width: 100% 且 flex: none——只要同一行还有别的入口(例如「破甲」的状态点),空间就被本插件全额占走,另一个入口被压成几像素宽的灰点。改为 flex: 1 1 0%; min-width: 0:有空间就铺开,没空间就自己收,标题过长交给既有的省略号;折叠态(只剩图标)显式 flex: 0 0 36px,宽度与改动前一致。
- 纯客户端 CSS 改动,刷新页面即生效,不需要重启宿主;后端、状态机与存储格式均未变动。

v0.7.0(2026-10-26)
- 设置页改为「更新优先、设置收起」:低频的后台设置不再占满首屏,插件列表的信息密度也不再被长介绍挤掉。四件事:
- 后台提醒收成一条:开关、当前状态与检查频率并排一行(自动检查 · 已开启 · 每 2 小时),频率选择器、说明与保存错误收进「设置」展开区。日常只看不改的人,一屏就能扫完。
- 插件行瘦身:名称、状态、版本合并进同一行,介绍默认只留一行(悬停有完整文本,展开可见全文),安装 spec 与发行说明移进展开区。同屏可看的插件明显变多。
- 状态与来源分开筛:安装来源(npm / GitHub / 本地)从状态 Chips 里拆出来,改为独立下拉框,只列出当前实际装了的来源。原先「本地」与「有更新」混在一排,读起来像互斥,而本地检出同样可能落后上游。
- 按钮说人话:「一键更新」下方常驻一行「新建对话并填入更新清单,由你发送」,不再只藏在悬停提示里。
- 本地落后行补上更新按钮:local-behind(file: / link: 本地安装、上游有新版)此前会进「有更新」筛选与批量清单,却没有行内的「让 AI 更新」按钮。现在行内按钮与批量清单共用同一个 isActionable 判定,两类可更新行操作一致。
- 健康状态安静下来:「已是最新」等正常状态从绿色改为中性色,红色只留给真正失败的行;一眼看过去,需要处理的才显眼。
- 测试:test/render-harness.mjs 的状态种子随新增的 sourceFilter / expanded 更新,行内按钮断言改为锁定 isActionable 判定。

v0.6.0(2026-10-26)
- 「一键更新」改为新建对话、只填不发:此前点一下就把整份清单拼成提示词塞进当前会话并直接发送,等于替你按了发送键。现在改为新建一个对话、把清单填进它的输入框,不发送——发送时机由你决定。填的是新会话的输入框而不是当前那个,所以不会污染正在进行的对话;新会话的 composer 尚未挂载时,等它就绪再填(最长 10 秒),期间不会退而填到旧会话。新会话无法创建时回退到当前输入框,再回退剪贴板。
- 实现:新增 draftInNewSession,订阅 uiSession.adapter.current,等主绑定切到新会话、且其 inputActions 就绪后调用 setDraft,取代原先的 sendComposerText(setDraft + submit);batchUpdateHint / batchUpdateSent 的中英文案同步改为「新建对话并填好,由你发送」。
- 测试:test/batch-update.test.mjs 重写为 43 项断言,新增「会新建会话」「草稿不落到旧会话」「新会话无 composer 时不乱填」「无 workspace 服务时回退当前输入框」「批量路径绝不调用 submit」等回归,并断言旧的 sendComposerText 已彻底移除。

v0.5.0(2026-10-26)
- 一键更新(批量):检测到多个插件可更新时,侧边栏气泡底部与设置页头部出现「一键更新」按钮,把整份待更新清单整理成一条提示词交给 AI。
- 清单带安装来源:每行含插件名、已装 → 最新版本、安装来源 spec(file: / link: / github: / npm 版本范围)与 profile 名——file: / link: 是本地检出,AI 必须去对应目录拉取,而不是重新 add,缺了这条信息很容易空跑。
- 覆盖范围与角标一致:update(npm / GitHub 安装)与 local-behind(本地安装但上游有新版)都算可更新。
- 测试:新增 test/batch-update.test.mjs。

v0.4.3(2026-10-25)
- 「立即检查」按钮现在每次点击都真的有反应:此前点击后,服务端在 90 秒新鲜窗口内直接返回缓存结果,客户端也不作区分,连续点击看起来完全没反应。现在手动点击会带 force: true 跳过新鲜窗口(仍在途扫描复用,不会重复烧 GitHub 配额),设置页的「检查更新」同样如此。
- 检查过程可见、按钮不会卡死:检查中按钮显示已用秒数(检查中… 3s),并新增一行状态提示(刚刚已检查 / 上次检查:5 分钟前);原实现里 reload() 抛错会跳过 setBusy(false),按钮会永久停在禁用态——现改为一定会复位,并加了 90 秒看门狗兜底超时提示。
- 测试:新增 test/reminder-panel.test.mjs(16 项源码守卫,锁定强制刷新、计时/看门狗、状态行与中英文案键),已接入 npm test。

v0.4.1(2026-10-24)
- 未 pin 版本的 GitHub 安装不再漏报更新:github:owner/repo 这类没有 #ref 的安装,此前只要上游存在 tag 就一律判为「跟踪分支」——即使已装版本明显落后(实测 dsh-retrace 0.4.55 对上游 v0.4.56 仍显示跟踪分支,既不算「有更新」也不进角标)。现在改为拿已装版本与最新 tag 比较:落后判「有更新」并带出版本区间,追平或领先判「已是最新」;只有已装版本号无法排序(如 dev、commit sha)时才保留「跟踪分支」。
- 测试:新增三个夹具场景(无 ref 落后 → update、无 ref 追平 → latest、版本号不可排序 → branch),并修正分支引用的既有断言;integration 断言 21→24。

v0.4.0(2026-10-24)
- 角标提醒覆盖本地落后安装:local-behind(file: / link: 本地安装、上游已有新版)此前只进设置页列表、不进侧边栏角标——列表显示「有更新」而角标沉默的口径不一致就此消除,两类行现在统一进入待更新角标与忽略流程。
- 链接协议白名单(安全加固):Release 正文与仓库链接属上游可控的不可信输入,渲染层现在仅放行 http(s): 协议的链接,javascript: / data: 等伪协议一律降级为纯文本展示,杜绝经由 Release 正文注入可点击危险链接的可能。
- 测试矩阵增补:新增 safeHref 单元断言与渲染树级链接白名单回归(恶意 markdown 链接必须渲染为纯文本),提醒断言增至 57 项。

v0.3.5(2026-10-19)
- 修复巡检重排竞态:解决在扫描执行期间修改间隔可能遗留两个定时器的问题。重排请求统一由收尾时处理,保证任意时刻仅有一个定时器,新间隔即刻生效。
- 引入状态写串行锁(withStateLock):将后台扫描结果记录与用户前台「忽略」操作纳入队列,彻底避免状态并发覆盖。
- RPC 回退路径增强:connection.rpc.handle 回退路径在无 webServer 环境下优雅降级,防止激活失败。
- 自定义间隔智能适配:手动写入非预设检查间隔时,设置面板自动动态添加对应项并正确选中。
- 测试矩阵增补:增补调度器重排与容错回归断言,总断言数增至 33 项。

v0.3.4(2026-10-19)
- 修复待更新状态持久化读回丢失:重构状态反序列化校验逻辑,解决从 reminder-<profile>.json 读回时待更新列表被清空的偶发问题。
- 一键「让 AI 更新」体验落地:卡片与浮窗按钮升级为「让 AI 更新」,点击后自动向会话输入框填入标准化提示词。
- UI 布局优化:将「后台提醒」卡片提升至设置页顶部,配置更直观。

v0.3.3(2026-10-18)
- Cordis 4 架构深度重构:修复 DSH 0.2.1-rc.2 宿主上的崩溃问题;调度器状态收敛为闭包私有;清理函数移至定时器启动前注册。
- 正式引入侧边栏浮层提醒:实现设置中心定时轮询配置、侧边栏底部待更新角标与交互气泡浮窗。

v0.3.2(2026-10-18)
- 深色模式全量重构:全面对齐 DSH 官方 Design Tokens(--dsw-alias-button-primary-fill、--dsw-alias-link、--ds-font-family-code),彻底解决深色模式下白底白字与按钮糊团问题。

v0.3.1(2026-10-18)
- Profile 隔离与状态增强:缓存文件按 Profile 隔离;新增 local-ahead(本地领先上游)状态;修复 Release 过滤区间;支持 GITHUB_TOKEN 高额鉴权。

v0.3.0(2026-10-17)
- 统一出站网络层重构:引入限流、单飞合并、TTL + ETag 缓存、主机熔断与 npm dist-tags 极速路径。

🙏 贡献者

感谢为项目提交代码与改进建议的贡献者:

- @lanslot4n93r — 修复深色模式主按钮配色(改用 label-primary-inverted)。

📄 开源协议

本项目基于 MIT License 协议开源。

🔗 相关项目

- 收录于 dsh-plugin-collection(DSH 精选第三方插件索引)。
- 欢迎探索同作者的其他 DSH 实用工具:
- dsh-retrace — 会话时光机:消息撤回、原地编辑重发与产物版本化回退。
- dsh-skills-manager — 本地技能可视化管理面板:一站式配置模型与用户调用策略。
- dsh-watcher — 跨会话环境变更监控器。
预览分享卡片长什么样 ↓daha1216/dsh-update-checker
分享 · DeepSeek Harness Hub
daha1216/dsh-update-checker

DSH 插件:一键检查已安装插件哪些有上游更新(只检查,绝不安装),附带更新说明

这是你的仓库?认领条目

回到顶部