AMR 生产发布影响报告

生成时间:2026-08-28;分析对象:在 origin/main(HEAD ad461f1bf)手动运行六个生产 GitHub workflow 的影响分析。注意:本次所有 workflow 的最近一次成功发布点均为 b15c004d5(2026-08-27),下方「变更范围」按各自发布点计算,只有发布点之后的 commit 才属于该 workflow 本次新增。

当前生产发布点(各 workflow 独立计算)

六个生产 workflow 最近一次成功运行均停在 b15c004d5(2026-08-27 11:24Z 部署),发布点一致。目标 commit 均为 ad461f1bffix(billing): provision customers for portal access (#1777))。各 workflow 的变更范围均为 1 个 commit, 但该 commit 只包含 services/api 的 runtime 变更(其余维度仅有测试文件,无 runtime 变更)。

deploy-web-eks-prod.yml
最近成功:2026-08-27 11:24:43Z
发布点 commit:b15c004d5
本次新增(b15c004d5...ad461f1bf):1 commit(仅 apps/web/tests/browser/workspace-dashboard.spec.ts 测试断言,无 runtime 变更)
发布点前已上线:workspace 订阅入口/支付方式 shortcut、subscription 卡片去重等 #1765/#1766/#1767/#1768
deploy-api-eks-prod.yml
最近成功:2026-08-27 11:24:37Z
发布点 commit:b15c004d5
本次新增(b15c004d5...ad461f1bf):1 commit —— 本次唯一有 runtime 变更的 workflow(billing 模块)
发布点前已上线:admin refund 失败落盘 #1773 等
deploy-link-eks-prod.yml
最近成功:2026-08-27 11:24:39Z
发布点 commit:b15c004d5
本次新增(b15c004d5...ad461f1bf):1 commit(未触及 services/link,无 runtime 变更)
发布点前已上线:Z.AI provider route #1774、usage_events provider/catalog cost 拆分 #1775
deploy-admin-eks-prod.yml
最近成功:2026-08-27 11:24:41Z
发布点 commit:b15c004d5
本次新增(b15c004d5...ad461f1bf):1 commit(未触及 apps/admin,无 runtime 变更)
发布点前已上线:audit log 过滤器本地化 #1771
deploy-db-migrations-prod.yml
最近成功:2026-08-27 11:07:57Z
发布点 commit:b15c004d5
本次新增(b15c004d5...ad461f1bf):1 commit(未触及 db/migrationsdb/schema,无 migration 变更)
发布点前:无新增 migration 待执行
deploy-model-routing-catalog-prod.yml
最近成功:2026-08-27 11:24:34Z
发布点 commit:b15c004d5
本次新增(b15c004d5...ad461f1bf):1 commit(未触及 data/json / db/seeds,无 catalog 变更)
发布点前已上线:MiniMax M3 re-onboard #1772、GLM 5.3 Flash via OpenRouter #1770、TeamoRouter test .cn #1769

此次发布真正新增的 feature 和影响面

feature 表只包含「各 workflow 发布点之后」的变更(本范围仅 b15c004d5...ad461f1bf 共 1 个 commit);发布点之前已生效的内容见 「已在生产生效」 一节。

Feature / Author / Commits Web API Link Admin DB schema / migration DB catalog(seed)
M计费客户按需建档,修复 Billing Portal 访问

修复个人/团队 Billing Portal 与订阅 checkout 在「用户从未被创建过 Stripe customer」时报 Billing customer not found 的问题:portal 会话现在按需自动 find-or-create Stripe customer,且 customer 创建改为幂等(基于 appUserId 的 sha256 idempotency key vela-billing-customer:v1:<digest>),email/name 通过新增的 updateCustomer 回填。同时修复 withCheckoutCreationSessionLock 未把 lock-owning client 透传给嵌套查询、在 max-1 连接池下可能饥饿/卡死的隐患。影响用户:所有存在或尚未建档的计费用户;行为变化:portal 不再因缺档报错、并发创建不再产生重复 customer、checkout 并发路径更稳。

Author:Caprika(alchemistklk)

  • ad461f1bf fix(billing): provision customers for portal access (#1777)
无 runtime 变更(b15c004d5...ad461f1bf 中 web 侧仅 apps/web/tests/browser/workspace-dashboard.spec.ts 增加 portal 不可见回归断言,属测试文件,不随 runtime 发布)。 仅此维度有变更services/api/src/billing/core.ts(find-or-create + 幂等 key + updateCustomer)、billing/http/routes.ts(portal 路由透传 email/name)、billing/infra/postgres.ts(advisory lock 下 client 透传修复)。 无。 无。 无 migration / schema 变更。 无 catalog(seed)变更。

已在生产生效(发布点之前,本次不重复发布)

本次所有 workflow 的发布点均为 b15c004d5(2026-08-27 11:24Z 部署成功),以下内容在 b15c004d5...ad461f1bf 之前、已在生产运行。重新运行对应 workflow 不会重复「上线」这些变更。

发布建议

  1. Migration 判断b15c004d5...ad461f1bf 内无 db/migrationsdb/schema 变更,不需要跑 deploy-db-migrations-prod.yml(即便在 main HEAD 重跑也只会空跑)。
  2. 服务发布顺序:所有 workflow 发布点一致(b15c004d5),唯一 runtime 变更为 services/api。建议实际只需触发 deploy-api-eks-prod.yml(1 commit)。其余维度可并行触发但无 runtime 变更:Web/Link/Admin 均为「部署即幂等」;Catalog 无 seed 变化;DB 无 migration。
  3. 数据 seed / catalog 判断:无 data/jsondb/seeds 变更,deploy-model-routing-catalog-prod.yml 的 apply 步骤按原 seed 幂等覆盖即可,无需额外 runbook。
  4. 发布后观测:① 个人/团队 Billing Portal 会话创建成功率与延迟(此前未建档用户不再 4xx);② Stripe customer 创建幂等性(同 appUserId 不产生重复 customer);③ billing 相关路由(checkout / portal / 订阅)5xx 与连接池等待/饥饿告警;④ workspace 设置页 portal 入口回归(ad461f1bf 附带浏览器回归用例)。

备注:所有 workflow、commit、PR 或 compare range 均使用可点击的 GitHub 链接;compare 链接统一基于发布点 b15c004d5(本次六个 workflow 发布点一致,故为同一 range)。