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 倉庫。

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

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

小夜