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.jsonPOST):环回地址 + 无转发头 + 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