Repository navigation
AutoForge v1.21.18
本版本修复大批次执行详情持续等待统计、分页加载缓慢及多 worker 重复计算,并加固 Lite/Full 的快照恢复和历史清理。
Fixed
- PostgreSQL 执行明细在排序前物化紧凑分页键,总结轮次按原规则选择最近通过/最后尝试,避免自然排序与总数窗口触发重复扫描;无 attempt 条件的名称/自然排序不再关联整张尝试记录,仍保留原查询期限和结果口径。
- 全部轮次分页仅补齐尚无尝试的初始/当前轮次资格,减少全历史重复合并;Lite 显式物化紧凑轮次集合,避免已有历史的数据库分页长时间计算,保留未执行项和每轮最后尝试。
- 分析事实用反关联筛选未发布记录、先取键后读报告,使用事务级跨 worker 互斥与参数化批量发布,避免重复扫描与错误候选估计;保护已选尝试不被历史清理抢先删除,失败整批回滚,可重试且不重复计数。
- Lite/Full 的同批次统计与分页快照共享一个有效生成租约,避免多个 Web/worker 同时计算大批次而争抢数据库资源;不同批次继续独立生成,不改变用例执行并发。
- 修复 JSON 读取等待失效快照、普通后台又因前台读取而退让的等待循环;同步代次查询使用共享白名单进入单条页面等待车道,周期刷新与内存保护继续退让。
- 执行进度 API 与详情页共用同一版统计查询,避免首次读取进度时重复生成旧版缓存或等待错误代次,保留原有响应字段和权限。
- 为分析事实的批次、执行记录和节点外键增加索引,避免级联历史清理反复全表扫描。新增 PostgreSQL 0092/SQLite 0093 加法迁移,需在备份及停止全部写入节点的维护窗口升级;回滚可保留索引。
- 数据库部署测试兼容 Compose JSON 省略显式 false 值的版本差异;Node Exporter 的默认启动已验证实际采集到同一 PostgreSQL 数据卷的容量。
- 数据库部署模板移除 Node Exporter 的可选 profile,普通 Compose 启动即包含数据卷监控;同步补齐离线镜像导入、旧模板单独补启及平台监控配置说明;B 节点采集器复用公共运行配置,统一日志轮转和停止宽限。
Security
- 将 MinIO SDK 的传递依赖 decode-uri-component 固定至 0.5.1,修复 GHSA-qr28-fpjm-wq7f 的异常编码耗时问题;为 query-string 7 的 CommonJS 调用增加 ESM 默认导出兼容补丁,随 lockfile 和许可证清单离线交付。
Compatibility
- 新增 PostgreSQL
0092_analytics_fact_foreign_keys.sql/SQLite0093_analytics_fact_foreign_keys.sql,仅为分析事实增加三个外键查找索引。升级前备份数据库,在停止 Web 和全部 worker 的维护窗口执行;索引创建需要额外空间和时间,应用回滚可保留索引。 - 全部 Web 和 worker 使用同一版本;Runner 协议、任务配置与执行结果口径保持不变。旧快照若已耗尽失败次数,可点击“重新生成统计”恢复,不需要重跑用例。
Verification
- 130 项定向测试、37 项迁移回归、33 项准入/缓存版本/真实线程检查(部分重叠)及 8 项部署检查通过;Web/worker 生产构建、相关类型、格式、Lint、许可证和 E2E 矩阵检查通过。
- 13,001 条普通用例、十轮共 130,010 条尝试的生产构建 Playwright 回归通过:Full 使用两个独立 worker,Lite 连续运行两次;验证冷进度计数、轮次/明细、失败与长时间等待后的恢复,以及全部已请求快照最终同步。已查看 1024×768、1536×960 的浅色/深色截图,无新增错位或溢出。
- 单核 Full 受限夹具仍触发过一次两秒分页查询保护,随后自动重试恢复;不承诺任意负载下没有超时,未做真实 Java 十轮批跑或用户三主机压测。
- 按用户要求采用最快发布路径,仅运行 Release;跳过标准 CI、源码发布检查、Full 分布式与发布后完整验收,保留原生双架构构建、镜像启动、内置资源、SBOM、签名及完整资产校验。