Bundle
dsh-check-update
Check for DSH updates with changelog and backup
- Source
- bao-hp
- stars
- 1 stars
- License
- MIT
- Updated
- Updated yesterday
Readme
# DSH Check Update
检查 DSH 更新的插件,提供更新日志、自动备份功能。
## ✨ 主要特性
### 🔄 更新管理
- 自动检查 npm 仓库的最新版本
- 支持 `latest` 和 `next` dist-tag
- 灵活的更新模式:自动、手动、提示
### 📋 更新内容摘要
- 自动获取新版本的更新日志和描述
- 在界面中显示详细的更新内容
- 支持查看 README 和版本信息
### 💾 自动备份功能
- 更新前自动备份配置和数据
- 支持手动创建备份
- 备份管理和恢复功能
- 可配置保留的备份数量
### 🎨 用户界面
- **标签页设计**:状态、日志、备份、设置四个标签页
- **直观的信息显示**:版本信息、更新状态、备份列表
- **便捷的操作**:一键更新、备份、恢复
- **实时配置**:动态调整更新设置
## 🚀 快速开始
### 安装
```bash
# 从本地目录安装
dsh plugin add ./dsh-check-update
# 或者发布到 npm 后安装
dsh plugin add dsh-check-update
```
### 配置
在 `cordis.patch.yml` 中配置:
```yaml
- insert:
- id: check-update
name: dsh-check-update
config:
# 基础配置
distTag: latest
checkOnStart: true
checkIntervalMinutes: 240
autoStage: true
applyOnExit: true
relaunch: false
# 新增配置
showChangelog: true
autoBackup: true
backupKeepCount: 5
updateMode: auto-download
```
## 📖 使用说明
### 界面操作
1. **检查更新**:点击右下角的"检查更新"按钮
2. **查看日志**:切换到"日志"标签页查看更新内容
3. **管理备份**:在"备份"标签页创建和恢复备份
4. **调整设置**:在卡片的"设置"区修改更新模式与版本通道(稳定版/测试版)
### 更新模式
- **自动下载更新**:检测到更新后自动下载并暂存,harness 退出时自动应用
- **自动下载手动更新**:自动下载并暂存,但不自动应用,由用户点击"更新并重启"应用
- **手动更新**:仅提示有更新,用户点击"更新并重启"时才下载并应用
### 版本通道
- **稳定版(latest)**:跟随 npm `latest` dist-tag
- **测试版(next)**:跟随 npm `next` dist-tag
### 备份管理
- **自动备份**:更新前自动备份配置和数据
- **手动备份**:随时创建备份
- **备份恢复**:从备份列表中选择恢复
- **备份清理**:自动清理旧备份
## ⚙️ 配置选项
| 选项 | 类型 | 默认值 | 说明 |
|------|------|--------|------|
| `distTag` | string | `latest` | npm dist-tag |
| `checkOnStart` | boolean | `true` | 启动时检查更新 |
| `checkIntervalMinutes` | number | `240` | 检查间隔(分钟) |
| `autoStage` | boolean | `true` | 自动暂存更新 |
| `applyOnExit` | boolean | `true` | 退出时应用更新 |
| `relaunch` | boolean | `false` | 更新后自动重启 |
| `showChangelog` | boolean | `true` | 显示更新日志 |
| `autoBackup` | boolean | `true` | 自动备份 |
| `backupKeepCount` | number | `5` | 保留备份数量 |
| `updateMode` | string | `auto-download` | 更新模式:`auto-download`(自动下载+自动应用)/ `auto-download-manual`(自动下载+手动应用)/ `manual`(手动下载+应用) |
## 🛡️ 安全特性
- **延迟应用**:更新在 harness 退出后应用,避免文件锁问题
- **暂存机制**:先下载再应用,避免更新失败导致系统不可用
- **自动备份**:更新前自动备份,支持回滚
- **错误处理**:完善的错误处理和恢复机制
## 📁 项目结构
```
dsh-check-update/
├── lib/
│ ├── index.js # 主插件逻辑
│ ├── updater.js # 更新核心逻辑
│ ├── backup.js # 备份管理模块
│ ├── modes.js # 更新模式定义与行为映射(auto-download / auto-download-manual / manual)
│ ├── settings.js # 用户设置(版本通道/更新模式)持久化
│ └── client.js # 客户端界面
├── test/
│ └── modes.test.js # 更新模式与设置持久化单元测试
├── bin/
│ └── apply-update.js # 更新应用脚本
├── cordis.patch.yml # Cordis 配置文件
├── package.json # 包配置
└── README.md # 本文档
```
## 🔧 开发说明
### 依赖
- `@deepseek-ai/cordis`: ^4.0.1
- `@deepseek-ai/schemastery`: ^3.18.1
### 测试
```bash
npm test
```
## 📝 更新日志
### v0.0.1 (Initial Release)
- 🎉 初始版本发布
- ✨ 自动检查 @deepseek-ai/dsh 新版本
- ✨ 支持 latest/next dist-tag
- ✨ 更新暂存与延迟应用(解决 Windows 文件锁问题)
- ✨ 更新前自动备份配置和数据
- ✨ 支持手动备份与恢复
- ✨ 标签页式 UI:状态、日志、备份、设置
- ✨ 支持自动/手动/提示三种更新模式
## 🤝 贡献
欢迎提交 Issue 和 Pull Request!
## 📄 许可证
MIT License
Install
dsh plugin --profile web add github:bao-hp/dsh-check-update
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-check-update from the hub
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.