AMR 生产发布影响报告
结论速览
- Model Routing Catalog 是本次唯一会改变生产行为的维度。发布点
e36d61024(run 记录 @ 2026-09-21T11:36:39Z),其后的 2 个 commit 命中data/json/db/seeds:9061e8872#53 feat(catalog): add Grok 4.7 routes、4676d97e1#55 feat(catalog): add MiMo V2.6 Pro and Flash routes。重跑该 workflow 才会生效。 - Web:Ready Pod 已运行
4676d97e1,即 IT/TR 定价本地化(#42 / #43)与年付文案去重(#40)已在生产;范围里唯一更晚的 commit5149e3f66只改apps/admin,apps/web净 diff 为空 → Web 维度零新增。 - API:发布点
feb5eb7fa(Deploy API EKS Prod @ 2026-09-21T02:22:15Z);其后 12 个 commit 没有任何一个触及services/api→ 零新增,重发只是重建同一份业务代码。 - Link:发布点
4676d97e1(Deploy Link EKS Prod @ 2026-09-22T02:32:33Z),已包含 Grok 的bifrost-corexhigh适配补丁(9061e8872中的services/link/third_party/bifrost-core/schemas/utils.go,早于该发布点);其后范围仅5149e3f66且不含services/link→ 零新增。 - Admin:发布点
feb5eb7fa(Deploy Admin EKS Prod @ 2026-09-21T02:22:03Z)。范围内有 4 个 Admin commit(#47 抽屉化、#49 页面标题、#50 表格筛选统一、#56 回退),但 #56 已把前三个完整回退:git diff feb5eb7fa..5149e3f66 -- apps/admin为 空 → 净变更为零。 - DB migration:发布点
ff912897d(Deploy DB Migrations Prod @ 2026-09-20T08:16:13Z);其后 16 个 commit 均未触及db/migrations或db/schema→ 本次无需执行 migration。 - 总结:如果现在发布生产,会上线的新功能只有 Model Routing Catalog 的 3 个模型路由(grok-4.7、mimo-v2.6-pro、mimo-v2.6-flash);Web / API / Link / Admin / DB 五个维度均为零净变更。三者都停在
pre_releaserelease gate(fail-closed),apply 之后仍需按发布评审把 phase 推进到released才对客户可请求。
当前生产发布点(四个服务取 EKS Pod 实态,DB / Catalog 取 Forgejo workflow 记录)
Web、API、Link、Admin 的发布点来自 Grafana / Prometheus 查询 kube_pod_container_info 与 kube_pod_status_ready{condition="true"} 按 (namespace, pod) 关联后的 Ready Pod 镜像;DB migration 与 Catalog 的发布点来自 Forgejo workflow 最近一次成功运行的 commit_sha。越新的发布点意味着该维度已上线越多内容。
nexu/amr-web · container web · 镜像仓库 amr-webamr-web-5ffd46c587-gv6kr、amr-web-5ffd46c587-fbks94676d97e1sha256:379d86f96df5444ca256058b6cb702b67a6376e3fc97b485fc8f603337802079186593931982.dkr.ecr.us-east-1.amazonaws.com/amr-web:prod-4676d97e17fb7518253506fe9d9f65c3c2b9782fnettee);与 Pod 实态一致:是(commit/digest 完全相同)4676d97e1…5149e3f66):1 commit(s),其中命中 apps/web/ 的 0 个nexu/amr-api · container api · 镜像仓库 amr-apiamr-api-6546769f97-wdlb5、amr-api-6546769f97-g4sv4feb5eb7fasha256:ce9939f10b5da205dfc354e7d41fb63462eb46d097238edf40c590f10fca7740186593931982.dkr.ecr.us-east-1.amazonaws.com/amr-api:prod-feb5eb7fa7df3c997d10460c7c856861d166ac1bnettee);与 Pod 实态一致:是(commit/digest 完全相同)feb5eb7fa…5149e3f66):12 commit(s),其中命中 services/api/ 的 0 个nexu/amr-link · container link · 镜像仓库 amr-linkamr-link-77686d8974-2lqbm、amr-link-77686d8974-7jq7r4676d97e1sha256:d6d339a87fb3299004f80e96ab827e2b5af643a31dfa2210bdb3e5134a64af80186593931982.dkr.ecr.us-east-1.amazonaws.com/amr-link:prod-4676d97e17fb7518253506fe9d9f65c3c2b9782fnettee);与 Pod 实态一致:是(commit/digest 完全相同)4676d97e1…5149e3f66):1 commit(s),其中命中 services/link/ 的 0 个nexu/amr-admin · container admin · 镜像仓库 amr-adminamr-admin-5584867b4f-zj9sm、amr-admin-5584867b4f-925qvfeb5eb7fasha256:38602be657776d73314da9fc33fb4696fc4ecdd6323100829e26e446fa87ddfa186593931982.dkr.ecr.us-east-1.amazonaws.com/amr-admin:prod-feb5eb7fa7df3c997d10460c7c856861d166ac1bnettee);与 Pod 实态一致:是(commit/digest 完全相同)feb5eb7fa…5149e3f66):12 commit(s),其中命中 apps/admin/ 的 4 个nettee)ff912897d(run 实际执行的 commit)db/migrations / db/schema:无待执行 migration(最新 migration 仍是 db/migrations/20260914115313_account_erasure.sql、20260914101138_touchpoint_test_context_realtime.sql)nettee)e36d61024(run 实际执行的 commit)EKS 观察口径:每个服务先用业务容器 + 镜像仓库精确过滤 kube_pod_container_info{container="…", image=~".*/amr-…:prod-[0-9a-f]{40}"},再按 (namespace, pod) 关联 Ready 指标,因此结果不含 API CronJob、Link Redis、metrics exporter 等附属工作负载。四个服务各自 Ready Pod 集合内 commit 与 digest 完全一致,spec / updated / available 副本数一致(web 2/2/2、api 2/2/2、link 2/2/2、admin 2/2/2,且等于 Ready Pod 数),六个 workflow 的成功 run 均落在我们观察到的最新样本之内(观察于 2026-09-22T03:10:00Z),无滚动发布 / 回滚混合状态、无解析失败。四个 deploy-*-eks-prod.yml 最近成功记录的 commit_sha 与 Pod 实态完全一致(web/link 4676d97e1,api/admin feb5eb7fa),未发现 GitOps 手工回滚造成的差异。
本次发布真正新增的 feature 和影响面
| Feature / Author / Commits | Web | API | Link | Admin | DB schema / migration | DB catalog(seed) |
|---|---|---|---|---|---|---|
|
Lgrok-4.7 上线:xAI 一线通道 + OpenRouter 兜底路由与计费
待发布(Catalog) 在 Model Routing Catalog 中新增公开模型 计费:公开价 USD 2 / 6 / 0.5(cache read,每 1M tokens); 发布边界:公开模型的 release phase 初始化为 Author:Liu Yi(本次全部 6 个 commit 的 author 都是 Liu Yi) |
无(apps/web 在其发布点之后零变更);但 catalog 数据会驱动公共定价页展示,见下方发布建议第 3 条。 |
无(services/api 零变更)。 |
无需发布。配套的 Link 适配补丁(bifrost-core/schemas/utils.go 把 grok-4.7 加入 grokModelsWithXHighReasoningEffort,避免客户 xhigh 被降级为 high)位于 9061e8872,而 BASE_LINK = 4676d97e1 已包含它,已在生产。 |
无。 | 无 migration(该 commit 不触碰 db/migrations、db/schema)。 |
待发布。变更 data/json/models.json、provider_routes.json、route_policies.json、public_pricing.json、openrouter_metadata.json、provider_pricing/provider_xai.json、provider_pricing/provider_openrouter.json、data/scripts/build_model_json.py、db/seeds/seed-model-routing-catalog.sql、db/seeds/generate_model_routing_catalog_*_test.py、db/seeds/seed-model-routing-catalog-test-activation.sql。发布动作 = 在 origin/main 触发 deploy-model-routing-catalog-prod.yml(seed 为幂等 baseline apply)。 |
|
Mmimo-v2.6-pro / mimo-v2.6-flash 上线:小米 MiMo V2.6 双档模型
待发布(Catalog) 新增两个公开模型: 路由:两个模型各一条 推理强度:OpenRouter 只报 Author:Liu Yi |
无(同上,catalog 驱动的定价展示见发布建议第 3 条)。 | 无。 | 无(无 adapter wire-shape 变更)。 | 无。 | 无 migration。 | 待发布。变更 data/json/models.json、provider_routes.json、route_policies.json、public_pricing.json、openrouter_metadata.json、provider_pricing/provider_openrouter.json、model_routing_catalog_release_gates.json、db/seeds/seed-model-routing-catalog.sql、db/seeds/generate_model_routing_catalog_real_data_test.py、db/seeds/seed-model-routing-catalog-test-activation.sql。发布动作同上(deploy-model-routing-catalog-prod.yml)。 |
|
SAdmin 表单 / 标题 / 表格筛选三处 UI 重构,发布前已整体回退(净变更为零)
待发布(Admin)但净变更为零 范围内 Admin 侧共有 4 个 commit:#47 把表单类弹窗改为右侧抽屉(会员 tier / 模型规则 / 模型折扣 / 历史退款恢复 / 触点活动)、#49 让 17 个顶层页面标题复用侧边栏 i18n key 并删除冗余描述、#50 用共享 独立复核: Author:Liu Yi |
无。 | 无。 | 无。 | 净变更为零:4 个 commit 中 #47/#49/#50 已被 #56 完整回退,feb5eb7fa..5149e3f66 -- apps/admin 映射到的文件(app/[locale]/(protected)/*/page.tsx、features/membership/{tier,model-rule,model-discount}-dialog.tsx、features/refund-management/historical-cancel-only-form.tsx、features/touchpoints/activity-manager.tsx、components/ui/query-filter-bar.tsx、i18n/messages/{en,zh}.json)差异为 0。若仍要发布 Admin 镜像,等价于原地重建。 |
无。 | 无 catalog 变更。 |
六个维度之外的窗口内变更(不产生生产运行时影响,故不入 feature 表):4ab7c7d4a/8bab676fc/feb5eb7fa 的生产发布授权收敛(#35/#36/#37,改 .forgejo/workflows/*)、4fbe5d85c/49955f78e 的 feature-test 绑定(#38,只改 deploy/environments/feature-test/bound-branch.json)、#42/#43 的 specs/change/** 与 specs/current/link/* 文档、#53/#55 的 specs/link/bifrost-patches.md 等。CI 与文档不属于六个 AMR 生产发布维度。
已在生产生效(各维度发布点之前,本次不重复发布)
以下内容的 commit 均位于对应生产发布点之前,已在生产运行;四个服务以 EKS Pod 实态为基线,DB migration 与 Catalog 以 workflow 记录为基线。
- Web(发布点
4676d97e1= 已含全部 Web 变更):2c9a01a76Public Pricing 意大利语 / 土耳其语本地化(#42,locale 集合新增it/tr,仅扩展 Pricing surface,Cloud 控制台其余页面仍回退英文)、e36d61024修复 #42 与 #40 的yearlySubline签名冲突并恢复部署(#43,失败的 test run 445 为证)、8e66ae506全语言年付副行省钱金额去重(#40)、057e94ed1简体中文年付文案对齐(#34)。这批 commit 已随 Deploy Web EKS Prod(2026-09-22T02:31:45Z → 2026-09-22T02:35:49Z,trigger_usernettee)上线。 - API(发布点
feb5eb7fa):services/api在其发布点之后 0 个 commit,本次发布不会带来任何 API 行为变化。 - Link(发布点
4676d97e1):已包含9061e8872的bifrost-core/schemas/utils.gogrok-4.7xhigh适配补丁及配套 Go 测试调整;Link 自 Deploy Link EKS Prod(2026-09-22T02:32:33Z)后无新变更。 - Admin(发布点
feb5eb7fa):发布后 UX 与 #47/#49/#50 前的形态完全一致(见上表第 3 行)。 - DB migration(发布点
ff912897d,run 记录 @ 2026-09-20T08:16:13Z → 2026-09-20T08:23:21Z):该 run 的Precheck Prod DB Migrations/Apply Atlas Migrations to Prod DB/Notify DB Migration Event均成功;其后db/migrations、db/schema零变更,最新 migration 仍为20260914115313_account_erasure.sql(39abf116ffeat(api): add admin-initiated GDPR account erasure)与20260914101138_touchpoint_test_context_realtime.sql。 - Model Routing Catalog(发布点
e36d61024,run 记录 @ 2026-09-21T11:36:39Z → 2026-09-21T11:39:49Z):该 run 的Precheck/Apply Model Routing Catalog to Prod DB/Notify三个 job 均成功,即发布点之前的 catalog 内容(含8028e101d的 hy4-preview → AIPing priority 10、kimi-k3 → Aliyun US priority 10 及对应计费,#39)已在生产;本次新增的 catalog 内容只有上表的 #53 / #55。 - 生产发布工作流授权收敛(CI,已生效):#35 → #36 → #37 把所有
deploy-*-prod.yml改为调用authorize-prod-deployer.yml,并拒绝原生重跑(run_attempt != 1)。#37 的动机是一次 false-green:run 377 里授权 job 通过、其余 job 因 job-levelgithub.ref/github.actor条件被 skip,Forgejo 仍报 success 但没有 apply catalog。这条经验在本次发布同样适用——只能从main发起新的workflow_dispatch,不要依赖历史 run 重跑。 - 范围内已回退(净变更归零):Admin 的 #47 / #49 / #50 被 #56 完整回退(详见上表第 3 行)。窗口内不涉及 migration 或 catalog seed 的回退,因此没有「已被 apply 过的回退 migration」风险。
发布建议
- Migration 判断:不需要跑 migration。BASE_DB =
ff912897d之后的 16 个 commit 没有触及db/migrations或db/schema,因此 deploy-db-migrations-prod.yml 无需触发(跑了也只是 no-op)。 - 发布顺序与每步实际内容(只有 Catalog 有净新增):
- DB migration:跳过(0 migration)。
- Model Routing Catalog(deploy-model-routing-catalog-prod.yml):唯一必须执行的发布,在
origin/mainHEAD 5149e3f66 触发一次新的workflow_dispatch;apply 将写入 grok-4.7 与 mimo-v2.6-pro/flash 的模型、路由、后端价、公开价与 release gate 行(3 个模型、3 条路由、release gates +2)。 - Link / API / Web / Admin:重跑
deploy-*-eks-prod.yml只重建同一份业务代码(range 内相应目录净 diff 为 0;Web 甚至已在 HEAD 5149e3f66),无功能收益。若为对齐版本号仍要发,建议先 Catalog、后服务(服务侧不需要等待 Catalog,但先 Catalog 可让定价 / 路由数据与新镜像一同观测)。
- Release phase 与公开定价展示(需要人工确认):catalog apply 后
grok-4.7、mimo-v2.6-pro/flash仍停在pre_release(fail-closed,客户不可请求),需按正常发布评审由 Admin 把 phase 推进到released;MiMo 两个模型在data/json/model_routing_catalog_release_gates.json候选列表中,grok-4.7沿用 grok-4.5/4.6 先例未加候选行(baseline 会把缺失 phase 初始化为pre_release)。另外public_pricing.json会新增三条价格行(SpaceXAI: Grok 4.7、Xiaomi: MiMo-V2.6-Pro、Xiaomi: MiMo-V2.6-Flash),公共定价页 / 结算依赖 catalog 数据:apply 后请确认未 released 的模型是否应按预期出现在定价展示中(如需隐藏,应在 Catalog 侧调整而非改 Web 代码)。 - 发布方式约束:所有生产 workflow 必须由授权人在
main上发起新的workflow_dispatch(run_attempt == 1),不得对历史 run 做原生重跑;本次基线 run 的 trigger_user 均为nettee。 - 发布后观测:
- Catalog 落地:核对
public_model_grok_4_7/public_model_mimo_v2_6_pro/public_model_mimo_v2_6_flash的 phase 与路由优先级(grok-4.7:xAI 10 → OpenRouter 20;mimo-v2.6-*:OpenRouter 20)。 - 计费:grok-4.7 公开价 2/6/0.5、xAI 长上下文档 4/12/1.0、OpenRouter 1.6/4.8/0.4;mimo-v2.6-pro 0.435/0.87/0.0036、flash 0.14/0.28/0.0028。若出现账实不符,先核对 provider 侧真实价目。
- 副作用核对:
claude-opus-5的展示名 / 公司被刷新为Anthropic: Claude Opus 5/Anthropic(#53 生成产物),属预期内的上游值同步。 - 稳定性:apply 后观察 catalog 相关 API 错误率、Admin 模型列表加载、以及(若推进 phase 后)两个新模型的请求成功率 / 延迟 / 回退链是否按 priority 生效。
- Catalog 落地:核对
备注:本报告的 workflow、commit、PR 与 compare range 均使用 Forgejo 链接(code.powerformer.net/core/amr),workflow 链接指向可触发页面;四个服务的 compare range 基于 EKS Pod 观察到的 BASE,DB migration 与 Catalog 的 compare range 基于各自 workflow 的 BASE,未统一使用最旧基线,也未用服务 workflow 的 SHA 替代 Pod 实态。EKS 观察时间:2026-09-22 03:14:35Z 之前一次查询(web 03:10:05Z → admin 03:10:22Z,UTC)。