PR 69 Hotfix · 生产发布计划与影响

计划源码:hotfix/pr69-legacy-model-discovery @ 78b1d88aPR #76 已合并)。分析时间:2026-09-23 03:13 UTC。生产基线以 EKS 当前 Deployment / Ready Pod 镜像为准。业务补丁提交为 055a5e8a;后续 78b1d88a 只调整生产 Workflow 授权规则和测试,因此两提交的 API / Link 运行时代码相同。

按步骤看生产会发生什么

步骤当前生产 → 目标源码新增运行时行为用户可见影响放行依据
1 · API
amr-api
feb5eb7f78b1d88a
现有 2/2 Ready。
内部 Billing Scope 请求若带 x-vela-model-catalog-scope: active-workspace,且没有显式 workspace / run ID,API 读取账号当前 workspace,再执行原有成员与权益校验。生产开关 WORKSPACE_BILLING_LINK_SCOPE_V2=true 已在 ConfigMap 核实。 旧 Link 尚不发送标记,因此 API 单独上线不会触发新的模型目录选择逻辑。其他 API 请求沿原路径处理。 API 新 Pod 全部 Ready;旧 Link 的模型目录、聊天与扣费路径正常。
2 · Link
amr-link
4676d97e78b1d88a
现有 2/2 Ready。
仅旧式、无 workspace、无 Open Design run ID 的非计费模型目录请求发送内部标记;不再复用这一可变选择的 Billing Scope 缓存。显式 workspace、固定 run 与实际执行的扣费请求不走此分支。 当前选择 Team 的旧客户端刷新 vela model list 后,应看到 Team 可用模型,不再沿用个人 Free 模型锁。客户端已有本地缓存不会主动失效。 Link 新 Pod 全部 Ready;Team / 个人切换验证通过;模型列表错误率、延迟无异常。
不执行
其他维度
Web 当前 4676d97e;Admin 当前 0a124306。DB 与 catalog 不以服务镜像版本推断。 本次不触发 Web、Admin、DB migration、catalog、Public Pricing 的生产 Workflow。 无计划中的 Web/Admin 页面改动、数据库结构改动或模型路由数据更新。 确认发布清单中只有 API、Link 两个服务 Workflow。

目标分支相对生产的净影响

按模板原则分别从各组件的实际生产发布点计算;下面只计入本次明确要执行的两个服务 Workflow。

Feature / 来源WebAPILinkAdminDB migrationCatalog
M旧客户端模型目录跟随当前 workspace

原 PR #69hotfix PR #76 → 业务补丁 055a5e8a → 发布 HEAD 78b1d88a

不发布。 3 个业务 / 接口源码文件,2 个测试文件;新增内部标记的服务端解析。 1 个业务源码文件,1 个测试文件;旧目录请求发送标记并跳过可变 scope 缓存。 不发布。 不执行;PR 无 schema / migration。 不执行;PR 无 seed / catalog 数据变更。

API 唯一的基线附带差异:API 线上提交 feb5eb7f 早于 hotfix 起点 4676d97e。两者的 API Docker 构建输入除 PR 改动外,只差 packages/shared/src/public-pricing.ts 新增的 ittr 定价嵌入 locale;API 路由未使用该 locale schema,预计不改变 API 对外行为。

Link 基线:hotfix 起点与线上 Link 的提交完全相同,因此 Link 镜像新增的业务代码仅为 PR 69 的兼容逻辑。

需要重点观察的影响

用户路径
Team 付费用户:选中 Team → 旧客户端刷新模型目录 → Team 模型可用。切回个人 workspace 后目录应同步恢复个人权益。服务端当前选择是账号级状态,不保证等于某个标签页或项目的 workspace。
性能与可用性
这类目录请求不再使用 Link 的旧 Billing Scope 缓存,因而增加实时 API 查询。API 或 workspace 选择不可用时,目录可能返回错误而非旧缓存结果;重点看 /v1/models 错误率、延迟及 API Billing Scope 5xx。
权限与计费边界
API 继续验证成员与权益;显式 workspace、固定 run、普通聊天及实际运行的收费归属保持原样。不会合并多个 Team 的权益。

执行门槛、回退与排除项

  1. 发布入口:当前 hotfix HEAD 78b1d88a 已把共享授权规则改为允许 main 或非空的 hotfix/* ref;授权人白名单、首次运行限制及 prod 环境审批仍保留。在此 ref 上分别运行 mode=preflight,验证授权和构建前检查。真实发布必须明确使用 mode=deploy;镜像 tag 将按本次 Workflow 的 github.sha 使用 prod-78b1d88ae5bedf956d57451820dd96962216f499
  2. 发布前复核:重新读取 API、Link 当前 Pod 镜像与 GitOps 期望 tag;若线上基线或 hotfix HEAD 变化,重新计算净差异。确认生产开关仍为 true
  3. 顺序与回退:先 API、后 Link;每步核对新镜像、Pod Ready 与错误率。若 Link 后出现问题,先通过受审查的 GitOps 变更恢复 Link 的已知健康 tag prod-4676d97e17fb7518253506fe9d9f65c3c2b9782f;必要时再恢复 API 的 prod-feb5eb7fa7df3c997d10460c7c856861d166ac1b。回退前确认无更新的健康发布。
  4. 不要顺手发布其他组件:Web 源码输入与其线上基线相同,重建无收益;共享授权规则现在也允许其他生产 Workflow 从 hotfix/* 运行,因此发布清单必须明确只选择 API 和 Link;Admin 线上提交 0a124306 不在该 hotfix 分支祖先线上,目标树有 33 个 Admin / shared 构建输入文件差异,不能把 Admin 视作本次 hotfix。DB、catalog 和 Public Pricing 均有独立的生产 Workflow,未纳入本计划。

业务补丁验证:通过 055a5e8a 上的 pnpm lint、API 146 个测试文件 / 2447 个测试、Link make check(gofmt、vet、全量 Go 测试)、git diff --check78b1d88a 只改 Workflow 与其测试。

证据:已合并 PR #76原 PR #69、2026-09-23 03:13 UTC 前的只读 EKS Deployment 查询、生产 amr-api-config 开关检查及 hotfix Git diff。该报告描述从指定 hotfix 源码只发布 API 和 Link 的计划影响。