AMR 生产发布影响报告
当前生产发布点(EKS 实态 + Forgejo workflow 记录)
Web、API、Link、Admin 的发布点来自 Grafana / Prometheus 观察到的 Ready EKS Pod 镜像(namespace nexu,datasource prometheus,由 kube-state-metrics 采集,样本新鲜度均在 30 秒内);DB migration 与 Catalog 的发布点来自对应 Forgejo workflow 最近一次成功运行。四个服务均已校验:同一服务所有 Ready Pod 的 commit 与 digest 一致、副本数 spec = updated = available、无滚动中或回滚中的混合状态。
feature 表里只允许列出发布点之后的变更;发布点之前的 commit 属于已生效,归入「已在生产生效」一节。目标 commit 均为 4c9101650(fix(pricing): Design Plan 移除 Sol 并加入 Haiku 5.5 (#219),2026-10-08 14:21,张辉华)。
nexu/amr-web · container webkube_pod_container_info,image 过滤 amr-web:prod-[0-9a-f]{40} 且仅取 Ready Pod)4c9101650sha256:177555286f23dee3b836c66a8ce0fe11950589d469eccf94c899ae31c46bf8494c9101650;与 Pod:一致(workflow 最近成功运行的 commit_sha 与 Pod 实态相同)4c9101650...4c9101650):0 commits,其中 0 个触及该服务目录的变更nexu/amr-api · container apikube_pod_container_info,image 过滤 amr-api:prod-[0-9a-f]{40} 且仅取 Ready Pod)3b3ea92c1sha256:6599559c5f91bdad4c73298152779034a2938f27d32c74bc8808dee470f0a0023b3ea92c1;与 Pod:一致(workflow 最近成功运行的 commit_sha 与 Pod 实态相同)3b3ea92c1...4c9101650):6 commits,其中 0 个触及该服务目录的变更nexu/amr-link · container linkkube_pod_container_info,image 过滤 amr-link:prod-[0-9a-f]{40} 且仅取 Ready Pod)3b3ea92c1sha256:0b5379e4c4f0e360fd5534abda3c2d5ded5b63c52b798be13a50b9357d2b7adf3b3ea92c1;与 Pod:一致(workflow 最近成功运行的 commit_sha 与 Pod 实态相同)3b3ea92c1...4c9101650):6 commits,其中 23cfe2099 fix(link): observe media attempt and asynchronous task failures (#144)nexu/amr-admin · container adminkube_pod_container_info,image 过滤 amr-admin:prod-[0-9a-f]{40} 且仅取 Ready Pod)4d9eee278sha256:dc8f4af23e8f449a8b71b69a20e9ac67e9ad7bf03abbc456ba578c01dc8b5fd94d9eee278;与 Pod:一致(workflow 最近成功运行的 commit_sha 与 Pod 实态相同)4d9eee278...4c9101650):34 commits,其中 0dc3fc2fb feat(admin): expose public model status API (#127)、724488f4b feat(admin): restore drawers, navigation titles and query filters (#188)、ed2fdcd97 revert(admin): rollback public model status API and release phase idempotency (#127) (#193)此次发布真正新增的 feature 和影响面
| Feature / Author / Commits | Web | API | Link | Admin | DB schema / migration | DB catalog(seed) |
|---|---|---|---|---|---|---|
|
LAdmin 控制台 UI 恢复:抽屉表单、导航标题对齐、统一带标签筛选栏
恢复此前被 #56 撤销的 Admin UI 优化:表单改用右侧抽屉(#47),页面 H1 与侧边导航标题一致并精简说明(#49),用户、成员、订单、退款、风控使用统一带标签筛选栏(新增 Author:Liu Yi |
无。 | 无。 | 无。 | 29 files,+1799 / −1440,全部在 apps/admin/:页面 app/[locale]/(protected)/{activities,audit-logs,coding-plan,coupons,email-domains,entitlements,members,message-center,models/auto-availability,models/list,orders,patrol,refund-management,risk-control,users,workspaces}/page.tsx,新增 components/ui/query-filter-bar.tsx,组件 features/membership/{tier-dialog,model-rule-dialog,model-discount-dialog,model-groups-panel}.tsx、features/refund-management/historical-cancel-only-form.tsx、features/touchpoints/activity-manager.tsx、i18n 中英文案与测试。仅展示层、文案与测试;未改 Server Actions、API handler、后端 repository、权限规则或数据库 schema。风险点集中在抽屉打开/关闭(含 Escape 焦点)与筛选栏 URL 同步。 |
无 schema / migration。 | 无 catalog 变更。 |
|
MLink:媒体调用失败与异步任务失败的告警可用观测
修复「媒体失败在告警中丢失」的问题:此前后备供应商成功会覆盖先前失败,异步视频任务失败还会被记成 HTTP 200 的成功轮询。现在在切换供应商 / 替换终态错误之前,先记录带上游归属维度(provider / model / request_id / endpoint)的有界 WARN 日志 Author:mrcfps |
无。 | 无。 | commit 共 8 files,+357 / −3;其中 services/link/ 7 files,+353 / −3:新增 internal/handlers/media_observability.go(logMediaProviderFailure / logMediaTaskFailure)与 253 行单测 media_observability_test.go;internal/handlers/openai.go 在图片生成 / 编辑、视频创建 / 查询 / 下载失败与 io.Copy 中断处接入日志;internal_media_image.go / internal_media_video.go 接入内部接口同名路径并补测试。另有 specs/current/link/provider/README.md 记录日志契约。无路由、无公共响应结构、无计费路径变更。 |
无。 | 无 schema / migration。 | 无 catalog 变更。 |
已在生产生效(发布点之前,本次不重复发布)
以下 feature / commit 均在对应生产发布点之前,已在生产运行。四个服务以 EKS Pod 实态为基线,DB migration 与 Catalog 以 Forgejo workflow 记录为基线;若从 main 重新发布,只分析各自基线之后的净新增。
- Web(BASE_WEB
4c9101650已生效,2026-10-08T15:05:54Z @ run #4071):本轮起点即 main HEAD,包含4c9101650Design Plan 移除 GPT-6.1 Sol 并加入 Claude Haiku 5.5(#219,724488f4b之后的唯一 web 变更)、37d7d377cPlus 套餐模型列表加入 GPT-6 Sol(#171)、5993bc6fcDesign Plan 加入 GPT-6.1 Sol 与限时用量加成(#169)、4fdebb905折叠的 Design Plan 行避开 View all(#167)、c56bb26daDesign Plan 加入 MiMo V2.6 Pro(#165)、125902bef同步 Design Plan 权益 / 模型 / 用量估算(#150)、2519d1014隐藏 Design Plan 额度金额(#148)。 - Catalog(BASE_CATALOG
f3ab9fccd已生效,2026-10-08T06:37:30Z @ run #3923):Catalog 基线已于 2026-10-08 前移到f3ab9fccd,即f3ab9fccd上线 Claude Haiku 5.5(#209,新 public model + 双 route + 分层计价)已 apply 到生产目录;比它更早的940218638停用 BytePlus DeepSeek V4.1 Flash 路由(#205)、392374aba接入 GPT-6.1 Sol(#158)、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 内容;Haiku 5.5 如需对外可请求,仍需既有 Admin 发布相位动作(该数据侧工作已于 10-08 apply 完成)。 - DB migration(BASE_DB
a7aa125f3已生效,2026-09-28T11:54:21Z @ run #3104):a7aa125f3(#137)db/migrations/20260928085420_account_user_id_index.sql(account user 查询索引,concurrent 创建)已执行,db/atlas.hcl与db/schema/public.hcl已同步。这仍是仓库中最新的一份 migration 文件,基线之后(含 Catalog 的 8 次提交)没有任何新的db/migrations/或db/schema/变更。 - Link(BASE_LINK
3b3ea92c1已生效,2026-09-30T14:06:47Z @ run #3476):3b3ea92c1BytePlus 历史处理与 DeepSeek 请求兼容(#172)、b28db717d输入上限与上下文溢出错误归一(#168)、2180569caprovider 请求归一与本地校验错误分类(#161)、126947877统一 BytePlus 请求兼容层(#145)、26370c56e省略 BytePlus 不支持的 reasoning summary 字段(#136)、6e4509a96转换前剥离不支持的stream_options(#135)。基线之后只有本报告 feature 表第 2 行的 #144 一条 Link 变更。 - API(BASE_API
3b3ea92c1已生效,2026-09-30T14:07:02Z @ run #3477):ddc167a31收敛 workspace billing ledger 查询上界(#160)、95c2819d4补齐缺失 HTTP 指标路由归类(#134)、e43cbd2b6降低 billing preflight / snapshot / 鉴权的数据库负载(#132)。API 与 Link 的发布点相同(同一批次发布)。基线之后 6 个 commit 全部不触及services/api/,本轮 API 无变更。 - Admin(BASE_ADMIN
4d9eee278已生效,2026-09-24T10:53:45Z @ run #2873):4d9eee278(#125)GO 额度统一遵循 Admin 会员权益配置。Admin 发布点是六个维度中最旧的(2026-09-24),除本报告 feature 表第 1 行的 #188 外没有净新增。 - 范围内已回退(净变更归零,本次不发布):
0dc3fc2fbAdmin 公开模型状态 API + 发布相位幂等化(#127)被ed2fdcd97(#193)完整 revert;该 feature 从未部署到生产。
发布建议
- Migration 判断:不需要跑 migration。BASE_DB
a7aa125f3(2026-09-28)之后到 main 的 25 个 commit 中,没有任何db/migrations/或db/schema/变更;最新 migration 仍是已执行的20260928085420_account_user_id_index.sql,无需触发 deploy-db-migrations-prod.yml。 - 服务发布顺序:本轮只需发布 Link、Admin 两个服务;Web / API 不必滚动(Web 发布点已是 main HEAD;API 之后没有
services/api/变更),Catalog 与 DB 不必触发。- Admin:触发 deploy-admin-eks-prod.yml,发布
724488f4b(发布点之后 34 个 commit 中净剩 1 个 feature)。 - Link:触发 deploy-link-eks-prod.yml,发布
23cfe2099共 1 个 commit(滚动后应等于 main HEAD)。 - 两者之间没有依赖,可并行;若希望告警链路一次性对齐,建议 先 Link、后 Admin,并与 apps 仓库的 Grafana 规则(apps#587)同批上线,便于在同一时间窗内做投递验证。
- Web 若为求 Pod 与 HEAD 完全一致而重发,也不会带来运行时变化(发布点 == 4c9101650)。
- Admin:触发 deploy-admin-eks-prod.yml,发布
- 数据 seed / catalog 判断:
- Catalog 已追平到
f3ab9fccd(10-08 apply),本轮没有待 apply 的 catalog 内容;重跑 deploy-model-routing-catalog-prod.yml 至 4c9101650 是无净数据变化的幂等操作,除非需要重新确认 baseline,不建议触发。 - Public Pricing 仍是独立 workflow 的落后项:
data/json/public_pricing.json由 deploy-public-pricing-prod.yml 单独发布,当前基线仍是0ab43a985(2026-09-24)@ run #2813。自该基线以来价格文件已被2134cdb88(Sonnet 5.5)、392374aba(GPT-6.1 Sol)、f3ab9fccd(Haiku 5.5)三次修改,若希望/api/v1/public/pricing/latest与官网价格表出现这三行价格,需要单独触发该 workflow。这属于价格投影追平,不改变模型可用性;若不需要对外价格先更新,可暂不触发。
- Catalog 已追平到
- 发布后观测:
- Pod 实态:Link 与 Admin 镜像 tag 应变为
prod-4c9101650…,Ready 恢复 2/2,updated / available 与 spec 一致(当前 Link 与 Admin 的 spec 均为 2);Web(prod-4c9101650…,digestsha256:177555286f23dee3b…)与 API(prod-3b3ea92c1…,digestsha256:6599559c5f91bdad4…)镜像与 digest 应保持本报告值不变,用于确认「无净变化」预期。 - Link 媒体观测(#144):图片生成 / 编辑、视频创建 / 查询 / 下载失败时应出现 Loki 中
event=provider_attempt_failed(upstream media request failed)与event=provider_task_failed(upstream media task failed)日志,且带 provider / model / request_id / endpoint 归属字段;视频任务failed/expired/cancelled在 HTTP 200 轮询下也应产生日志。告警真正触发需要 apps 仓库 Grafana 规则已部署(apps#587);发布后应做一次投递验证(PR 自述 post-deployment delivery validation 仍待完成),并确认计费 / usage 口径未受这些日志改动影响。 - Admin UI 回归(本轮影响面最大的 feature):用户 / 成员 / 订单 / 退款 / 风控五个页面筛选栏提交后 URL 参数与列表正确、重置能清空查询;会员等级额度按美元提交后换算正确(如 $20.50 → 205000 credits);模型规则 / 模型折扣 / 活动配置抽屉保存与失败恢复;历史恢复抽屉 Escape 后焦点回到触发入口。鉴权边界保持不变:
GET /api/public/v1/models应仍为 404(该路由已随 #127 回退,未被本次发布引入)。
- Pod 实态:Link 与 Admin 镜像 tag 应变为
备注:本报告所有 workflow、commit、PR 与 compare range 均指向 Forgejo code.powerformer.net/core/amr,不使用 GitHub Actions。四个服务的 compare range 基于 Grafana / Prometheus 观察到的 Ready Pod 镜像 commit;DB migration 与 Catalog 的 compare range 基于各自 workflow 最近一次成功运行的 commit_sha;四个服务维度另附对应 deploy-*-eks-prod.yml 最近成功记录作为审计对照。