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