主要更新内容
- CI 与构建流程重构:提取前端构建、前端恢复和 Zig 工具链为可复用 GitHub Actions,二进制与 Docker 构建依赖前端成品,减少重复代码并统一 CI 路径。
- 快照版本号时区调整:版本号生成改用 UTC+8(北京时间),与标签名保持一致。
- 手动 Docker 发布流程更新:由自动触发改为人工触发,需显式输入版本号。
- 发布说明生成改进:为稳定版本启用 AI 辅助生成发布说明,快照版本跳过该流程;添加基于稳定标签的比较基准。
- 快照工作流增强:增加分支校验(仅允许
main分支)及并发控制(自动取消进行中的旧运行)。
Bug修复
- Telegram 通知错误信息不完整:非 200 响应时现在包含 API 返回的错误描述,而非仅返回状态码。
- 主题操作路径遍历漏洞(安全修复):在
DeleteTheme、UpdateTheme和SetTheme中添加主题名称白名单校验,防止../等路径穿越漏洞。 - SQLite “database is locked” 频繁失败:通过 DSN 参数设置
_busy_timeout=5000和_txlock=immediate,并限制连接池MaxOpenConns=1,大幅降低并发写入时锁冲突导致写入失败的概率。
其他
- 优化 SQLite 连接初始化逻辑,统一 WAL 模式配置。
- 移除旧的前端构建内联脚本,改为复用
build-frontend/restore-frontendaction。 - 移除
schedule和repository_dispatch触发的发布说明生成事件,仅保留release published和手动触发。
Commits
- fix(telegram): include API error description in non-200 responses (d2f9261) @Torther
- fix(theme): prevent path traversal in theme operations (a181b22) @guocn
- fix: avoid sqlite database is locked failures for record writes (683b7f6) @Akizon77
- ci: align snapshot workflow behavior (28ce225) @airium
- Use UTC+8 for snapshot versions (303f2bb) @Akizon77
- ci: reuse frontend and toolchain actions in workflows (09d7099) @Akizon77
- ci: generate AI-assisted release notes from stable tags (832b800) @Akizon77
- Improve release notes generation (e13f795) @Akizon77
- Read release note workflow inputs (ad74b57) @Akizon77
- Use stable release base for snapshot notes (11c65dd) @Akizon77
- Include commits in release notes (80cc39b) @Akizon77
- Update generate-release-notes.yml (5d26f1b) @Akizon77
Full Changelog: 1.2.7...Snapshot-2607201040