AMR 生产发布影响报告

生成时间:2026-10-05(观察时刻 2026-10-05T02:03:43Z);分析对象:从 origin/main(HEAD 724488f4b)发布 Web、API、Link、Admin、DB migration 与 Model Routing Catalog 的影响分析。四个服务以 EKS Pod 实际运行镜像为生产发布点,DB migration 与 Catalog 以对应 Forgejo workflow 最近成功运行的 commit_sha 为生产发布点;六个维度分别计算变更范围。

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

Web、API、Link、Admin 的发布点来自 Grafana / Prometheus 观察到的 Ready EKS Pod 镜像(namespace nexu,datasource prometheus);DB migration 与 Catalog 的发布点来自对应 Forgejo workflow 最近一次成功运行。 feature 表里只允许列出发布点之后的变更;发布点之前的 commit 属于已生效,归入「已在生产生效」一节。目标 commit 均为 724488f4b(feat(admin): restore drawers, navigation titles and query filters (#188),2026-10-04 14:04,Liu Yi)。

Web · EKS Pod 实态
Workload:nexu/amr-web · container web
观察时间:2026-10-05T02:03:43Z(Grafana Prometheus amr-web 镜像过滤)
Ready Pods:2 / 2(updated 2,available 2)
实际 commit:37d7d377c
镜像 digest:sha256:64720a397a3f80287a7ec78ae1aee018fca99a1ff24def173e769e08272d3c18
Workflow 审计(仅供参考):deploy-web-eks-prod.yml 最近成功 run #3465 @ 37d7d377c;与 Pod:一致(workflow 最近成功运行的 commit_sha 与 Pod 实态相同)
本次新增(37d7d377c...724488f4b):2 commits,其中 0 个触及该服务目录的变更
发布点之后 2 个 commit(3b3ea92c1 link 修复、724488f4b admin UI)均不触及 apps/web/,Web 无净新增内容。
API · EKS Pod 实态
Workload:nexu/amr-api · container api
观察时间:2026-10-05T02:03:43Z(Grafana Prometheus amr-api 镜像过滤)
Ready Pods:2 / 2(updated 2,available 2)
实际 commit:3b3ea92c1
镜像 digest:sha256:6599559c5f91bdad4c73298152779034a2938f27d32c74bc8808dee470f0a002
Workflow 审计(仅供参考):deploy-api-eks-prod.yml 最近成功 run #3477 @ 3b3ea92c1;与 Pod:一致(workflow 最近成功运行的 commit_sha 与 Pod 实态相同)
本次新增(3b3ea92c1...724488f4b):1 commits,其中 0 个触及该服务目录的变更
发布点之后仅 724488f4b 一个 commit,不触及 services/api/,API 无净新增内容。
Link · EKS Pod 实态
Workload:nexu/amr-link · container link
观察时间:2026-10-05T02:03:43Z(Grafana Prometheus amr-link 镜像过滤)
Ready Pods:4 / 4(updated 4,available 4)
实际 commit:3b3ea92c1
镜像 digest:sha256:0b5379e4c4f0e360fd5534abda3c2d5ded5b63c52b798be13a50b9357d2b7adf
Workflow 审计(仅供参考):deploy-link-eks-prod.yml 最近成功 run #3476 @ 3b3ea92c1;与 Pod:一致(workflow 最近成功运行的 commit_sha 与 Pod 实态相同)
本次新增(3b3ea92c1...724488f4b):1 commits,其中 0 个触及该服务目录的变更
发布点之后仅 724488f4b 一个 commit,不触及 services/link/,Link 无净新增内容。
Admin · EKS Pod 实态
Workload:nexu/amr-admin · container admin
观察时间:2026-10-05T02:03:43Z(Grafana Prometheus amr-admin 镜像过滤)
Ready Pods:2 / 2(updated 2,available 2)
实际 commit:4d9eee278
镜像 digest:sha256:dc8f4af23e8f449a8b71b69a20e9ac67e9ad7bf03abbc456ba578c01dc8b5fd9
Workflow 审计(仅供参考):deploy-admin-eks-prod.yml 最近成功 run #2873 @ 4d9eee278;与 Pod:一致(workflow 最近成功运行的 commit_sha 与 Pod 实态相同)
本次新增(4d9eee278...724488f4b):29 commits,其中 0dc3fc2fb feat(admin): expose public model status API (#127)、724488f4b feat(admin): restore drawers, navigation titles and query filters (#188)
发布点之后 29 个 commit 中只有 #127(0dc3fc2fb)与 #188(724488f4b)触及 apps/admin/,即本报告 feature 表内容。
DB migration · workflow 记录
最近成功:run #3104 @ 2026-09-28T11:54:21Z
发布点 commit:a7aa125f3
本次新增(a7aa125f3...724488f4b):20 commits,其中触及 db/migrations/ + db/schema/ 的变更 0 个
数据源为 Forgejo run 列表(tea api /repos/core/amr/actions/runs),非 GitHub Actions。
Model Routing Catalog · workflow 记录
最近成功:run #3325 @ 2026-09-30T03:35:18Z
发布点 commit:392374aba
本次新增(392374aba...724488f4b):9 commits,其中触及 data/json/ + db/seeds/ 的变更 0 个
数据源为 Forgejo run 列表(tea api /repos/core/amr/actions/runs),非 GitHub Actions。

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

feature 表只包含「各维度生产发布点之后」的变更:四个服务以 EKS Pod 实态为基线,DB migration 与 Catalog 以 workflow 记录为基线。发布点之前已生效的内容见 「已在生产生效」。

结论:本轮只有 Admin 一个维度有净新增变更(2 个 feature,29 个 commit 中 2 个触及 apps/admin/)。Web / API / Link / DB migration / Catalog 的发布点之后均无触及本维度目录的变更,重发不会带来运行时变化。

Feature / Author / Commits Web API Link Admin DB schema / migration DB catalog(seed)
LAdmin 控制台 UI 恢复:抽屉表单、导航标题对齐、统一带标签筛选栏

恢复被 #56 撤销的 Admin UI 优化:表单改用右侧抽屉(#47),页面 H1 与侧边导航标题一致并精简说明(#49),用户、成员、订单、退款、风控使用统一带标签筛选栏(query-filter-bar,筛选条件同步到 URL 参数、重置清除查询;#50);确认操作仍为弹窗。附带修复历史恢复抽屉关闭后的焦点丢失(Escape 回到触发入口)并补充先失败后通过的焦点回归测试。影响对象是内部运营/风控/财务人员,影响面广(17 个顶层页面 + 会员等级/模型规则/模型折扣/活动配置弹窗)。

Author:Liu Yi

  • 724488f4b feat(admin): restore drawers, navigation titles and query filters (#188)
无。 无。 无。 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。
无 schema / migration。 无 catalog 变更。
MAdmin 公开模型状态 API + 发布相位变更幂等化

新增无需 Admin 会话即可读取的 GET /api/public/v1/models(该路由刻意位于 /api/admin/* 之外,原鉴权路由不变):对 name / status / visibility / releasePhase 做精确过滤,未知、为空、重复或非法过滤返回 400,响应 Cache-Control: private, no-store,暴露模型身份与类型、技术状态、可见性、发布相位、可用路由状态、阻塞项、首次部署时间与当前相位变更时间;不暴露 provider 配置、凭据、定价、后端名或路由 ID。同时把 on(updateReleasePhase) 改为幂等:相位不变时提前返回,不再刷新 updated_at、不新增审计事件,使 releasedAt 语义稳定为 released → public_model_release_gates.updated_at、pre_release / archived → null。

注意:该 feature 在 2026-10-02 的报告中已提示为待发布,至今仍未部署(仍位于 BASE_ADMIN 之后),因此继续列入本轮 feature 表;本轮真正新出现的是上一条 #188。

Author:Liu Yi

无。 无(端点由 Admin 服务的 apps/admin 提供,未改 services/api/)。 无。 7 files,+535 / −27:新增 app/api/public/v1/models/route.ts 与 lib/server/public-model-status.ts,调整 lib/server/admin/models.ts、lib/server/admin/core.ts(发布相位写入幂等化),补充 README.md 与两个测试文件。属于新的对外读取契约(schemaVersion: 1)与 Admin 模型发布写路径语义调整。 无 schema / migration。 无 catalog 变更。

范围内其余 commit 均不触及六个维度的 runtime 路径,因此不进入 feature 表:8a48165f6 fix(ci): 移除 Forgejo 不支持的 workflow permissions(#140,仅 .forgejo/workflows/ 的 PR/CI 工作流,无 prod deploy 影响)、37639613f tools/code_quality(#129)、8b22b0b11 文档校准(#130)。均不改变服务运行时行为,也不影响 deploy-*-prod.yml。

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

以下 feature / commit 均在对应生产发布点之前,已在生产运行。四个服务以 EKS Pod 实态为基线,DB migration 与 Catalog 以 Forgejo workflow 记录为基线。

发布建议

  1. Migration 判断:不需要跑 migration。BASE_DB a7aa125f3(2026-09-28)之后到 main 的 20 个 commit 中,没有任何 db/migrations/ 或 db/schema/ 变更;最新 migration 仍是已执行的 20260928085420_account_user_id_index.sql。无需触发 deploy-db-migrations-prod.yml。
  2. 服务发布顺序:本轮只有 Admin 一个服务需要发布,单独触发 deploy-admin-eks-prod.yml(发布 724488f4b)即可,一次性带上 #127 与 #188,不存在 DB → Catalog → Link → API → Web 的顺序约束。Web(37d7d377c,落后 2 个不触及 apps/web/ 的 commit)、API 与 Link(已等于 main HEAD 724488f4b)本轮不必滚动发布,重发不会带来任何运行时变化。
  3. 数据 seed / catalog 判断:不需要 apply catalog。BASE_CATALOG 392374aba(2026-09-30T03:35Z run #3325)已经越过 main 上全部 data/json/ 与 db/seeds/ 变更,其后的 9 个 commit 中 0 个 catalog 变更,无需触发 deploy-model-routing-catalog-prod.yml;即使重跑也只是幂等 apply。注意 Catalog 中 GPT-6.1 Sol 的 release phase 按设计仍为 pre_release,用户可见性由 Admin 侧的发布相位操作决定,与本次 Admin 代码部署无关。
  4. 发布后观测:
    • Admin Pod:镜像 tag 变为 prod-724488f4b…(Prometheus kube_pod_container_info),部署后 Ready 恢复 2/2、updated / available 与 spec 一致、无 unavailable 副本。
    • 公开模型状态 API:GET /api/public/v1/models 无 Cookie 返回 200 且 Cache-Control: private, no-store;非法 releasePhase 返回 400;POST 返回 405;GET /api/admin/models/tables 无鉴权仍返回 401(确认鉴权边界未被放宽)。
    • Admin 写入路径:切换一次模型 release phase,确认 releasedAt 只在相位真正变化时刷新;重复提交同一相位不刷新 updated_at、不新增审计事件。
    • Admin 运营侧回归(#188 影响面最广):用户 / 成员 / 订单 / 退款 / 风控五个页面的筛选栏提交后 URL 参数与列表正确、重置能清空查询;会员等级额度按美元提交后数额换算正确(如 $20.50 → 205000 credits);模型规则 / 模型折扣 / 活动配置抽屉的保存与失败恢复;历史恢复抽屉 Escape 后焦点回到触发入口。
    • 未滚动发布的维度:Web / API / Link 的 Pod 镜像与 digest 应保持本报告值不变,用于确认「无净变化」预期。

备注:本报告所有 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。