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

  • This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.
Source