AMR 生产发布影响报告
当前生产发布点(EKS 实态 + workflow 记录)
Web、API、Link、Admin 的发布点来自 Grafana / Prometheus 观察到的 Ready EKS Pod 镜像(kube_pod_container_info × kube_pod_status_ready,namespace nexu);
DB migration 与 Catalog 的发布点来自对应 Forgejo workflow 最近一次成功运行。越新的发布点意味着该维度已上线越多内容,feature 表里只允许列出发布点之后的变更;
发布点之前的 commit 属于已生效,归入「已在生产生效」一节,不得重复出现在 feature 表。目标 commit 均为
392374aba
(feat(catalog): onboard GPT-6.1 Sol (#158),2026-09-29T19:04:55Z)。
nexu/amr-web · container webd8907669sha256:04ab55d3297aab6c250e7979e4d41f7b8a92cc8c564e9f4ac918f718fef2af37d8907669...392374aba):2 commits,其中 0 个触及 apps/webnexu/amr-api · container apid8907669sha256:71213c014867f6f707c1fe95cbabea47b9f6c2f6a5008c53791f341497155e9fd8907669...392374aba):2 commits,其中 0 个触及 services/apinexu/amr-link · container linkd8907669sha256:717b3c542c51a14ffc0106407202e01d88068f44dffc5f8df6676e57ffb2d89ed8907669...392374aba):2 commits,其中 1 个触及 services/link(392374aba)nexu/amr-admin · container admin4d9eee27sha256:dc8f4af23e8f449a8b71b69a20e9ac67e9ad7bf03abbc456ba578c01dc8b5fd94d9eee27...392374aba):20 commits,其中 1 个触及 apps/admin(0dc3fc2fb,#127)a7aa125fa7aa125f...392374aba):11 commits,其中 0 个触及 db/migrations 或 db/schema20260928085420_account_user_id_index.sql 并发建索引,见「已在生产生效」)9cb11dff9cb11dff...392374aba):1 commit,其中 1 个涉及 data/json 与 db/seeds(392374aba)
辅助观察(非六维):官网公开定价的发布点是
0ab43a985(
deploy-public-pricing-prod.yml
run #2813,2026-09-24T09:03:06Z),落后于 main,未包含 #146(Claude Sonnet 5.5)与 #158(GPT-6.1 Sol)的 public_pricing.json 条目。
此次发布真正新增的 feature 和影响面
| Feature / Author / Commits | Web | API | Link | Admin | DB schema / migration | DB catalog(seed) |
|---|---|---|---|---|---|---|
|
LGPT-6.1 Sol 模型接入(OpenAI 首发 + OpenRouter 备份,含 reasoning.effort 兼容补丁)
新增长文本模型 Author:Liu Yi(nettee) |
无(apps/web 无变更;模型/定价数据不在 Web 代码内)。 |
无(services/api 无变更;模型能力由 DB catalog 数据 + Link 提供,无需 API 发版)。 |
services/link/third_party/bifrost-core/providers/openai/utils.go:把 gpt-6.1-sol 纳入 OpenAI reasoning 模型判定(effort 保留、xhigh / max 支持),随带 chat_test.go、responses_test.go、internal/bifrostengine/engine_retry_e2e_test.go 回归测试。风险点:补丁文档记录了修复前的回归——未登记该能力时转换会清空 reasoning.effort(上游 payload 为空);因此若先放开 release phase 而未发布本次 Link 版本,gpt-6.1-sol 的请求会丢失 effort 参数。 |
无(本次 Admin 代码变更只有 #127;release phase 切换由 Admin 运行时操作,不在本次部署内容内)。 | 无(db/migrations、db/schema 无新增文件)。 |
catalog 数据:data/json/models.json(新增 public model)、data/json/provider_routes.json、data/json/route_policies.json、
data/json/provider_pricing/provider_openai.json、data/json/provider_pricing/provider_openrouter.json、data/json/public_pricing.json、
data/json/openrouter_metadata.json、data/json/model_routing_catalog_release_gates.json、db/seeds/seed-model-routing-catalog.sql
(+2 backend model、+1 public model、+2 route、+1 release gate 行,均为 pre_release);生成脚本 data/scripts/build_model_json.py 同步。
|
|
MAdmin 公开模型状态 API(无会话可读)+ 发布相位变更幂等化
Admin 新增匿名只读接口 Author:Liu Yi(nettee) |
无。 | 无(接口挂在 Admin 服务,不走 API 服务)。 | 无。 |
apps/admin/app/api/public/v1/models/route.ts(新增匿名 GET 路由)、apps/admin/lib/server/public-model-status.ts(过滤/投影/可用 route 与 blocker 计算)、
apps/admin/lib/server/admin/core.ts、apps/admin/lib/server/admin/models.ts(发布相位变更幂等化);测试 test/public-model-status.test.ts、test/admin-console.test.ts,文档 apps/admin/README.md。
影响面:Admin 对外多了一个无鉴权读端点(部署在网络内部,不新增浏览器 CORS),以及运营侧 release phase 操作的行为变化(releasedAt 语义更严格)。
|
无。 | 无 catalog 变更。 |
|
S非 runtime:CI workflow 兼容性、代码质量工具链、文档校准
非 runtime 变更,不进入任何服务维度列。其中 Author:mrcfps(#140)、Liu Yi(nettee,#129 / #130) |
无 runtime 变更。 | 无 runtime 变更。 | 无 runtime 变更。 | 无 runtime 变更。 | 不影响 migration 内容;仅影响 workflow 定义本身(production dispatch 走新版本,已在本报告发布点之后先行生效)。 | 不影响 seed 内容。 |
已在生产生效(发布点之前,本次不重复发布)
以下 feature / commit 均在对应生产发布点之前,已在生产运行。四个服务以 EKS Pod 实态为基线,DB migration 与 Catalog 以 Forgejo workflow 记录为基线。若从 main 重新发布,只分析各自基线之后的净新增;基线之前的内容不得出现在 feature 表中。
- Catalog(BASE_CATALOG
9cb11dff已生效,2026-09-29T14:21:38Z @ run #3294):9cb11dffa下调 Aiping 路由、优先 DeepSeek / BytePlus(#157)、c5452886c恢复 BytePlus DeepSeek / GLM 文本路由(#153)、2134cdb88接入 Claude Sonnet 5.5(#146)、06cf3e250回退路由权重并临时禁用 BytePlus 文本路由(#141)、01a204b6c提升 BytePlus 优先级、下调 Aliyun DeepSeek(#139)、4247cbca3降低 BytePlus DeepSeek / GLM 路由权重(#126)均已在生产 catalog 生效。 - DB migration(BASE_DB
a7aa125f已生效,2026-09-28T11:54:22Z @ run #3104):a7aa125f3(#137)db/migrations/20260928085420_account_user_id_index.sql(account user 查询索引,concurrent 创建)已执行,db/atlas.hcl、db/schema/public.hcl、docs/ops/post-migrate-analyze.md同步落地。 - Link(BASE_LINK
d8907669已生效,2026-09-29T12:46:49Z @ run #3271):126947877(#145)统一 BytePlus 请求兼容层(internal/providercompat/adapter.go+ Bifrost patch)、26370c56e(#136)省略 BytePlus 不支持的 reasoning summary 字段、6e4509a96(#135)转换前剥离 BytePlus 不支持的stream_options、4247cbca3(#126)BytePlus DeepSeek / GLM 路由权重相关测试已在生产镜像中。 - API(BASE_API
d8907669已生效,2026-09-29T12:47:57Z @ run #3272):d8907669a(#156)billing 侧对 legacy 订阅者一次性重发 Go intro、95c2819d4(#134)补齐缺失 HTTP 指标路由归类、e43cbd2b6(#132)降低 billing preflight / snapshot / 鉴权的数据库负载。 - Web(BASE_WEB
d8907669已生效,2026-09-29T13:08:01Z @ run #3273):d8907669a(#156)team-dashboard 相关改动、125902bef(#150)Design Plan 权益 / 模型 / 用量估算同步、2519d1014(#148)隐藏 Design Plan 额度金额。本次 Web 无净新增。 - Admin(BASE_ADMIN
4d9eee27已生效,2026-09-24T10:53:46Z @ run #2873):4d9eee278(#125)GO 额度统一遵循 Admin 会员权益配置。基线之后只有0dc3fc2fb(#127)待发布。 - 辅助(非六维):官网公开定价:当前发布点
0ab43a985(run #2813,09-24)未包含 #146 / #158 的定价条目;公开定价 revision 需单独 dispatch deploy-public-pricing-prod.yml 才会更新。 - 范围内已回退 / 往复调整(净变更归零,本次不发布):BytePlus / DeepSeek / Aiping 路由权重在 #126 → #139 → #141 → #153 → #157 之间反复调整,其中 #139 / #141 / #153 / #157 均已 apply 到生产(#157 正是当前 Catalog 发布点),属于历史状态而非待发布内容;本次 Catalog 净新增只有 #158 一项。范围内无 migration 被回退。
发布建议
- Migration 判断:BASE_DB(
a7aa125f)之后db/migrations与db/schema无任何新增或修改文件,因此不需要跑 deploy-db-migrations-prod.yml;如需 drift 校验,可只跑该 workflow 的 precheck(不 apply)。 - 服务发布顺序(各维度净新增不同,按依赖与风险排列):
- Link(
d8907669...392374aba,1 个 link commit):先让gpt-6.1-sol的 reasoning effort 透传就位。 - Catalog(
9cb11dff...392374aba,1 个 commit):apply 后模型进入 catalog,但 release phase 仍为pre_release,不对外。 - Admin(
4d9eee27...392374aba,仅0dc3fc2fb生效):上线公开模型状态 API 与 release phase 操作语义。 - Web / API:本次无代码净新增(2 commits 均未触及
apps/web与services/api),可按需对齐到392374aba,不构成必须步骤。 - 可选:如需官网定价与
gpt-6.1-sol/ Claude Sonnet 5.5 同步,单独 dispatch deploy-public-pricing-prod.yml。
gpt-6.1-sol对外可用(把 release phase 改成released)建议放在 Link 与 Catalog 都发布完成之后,避免 effort 参数丢失导致上游报错。 - Link(
- 数据 seed / catalog 判断:catalog 变更由 deploy-model-routing-catalog-prod.yml 的 apply 步骤覆盖,该步骤只应用 baseline
db/seeds/seed-model-routing-catalog.sql(不会应用 test activation overlay,因此不设置任何released)。precheck 的 plan 摘要预期为:+1 public model(gpt-6.1-sol)、+2 backend model(openai / openrouter)、+2 route(priority 10 / 20)、+1 release gate 行(pre_release)。data/json/public_pricing.json不由该 workflow 发布,需 deploy-public-pricing-prod.yml。 - 发布后观测:
- Link:针对
gpt-6.1-sol的 Chat Completions→Responses 请求是否携带reasoning.effort(关注上游 400 / 空 payload 与 provider 转换错误日志);Link 5xx / 延迟与 BytePlus、OpenAI 路由权重是否按 priority 生效。 - Catalog:apply plan 摘要与实际写入行数一致;
link.public_model_release_gates中public_model_gpt_6_1_sol仍为pre_release;两条 route(priority 10 / 20)为 active。 - Admin:无 Cookie 请求
GET /api/public/v1/models?name=gpt-6.1-sol返回 200 且Cache-Control: private, no-store;非法releasePhase返回 400;POST 返回 405;/api/admin/models/tables无会话仍为 401;提交未变化的 release phase 时updated_at与审计事件不增长。 - EKS:4 个 Deployment 的 spec / updated / available 副本数一致且 Pod 镜像 digest 与本次构建一致;Prometheus 样本新鲜度 < 5 分钟。
- Link:针对
备注:本报告所有 workflow、commit、PR 与 compare range 均使用 Forgejo(code.powerformer.net/core/amr)链接;workflow 链接指向可触发页面,run 链接指向 index_in_repo 运行号。四个服务的 compare range 基于 EKS Pod 观察到的 BASE(Web / API / Link d8907669,Admin 4d9eee27),DB migration 与 Catalog 的 compare range 基于各自 workflow 的 BASE(a7aa125f / 9cb11dff),未统一使用最旧基线,也未用 workflow SHA 替代 Pod 实态。