AMR 生产发布影响报告
当前生产发布点(EKS 实态 + workflow 记录)
Web、API、Link、Admin 的发布点来自 Grafana / Prometheus(datasource UID prometheus,namespace nexu)观察到的 Ready EKS Pod 镜像;DB migration 与 Model Routing Catalog 的发布点来自对应 Forgejo workflow 最近一次成功运行。越新的发布点意味着该维度已上线越多内容,feature 表里只列出发布点之后的变更;
发布点之前的 commit 属于已生效,归入 「已在生产生效」一节,不重复出现在 feature 表。
nexu/amr-web · container web4c9101650sha256:177555286f23dee3b836c66a8ce0fe11950589d469eccf94c899ae31c46bf8494c9101650...f1b0d7643):范围 7 commits,其中 apps/web 1 个nexu/amr-api · container api3b3ea92c1sha256:6599559c5f91bdad4c73298152779034a2938f27d32c74bc8808dee470f0a002nexu/amr-link · container link3b3ea92c1sha256:0b5379e4c4f0e360fd5534abda3c2d5ded5b63c52b798be13a50b9357d2b7adf3b3ea92c1...f1b0d7643):范围 13 commits,其中 services/link 3 个nexu/amr-admin · container admin4d9eee278sha256:dc8f4af23e8f449a8b71b69a20e9ac67e9ad7bf03abbc456ba578c01dc8b5fd94d9eee278...f1b0d7643):范围 41 commits,其中 apps/admin 7 个a7aa125f3(fix(auth): index account user lookups concurrently (#137))a7aa125f3...f1b0d7643):范围 32 commits,其中触及 db/migrations 1 个20260928085420_account_user_id_index.sql(#137)、20260924080059/080100_coding_plan_online_*.sql(#54/#118)、20260918000000 系列 GDPR/CMS/Touchpoint 等 migrationf3ab9fccd(feat(catalog): onboard Claude Haiku 5.5 (#209))审计对照:四个服务的 Forgejo prod 部署 workflow 最近成功记录(4c9101650 / 3b3ea92c1 / 3b3ea92c1 / 4d9eee278)与 EKS Pod 实态 commit 完全一致,未发现 GitOps 手工回滚导致的差异。本次未拉取 GitOps values 仓库(github.com/powerformer/apps 在当前环境不可达),审计结论以 Forgejo workflow 记录 + Pod 实态为准。
此次发布真正新增的 feature 和影响面
| Feature / Author / Commits | Web | API | Link | Admin | DB schema / migration | DB catalog(seed) |
|---|---|---|---|---|---|---|
|
XLAdmin 模型目录管理(UI + CLI),PostgreSQL 成为目录唯一配置源
运维与 agent 可直接在 Admin 页面或 依赖:必须先发 Link 再发 Admin,否则 Admin 调用的 Author:mrcfps、Liu Yi |
无。 | 无 runtime 变更(目录读取经由 Link 内部端点,不经 API)。 | 新增内部端点:POST /internal/model-routing-catalog/validate(用完整候选目录做运行时校验)、POST /internal/model-routing-catalog/test-backend(隔离运行时诊断后端模型)、POST /internal/model-routing-catalog/reload、POST /internal/model-routing-catalog/backend-model-availability-overrides/apply|clear;新增 repositories.ReadCatalogSnapshot 保证目录快照一致性读;internal_backend_diagnostics.go / internal_catalog_configuration.go / bifrostengine/validate_catalog.go。全部挂在既有 internalTokenAuth 之后,不对外暴露。 |
模型目录工作台(路由 + 定价 + 提供商合并视图、T1/T2/T3 分层与占比拖拽、锁定/等额分配、inactive 路由淡出划线);角色受限的创建/编辑/软删除 Server Action,含依赖检查、审计记录、revision 冲突保护与 Link 候选配置校验;后端模型诊断测试面板(Chat/Responses/Messages/Embeddings/图像/视频,含异步视频签名续轮询);CLI catalog configure --file 与只读查询(providers/models/backends/routes/snapshot/revision,JSON 输出、脱敏凭据引用)。#226 修复历史重名后端模型无法更新定价/元数据(仅创建时校验重名)。 |
无 schema / migration 变更。 | cb6e014f4:db/seeds/seed-model-routing-catalog.sql 与 seed-model-routing-catalog-test-activation.sql 被包进 DO $catalog_bootstrap$ 块,先对 link.providers/backend_models/public_models/public_model_routes 加 SHARE ROW EXCLUSIVE 锁并检测是否已有数据,已有则 RAISE NOTICE 并跳过;db/seeds/model_routing_catalog.py 描述改为「初始化空目录」,语义为 bootstrap-only。目录内容本身(模型/路由/定价)本列无新增。 |
|
LAdmin CLI SSO 登录与 API Token 管理
为 发布含义:本次唯一需要先跑 DB migration 的 feature;表未建时 CLI 登录与 API Token 页面都会失败。 Author:Liu Yi |
无。 | 无。 | 无。 | 新增 apps/admin/cli/auth.mjs、apps/admin/lib/server/admin/cli-auth.ts、cli-credentials.ts、app/[locale]/(protected)/api-tokens/ 页面与 features/api-tokens/api-tokens-panel.tsx、导航入口与 en/zh 文案;lib/server/admin/core.ts 与 router.ts 挂载新凭据路由。 |
新增 af748c660:db/migrations/20261010060924_admin_cli_credentials.sql — 新建 public.admin_cli_credentials(id / member_id FK → admin_members / name / kind∈{sso,api_token} / scope∈{read,write} / secret_hash 唯一索引 / created_at / expires_at / revoked_at),含 member_id 普通索引;db/schema/public.hcl 与 atlas.sum 同步。BASE_DB 之后唯一待执行 migration。 |
无 catalog 变更。 |
|
MLink 媒体与异步任务失败可观测性
修复媒体失败在后续供应商成功后被 failover 覆盖、以及失败的异步视频任务被记为「HTTP 轮询成功」的观测缺口。在 failover 替换 provider 或 error 之前发出有界、带 provider 归因的失败观测;视频 failed / expired / cancelled 即使 HTTP 200 也单独记录;图像重试最终成功时仍保留失败观测。 依赖:需配套 GitOps 侧 Grafana 告警规则(powerformer/apps#587)同时上线,媒体失败告警覆盖才完整;否则只有日志信号、无告警。不改 HTTP usage、计费结算、响应体、路由与重试策略。 Author:mrcfps |
无。 | 无。 | 新增 services/link/internal/handlers/media_observability.go(71 行)及 253 行回归测试;改动 internal_media_image.go、internal_media_video.go、openai.go,覆盖内部/公开图像生成与编辑、视频 create/retrieve、内容下载/transfer;provider 归因失败观测在任何 failover 替换之前发出。 |
无。 | 无 schema / migration 变更。 | 无 catalog 变更。 |
|
MWeb Design Plan:DeepSeek V4.1 Flash 额度翻倍
Design Plan 中 DeepSeek V4.1 Flash 的可用量等值翻倍(模型消耗系数 1 → 0.5),同步 Pricing 用量表、套餐卡片与额度说明文案;进度条改为固定非线性刻度(四套餐共用 728,000 次上限,切换套餐不移动刻度)。 仅前端展示:不改后端权益与计费配置,套餐价格、其他模型、7 天 / 5 小时窗口阈值保持不变。 Author:张辉华 |
apps/web/src/components/commerce/plans/:design-plan.ts(消耗系数与四套餐可用量/最高总额度)、landing-individual-cards.tsx、model-credits-copy.json(多语言)、pricing-design-plan-usage.tsx(固定刻度进度条)、pricing-model-credits.tsx;另更新 2 个 browser-agent 定价用例。 |
无 runtime 变更。 | 无。 | 无。 | 无 schema / migration 变更。 | 无 catalog 变更(模型目录与定价 seed 不在本 feature 内)。 |
|
MAdmin UI 恢复:右侧抽屉、标题对齐与统一筛选栏
恢复此前 #56 撤销的 Admin UI 优化:复杂表单改用右侧抽屉(#47)、页面标题与侧边导航一致并精简说明(#49)、用户 / 成员 / 订单 / 退款 / 风控使用统一带标签筛选栏(#50)。确认操作仍用弹窗;本次额外修复历史恢复抽屉 Escape 后焦点丢失的回归。 Author:Liu Yi |
无。 | 无。 | 无。 | 展示层改动:components/ui/query-filter-bar.tsx 新增;订单 / 退款管理 / 风控 / 用户 / 工作区 / 巡检页面、会员等级与模型规则/折扣弹窗、Touchpoint 活动管理器、历史恢复表单改为抽屉与统一筛选;i18n 文案与测试同步。未改 Server Action、API handler、repository、权限规则与数据库 schema。 |
无 schema / migration 变更。 | 无 catalog 变更。 |
|
SLink:DeepSeek Chat 的 developer role 归一化
DeepSeek 的直接 Chat 请求携带 Author:Liu Yi |
无。 | 无。 | services/link/internal/ providercompat adapter 边界角色转换(3 个文件,含真实供应商 red→green 测试 TestDeepSeekDeveloperRoleLive 与作用域回归 TestChatDeveloperRoleProviderScope);仅作用于 DeepSeek Chat 上游,其他供应商与原 Responses 上游角色语义不变。 |
无。 | 无 schema / migration 变更。 | 无 catalog 变更。 |
|
SAdmin 公开模型状态 API 与发布相位幂等化(引入后已回滚,净变更为零)
#127 曾新增无会话可读的 发布含义:无需为它做任何发布动作;无数据库迁移被引入或回退,无需特殊处理。 Author:Liu Yi |
无。 | 无。 | 无。 | 净零:app/api/public/v1/models/route.ts、lib/server/public-model-status.ts 及相关测试/README 已移除;lib/server/admin/core.ts、models.ts 恢复原行为。 |
无 schema / migration 变更(#193 明确无需迁移)。 | 无 catalog 变更。 |
范围外说明:f1b0d7643 fix(ci): 仅在缺少 main 数据库变更时要求 DB PR 同步(#232,Liu Yi)只改 DB PR 同步门禁逻辑,不进入任何维度列,也不影响任一运行时。
已在生产生效(发布点之前,本次不重复发布)
以下 commit 均在对应生产发布点之前,已在生产运行。四个服务以 EKS Pod 实态为基线,DB migration 与 Catalog 以 workflow 记录为基线;从 main 重新发布时只分析各自基线之后的净新增。
- Catalog(BASE
f3ab9fccd,2026-10-07T22:04:14Z 已生效):#209 上线 Claude Haiku 5.5;#205 禁用 BytePlus DeepSeek v4.1 Flash 路由;#158 GPT-6.1 Sol;#157 Aiping 降级并优先 DeepSeek/BytePlus;#153 恢复 BytePlus DeepSeek/GLM 文本路由;#146 Claude Sonnet 5.5;#141 / #139 BytePlus / Aliyun DeepSeek 权重调整;#126、#122、#112 等更早的目录变更。 - DB migration(BASE
a7aa125f3,2026-09-28 已生效):20260928085420_account_user_id_index.sql(#137,并发建索引)、Coding Plan 在线配置迁移(#54 / #118)以及更早的 GDPR / CMS / Touchpoint 相关 migration——这些已在生产库执行,不再随本次发布重复运行。 - Link(BASE
3b3ea92c1,2026-09-30T13:48:31Z 已生效):#172 BytePlus 历史与 DeepSeek 请求兼容、#168 输入限额与上下文溢出错误归一化、#161 provider 请求归一化与本地校验错误分类、#145 BytePlus 兼容集中化、#135 / #136 stream_options 与 reasoning summary 处理。 - API(BASE
3b3ea92c1,2026-09-30 已生效):#160 workspace billing ledger 查询限界、#134 缺失 HTTP metric 路由分类、#132 降低计费预检 / 快照 / 鉴权的数据库压力。 - Web(BASE
4c9101650,2026-10-08T14:21:14Z 已生效):#219 Design Plan 移除 Sol 并加入 Haiku 5.5、#171 Plus 套餐加入 GPT-6 Sol、#169 GPT-6.1 Sol 限时额度提升、#167 / #165 / #150 / #148 Design Plan 展示与估算调整。 - Admin(BASE
4d9eee278,2026-09-24T10:48:01Z 已生效):#125 GO 额度统一遵循 Admin 会员权益配置、#119、#78、#63、#57 会员额度以美元展示、#56 Admin UI 回退、#50 表格筛选统一、#49 标题对齐导航。 - 范围内已回退(净变更归零,本次不发布):#127(
0dc3fc2fb)→ #193(ed2fdcd97),公开模型状态 API 与发布相位幂等化已完整撤销,文件恢复原状;未引入任何 migration,无需特殊处理。
发布建议
- Migration 判断:BASE_DB(
a7aa125f3)之后新增 1 个 migration ——db/migrations/20261010060924_admin_cli_credentials.sql(af748c660,#229),并同步了atlas.sum与db/schema/public.hcl。需要先运行 deploy-db-migrations-prod.yml。范围内没有被回退的 migration。 - 服务发布顺序(按依赖):
DB migrations(1 个 migration)→ Link(3 个 commit,含 #159 的内部目录端点与 #144/#230)→ Admin(7 个 commit,#159 依赖 Link 先上线)→ Web(1 个 commit,#222)→ Catalog(1 个 seed 相关 commit,#159 bootstrap-only 保护,在已填充的库上为 no-op)。
API 本维度无新增 commit(BASE 之后services/api零改动),可不发布;若要与其他服务对齐版本,发布也不会带来行为变化。 - 数据 seed / catalog 判断:本次 catalog 变更只有 #159 的 bootstrap-only 保护,由 deploy-model-routing-catalog-prod.yml 的
apply步骤覆盖即可;生产目录已初始化,执行结果会是「skipped / 保留 Admin 配置」,不需要额外 runbook,也不会覆盖线上目录。 - 发布后观测:
- DB:确认
public.admin_cli_credentials表与三个索引存在,atlas.sum校验通过。 - Admin:SSO 登录与 API Token 创建/撤销可用;模型目录工作台能读改供应商/后端模型/公开模型/路由;提交后 Link refresh 状态为成功(失败时 UI 会提示 pending refresh)。
- Link:
POST /internal/model-routing-catalog/validate、/test-backend、/reload返回正常且受 internal token 保护;观察目录 reload 是否有错误。 - 供应商链路:对公共模型
deepseek-v4.1-flash的直连 Chat(流式与非流式)不再出现 422(developer role)。 - 可观测性:媒体失败观测日志(provider 归因)出现且被 APE/Grafana 告警规则命中(需 powerformer/apps#587 已上线)。
- Web:Design Plan 用量表与卡片显示 DeepSeek V4.1 Flash 翻倍额度,四套餐进度条刻度固定(切换套餐不移动),多语言文案与官网一致。
- DB:确认
备注:本报告所有 workflow、commit、PR 与 compare range 均指向 Forgejo code.powerformer.net/core/amr,workflow 链接指向可触发的 workflow 页面。四个服务的 compare range 基于 EKS Pod 观察到的 BASE(4c9101650 / 3b3ea92c1 / 3b3ea92c1 / 4d9eee278),DB migration 与 Catalog 的 compare range 基于各自 workflow 的 BASE(a7aa125f3 / f3ab9fccd),未使用统一最旧基线。
数据来源:Grafana prometheus datasource(kube-state-metrics,namespace nexu),观察时刻 2026-10-10T09:32:37Z~09:32:42Z;Forgejo Actions runs API(/repos/core/amr/actions/runs)。