Bundle
dsh-version-badge
DSH 版本号徽标插件:侧边栏设置按钮上方显示 dsh 核心版本,带检查更新与一键部署。A DSH version badge plugin showing the dsh version above the sidebar settings button, with update check and one-click deploy.
- Source
- mervin1944
- License
- MIT
- Updated
- Updated 2 days ago
Readme
# 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 安装(推荐):
```powershell
dsh plugin --profile web add dsh-version-badge
```
或本地链接安装(开发用):
```powershell
dsh plugin --profile web add link:D:\Code\dsh-version-badge
```
重启 `dsh web` 后刷新浏览器,设置按钮上方出现徽标。
## 更新
```powershell
dsh plugin --profile web update dsh-version-badge
```
## 配置(可选)
默认允许一键部署。如要禁用部署/重启(例如该 dsh 进程由 supervisor 管理时),在
profile 的 `cordis.patch.yml` 里加:
```yaml
- id: dsh-version-badge
name: dsh-version-badge
config:
allowRestart: false
```
生效后「检查更新」面板会提示部署已被禁用。
## 卸载
```powershell
dsh plugin --profile web remove dsh-version-badge
```
## 验证
```powershell
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
```
部署状态(若有):
```powershell
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 失败时当前版本保持不变
## 结构
```text
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
Install
dsh plugin --profile web add github:mervin1944/dsh-version-badge#cf2e734a38419162106e2be6342e8e6d13063b13
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-version-badge from the hub