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 通过侧边栏徽标和一键部署功能,简化了版本追踪与更新流程。作为纯宿主插件,它保持了轻量级特性,适合需要频繁查看版本和进行本地部署的开发者。

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

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

小夜