DSH Check Update

August 24, 2026 · View on GitHub

检查 DSH 更新的插件,提供更新日志、自动备份功能。

✨ 主要特性

🔄 更新管理

  • 自动检查 npm 仓库的最新版本
  • 支持 latestnext dist-tag
  • 灵活的更新模式:自动、手动、提示

📋 更新内容摘要

  • 自动获取新版本的更新日志和描述
  • 在界面中显示详细的更新内容
  • 支持查看 README 和版本信息

💾 自动备份功能

  • 更新前自动备份配置和数据
  • 支持手动创建备份
  • 备份管理和恢复功能
  • 可配置保留的备份数量

🎨 用户界面

  • 标签页设计:状态、日志、备份、设置四个标签页
  • 直观的信息显示:版本信息、更新状态、备份列表
  • 便捷的操作:一键更新、备份、恢复
  • 实时配置:动态调整更新设置

🚀 快速开始

安装

# 从本地目录安装
dsh plugin add ./dsh-check-update

# 或者发布到 npm 后安装
dsh plugin add dsh-check-update

配置

cordis.patch.yml 中配置:

- 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

备份管理

  • 自动备份:更新前自动备份配置和数据
  • 手动备份:随时创建备份
  • 备份恢复:从备份列表中选择恢复
  • 备份清理:自动清理旧备份

⚙️ 配置选项

选项类型默认值说明
distTagstringlatestnpm dist-tag
checkOnStartbooleantrue启动时检查更新
checkIntervalMinutesnumber240检查间隔(分钟)
autoStagebooleantrue自动暂存更新
applyOnExitbooleantrue退出时应用更新
relaunchbooleanfalse更新后自动重启
showChangelogbooleantrue显示更新日志
autoBackupbooleantrue自动备份
backupKeepCountnumber5保留备份数量
updateModestringauto-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

测试

npm test

📝 更新日志

v0.0.1 (Initial Release)

  • 🎉 初始版本发布
  • ✨ 自动检查 @deepseek-ai/dsh 新版本
  • ✨ 支持 latest/next dist-tag
  • ✨ 更新暂存与延迟应用(解决 Windows 文件锁问题)
  • ✨ 更新前自动备份配置和数据
  • ✨ 支持手动备份与恢复
  • ✨ 标签页式 UI:状态、日志、备份、设置
  • ✨ 支持自动/手动/提示三种更新模式

🤝 贡献

欢迎提交 Issue 和 Pull Request!

📄 许可证

MIT License