codex/fix-verify-ci
main
Verify 有两类失败:push 与 pull_request 并行时 PostgreSQL 都绑定宿主机 5432,导致其中一条任务在启动服务时退出;另一条任务因锁定的 certifi、filelock、msgpack 含已知漏洞,在 pip-audit 阶段失败。
本次移除测试数据库的宿主端口映射,并按仓库、运行 ID 和重试次数给服务容器加唯一标签。针对现有 act_runner v0.6.1 的共享 Docker 网络,用已经挂载的 Docker socket 只读查询本次运行的服务 IP,避免共用 postgres 别名而连接到其他任务的数据库;服务缺失、重复或地址无效时明确失败。
锁文件仅升级三个包:certifi 2026.10.18、filelock 4.2.1、msgpack 1.2.3;其余依赖和审计要求不变。
验证:本地 pip-audit 为 0 个已知漏洞;12 项 AI 后端测试通过;锁文件一致性、CI YAML/shell 语法及服务定位正常/缺失/重复/无效 IP 自检通过。远程 push 与 pull_request Verify 正在复验。
后续修复关联 #10;该 PR 已合并,因此将 CI 变更作为单独 PR 提交。
runner 出网对明文 HTTP(80 端口)持续返回 502,Playwright --with-deps 从 archive/security.ubuntu.com 拉包必然失败(run 1954/1956 三次重试全部 apt exit 100),而同环境 HTTPS 仓库均正常。安装依赖前先把 Ubuntu 源 整体改写为 HTTPS:官方源优先,失败依次切换阿里云、TUNA 镜像,全部 不可用才报错;microsoft/launchpad 等第三方源不受影响。
Fact 金额字段是 DecimalField(max_digits=44, decimal_places=24),PostgreSQL 把 NUMERIC(44,24) 原样读回,/api/query 的 JsonResponse 对 Decimal 直接 str(),把 24 位存储尺度尾零(如 1000.000000000000000000000000)暴露给 前端与 e2e;SQLite 无此尺度所以本地从未复现(formula-export e2e 在 run 1959/1961 失败的直接原因)。 复用 evidence 接口既有的 amount_text 归一化,新增 AmountJSONEncoder 只覆盖 Decimal 分支;assistant 等内部消费 analyze() 的路径仍拿到 Decimal,不受影响。前端所有数值都经 Number()/format() 解析,格式变化 透明。新增单测锁定 encoder 行为及 /api/query 汇总值输出。
No dependencies set.
The note is not visible to the blocked user.
Verify 有两类失败:push 与 pull_request 并行时 PostgreSQL 都绑定宿主机 5432,导致其中一条任务在启动服务时退出;另一条任务因锁定的 certifi、filelock、msgpack 含已知漏洞,在 pip-audit 阶段失败。
本次移除测试数据库的宿主端口映射,并按仓库、运行 ID 和重试次数给服务容器加唯一标签。针对现有 act_runner v0.6.1 的共享 Docker 网络,用已经挂载的 Docker socket 只读查询本次运行的服务 IP,避免共用 postgres 别名而连接到其他任务的数据库;服务缺失、重复或地址无效时明确失败。
锁文件仅升级三个包:certifi 2026.10.18、filelock 4.2.1、msgpack 1.2.3;其余依赖和审计要求不变。
验证:本地 pip-audit 为 0 个已知漏洞;12 项 AI 后端测试通过;锁文件一致性、CI YAML/shell 语法及服务定位正常/缺失/重复/无效 IP 自检通过。远程 push 与 pull_request Verify 正在复验。
后续修复关联 #10;该 PR 已合并,因此将 CI 变更作为单独 PR 提交。