AMR 生产发布影响报告

生成时间:2026-10-27(观察窗口 02:00Z);分析对象:从 origin/main(HEAD 10f1f69b8,[OPEND-3794] feat(analytics): 支持 CoRouter 注册与支付入口归因 (#607))发布 Web、API、Link、Admin、DB migration 的影响分析。注意:四个服务以 EKS Pod 实际运行镜像为生产发布点,DB migration 以对应 workflow 最近成功运行的 commit_sha 为生产发布点;五个发布维度分别计算变更范围。

当前生产发布点(EKS 实态 + workflow 记录)

Web、API、Link、Admin 的发布点来自 Grafana / Prometheus(kube-state-metrics,namespace nexu)观察到的 Ready EKS Pod 镜像;DB migration 的发布点来自对应 workflow 最近一次成功运行。五个发布点本次观察到完全一致的服务基线:四个服务都在 29ddd44a2。 feature 表里只列出发布点之后的变更;发布点之前的 commit 属于已生效,归入「已在生产生效」一节,不得重复出现在 feature 表。目标 commit 均为 10f1f69b8。

Web · EKS Pod 实态
Workload:nexu/amr-web · container web
观察时间:2026-10-27T02:00:23Z
观察到的 Ready Pods:2(无终止中 Pod 被计入)
实际 commit:29ddd44a2
镜像 digest:sha256:15d107e30efff0532354554c87ced76989f83add278bb15025fb91ee61f06376
Workflow 审计:deploy-web-eks-prod.yml 最近成功 #15099;与 Pod:一致
本次新增(29ddd44a2...10f1f69b8):区间 13 commits,其中触及 apps/web 3 个;触及 packages/shared 1 个
发布点之前已上线:统一登录 S6 回跳(#453/#550)、团队 member 用量限制(#480)、Gemini 4 Argon 套餐展示(#482)等
API · EKS Pod 实态
Workload:nexu/amr-api · container api
观察时间:2026-10-27T02:00:25Z
观察到的 Ready Pods:4(无终止中 Pod 被计入)
实际 commit:29ddd44a2
镜像 digest:sha256:fff66133f81c3091c6ebff6684cf04a0dd6c616e95761b3f67bfdd58f827421a
Workflow 审计:deploy-api-eks-prod.yml 最近成功 #15056;与 Pod:一致
本次新增(29ddd44a2...10f1f69b8):区间 13 commits,其中触及 services/api 3 个
发布点之前已上线:消息中心语言校验修复(#541)、结算通知解耦(#466)等
Link · EKS Pod 实态
Workload:nexu/amr-link · container link
观察时间:2026-10-27T02:00:27Z
观察到的 Ready Pods:20(无终止中 Pod 被计入)
实际 commit:29ddd44a2
镜像 digest:sha256:afc44004ec3053cd0a49834d1d79a56cfe5fab8d1fa363bf978b968a90fb3711
Workflow 审计:deploy-link-eks-prod.yml 最近成功 #15051;与 Pod:一致
本次新增(29ddd44a2...10f1f69b8):区间 13 commits,其中触及 services/link 3 个
发布点之前已上线:连接池扩至 8(#495)、并发预留回收(#526)、Responses 配置/参数兼容(#471/#473)、thinking 诊断撤除(#530)、空 Responses panic 修复(#496)等
Admin · EKS Pod 实态
Workload:nexu/amr-admin · container admin
观察时间:2026-10-27T02:00:30Z
观察到的 Ready Pods:2(无终止中 Pod 被计入)
实际 commit:29ddd44a2
镜像 digest:sha256:2bca5bf95eb89d5e15ccb12acc9f48be22fe0662b81b3fb333bf106d4c1f10ad
Workflow 审计:deploy-admin-eks-prod.yml 最近成功 #15050;与 Pod:一致
本次新增(29ddd44a2...10f1f69b8):区间 13 commits,其中触及 apps/admin 2 个
发布点之前已上线:Admin 既有用户详情/退款管理流程(未含批量封禁)
DB migration · workflow 记录
最近成功:run #10359(API id 69989)
发布点 commit:e626fd7e8(2026-10-21 07:52:10Z,[OPEND-4190] feat(link): add readiness failure diagnostics (#486))
本次新增(e626fd7e8...10f1f69b8):区间 30 commits,其中触及 db/ 仅 5aa94f7c3 1 个
注意:DB 基线(10-21)落后于服务基线(10-23),但这 30 个 commit 中只有 1 个改动 db/,因此待执行 migration 只有 1 个文件

Ready Pod 数量仅为本次观察值,不代表副本一致性,也不构成健康检查结论。四个服务的 workflow 最近成功记录与 Pod 实态完全一致,未发现手工回滚差异;生产版本仍以 Pod 实态为准。

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

feature 表只包含「各维度生产发布点之后」的变更:四个服务以 EKS Pod 实态 29ddd44a2 为基线,DB migration 以 workflow 记录 e626fd7e8 为基线。发布点之前已生效的内容见 「已在生产生效」 一节,不要重复列入。

Feature 聚合规则:以业务行为、用户路径、数据契约和部署依赖为准;不得机械按 PR、分支、作者或目录划分。PR、commit 和 path 仅作为可点击的追溯证据。

Feature / Author / Commits Web API Link Admin DB schema / migration
XL跨 public model 影子测试与 0.01% 采样

影子规则可从 public model B 的生产流量复制请求,仅把影子副本的 model 改写为目标 public model A,并使用 A 的 backend、推理默认值与能力配置;原生产请求与计费不变。采样比例支持 0.01% 步进(存 0.0001),Admin 同时保留原同模型模式,并阻止删除被影子规则引用的模型。这是本次唯一带 schema 变更的功能,存在发布顺序依赖:先应用新增 Atlas 迁移,再升级全部 Link 副本,最后升级 Admin 后再配置跨模型规则。

Author:Liu Yi

  • 5aa94f7c3 feat: 支持跨 public model 影子测试与 0.01% 采样 (#581)
无。 无 runtime 变更(该 commit 未触及 services/api)。 影子执行器按 TargetModelID() 改写影子副本请求体,并在目标模型默认值/backend 下执行;日志新增 target_public_model_id;同模型规则行为保持不变。依赖新列,缺少 schema 会导致规则读写失败。 影子策略编辑器支持「来源 public model → 目标 public model」选择、0.01% 采样步进、中英文展示来源/目标/backend/比例;repository 读写新列并校验目标 backend 归属;被引用模型禁止删除。 20261023033739_shadow_target_public_model.sql:link.model_shadow_rules 新增 nullable target_public_model_id + 指向 link.public_models(id) 的外键;同步 db/schema/link.hcl、db/migrations/atlas.sum。已有规则无需回填。
LAdmin 用户列表批量封禁 + 退款取消订阅

用户列表勾选一批人后可以先封禁、再退款并取消订阅;跨页保留选择,操作完成后不清空。退款对话框逐人展示套餐、付款时间与 7 天提示,无有效订阅的人直接跳过;列表退款不再复用「退款管理」的批量入口,退款管理保持独立专用流程(预期套餐 / 邮箱或 .txt / 预检查 / 提交)。全部逻辑在 Admin 内完成,退款仍走既有的 API 内部接口 /api/internal/admin/subscriptions/refund-cancel,不要求同步发布 API 新接口。

Author:Liu Yi

  • 9687eb90a feat(admin): 用户列表支持同一批人先封禁再退款 (#612)
无。 无(复用生产已存在的内部退款接口)。 无。 用户列表选择态(sessionStorage)+ 批量菜单、批量封禁/退款对话框、banUsersAction/refundCancelUsersAction 两个 server action、lib/server/admin/users.ts 批处理(跳过已封禁/注销中、按订阅快照逐人退款)、中英文文案。 无 schema/migration。
LCoRouter 注册与支付入口归因

扩展入口归因枚举,接受 corouter_home、corouter_models、corouter_model_detail 三种来源,复用既有 entryId 链路覆盖登录/注册、结账创建、Stripe 元数据与服务端 billing_payment_result;sourceProduct 仍为 open_design,不新增事件、DB 字段或支付逻辑。部署依赖:先发布本仓库的 Web/API,再发布配套 core/od-landing 官网 PR(携带同一个 entry_id);旧来源保持兼容。日报关联查询与定时发送是另一项集成,不随本次上线。

Author:Joey

  • 10f1f69b8 feat(analytics): 支持 CoRouter 注册与支付入口归因 (#607)
前端入口归因解析(open-design-attribution.ts)随共享枚举扩展接受 corouter_* 来源,仍沿用 7 天入口保存与过期逻辑。 billing/core.ts 的 sourceDetail 枚举扩展接受 corouter_*;结账与订阅元数据继续把 entryId 带入 invoice.paid,无新增字段或迁移。 无。 无。 无 schema/migration(明确不新增数据库字段)。
M注册邮箱域名白名单

新增可选配置 AUTH_REGISTRATION_ALLOWED_EMAIL_DOMAINS:设置后,邮箱注册/OTP 请求与 OAuth 建号只接受精确匹配的域名(含拒绝子域与后缀仿冒),并在启动时校验格式;不设置时保持现有不受限行为。配置依赖:本次代码不包含生产配置变更,上线后若生产未配置该变量,行为与现在完全一致;仅在需要限制时才追加环境变量(配套 GitOps PR 只对 test 环境开启)。

Author:mrcfps

  • 395ac312e fix(auth): add registration email domain allowlist (#585)
无。 auth.ts、config.ts、新文件 registration-email-policy.ts:注册与 OAuth 建号前按白名单校验;已有密码登录与重置密码路径不变。 无。 无。 无。
MCoRouter 生产登录回跳白名单

把 https://corouter.open-design.ai 加入 S6 生产 return_to 允许列表,使 CoRouter 独立站登录后可以带 od_auth 回到原页;未列入的来源仍被拒绝。当前生产 Web 尚未包含 S6 逻辑,因此该修复要随本次 Web 发布一起生效,并需要 CoRouter 站点配合验证。

Author:卜圣韬

  • bec988b29 fix(auth): allow CoRouter production return_to after login (#562)
src/lib/return-to.ts 生产来源白名单新增 https://corouter.open-design.ai(含本地化路径)。 无。 无。 无。 无。
MLink:ZAI none/off 使用供应商默认推理

用户对 ZAI GLM-5.3 Flash/FlashX 传 none/off/disabled 时,兼容层不再本地返回 400,而是删除推理控制(含关联推理预算)改用供应商默认强度;覆盖 Chat、Responses、Messages 与 JSON/SSE,消息与输出 token 上限不变。该改动直接对应 2026-10-26 的 ZAI 400 生产告警。行为边界:不承诺关闭推理,可能产生 reasoning token。

Author:Liu Yi

  • 04c19b01a fix(link): ZAI none/off 使用供应商默认推理 (#611)
无。 无。 providercompat 层新增 ZAI 默认推理判定,在 Chat/Responses/Messages 及 SSE 路径删除禁用档位的 reasoning 与预算。 无。 无。
MLink:保留 Messages 空数组工具结果

修复 Anthropic Messages 协议转换时把空 content 的工具结果丢弃的问题,避免上游工具结果丢失或转换 panic,DeepSeek 等依赖空工具结果的链路恢复正常。属于第三方 bifrost-core patch,已记录在规格文档中。

Author:Liu Yi

  • f2dc1da94 fix(link): 保留 Messages 空数组工具结果 (#596)
无。 无。 third_party/bifrost-core/providers/anthropic/responses.go 保留 tool_result 空数组内容,并补充协议历史 e2e 与单测。 无。 无。
SWeb:Design Plan 补齐 MiniMax M3.1 Flash 展示

仅前端展示:Design Plan 模型列表、用量表与模型额度详情补上 MiniMax M3.1 Flash(倍率 1×,Go/Plus/Pro/Max 月额度 $60/$80/$180/$300,含每 7 天预估请求次数),覆盖 12 种 Pricing 语言。不改后端模型权限、计费或生产配置。

Author:张辉华

  • 851f333cf feat(pricing): 补齐 MiniMax M3.1 Flash Design Plan 展示 (#584)
components/commerce/plans/design-plan.ts 新增模型与估算、model-credits-copy.json 多语言文案;纯展示。 无。 无。 无。 无。
SOrbit 泳道与 CI 基础设施(非生产运行时)

泳道(lane)环境与 CI 侧改动:日常 RDS seed 初始化隔离泳道库、RDS 泳道保留 Share 路由、standing Test group 执行、显式传递 Web 部署来源、泳道环境变量 Runner 协议(修复泳道 API 部署 409)。这些改动只影响预览/泳道环境与 workflow 本身,不进入任何生产服务的运行时制品,也不改变五元组的生产行为。其中 #608 对 services/api 的改动仅为测试文件。

Author:mrcfps、zhangchi

  • 3174370e9 feat: provision isolated lane databases from a daily RDS seed (#588)
  • a3da3b573 fix(orbit): preserve Share routing for RDS lanes (#598)
  • 835a65b46 fix(orbit): support standing Test group execution (#614)
  • 4379948c1 fix(orbit): pass explicit Web deployment origins from trusted builds (#583)
  • 155f6d1ae fix(orbit): 接入泳道环境变量 Runner 协议,修复 API 部署 409 (#608)
无 runtime 变更。 无 runtime 变更(#608 仅改 services/api/test)。 无 runtime 变更。 无 runtime 变更。 不涉及 db/migrations(泳道库由 deploy/orbit/rds-control.sql 在泳道侧建库,不经生产 migration workflow)。

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

四个服务的基线都是 29ddd44a2(2026-10-23 03:10:19Z),DB migration 基线是 e626fd7e8(2026-10-21 07:52:10Z)。以下内容均在各自基线之前,已在生产运行,本次不重复发布、也不进入上面的 feature 表。

发布建议

  1. Migration 判断:需要先跑 deploy-db-migrations-prod.yml,应用 db/migrations/20261023033739_shadow_target_public_model.sql(nullable 列 + 外键,已有数据无需回填)。该 workflow 的最近成功运行停留在 2026-10-21(#10359),落后服务基线约 2 天,建议先确认它能正常执行再排服务发布。
  2. 服务发布顺序:(1)DB migration;(2)Link(发布点之后 3 个 commit:5aa94f7c3、f2dc1da94、04c19b01a)——影子读写依赖新列,且 Link 必须先于 Admin 具备跨模型能力;(3)Admin(2 个 commit:5aa94f7c3、9687eb90a)——随后才可在界面配置跨模型影子规则、使用列表批量封禁退款;(4)API(3 个 commit:10f1f69b8、155f6d1ae 仅测试、395ac312e)与 Web(3 个 commit:10f1f69b8、851f333cf、bec988b29)可并行,但 CoRouter 归因需要 AMR 的 Web/API 先上线,之后才能发布 core/od-landing 官网 PR。
  3. 回滚注意:回滚 Link 到旧版本前,必须先清除跨模型影子规则并关闭影子开关,确认副本重载;旧 Link 不认识新列但不会崩溃,只是无法表达跨模型规则。
  4. 发布后观测:
    • Link:shadow_request_completed 日志新增的 target_public_model_id 是否出现;影子请求成功率与 0.01% 采样量级;ZAI 系列(GLM-5.3 Flash/FlashX)400 是否随 none/off 修复下降(对照 2026-10-26 告警);reasoning token 计费是否出现预期变化;Messages 空工具结果链路是否还有转换错误。
    • Admin:批量封禁/退款的审计记录(user.ban 与退款操作)、7 天退款窗口与 stripe_refund_pending 计数、跨页选择清理逻辑。
    • API/Web:AUTH_REGISTRATION_ALLOWED_EMAIL_DOMAINS 未配置时注册行为应与现在一致(配置后才是白名单);sourceDetail 接受 corouter_*,结账与 invoice.paid 元数据能带出 entryId;从 https://corouter.open-design.ai 登录能带 od_auth 回到原页;定价页 MiniMax M3.1 Flash 四档数字与 390px 布局正常。

备注:所有 workflow、commit、PR 或 compare range 都使用可点击的 Forgejo 链接。四个服务的 compare range 基于 EKS Pod 观察到的 BASE 29ddd44a2,DB migration 的 compare range 基于 migration workflow 的 BASE e626fd7e8;未使用四个服务最近成功 workflow 的 SHA 替代 Pod 实态(本次两者恰好一致)。