Files
PolyHermes/RELEASE_NOTES_v2.0.0.md
WrBug 4aa85a9c2d fix: 修复系统更新 API 路由和改进健康检查逻辑
- 修复 /api/update/execute 404 错误,改为 /api/update/update
- 增加健康检查等待时间从30秒到90秒
- 后端日志输出到文件,便于诊断问题
- 每5秒检查一次后端进程状态
- 改进错误诊断信息,区分进程退出和健康检查失败
- 记录后端启动日志的最后100行用于问题排查
2026-01-21 11:53:30 +08:00

178 lines
5.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# PolyHermes v2.0.0 Release Notes
## 🎉 重大更新
PolyHermes v2.0.0 是一个重要版本更新,带来了系统动态更新功能、优化的用户体验和多项技术改进。
---
## ✨ 新功能
### 🔄 系统动态更新(核心功能)
**无需重启 Docker 容器即可更新系统**,大幅提升部署和维护效率。
-**在线更新**:在 Web UI 中一键检查并应用更新,无需手动操作
-**零停机更新**:更新过程约 30-60 秒,系统自动处理,无需重启容器
-**自动回滚**:更新失败时自动恢复到旧版本,确保系统稳定性
-**版本管理**:清晰显示当前版本和可用更新,支持 Pre-release 版本检测
-**更新内容展示**:支持 Markdown 格式的更新说明,美观易读
**技术特性**
- 独立的 Python Flask 更新服务(端口 9090),与主应用隔离
- 单一更新包(tar.gz),包含前后端完整更新
- 自动备份和版本管理
- 管理员权限验证,确保安全性
### 📦 Release 管理工具
- **自动化发布脚本** (`create-release.sh`)
- 自动创建 Git 标签
- 发布 GitHub Release
- 支持 Pre-release 标记
- 自动拼接版本号后缀(Pre-release 自动添加 `-beta`
- 支持非交互模式,便于 CI/CD 集成
### 🎨 版本号显示优化
- **Tag 格式显示**:版本号使用 Git Tag 格式(如 `v2.0.0-beta`
- **智能颜色提示**
- 🟡 **黄色 Tag**:有新版本可用(点击可跳转到系统更新页面)
- 🟢 **绿色 Tag**:当前已是最新版本
- **镂空样式**:更小巧美观的版本号标签
- **自动检查**:系统自动检查更新,有新版本时在导航栏显示提示
---
## 🎨 UI/UX 优化
### 系统更新页面
- **美化界面**:全新的渐变背景、卡片样式和图标设计
- **Markdown 支持**:更新内容支持完整的 Markdown 渲染(标题、列表、代码块、表格等)
- **进度显示**:美观的进度条和状态提示
- **优化布局**:系统更新模块移至系统设置页面最上方,更易访问
### 版本号显示
- 使用镂空 Tag 样式,字号 8px
- 与标题垂直居中对齐
- 响应式设计,完美支持移动端和桌面端
---
## 🔧 技术改进
### 构建系统
- **修复 Docker 构建问题**
- 修复 `BUILD_IN_DOCKER=false` 时找不到前端产物的问题
- 优化 `.dockerignore` 配置,确保外部构建产物可被使用
- 修复 GitHub Actions 构建流程
- **版本号注入**
- 修复前端构建时版本号未正确传递的问题
- 支持在构建时注入 Git Tag 和版本信息
- **Gradle Wrapper**
- 修复 GitHub Actions 构建错误
- 正确配置 Gradle Wrapper JAR
### 代码质量
- 修复 TypeScript 编译错误
- 清理未使用的导入和组件
- 优化代码结构
---
## 📝 新增文档
- `docs/zh/DYNAMIC_UPDATE.md` - 动态更新技术方案文档
- `docs/zh/DOCKER_VERSION.md` - Docker 版本管理说明
- `docs/zh/DYNAMIC_UPDATE_CHECK.md` - 动态更新检查机制文档
- `scripts/README_RELEASE.md` - Release 脚本使用说明
- `scripts/CHANGELOG_TEMPLATE.md` - 更新日志模板
---
## 🔄 升级指南
### 从 v1.1.16 升级到 v2.0.0
#### 方式一:使用动态更新功能(推荐)
1. 登录系统,进入 **系统设置****系统更新**
2. 点击 **检查更新**
3. 如果有新版本,点击 **立即升级**
4. 等待更新完成(约 30-60 秒)
5. 页面会自动刷新,更新完成
#### 方式二:重新部署 Docker 容器
```bash
# 1. 停止当前容器
docker-compose -f docker-compose.prod.yml down
# 2. 拉取新版本镜像
docker pull wrbug/polyhermes:v2.0.0
# 3. 更新 docker-compose.prod.yml 中的镜像标签
# image: wrbug/polyhermes:v2.0.0
# 4. 重新启动
docker-compose -f docker-compose.prod.yml up -d
```
### 注意事项
- ⚠️ **数据备份**:虽然更新不会删除数据,但建议在更新前备份数据库
- ⚠️ **权限要求**:执行动态更新需要管理员权限
-**向后兼容**v2.0.0 完全兼容 v1.1.16 的数据结构和配置
---
## 📊 变更统计
- **新增文件**17 个
- **修改文件**13 个
- **代码变更**+5251 行,-163 行
### 主要新增文件
- `docker/update-service.py` - 更新服务(Python Flask
- `frontend/src/pages/SystemUpdate.tsx` - 系统更新页面
- `create-release.sh` - Release 创建脚本
- `docs/zh/DYNAMIC_UPDATE.md` - 动态更新技术文档
---
## 🐛 修复的问题
- 修复 Docker 构建时找不到前端产物的问题
- 修复前端构建时版本号未正确传递的问题
- 修复 GitHub Actions 构建错误(Gradle Wrapper
- 修复 TypeScript 编译错误
---
## 📚 相关文档
- [动态更新技术方案](docs/zh/DYNAMIC_UPDATE.md)
- [Docker 版本管理](docs/zh/DOCKER_VERSION.md)
- [部署指南](docs/zh/DEPLOYMENT.md)
- [Release 脚本使用说明](scripts/README_RELEASE.md)
---
## 🙏 致谢
感谢所有使用 PolyHermes 的用户和贡献者!
---
**下载地址**
- Docker Hub: `wrbug/polyhermes:v2.0.0`
- GitHub Releases: [v2.0.0](https://github.com/WrBug/PolyHermes/releases/tag/v2.0.0)