前言¶
DeepSeek Harness(DSH)裏,組合包往往裝在「插件」頁。官方在詳情頁裏提供「版本」區塊和更新入口,但那條路徑只對從 registry 安裝、且被 Host 標爲 updatable 的第三方包完整可用。想判斷「哪些該更新」,默認只能逐個打開詳情頁對比。
下面介紹社區插件 dsh-plugin-versions(維護者 ACGNnsj):在插件頁增加「版本一覽」標籤,把已安裝組合包的版本與可更新狀態攤平成一屏,點一行即可跳到官方詳情頁的「版本」區塊。更新動作仍走官方界面,本插件不實現獨立更新流程。
這是什麼¶
dsh-plugin-versions 是 DSH 的客戶端類插件(分類:客戶端)。它在 plugins.tab 上註冊第 4 個標籤頁「版本一覽」(order: 40),列出本地已安裝組合包的版本,標出能否更新,並支持跳轉到官方組合包詳情頁底部「版本」區域。
倉庫:GitHub - ACGNnsj/dsh-plugin-versions
社區目錄:skillhub 插件頁(獨立站點,與 DeepSeek / 幻方無官方從屬關係)
當前 package.json 標明版本 0.1.4,許可證 MIT。
核心功能¶
版本一覽標籤頁¶
打開 DSH「插件」頁後,切換到「版本一覽」。頁面先渲染本地已掌握的版本信息,再對符合條件的行在後臺逐條查詢 registry。
後臺只處理 updatable && !official 的行,且串行查詢,避免同時拉起大量 pnpm 子進程。查詢優先級:無緩存的行優先,其餘按每行緩存時間 at 從舊到新。
狀態與排序¶
每行展示分檔狀態,例如:
可更新到 x已是最新隨 DSH 更新無官方版本區塊檢查中…檢查失敗(附錯誤原文前 300 字)
可更新的行排在前面,其餘按包名排序。
緩存與表頭時間¶
結果寫入瀏覽器 localStorage,鍵名爲 dsh-plugin-versions:cache:v1。再次打開時先展示上次版本與狀態,同時後臺重新檢查並逐行替換;表頭顯示「檢查於 HH:MM」。
跳轉官方更新界面¶
點擊某一行會調用 openPackage(name),打開官方組合包詳情頁並自動滾到底部,落在「版本」區塊。用戶在該界面完成更新,與未裝本插件時一致。
詳情頁輔助¶
在組合包詳情頁底部通過 plugins.detail.section(order: 999)追加「↑ 回到頂部」入口。
安裝與啓用¶
倉庫本身即 bundle,任選其一。
方式一:本機已有源碼目錄時,用 DSH 插件管理器安裝
將 target= 換成你機器上的絕對路徑:
plugin_manager install_bundle target=<絕對路徑>/dsh-plugin-versions
方式二:作爲 npm 包安裝到 profile
需插件已發佈到 registry。註冊依賴 cordis.patch.yml 中的 - insert: 一行;按 README 說明,插件不會改寫 profile 的其他文件。
安裝前建議通讀倉庫 client.js 等源碼,並確認 MIT 許可與自身環境要求。插件邏輯在 DSH 客戶端 / Host 提供的 API 權限下運行,與當前 DSH 進程權限一致。
典型用法¶
- 按上一節完成安裝後,打開 DSH「插件」頁。
- 切換到「版本一覽」標籤;首屏可先看到緩存結果(若曾打開過)。
- 等待後臺串行檢查結束,查看各行狀態與表頭「檢查於」時間。
- 對顯示「可更新到 x」的行,點擊該行,在官方詳情頁「版本」區塊按界面指引更新。
- 在詳情頁過長時,可使用底部「↑ 回到頂部」。
客戶端無獨立構建步驟:client.js 即爲產物。改代碼後可在「插件」頁點刷新生效(README 註明桌面端 Ctrl+R 不觸發重載)。
數據來源與使用注意¶
插件只讀調用 Host 的 pluginManager.listBundles()(不觸網)與 pluginManager.listVersions(name, {})。後者每個包最多訪問 2 個 registry(含 fallback 鏡像);README 寫明單包最壞約 140 秒,因此必須串行且僅查可更新行。
適合誰: 常裝多個第三方組合包、希望在一屏對比版本與更新狀態、並願意仍用官方界面執行更新的 DSH 用戶。
注意:
- 不能替代官方更新流程;無官方「版本」區塊的包會顯示「無官方版本區塊」等狀態。
- 首次或緩存失效時,後臺檢查可能較慢,屬 README 所述設計取捨。
- 社區目錄與 GitHub 爲事實來源;星標等頁面統計以站點展示爲準(目錄線索爲 0)。
倉庫結構(便於審閱)¶
package.json 清單:dsh.bundle.patch / dsh.client / exports ./client
cordis.patch.yml 註冊一行:- insert: [{ id, name }]
index.js Host half(空實現,滿足 bundle 契約)
client.js 瀏覽器半:純 JS,window.__ModuleLoader__.load 懶加載
locale/{zh,en}.json meta.title / meta.description
icon.svg 列表圖標
結尾¶
dsh-plugin-versions 把「逐個進詳情頁看版本」收成插件頁裏的「版本一覽」,緩存減輕重複等待,跳轉仍對齊官方更新路徑。需要安裝命令與行爲細節時,以倉庫 README 爲準。
- 目錄頁:https://www.skillhub.cn/plugins/ACGNnsj/dsh-plugin-versions
- GitHub:https://github.com/ACGNnsj/dsh-plugin-versions