主要更新内容
- 安全修复:主题管理接口增加路径穿越防护,防止通过 crafted 主题名删除或访问工作目录外文件
- 稳定性提升:SQLite 连接改用
_busy_timeout=5000、_txlock=immediate并限定连接池最大连接数为 1,避免并发写入触发 "database is locked" - Telegram 通知改进:非 200 响应时解析 API 返回的错误描述,提供更精准的失败原因
Bug修复
- 修复主题删除/更新/设置接口因未校验主题名导致的路径穿越漏洞
- 修复 SQLite 在负载记录写入时频繁返回 "database is locked" 的问题
- 修复 Telegram 消息发送在非 200 状态码时未包含 API 错误描述的问题
其他
- 抽取前端构建、Zig 工具链安装为共享 Action,简化 CI 工作流;二进制与 Docker 构建改为依赖前端制品
- 为 Docker 镜像发布增加手动版本输入,移除对 Release 事件的自动触发
- 优化 Snapshot 构建:仅允许 main 分支触发,版本命名改为 UTC+8 时区,加入并发控制
- 改进 Release Notes 生成流程:支持 AI 辅助生成、限制上下文大小、从稳定 base 生成快照笔记
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...1.2.5-fix1