dsh-version-badge:DSH 版本徽標與部署工具

在 DSH 開發工作流中,追蹤版本號和快速部署更新是常見需求。手動檢查或依賴分散的日誌難以滿足實時性。dsh-version-badge 作爲一個插件,解決了這個問題:它在 Web 界面側邊欄的設置按鈕上方常駐顯示版本徽標,並提供檢查更新與一鍵部署的功能。

插件概況

  • 名稱:dsh-version-badge
  • 維護者:mervin1944
  • 許可證:MIT
  • 定位:DSH Web 界面側邊欄設置按鈕上方的版本號徽標插件,支持查看核心包版本、檢查更新及一鍵部署。

核心功能

  1. 常駐徽標
    插件在 Web 界面側邊欄設置按鈕上方常駐顯示 DSH 主版本號(例如 DSH v0.1.1-rc.2)。該徽標是界面佈局的一部分,並非懸浮元素。

  2. 版本詳情展開
    點擊徽標可展開查看所有核心包的版本號(CLI、base、web-app、web-frontend、agent)。點擊外部或關閉按鈕即可收起。

  3. 檢查更新
    插件會查詢 npm registry 對比最新版本,結果緩存 60 秒。發現新版時會提示。

  4. 一鍵部署
    發現新版後,可執行一鍵部署。該操作會升級全局 @deepseek-ai/dsh CLI 並自動重啓當前進程。

    • 限制:部署固定使用 npm dist-tag latest,忽略客戶端傳入的任何 tag 或 version。
    • 回滾:若 npm 部署失敗,當前版本保持不變。
  5. 安全與依賴

    • 零依賴:純宿主插件,無客戶端構建。
    • 安全模型:寫操作僅接受本機同源請求(環回地址 + 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 通過側邊欄徽標和一鍵部署功能,簡化了版本追蹤與更新流程。作爲純宿主插件,它保持了輕量級特性,適合需要頻繁查看版本和進行本地部署的開發者。

羽毛球分组比赛记分
小程序二维码

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

小夜