Undefined v3.7.1
v3.7.1 WebUI Release 更新提示
本版本将更新流程从启动时自动拉取改为 WebUI 内的可控交互:页面登录后在后台静默检查最新正式 GitHub Release,仅在发现新版本时提示用户,并在明确确认后拉取对应 Release 标签并重启。
变更内容
- 新增 WebUI Release 更新检查。鉴权成功后异步查询
69gg/Undefined的最新正式 GitHub Release,不阻塞页面或主事件循环;后端提供 15 分钟缓存,并让成功或失败的并发请求共享同一个在途任务,概览页也可随时手动检查。 - 新增更新确认对话框。检测到新版本时展示当前版本、目标版本和 Release 链接,并提供“稍后”与“拉取并重启”操作;对话框作为全局 overlay 在 Landing 与 App 视图均可正常使用,同时补齐中英文文案、键盘焦点管理、移动端布局、错误与不可更新状态提示。
- 收紧自动拉取边界。仅允许官方
origin、本地main和干净工作区,确认前重新校验目标版本;更新时验证 Release 标签属于官方main且可从当前提交快进,再精确更新到该标签,避免拉取尚未正式发布的后续提交。 - 完善更新后的恢复流程。代码更新后同步子模块,并仅在 Python 依赖清单变化时执行
uv sync;依赖同步失败会取消自动重启,成功后恢复更新前的 Bot 运行状态并重启 WebUI。 - 加固更新请求生命周期。Release 更新操作设置 30 分钟总等待上限,重启任务由模块持有到完成,Bot 自动恢复标记统一写入仓库根目录下的
data/cache/;Release 外链仅接受 HTTPS 地址。 - 新增
[webui].check_updates配置,默认开启并支持热更新;关闭后只停用页面打开时的自动检查,不影响手动检查。 - 移除 Bot 与 WebUI 启动阶段原有的无确认自动拉取和重启逻辑,更新行为统一由 WebUI 用户显式触发;同步更新配置模板、使用文档、Management API 能力声明及后端、前端和 Git 更新回归测试。