在 DSH 開發工作流中,追蹤版本號和快速部署更新是常見需求。手動檢查或依賴分散的日誌難以滿足實時性。dsh-version-badge 作爲一個插件,解決了這個問題:它在 Web 界面側邊欄的設置按鈕上方常駐顯示版本徽標,並提供檢查更新與一鍵部署的功能。
插件概況¶
- 名稱:dsh-version-badge
- 維護者:mervin1944
- 許可證:MIT
- 定位:DSH Web 界面側邊欄設置按鈕上方的版本號徽標插件,支持查看核心包版本、檢查更新及一鍵部署。
核心功能¶
-
常駐徽標
插件在 Web 界面側邊欄設置按鈕上方常駐顯示 DSH 主版本號(例如DSH v0.1.1-rc.2)。該徽標是界面佈局的一部分,並非懸浮元素。 -
版本詳情展開
點擊徽標可展開查看所有核心包的版本號(CLI、base、web-app、web-frontend、agent)。點擊外部或關閉按鈕即可收起。 -
檢查更新
插件會查詢 npm registry 對比最新版本,結果緩存 60 秒。發現新版時會提示。 -
一鍵部署
發現新版後,可執行一鍵部署。該操作會升級全局@deepseek-ai/dshCLI 並自動重啓當前進程。- 限制:部署固定使用
npm dist-tag latest,忽略客戶端傳入的任何 tag 或 version。 - 回滾:若 npm 部署失敗,當前版本保持不變。
- 限制:部署固定使用
-
安全與依賴
- 零依賴:純宿主插件,無客戶端構建。
- 安全模型:寫操作僅接受本機同源請求(環回地址 + Origin 匹配 Host + 拒絕轉發頭)。
安裝與啓用¶
使用官方命令安裝插件:
dsh plugin --profile web add dsh-version-badge
安裝完成後,重啓 dsh web 服務,刷新瀏覽器,設置按鈕上方即會出現版本徽標。
配置(可選)¶
默認情況下,插件允許一鍵部署與自動重啓。如果你的 dsh 進程由 supervisor 等工具管理,不希望插件自動重啓進程,需要在 profile 的 cordis.patch.yml 中配置:
- id: dsh-version-badge
name: dsh-version-badge
config:
allowRestart: false
配置後,檢查更新面板會提示“部署已被禁用”。
典型用法¶
除了在 Web 界面操作,也可以直接訪問接口查詢:
- 查看版本信息:
curl http://127.0.0.1:3080/dsh-version/version.json
- 檢查更新:
curl http://127.0.0.1:3080/dsh-version/check-update.json
- 查看部署狀態(若有):
curl http://127.0.0.1:3080/dsh-version/deploy-status.json
- 查看插件腳本(驗證安裝):
curl http://127.0.0.1:3080/dsh-version/widget.js
注意事項¶
- 部署結果路徑:部署結果會寫入
$DSH_HOME/dsh-update-deploy.result.txt。 - 安全驗證:寫端點(如
deploy-update.json)要求 Origin 必須存在且與 Host 匹配,拒絕跨站或無 Origin 的請求。
總結¶
dsh-version-badge 通過側邊欄徽標和一鍵部署功能,簡化了版本追蹤與更新流程。作爲純宿主插件,它保持了輕量級特性,適合需要頻繁查看版本和進行本地部署的開發者。