前言¶
DSH 的插件體系支持把功能以插件形式接入;社區目錄是獨立站點,不等同於官方應用商店。對於已經在用 dsh web、npx @deepseek-ai/dsh web 或源碼倉庫運行 DSH 的開發者,更新時常見的問題不只是「有沒有新版本」,而是「當前正在運行的進程應該從哪條通道更新」。
dsh-updater-ui 把檢查和更新入口放到 DSH 的「設置 → DSH 更新」頁。它按當前運行進程的安裝方式選擇通道:源碼倉庫走 git,npm 全局或 npx 走 npm registry。
這是什麼¶
dsh-updater-ui 由 xingyingyuzhui 維護,採用 MIT 許可證。它是一個 Web 插件,用於檢查並更新官方 DSH。
插件會識別當前安裝方式:源碼倉庫、npm 全局、npx。這裏的關鍵是「當前正在運行的 DSH 進程」。如果當前進程來自 npx 或 npm 全局,插件走 npm 通道;如果當前進程來自官方源碼倉庫,插件才走源碼倉庫通道。
核心功能¶
- 識別安裝方式:源碼倉庫 / npm 全局 / npx
- 一鍵檢查:源碼執行
git fetch;npm 查詢官方 registry,失敗則嘗試 npmmirror - 版本對比:對比本地與官方
package.json的版本號 - 更新說明:源碼方式下可摺疊列出官方新提交,包括短哈希和標題,最多前 15 條
- 一鍵更新:源碼只允許快進;npm 只安裝官方包名
@deepseek-ai/dsh和已校驗的版本號 - 自動檢查:Host 每 30 分鐘後臺檢查一次,並有防重入控制;頁面每 60 秒輪詢緩存
- 紅點提醒:有官方更新時,設置頁導航顯示「DSH 更新 ●」
- 安全拒絕:源碼本地存在未推送提交、分叉或衝突改動時拒絕覆蓋;npm 安裝失敗時給出可複製命令
安裝與啓用¶
前置條件:
- 已安裝 DSH,並且
dsh web或npx @deepseek-ai/dsh web可運行 - npm 通道需要能訪問 npm registry;源碼通道需要本機 git 和官方 clone
在已經安裝 DSH 的環境中執行:
dsh plugin --profile web add github:xingyingyuzhui/dsh-updater-ui
安裝完成後重啓 DSH,然後打開「設置 → DSH 更新」。
典型用法¶
1、打開「設置 → DSH 更新」,頁面顯示當前安裝方式和官方更新狀態,例如「已是最新」或「有官方更新」。
2、根據頁面提示,點擊「一鍵更新官方 npm 包」或「一鍵拉取官方更新」。
3、更新成功後重啓 DSH,新代碼纔會被加載。
4、如果 npm 安裝被運行中的進程鎖住,常見於 Windows,頁面會給出可複製命令;停掉 DSH 後再執行該命令。
對於 npx 用戶,也可以直接啓動最新官方包:
npx --yes @deepseek-ai/dsh@latest web
更新通道¶
源碼倉庫¶
噹噹前進程來自官方源碼倉庫時,插件使用 git fetch 檢查官方遠端,並用本地與官方的 package.json 版本號做對比。
更新時只允許快進,拉取使用 --ff-only。如果本地存在未推送提交、分叉或衝突改動,插件會拒絕覆蓋。
源碼倉庫定位僅噹噹前進程來自官方源碼 clone 時纔會使用 git。查找順序包括:
正在運行的 @deepseek-ai/dsh-root 目錄
配置 repo / 環境變量 DSH_REPO
~/deepseek-harness
~/.dsh/deepseek-harness
npm 全局 / npx¶
噹噹前進程來自 npm 全局或 npx 時,插件查詢官方 registry。如果查詢失敗,則嘗試 npmmirror。
更新時只安裝官方包名 @deepseek-ai/dsh 和已校驗的版本號。
如需指定 registry,可以設置以下配置項:
DSH_NPM_REGISTRY
npm_config_registry
具體 registry 地址以當前環境要求爲準。
自動檢查與提醒¶
插件的 Host 每 30 分鐘在後臺檢查一次,並有防重入控制;頁面每 60 秒輪詢緩存。
檢測到官方更新時,設置頁導航會顯示「DSH 更新 ●」。
安全限制¶
- 路由僅接受 POST。
- 請求必須帶自定義請求頭:
X-DSH-Updater: 1
- 如果請求帶
Origin,只允許http://127.0.0.1或http://localhost。 - npm 安裝包名固定爲
@deepseek-ai/dsh,版本號必須匹配安全字符集。 - 外部命令帶超時和輸出上限。
- 錯誤返回結構化 JSON。
- 無第三方依賴、無遙測。
適用場景與注意¶
適合已經在 DSH Web 環境中運行官方 DSH,並希望減少手工判斷安裝方式的開發者。
插件以當前 DSH 進程的權限運行,更新操作會調用 git 或 npm 相關命令。安裝前建議先檢查倉庫源碼與 MIT 許可證。若網絡環境受限,需要保證 npm registry 或源碼倉庫遠端可訪問。
卸載插件:
dsh plugin --profile web remove dsh-updater-ui
結尾¶
dsh-updater-ui 的價值在於把「當前 DSH 進程從哪裏來」這件事顯式化,並在設置頁提供檢查、更新說明和受控更新入口。
GitHub 倉庫:
https://github.com/xingyingyuzhui/dsh-updater-ui.git