Back to home@mervin1944

dsh-version-badge

DSH 版本号徽标插件:侧边栏设置按钮上方显示 dsh 版本,带检查更新与一键部署。DSH version badge plugin with update check & one-click deploy.

Stars
0
Language
JavaScript
Created
Aug 31, 2026
Updated
Aug 31, 2026

Introduction

dsh-version-badge

DSH Web 界面侧边栏设置按钮上方的版本号徽标:常驻显示当前 dsh 版本(如 DSH v0.1.1-rc.2),点击展开查看所有核心包版本(CLI / base / web-app / web-frontend / agent),旁边带「检查更新」按钮,发现新版可一键部署。

特性

  • 🏷️ 常驻徽标:侧边栏设置按钮上方(非悬浮,作为界面布局的一部分),显示 DSH v<主版本>
  • 📋 点击展开:列出 @deepseek-ai 核心包各自的版本号,点击外部或 ✕ 关闭
  • 🔄 检查更新:查询 npm registry 对比最新版本(60 秒缓存),发现新版提示
  • 🚀 一键部署:升级全局 dsh CLI(@deepseek-ai/dsh@latest)+ 脱离当前进程自动重启
  • 🔒 安全模型:写操作仅接受本机同源请求(环回地址 + Origin 匹配 Host + 拒绝转发头)
  • 零依赖:纯宿主插件 + 内联脚本注入(与 dsh-whale-widget 同机制),无客户端构建

安装

从 npm 安装(推荐):

dsh plugin --profile web add dsh-version-badge

或本地链接安装(开发用):

dsh plugin --profile web add link:D:\Code\dsh-version-badge

重启 dsh web 后刷新浏览器,设置按钮上方出现徽标。

更新

dsh plugin --profile web update dsh-version-badge

配置(可选)

默认允许一键部署。如要禁用部署/重启(例如该 dsh 进程由 supervisor 管理时),在 profile 的 cordis.patch.yml 里加:

- id: dsh-version-badge
  name: dsh-version-badge
  config:
    allowRestart: false

生效后「检查更新」面板会提示部署已被禁用。

卸载

dsh plugin --profile web remove dsh-version-badge

验证

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/widget.js

部署状态(若有):

curl http://127.0.0.1:3080/dsh-version/deploy-status.json

安全说明

  • 只读端点(version.json / check-update.json / deploy-status.json):环回地址 + 无转发头;携带 Origin 时须与 Host 同源
  • 写端点(deploy-update.json POST):环回地址 + 无转发头 + Origin 必须存在且与 Host 匹配(拒绝 curl / 跨站诱导的无 Origin 请求)
  • 部署固定使用 npm dist-tag latest,忽略客户端传入的任何 tag/version
  • 部署结果写入 $DSH_HOME/dsh-update-deploy.result.txt,可经状态端点查询;npm 失败时当前版本保持不变

结构

dsh-version-badge/
├── package.json          # DSH bundle 插件元数据
├── README.md             # 本文件(中文)
├── README.en.md          # 英文版
├── CHANGELOG.md          # 变更日志
├── LICENSE               # MIT 许可证
├── cordis.patch.yml      # 插件挂载声明
├── .github/workflows/ci.yml  # 持续集成(语法/清单检查)
└── lib/
    └── index.js          # 宿主侧插件本体(含内联浏览器脚本)

License

MIT