Skip to content
dsh.fish
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

Source