Releases
20261108
Compare
Sorry, something went wrong.
No results found
Features
Feature(push): 🚀 新增 WxPusher 极简模式推送支持, 降低推送配置门槛 (#632 )
Feature(update): 🚀 -v 支持指定 tag / commit / 分支切换代码; 网络访问点支持镜像源参数
Feature(update): 🚀 依赖按 libc 形态分流安装, 版本未变时跳过下载与安装, 解释器版本不足时自动补齐; update.sh 在容器外也可自行安装依赖
Feature(tools): 🛠️ 新增离线密钥轮换工具, 支持 SQLite 与 MySQL
Feature(image): 🐳 新增 Dockerfile.ja3-lite 变体, 四条镜像线统一骨架
Feature(compliance): 📄 镜像内随附第三方许可证文书; FOSSA 改用 CLI 上传, 一个项目覆盖 Python 层与随包原生库
Feature(update): 🚀 声明 <服务目录>/.venv 虚拟环境并支持 PATH 优先级提升(默认临时生效, QD_VENV_PERSIST=1 可持久化); 支持 QD_HOME 指定服务目录
Changed
Change(depends): 📦 依赖管理迁移到 pyproject.toml + uv.lock, 依赖安装到 .venv; 移除 Pipfile / Pipfile.lock / requirements.txt
Change(image): 🏗️ 镜像基座改为纯 Alpine + wheelhouse, 去掉构建时 clone, 依赖来源改为显式契约
Change(ci): 🛠️ 多架构构建流程重构, 新增构建计划 / 清单组装 / 标签分配脚本、冒烟闸门与派生 Dockerfile 一致性校验
Change(depends): ⬆️ 前后端依赖升级并清理失效依赖与旧构建工具; 节日致贺文案按法定口径调整
Docs: 📚 补充镜像标签说明、裸 Alpine 部署、密钥轮换用法、GitHub 加速源与许可声明索引; 修正 python-version badge 与 README 许可段
Fixed
Bugfix(db): 🐛 修复公共模板在 MySQL 下因字段存储上限导致的更新失败
Bugfix(ghcr): 🐛 修复多架构发布中标签互相覆盖与清单清理引起的空壳标签 (issue #642 ), 发布校验同时覆盖清单完整性
Bugfix(update): 🐛 修复容器内热更新失效, 以及 glibc 分支、代码包路径、venv 判定、依赖安装回退等边界问题
Bugfix(ci): 🐛 修复 push 事件的平台判定、构建输出传递、checkout 缺失与标签分配条件
Bugfix(tools): 🐛 修复密钥轮换工具在 SQLite 备份路径与调用方式上的问题
Bugfix(fossa): 🐛 FOSSA CLI 安装位置改为按 PATH 解析
Bugfix(update): 🐛 修复 BSD / macOS 平台兼容(readlink、getopt、sed -i、mktemp), 主流程收进 main() 避免脚本自更新时执行错位, 更新失败不再返回成功退出码
Security
Security(config): 🔒 会话签名密钥改用 COOKIE_SIGN_SECRET 显式配置, 未配置时每次启动随机生成 (COOKIE_SECRET 已弃用); AES_KEY 变更须先通过 tools/rotate_aes_key.py 迁移存量数据, 可用 AES_KEY_STRICT 启用严格校验
Security(safe_eval): 🔒 收紧模板表达式求值的操作码与可用模块白名单, 适配 Python 3.12~3.14 的字节码变更并补充回归测试
Security(web): 🔒 qs 升级至 ^6.16.2(锁定 6.17.1)并同步重新打包随仓库提交的 webpack bundle, 修复该依赖的已知安全问题; 前端依赖补充 pnpm.overrides 约束并清理失效依赖
Security(deploy): 🔒 清理部署链路中不再使用的凭据与镜像内多余组件, 修正容器内热更新失效
You can’t perform that action at this time.