dsh-update-lens:只读更新检查与发布说明风险标注

前言

DeepSeek Harness(dsh)迭代节奏快,Release 里往往同时有功能说明和「包名不再兼容、插件需改」这类信息。日常开发里,你通常只需要两件事:当前有没有比本机更新的官方版本,以及这次升级会不会动到你正在依赖的行为或接口。社区里也有带自动升级、回滚能力的更新类插件;若你希望检查与升级完全分离——界面只展示事实和可复制命令,由你在终端自行执行——下面介绍维护者 1207627875 发布的联网工具插件 dsh-update-lens(GitHub:1207627875/dsh-update-lens,社区目录:skillhub 插件页)。

这是什么

dsh-update-lens 是 dsh 的只读更新检查插件:对比 npm 与 GitHub 上的版本信息,在应用内提示有新版本,并对发布说明做破坏性变更标注。它不会替你执行 npm 升级、下载或替换全局包;升级命令仅提供复制,是否执行由你决定。

插件以 MIT 许可发布,package.json 当前版本为 1.0.3。运行要求:Node >= 20,dsh >= 0.1.6-alpha.2(README 写明已在 0.1.6-alpha.2 与 0.1.7-rc.2 上实测)。

核心功能

更新中心与提醒

启用后,主要入口在 设置 → 更新中心(导航位 160)。页面展示当前版本、最新版本、通道、npm dist-tags、更新内容(中英对照)、风险标注、网络来源、相关设置项,以及手动更新命令。

发现新版本时:

  • 右下角出现浮层通知,支持「复制命令 / 暂不显示 / 忽略此版本」;
  • 设置导航项在有更新时会显示为「更新中心 ●」。

破坏性变更标注

与「只列 changelog」的同类能力相比,本插件对发布说明逐条打标,左侧色条 + 徽章,鼠标悬停可见命中的关键词(规则透明,非黑箱):

档位 含义 典型命中词(节选)
▲ 破坏性(红) 移除、不兼容、必须动手适配 不兼容、移除、弃用、deprecated、must、developers should 等
! 注意(黄) 行为、默认值、接口变动 调整、改为、default、changed、adjust 等

额外规则包括:接口相关变动与「API / slot 变化」类表述会按破坏性处理;在「问题修复 / Bug Fixes」「新增功能 / New Features」等小节内,按顶格词降噪,减少把普通修复误标为破坏性。每张版本卡汇总「N 条破坏性 / M 条需留意」,并提供只看风险项过滤。若待升级版本含破坏性变更,会在「手动更新命令」上方显示红条提醒。

发布说明格式随 dsh 版本变化(Markdown 标题、emoji 标题 + 裸标签行、HTML 跨行标题等),解析器在 README 中说明已覆盖多种格式;规则由 tests/notes-rules.mjs 对真实 Release 正文 fixture 做断言维护。

版本比较与数据来源

版本判定使用 semver 比较(含预发布规则)。默认跟随当前通道(例如安装的是 alpha 则只盯 alpha);也可切换为「任意通道最新版」。若 dist-tag 出现「latest 指向低于已安装版本」等情况,会单独告警。

网络读取均为公开 GET:

来源 用途
registry.npmjs.org 版本号、dist-tags、发布时间(主源)
registry.npmmirror.com 主源失败时的备用
api.github.com/.../releases 更新正文
ungh.cc 仅当 GitHub 取不到正文时的兜底镜像

GitHub 正常时不会请求 ungh.cc;可在设置中自定义 GitHub API 地址(镜像)。插件默认直连,不读取系统 WinINET 代理;仅认设置页中的代理或环境变量 HTTPS_PROXY / HTTP_PROXY。

它 deliberately 不做的事

README 明确区分:

  • 不自动更新;需要一键更新与备份回滚可参考 Airmetro/dsh-update-checker。
  • 只检查 dsh 本体,不扫描第三方插件是否有新版;插件生态更新可用 stuarthu/dsh-update-notifier 等,与本插件不冲突。
  • 破坏性标注基于关键词规则,可能漏标或误标;中英不对称时按更严重一侧计数。

安装与启用

先做安装,再在设置里启用,最后重启 profile 使 Host 侧代码加载(客户端改动刷新页面即可)。

# 1) 装进 profile(把 web 换成你的 profile 名)
dsh plugin --profile web add github:1207627875/dsh-update-lens

# 2) 在「设置 → 插件」里启用;或手动把 dsh-update-lens 加进该 profile package.json 的 dsh.profile.bundles 数组

# 3) 重启 profile

安装后可用 HTTP 自检(README 示例):

GET http://127.0.0.1:3080/dsh-update-lens/status

确认返回 JSON,且 current.version 与当前 dsh 版本一致。

设置与典型用法

设置与缓存路径:$DSH_HOME/dsh-update-lens/{config,state}.json($DSH_HOME 默认为 ~/.dsh)。

常用设置项包括:

  • 启用后台自动检查(默认开,启动约 8 秒后首检,不阻塞启动)
  • 检查间隔(15–10080 分钟,默认 360)
  • 检查范围:跟随当前通道 / 任意通道最新版
  • 发现新版本时弹出提醒
  • HTTP(S) 代理(留空为直连;可写 127.0.0.1:7890 这类省略协议的地址)
  • GitHub API 地址(可填镜像)

典型工作流:

  1. 保持默认自动检查,或按网络环境配置代理 / GitHub 镜像;
  2. 有更新时在「更新中心」阅读带风险标注的 Release,必要时用「只看风险项」;
  3. 复制页面上的手动更新命令,在终端自行升级 dsh;
  4. 单张版本卡可「忽略」以收起卡片(可恢复);通知里的「不再提醒」仅静音该条通知,与卡片忽略含义不同(README 有说明)。

写接口(如 /check、/config、/dismiss)仅写入插件自身配置,且要求同源。

适用场景与注意

适合:经常跟进 dsh 新版本、希望在 UI 内一眼看到版本差与 Release 风险、且坚持手动控制升级时机的开发者。

注意:

  • 插件在当前 dsh 进程权限下运行,会发起对外网络请求;安装前应阅读源码与 MIT 许可证,确认符合你的安全策略。
  • 本插件不需要密钥即可工作,只读公开 registry 与 GitHub Releases。
  • DeepSeek Harness 社区插件目录(如 skillhub.cn)为独立生态站点,与 DeepSeek / 幻方无官方从属关系;本文事实以仓库 README 与 package.json 为准。

结尾

dsh-update-lens 把「有没有新版」和「Release 里哪些条目可能破坏兼容」收进设置里的更新中心,升级动作始终留在你的终端。进一步了解可访问 社区目录页 与 GitHub 仓库。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜