dsh-update-center:在 DSH Web 裏檢查版本、看更新說明並一鍵升級

前言

DeepSeek Harness(DSH)通過 dsh web 提供瀏覽器裏的 Host + Client 形態。日常開發裏,本機裝的 @deepseek-ai/dsh 版本和 npm 上的 latest 很容易脫節:要自己查 registry、對照 GitHub Release、再在終端裏做全局安裝並重啓進程。社區插件 dsh-update-center(維護者 HansyLin-xCoFe)把「查版本、讀中文更新重點、觸發升級」收進 Web 界面,屬於 DSH 生態裏「客戶端」類插件;目錄頁見 SkillHub,源碼在 GitHub(MIT)。SkillHub 與 DeepSeek / 幻方無官方從屬關係,插件由社區維護。

這是什麼

一句話:給 DSH Web 界面增加「更新中心」——設置頁一行通用入口 + 左下角新版本彈窗,並解析官方 Release 裏的中文「更新重點」。

插件 Host 半負責版本比較、npm / GitHub 查詢、忽略狀態與更新計劃;Client 半負責「設置 → 通用」裏的 DSH 更新行和左下角提示。界面文案跟隨 DSH 語言設置(內置中文 / English)。

核心功能

設置 → 通用

  • 顯示當前版本與最新版本;
  • 「檢查更新」「一鍵更新」;
  • 按版本號「忽略此版本 / 取消忽略」(忽略例如 v0.2.1-rc.5 後不再爲它彈窗,更新版本仍會提醒);
  • 「更新重點」可展開 / 收起:解析 deepseek-harness 倉庫 dsh-v* Release 正文中的中文段落,列出從當前版本到最新版本之間的各版說明。GitHub 不可達時仍會提示有新版本,但更新重點爲空。

左下角彈窗

檢測到新版本時出現小窗口:新版本號、當前版本、摺疊的更新重點,以及「立即更新」「忽略此版本」「稍後」。更新過程中有進度提示;更新重點同樣支持放大展開 / 縮小隱藏。

自動檢查

每次打開頁面會自動查一次 npm 上 @deepseek-ai/dsh 的 latest;Host 側對結果有 10 分鐘緩存,避免頻繁請求網絡。

一鍵更新的執行方式

下面介紹 Host 側實際流程(摘自項目 README,便於理解斷線、重連與失敗恢復):

  1. 點擊「立即更新」後,Host 把更新計劃寫到 ~/.dsh/dsh-update/plans/,啓動 detached 更新助手,然後退出當前進程;
  2. 助手等 Web 端口釋放後執行全局安裝(版本號由服務端固定,不接受客戶端任意指定):
npm install -g --no-fund --no-audit --prefix <npm 全局前綴> @deepseek-ai/dsh@<最新版本>

放在舊進程退出之後執行,是爲避免 Windows 上正在運行的 .node 文件被鎖。

  1. 用原進程的啓動參數重新拉起 dsh web,並輪詢端口確認啓動成功;
  2. 頁面斷線後由 DSH 自帶連接恢復邏輯重連;新版本 Host 返回時,DSH 內置「服務版本變化」對話框會提示刷新,刷新即進入新版本。

若 npm 安裝失敗,助手仍會盡量按舊版本拉起 DSH,並把錯誤與日誌路徑寫回狀態文件;下次打開設置頁可看到「上次更新未完成」和日誌位置。

  • 日誌:~/.dsh/dsh-update/logs/update-*.log
  • 狀態:~/.dsh/dsh-update/state.json
    存在環境變量 DSH_HOME 時以它爲準。

安裝與啓用

要求:DSH >= 0.2.1-rc.2(Web 形態),Node 18+,npm 在 PATH 中且對 npm 全局前綴有寫權限。

在 DSH Web 的 設置 → 插件 裏添加,spec 填:

github:HansyLin-xCoFe/dsh-update-center

也可通過 plugin_manager 工具或插件管理器安裝入口,target 同樣填上述地址。安裝後無需改 cordis.patch.yml,插件會自動出現在「設置 → 通用」和左下角。

本地開發可將 package 根目錄 link 到插件目錄,改完重啓 dsh web 以加載 Host 半;Client 半可被 HMR 熱更,最穩做法是刷新頁面。當前 package 未暴露可調 Config;更新源常量在 Host index.js 頂部(REGISTRY_LATEST_URL / RELEASES_URL)。

典型用法

  1. 安裝插件後打開 DSH Web,等待頁面加載完成(會自動檢查一次 latest)。
  2. 進入 設置 → 通用,查看「DSH 更新」行的當前 / 最新版本;需要時點「檢查更新」,展開「更新重點」閱讀 Release 中文說明。
  3. 若有新版本且未忽略:可在設置頁點「一鍵更新」,或在左下角彈窗選「立即更新」;暫不想升級可選「稍後」,長期跳過某一版可選「忽略此版本」。
  4. 更新過程中保持本機 npm 與全局前綴可寫;完成後按界面提示刷新頁面。

安全邊界與適用注意

Host 對 /dsh-update/* 僅接受直接 loopback 且同源請求(Host 爲 127.0.0.1 / localhost / [::1],帶 Origin 時需與 Host 一致),其他來源返回 403。更新動作只執行寫死的 npm 全局安裝命令,不讀取或上傳 DSH 會話內容;僅讀取本機 DSH 安裝版本、npm registry 與 GitHub Releases。

適合:長期在本地用 dsh web、希望少敲終端、又想在界面裏看清中文版 Release 要點再決定是否升級的用戶。

安裝前建議自行瀏覽倉庫源碼與 MIT 許可證。插件以當前 DSH 進程權限運行,一鍵更新會調用本機 npm 全局安裝並重啓 dsh web;生產或共享機器上應確認全局前綴與網絡策略符合你的安全要求。

結尾

dsh-update-center 把 DSH 版本檢查、中文更新重點展示和受控的一鍵升級放進 Web 設置與左下角提醒,並配合 detached 助手處理進程退出與端口占用問題。需要安裝 spec 與細節時,以 README 爲準:

  • 目錄頁:https://www.skillhub.cn/plugins/HansyLin-xCoFe/dsh-update-center
  • GitHub:https://github.com/HansyLin-xCoFe/dsh-update-center
羽毛球分组比赛记分
小程序二维码

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

小夜