前言¶
DeepSeek Harness(DSH)採用「一切皆插件」的架構,profile 裏往往掛着十幾二十個已啓用擴展。版本分散在 npm registry,逐個打開插件頁對比、再手動執行 dsh plugin add,既費時間也容易漏掉剛發佈的補丁。下面介紹社區插件 dsh-onekey-update(維護者 leoyoul,分類:聯網工具):在 DSH 啓動後自動掃描已下載且已啓用的 registry 依賴是否有新版本,在界面右下角彙總,點一次「全部更新」即逐條升到 dist-tags.latest,完成後提示重啓生效。更新通道走官方 CLI,macOS / Windows / Linux 共用同一套邏輯,不依賴 DeepSeek Harness.exe。
這是什麼¶
dsh-onekey-update 是 DSH 的 Cordis 插件,當前 npm 包版本爲 0.4.0(MIT,Node.js >= 20)。它解決的是「誰該升、升到哪、怎麼批量升」這三件事:檢查範圍限定在 profile 的 package.json 依賴與已啓用 bundle 的交集,排除本地 link、git 等非 registry 源;比較完整 semver,只列前向升級;執行時使用 dsh plugin ... add <name>@<version> --config.minimum-release-age=0,繞過 pnpm 對新發布版本的供應鏈等待。界面通知條使用 DSH 主題 token(--dsw-alias-* 等),隨明暗主題變化,不寫死顏色。
核心功能¶
啓動檢查與右下角卡片¶
啓動約 8 秒後(可用環境變量調整)在後臺檢查,不阻塞主界面。檢查結束必定給出結論:
- 有待升級項時:列出
插件名 當前版本 → 最新版本,提供 全部更新 / 稍後提醒。 - 全部最新時:標題 全部插件都是最新版,說明檢查與跳過的數量,按鈕 重新檢查 / 知道了。
卡片四態(有更新 / 全最新 / 更新中 / 失敗)共用一套結構;更新中顯示分段進度條,例如 3/7 dsh-context 0.75.1 → 0.77.0。
更新日誌與翻譯¶
在待更新插件下可點 查看更新日誌,按需從 GitHub Releases 最近 100 個發行版中匹配本次升級區間;未找到或訪問失敗會單獨提示。當前不讀 CHANGELOG 文件,發行版未覆蓋所有版本時說明可能不完整。展開後可點 翻譯爲中文,文本經 Bing 翻譯,代碼、鏈接和版本號會先保護;網絡失敗保留原文並在標題旁提示重試。
檢查範圍與 registry¶
掃描邏輯在 lib/check.mjs,對 profile package.json 的 dependencies 與已啓用項(dsh.profile.bundles 或 cordis.patch.yml)取交集,並排除:
- 插件自身;
file:/link:/git:等非 registry 依賴;- 插件市場已停用包(
.dsh-market/state.json); node_modules中無法確定當前版本的包。
版本查詢先請求 https://registry.npmjs.org,失敗再回退 https://registry.npmmirror.com,讀取 dist-tags.latest。
跨平臺更新執行¶
逐條解析 DSH CLI(不依賴 PATH):優先 <resources>/runtime/cli/bin/dsh,其次 Electron 調用 cli.js,再次解包路徑下的同位置。均不存在時卡片進入失敗態並提示「找不到 DSH CLI」。部分插件升級失敗不影響其餘項繼續執行;結束時彙總成功 N、失敗 M,失敗行標 ✗ 並給出 pnpm 關鍵錯誤一行,並提示重啓 DSH。
狀態與宿主 API¶
~/.dsh/onekey-update/state.json:最近一次檢查與更新的結構化結果;~/.dsh/onekey-update/onekey-update.log:檢查、逐條更新與錯誤記錄。
同源路由:GET /onekey-update/status,POST /onekey-update/check|apply|dismiss。
安裝與啓用¶
從 GitHub 安裝(README 推薦,任意平臺):
dsh plugin --profile desktop add git+https://github.com/leoyoul/dsh-onekey-update.git
本機開發可用 link 安裝(路徑按本機修改):
dsh plugin --profile desktop add link:/Users/leoy/Documents/dsh-onekey-update
插件已發佈到 npm,也可在 DSH 插件 → 發現 中搜索 dsh-onekey-update 安裝(主流市場約 24 小時同步一次)。
裝完後完全退出並重開 DSH,插件頁會出現「一鍵更新」,右下角按檢查結果彈出卡片。
典型用法¶
- 正常啓動 DSH,等待約 8 秒,觀察右下角是否出現更新卡片。
- 若有列表,可先 查看更新日誌 確認變更,再點 全部更新 等待逐條進度完成。
- 按提示 重啓 DSH,使
node_modules中的新版本生效。
如需本次啓動跳過檢查:
DSH_ONEKEY_UPDATE_DISABLE=1
調整檢查延時(毫秒,默認 8000):
DSH_ONEKEY_UPDATE_DELAY_MS=12000
覆蓋 profile 或 DSH 主目錄:
| 變量 | 作用 |
|---|---|
DSH_PROFILE |
覆蓋 profile 名(默認 desktop) |
DSH_HOME |
覆蓋 ~/.dsh |
適用場景與注意¶
適合經常維護 desktop profile、啓用插件較多、希望跟 npm latest 保持一致的 DSH 用戶。插件在當前 DSH 進程權限下執行 registry 查詢與 dsh plugin add,安裝前應閱讀 GitHub 倉庫 源碼與 MIT 許可證。
已知邊界(來自 README):
- 更新的是宿主正在運行的
node_modules,必須重啓才生效。 - 只升到 registry 的
latest,卡片不列全部歷史版本。 link:安裝無構建步驟,改源碼後重啓 DSH 即生效。
社區插件目錄 skillhub.cn 插件頁 與 DeepSeek / 幻方無官方從屬關係,僅爲生態收錄站點。
結尾¶
dsh-onekey-update 把「啓動後看誰過期、一鍵批量升級、失敗可定位」收進右下角原生風格卡片,並統一走官方 CLI 與雙 registry 回退。需要安裝或 issue 時見 GitHub:leoyoul/dsh-onekey-update 與 目錄頁。