wangbo
b6ef0435ab
fix(controller): 隔离无关媒体凭据校验
...
容量控制器只负责读取容量状态和调整 Worker 副本,按最小权限不注入 OSS 或供应商凭据;全局媒体配置校验却导致控制器在生产启动时 CrashLoop。
容量控制器角色现在跳过不会使用的直传 OSS 校验,API/Worker 仍保持原校验;发布先以零副本应用目标状态,再用精确镜像和同构配置运行 Ready 预检,成功后才扩到双副本;同时补齐迁移 Job 的 restricted PodSecurity 配置。
验证:Go 全量测试、go vet、角色回归测试、bash -n、ShellCheck、人工发布测试、生产 server-side dry-run。
2026-07-31 23:52:22 +08:00
wangbo
993fb7d8be
fix(release): 兼容首次创建容量控制器
...
旧生产集群没有 capacity-controller,部署前精确快照此前对缺失 Deployment 直接报错,导致目标状态尚未应用就阻断发布。
快照现在允许目标 Deployment 不存在;失败恢复时,快照中原本不存在的资源会被删除,从而同时支持首次创建和精确回退。
验证:bash -n、ShellCheck、人工发布脚本测试、线上缺失控制器只读快照演练。
2026-07-31 23:38:55 +08:00
wangbo
744e4acd1f
fix(cluster): 消除发布前门禁假阴性
...
发布前巡检在 pipefail 下直接将 K3s readyz 管给 grep -q,可能因 SIGPIPE 误报 etcd 失败;链路和 PostgreSQL 断言失败时也缺少可定位证据。
改为完整读取 readyz,输出六向链路指标,并为复制、归档、备份和配置投影增加明确失败原因;同时缩短 10 包探测间隔,不改变丢包与 RTT 门槛。
验证:bash -n、ShellCheck、生产 precutover 只读巡检。
2026-07-31 23:34:22 +08:00
wangbo
709434a256
fix(acceptance): 自举线上隔离验收身份
...
线上验收此前依赖人工准备管理员 Token、专属用户、API Key、参考图片和数据库连接,导致跳过本地验收后仍无法安全、可重复执行。
本提交增加短期 Manager 登录、隔离用户/钱包/API Key 幂等创建、Pod 内脱敏快照导出和合成图片真实上传;敏感材料仅保留在进程或 0600 临时文件中。
验证:bash -n、ShellCheck、验收报告测试、参考图片生成测试、git diff --check。
2026-07-31 23:25:43 +08:00
wangbo
0b681275ed
fix(acceptance): 支持显式跳过本地验收
...
在用户明确授权时,将本地原生与 amd64 制品阶段记录为 skipped/waived,并直接使用当前生产脱敏快照进入线上模拟。修复线上报告合并未写入生产 Run ID 导致后续 promote CAS 必然失败的问题。已通过报告回归测试、bash -n、ShellCheck 和 diff 检查。
2026-07-31 23:15:22 +08:00
wangbo
a95184b5b6
fix(acceptance): 阻断本地控制面漂移污染验收
...
本地 K3s 节点此前在 Kubelet 中登记为宿主机资源,负载可挤压 etcd 并在 server 重启后继续污染同一 Run。现在为三节点设置真实可调度预算、独立 etcd/数据卷和锁定依赖镜像,并持续核对 server 与 API/etcd 健康。\n\n每次验收生成独立 Run ID,报告使用独占或原子写入,负载错误记录具体阶段;数据库鉴权不可用返回带 Retry-After 的 503,避免基础设施故障被误报为 401。\n\n验证:Go 全量测试、go vet、gofmt、OpenAPI、bash -n、ShellCheck、报告测试和 k3d 配置解析均通过。
2026-07-31 23:07:19 +08:00
wangbo
015ff8ea6c
fix(acceptance): 允许受信模拟源的媒体物化
...
验收任务物化最终媒体时,仅允许访问 Acceptance Run 登记的协议模拟器精确 origin;其他私网、协议、端口及带 userinfo 的地址继续由 SSRF 防护拒绝。\n\n验证:Go 全量测试、go vet、gofmt 和 git diff --check 通过。
2026-07-31 21:39:19 +08:00
wangbo
add99e5421
fix(acceptance): 物化验收任务的最终媒体
...
仅对已认证 Acceptance Run 强制下载并持久化 URL 型结果,确保集群外压测端能验证最终视频;普通生产任务继续遵循现有文件存储策略。压测器仅对 Gateway 自有地址做双入口重写,避免向第三方媒体域名泄露验收凭据。\n\n同时修复本地集群重复使用同一快照文件时的幂等复制失败。验证:Go 全量测试、go vet、gofmt、bash -n、ShellCheck 和 git diff --check 通过。
2026-07-31 21:25:42 +08:00
wangbo
29a9b8c89f
fix(acceptance): 使用可完整解码的 WebP 样本
...
替换截断的 WebP 验收夹具,新增全量图片像素解码回归,并保留 6K 外部水化与三参考图归一化测试,避免协议模拟样本缺陷被误判为 Worker 运行故障。\n\n验证:Go 全量测试、go vet、gofmt、git diff --check 通过。
2026-07-31 21:11:50 +08:00
wangbo
29533537ec
fix(worker): 限制大图归一化峰值内存
...
6K 多参考图在 P24 下会并发进入高内存缩放并击穿 2 GiB Worker。新增独立可配置的图片归一化并发,生产默认 2,只约束解码、缩放和重编码阶段,不占用视频上游等待槽;缩放器改为内存稳定的近似双线性实现。\n\n验证:6K 到 6000x2400 转换、信号量串行化、Go 全量测试、gofmt、Kubernetes 客户端 dry-run。
2026-07-31 20:54:11 +08:00
wangbo
f190af00be
fix(acceptance): 修复快照迁移重放与派发死锁
...
本地同构验收在全量迁移后导入生产快照,导致本次发布的数据迁移被旧能力覆盖;增加仅允许严格本地集群标记启用的导入后迁移重放,并新增幂等 Seedance 约束校准。\n\n批量异步派发改为在事务开始按全局顺序预锁全部任务与容量作用域,同时对 PostgreSQL 死锁和序列化失败做退避重试,避免双 API 重叠批次形成环形等待。\n\n验证:Go 全量测试、gofmt、bash -n、ShellCheck、迁移安全检查。
2026-07-31 20:39:42 +08:00
wangbo
bfdabd3853
fix(acceptance): 校准 Seedance 图片转换验收
...
按 Volces 官方输入边界补齐 Seedance 2.0 候选能力,将错误的合法 4K 转换样本替换为真实越界图片,并让协议模拟器校验物化后的 Base64 data URL。\n\n验证:Go 全量测试、迁移安全检查、gofmt。
2026-07-31 20:07:28 +08:00
wangbo
2c7ed905a9
fix(acceptance): 打通本地集群内验收链路
...
为本地三节点验收补齐 Gateway 内部 DNS、TLS CA 信任与端口映射,并让仅限验收命名空间的网络故障代理以所需 UID 获取 NET_ADMIN。\n\n验证:bash -n、ShellCheck、K3d 三节点实测。
2026-07-31 20:07:21 +08:00
wangbo
26f3b3fb0a
fix(acceptance): 消除 bootstrap 产物竞态
...
bootstrap 主容器完成后 Kubernetes 不允许继续 exec,导致无法取回只存在容器文件系统中的私密运行参数。使用共享 emptyDir 与限时导出 sidecar,在主容器退出码为零后复制 0600 产物并立即删除 Pod。\n\n验证:bash -n;ShellCheck;本地 CNPG 环境 32 身份 bootstrap、sidecar 导出和 runtime Schema 校验通过。
2026-07-31 19:47:51 +08:00
wangbo
805b677e86
fix(acceptance): 明确身份序号 SQL 类型
...
PostgreSQL 无法从 jsonb_build_object 的多态参数推断验收身份序号类型,导致本地 32 身份 bootstrap 失败。将序号绑定参数显式转换为 integer。\n\n验证:gofmt;go test ./cmd/acceptance-bootstrap -count=1;本地 CNPG 已复现原始 SQLSTATE 42P18。
2026-07-31 19:39:59 +08:00
wangbo
3ba6026e12
fix(acceptance): 安全暂存脱敏快照
...
ConfigMap 投影文件是符号链接,而快照导入器必须拒绝链接输入。新增 initContainer 将只读投影复制为 emptyDir 中的 0600 普通文件,保留防链接安全门禁并让本地导入可执行。\n\n验证:bash -n;ShellCheck;本地 CNPG 双实例实际快照导入通过。
2026-07-31 19:32:28 +08:00
wangbo
38207494d7
fix(acceptance): 修复本地数据库身份标记
...
通过 psql 标准输入执行变量替换,并校验本地集群标识格式,确保安全标记在导入生产脱敏快照前可靠写入,避免验收编排因 -c 参数不展开变量而退出。\n\n验证:bash -n;ShellCheck;本地 CNPG 双实例实际写入与查询标记通过。
2026-07-31 19:26:25 +08:00
wangbo
0bc4c00581
fix(acceptance): 固定本地节点交换内存上限
...
设置 K3d 节点资源限制时同步更新 memory 与 memory-swap,避免 Docker 因既有 swap 上限较低而拒绝节点内存预算,并禁止验收节点依赖额外交换空间。\n\n验证:bash -n scripts/acceptance/local-cluster.sh;shellcheck scripts/acceptance/local-cluster.sh
2026-07-31 19:20:16 +08:00
wangbo
ed3bae4ba6
fix(acceptance): 修正本地 K3d 节点资源约束
...
本地同构环境创建后使用 K3d 实际容器名设置宁波、香港和洛杉矶节点的 CPU 与内存限制,避免集群已创建但验收编排在组件安装前退出。\n\n验证:bash -n scripts/acceptance/local-cluster.sh;shellcheck scripts/acceptance/local-cluster.sh
2026-07-31 19:18:44 +08:00
wangbo
aec61eecb1
fix(acceptance): 固定相对快照路径解析
...
在本地集群脚本切换到 apps/api 前,将已校验的快照路径解析为绝对路径,确保文档中的相对路径可以直接执行。\n\n验证:bash -n、ShellCheck。
2026-07-31 18:44:50 +08:00
wangbo
0b9634b74c
fix(postgres): 修正跨地域 WAL 归档带宽预算
...
将生产 archive_timeout 从 60 秒调整为 5 分钟,避免 16 MiB WAL 段在当前宁波香港链路上持续产生高于复制吞吐的空闲流量。\n\n同步复制保持开启,双库健康时 RPO 仍为 0;单库降级时对象存储归档 RPO 保持在 5 分钟目标内。补充发布回归门禁,防止配置退回无法追平的 60 秒。\n\n验证:kubectl kustomize、bash -n、ShellCheck、manual-release-test。
2026-07-31 18:42:46 +08:00
wangbo
e05922b0f4
feat(acceptance): 建立同构验收与弹性容量体系
...
实现本地三节点 K3s 同构环境、脱敏生产快照、Gemini 图片和多参考图视频协议模拟、统一验收报告及故障注入。\n\n新增 Worker 容量控制器、资源与连接预算、任务恢复保护,并将生产验收拆分为 validation 执行和人工 CAS 放量。\n\n验证包括 Go 全量测试、PostgreSQL HTTP 集成测试、go vet、OpenAPI、ShellCheck、前端检查、迁移及发布脚本测试。
2026-07-31 18:02:24 +08:00
chengcheng
93d36d0e55
fix(identity): 统一认证启用时直接跳转登录
...
双上下文配置不再落入工作台本地登录页,首次点击统一入口直接发起未预选上下文的 OIDC BFF 登录。
验证:OIDC 定向 Vitest 8 项通过;Web TypeScript 检查与生产构建通过。
2026-07-31 17:33:02 +08:00
chengcheng
59f0817938
feat(identity): 收敛 AI Gateway 统一认证入口
...
Web 登录页合并为单一统一认证入口,未指定上下文时由认证中心在登录后决策。继续接受旧客户端显式传入 platform 或 tenant,并保持回调上下文及 tenant_hint 的绑定校验。同步更新 OpenAPI 产物。\n\n验证:Go 全量测试与 go vet 通过;Web lint、141 项 Vitest 和生产构建通过;本地 platform.admin 登录及管理工作台访问通过。
2026-07-31 15:28:12 +08:00
chengcheng
c0296dbf06
fix(identity): 支持平台用户显式登录 AI Gateway
...
修复多租户身份配置将所有人类登录都强制解释为租户上下文的问题。Web 现在提供平台与租户两个受控入口,API 严格绑定 context_type、tid、issuer、application 和 subject,并为平台用户建立独立本地投影与可刷新会话。\n\n风险:新增会话身份列保持旧会话可读,新会话一律使用严格约束;未改变租户数据隔离和 API Key 行为。\n\n验证:Go 全量测试与 go vet 通过;PostgreSQL 平台投影、会话和安全事件集成测试通过;前端 lint、141 项测试与生产 build 通过;OpenAPI 生成和迁移安全测试通过。
2026-07-31 14:24:40 +08:00
chengcheng
88c971564a
feat(web): 增加单点登录分流与本地应急入口
...
开启统一认证后,正常登录入口直接跳转认证中心,并将本地账号入口收敛到 /login 应急页;未开启统一认证时继续保留工作台内原有登录方式。
影响范围仅限 Web 登录路由、认证入口展示和相关测试,不修改认证接口或 OpenAPI。风险主要在运行时身份状态判断,已通过 141 项前端测试、生产构建、无缓存类型检查及浏览器分支验证。
2026-07-31 13:43:06 +08:00
wangbo
cae97b6f77
perf(worker): 缩短媒体完成链路
...
生成媒体在启用直传 OSS 时绕过后端存储通道,异步任务持久化成功后不再在 Worker 内二次水化 Base64。\n\n将任务事件与回调 outbox 合并到同一事务,降低跨地域同步复制提交次数并消除事件已落库但回调未登记的崩溃窗口。文件通道健康遥测改为异步复制提交,避免非关键状态占用执行槽。\n\n验证:Go 全量测试、go vet、gofmt、git diff --check、相对 447e7ed701 的迁移安全检查均通过。
2026-07-31 10:15:53 +08:00
wangbo
447e7ed701
perf(worker): 提交后发送准入唤醒通知
...
将准入登记、派发、释放、恢复和验收清理中的 PostgreSQL NOTIFY 从同步复制业务事务移到提交后的独立异步提交事务,避免数据库对象锁串行阻塞跨城事务。通知继续作为有轮询兜底的限时提示,不改变任务状态、租约和账务的同步提交语义。
验证:Go 全量测试、go vet、迁移安全检查、gofmt、diff check 通过;新增集成回归确认 NOTIFY 对象锁存在时准入状态仍先提交可见。
2026-07-31 09:56:47 +08:00
wangbo
580f84f569
perf(acceptance): 解耦 API 媒体请求并发
...
生产同构验收将 API 请求体并发独立配置为 AI_GATEWAY_ACCEPTANCE_API_MEDIA_REQUEST_CONCURRENCY,默认每个 API 128;Worker 执行槽和媒体物化仍按 P24/P28/P32 阶梯变化。\n\n这避免同步 Gemini 请求在整个任务生命周期占用仅 24/28/32 个入口槽,并继续由 RSS 与节点内存门禁验证安全上限。\n\n验证:bash -n;shellcheck -x;git diff --check。
2026-07-31 09:39:23 +08:00
wangbo
387bf5842d
perf(worker): 隔离异步等待登记与执行锁
...
为异步等待队列登记增加独立的进程内和 PostgreSQL advisory lock 域,使严格队列上限校验不再等待 Worker 执行槽事务的跨城同步提交。任务级锁保持不变,调度期间 active 与 waiting 总量守恒。\n\n新增 PostgreSQL 集成测试,验证执行 scope 锁被占用时等待登记仍可独立完成。\n\n验证:go vet ./...;go test ./... -count=1;隔离 PostgreSQL 集成测试;迁移安全检查;gofmt;git diff --check。
2026-07-31 09:29:01 +08:00
wangbo
11ec057e6a
perf(worker): 消除运行态计数跨城热行阻塞
...
将仅用于候选负载均衡的 runtime_client_states 分配和释放写入改为事务级异步提交,避免同步复制期间持续持有单候选热行锁。\n\n运行态计数仍由本地 WAL 持久化,并在运行时恢复中按 running attempt 重建;任务、账务、租约和状态提交不受影响。新增 PostgreSQL 并发与恢复集成测试。\n\n验证:go vet ./...;go test ./... -count=1;64 并发 PostgreSQL 集成测试;迁移安全检查;gofmt;git diff --check。
2026-07-31 09:14:13 +08:00
wangbo
b0dac9f8ec
fix(worker): 固定等待任务的准入候选
...
双 Worker 会按动态运行态排序重复规划同一批 waiting 任务,导致候选绑定来回迁移并把同步事务消耗在 rebind 上。\n\n调度 waiting 任务时优先使用首次登记的候选;仅当候选不再可用或已不在合法候选集时才按现有顺序迁移。执行阶段的 admitted 候选固定逻辑保持不变。\n\n验证:新增 waiting 候选固定回归测试;Go 全量测试、go vet、gofmt 通过。
2026-07-31 08:58:57 +08:00
wangbo
1e12522f0c
perf(worker): 解耦异步等待登记与跨城提交
...
媒体突发中的等待准入行是已同步持久化任务的可恢复派生状态,却逐条等待跨城同步提交并串行占用全局容量锁。\n\n仅对异步等待登记事务设置 synchronous_commit=off;任务实体、素材、执行准入、River job、租约、状态与账务继续同步提交。主备切换若命中极小窗口,由既有 queued-task 恢复器重建等待登记。\n\n验证:临时 PostgreSQL 18 跨 Store 分布式准入集成测试通过;Go 全量测试、go vet、gofmt 通过。
2026-07-31 08:49:37 +08:00
wangbo
a34a508140
perf(worker): 公平调度跨节点异步准入锁
...
持续突发提交会通过 pg_try_advisory_xact_lock 反复抢占全局容量锁,使 Worker 补槽器在首批之后饥饿。\n\n跨进程锁改为 PostgreSQL 公平等待;进程内锁仍保证每个 API 或 Worker 最多一条连接参与等待,30 秒 lock_timeout 会回到原有重试路径,60 秒空闲事务超时继续处理失主会话。\n\n验证:临时 PostgreSQL 18 上 64 并发锁竞争峰值连接不超过 2;Go 全量测试、go vet、gofmt 通过。
2026-07-31 08:40:54 +08:00
wangbo
17433bf2da
perf(worker): 持续批量填满异步执行槽
...
异步准入通知在突发提交时会合并,原调度器每次只填充一个 8 任务批次,导致全局容量长期空闲并反向拖慢入口登记。\n\n收到通知或周期唤醒后连续拉取并提交批次,直到队列为空或全局执行容量真正饱和;保留每批 8 个的短事务边界。\n\n验证:env -u AI_GATEWAY_TEST_DATABASE_URL go test ./... -count=1;go vet ./...;gofmt -l 无输出。
2026-07-31 08:32:39 +08:00
wangbo
d5b5d4b4cd
perf(worker): 缩短异步批量填槽延迟
...
将单次异步准入准备批次限制为 8 个任务,使双节点调度器以多个短事务批次渐进填满全局容量,避免准备 48 个媒体任务后才首次提交造成的长时间冷启动空槽。\n\n验证:Go 全量测试、go vet、runner/store race、gofmt、迁移安全检查通过。
2026-07-31 08:09:17 +08:00
wangbo
5dd7765ae3
perf(worker): 批量填充异步执行槽
...
跨地域同步复制下逐任务准入会为每个 River Job 支付一次事务提交 RTT,导致 P24 实际只能维持少量运行任务。调度器现在按全局容量窗口准备 FIFO 批次,在同一 PostgreSQL 事务内逐项校验队首、创建租约并插入唯一 River Job,一次提交即可填满可用槽;任一 Hook 失败时整批原子回滚。\n\n验收压力采样同时排除正在终止的 Ready Pod,避免滚动切换期间误连已移除容器。\n\n验证:真实 PostgreSQL 批量提交及整批回滚集成测试、Go 全量测试、go vet、runner/store race、gofmt、bash -n、ShellCheck、迁移安全检查通过。
2026-07-31 07:59:57 +08:00
wangbo
14d13ad3a7
fix(worker): 隔离任务创建与队列恢复窗口
...
高媒体并发下,任务创建后的请求恢复和候选准入可能持续数十秒;通用 River 恢复扫描会在准入记录落库前误把新任务当成崩溃遗留任务,提前创建 Job 并占满 Worker 执行槽。\n\n为无活动 River Job 的通用兜底恢复增加 5 分钟新任务保护窗。正常提交、准入调度以及已有 River Job 的 Worker 强杀恢复保持原路径;新增 PostgreSQL 集成回归,验证新任务不被抢占且超过保护窗后仍可恢复。\n\n验证:Go 全量测试、go vet、runner/store race、gofmt、迁移安全检查通过。
2026-07-31 07:46:47 +08:00
wangbo
b625edcd71
fix(worker): 收敛异步重准入到调度器
...
准入租约失效时 Worker 仅释放执行准备并短暂让出 River 槽位,由异步调度器统一恢复 waiting 或无有效租约的任务,避免多 Worker 同时争抢全局容量锁并放大数据库同步提交等待。\n\n调度扫描覆盖到期且可运行的 scheduled/available/retryable River 任务,但跳过正在执行或仍持有有效准入租约的任务;新增 PostgreSQL/River 状态集成回归测试。\n\n验证:Go 全量测试、go vet、runner/store race、gofmt、迁移安全检查通过;专用数据库集成用例因本机未配置 AI_GATEWAY_TEST_DATABASE_URL 明确跳过。
2026-07-31 07:37:37 +08:00
wangbo
d1b482c2f3
fix(worker): 容量饱和后停止重复准入扫描
...
双 Worker 每秒遍历全部 waiting 任务,在全局执行槽已满时仍重复探测,导致 River 执行协程长时间等待同一 worker_capacity 进程锁。
异步 FIFO 头部未准入时立即结束本轮扫描,等待租约释放通知后再继续;任务级错误仍跳过并处理后续任务。
验证:Go 全量测试、runner race、go vet、迁移安全检查通过。
2026-07-31 07:23:46 +08:00
wangbo
bfd1257db0
fix(worker): 统一异步执行准入范围
...
Worker 执行阶段重建准入范围时遗漏 worker_capacity,导致已预留 River 槽的任务再次同步等待准入并占住执行槽。
调度、执行和候选切换统一复用 taskAdmissionScopes,确保异步任务始终携带同一全局 Worker 容量范围。
验证:Go 全量测试、runner race、go vet、迁移安全检查通过。
2026-07-31 07:15:44 +08:00
wangbo
238798e47c
fix(worker): 固定异步准入候选避免执行槽空转
...
异步任务在调度器准入后,Worker 会再次按实时负载排序候选;排序变化会让已准入任务退回 waiting,同时继续占用 River 执行槽,导致高并发吞吐塌陷。
执行前复用已持久化的 admitted 候选并稳定置顶,候选失效时仍保留原有重选路径;增加候选固定与非准入场景单测。
验证:Go 全量测试、runner race、go vet、OpenAPI 生成一致性、迁移安全检查通过。
2026-07-31 07:06:06 +08:00
wangbo
3d9ae74b87
fix(admission): 避免高并发准入锁占满连接池
...
将同进程相同准入键的请求先在内存中串行化,跨节点使用 pg_try_advisory_xact_lock 非阻塞竞争并在事务外退避,避免等待 advisory lock 时长期占用 PostgreSQL 连接。\n\n新增 64 路竞争回归测试,验证被占用锁下连接池峰值仅保留持锁者和单个尝试者;256 路 Gemini Base64 端到端压力通过,advisory wait 峰值为 0。
2026-07-31 06:31:24 +08:00
wangbo
4fa44f4c41
fix(admission): 限制媒体任务准入锁等待并发
...
媒体请求从认证、任务创建到异步准入登记共用可配置的请求并发令牌,完成登记后立即释放。这样仍会尽早丢弃 Base64 正文,但不会让高并发请求各占一个 PostgreSQL 连接等待 advisory lock。\n\n扩展 Gemini 双角色压力测试,使用生产同档 API/Worker 连接池并记录数据库连接与 advisory lock 峰值。\n\n验证:go test ./... -count=1;go vet ./...;pnpm openapi;迁移安全检查;256 个 256 KiB 异步 Gemini 请求全部通过,连接峰值 45、锁等待峰值 14。
2026-07-31 06:05:54 +08:00
wangbo
4af86b22ee
fix(worker): 将 Gemini 同步请求交由异步队列执行
...
将非流式 Gemini generateContent 改为 River Worker 执行,API 通过批量状态查询等待完成,避免高并发同步请求耗尽 API 数据库连接池。\n\n生成图片在持久化时保存带哈希的资产引用,响应恢复时下载并校验后重建 Base64,数据库不保存媒体原文。请求体物化增加前置内存门禁,并扩展双 API/Worker PostgreSQL 压力测试。\n\n验证:go test ./... -count=1;go vet ./...;pnpm openapi;迁移安全检查;64 与 256 请求双角色异步 Gemini 压力测试。
2026-07-31 05:49:45 +08:00
wangbo
352e23e099
perf(media): 生产媒体直传阿里云 OSS
...
生产同构验收确认 server_main_openapi 上传通道在媒体高并发下产生 381 个 502,并将已创建任务的 p95 拉高到 172 秒。\n\n为 request_asset 与 image_result 增加环境配置控制的阿里云 OSS 直传,保留普通上传原通道;使用 Kubernetes Secret 注入凭据,并对签名、重试、场景隔离和生产配置校验增加测试。\n\n验证:Go 全量测试、go vet、OpenAPI、迁移安全检查、Kustomize/Compose 渲染、gofmt 与 git diff --check 均通过;真实 OSS PUT/CDN 读取探针通过且对象已清理。
2026-07-31 05:20:27 +08:00
wangbo
7b2ab786a2
perf(acceptance): 流式生成唯一图片输入
...
避免千请求验收重复复用同一图片内容而争用同一资产记录,使每个任务走真实独立上传与物化链路。\n\nGemini 请求体改为流式 Base64 编码,降低压测客户端的大对象内存峰值;新增尺寸、哈希唯一性和请求体还原测试。\n\n验证:Go 全量测试、go vet、迁移安全检查、bash -n、ShellCheck、gofmt、git diff --check 均通过。
2026-07-31 04:55:31 +08:00
wangbo
1bb4b2ab12
fix(acceptance): 同步配置 API 媒体并发
...
P24/P28/P32 之前只调整 Worker 媒体并发,API 仍使用默认每实例 16,导致入口实际容量低于 Worker 执行槽。现在按档位同时设置两地 API 的媒体请求与物化并发。\n\n验证:bash -n、ShellCheck。
2026-07-31 04:40:59 +08:00
wangbo
61b4417695
fix(acceptance): 继承分片身份的验收角色
...
分片 API Key 已具有正确 scopes 和候选规则,但空角色无法通过基础接口权限检查。创建和重用分片身份时同步主验收用户角色,保持专属用户组与钱包隔离不变。\n\n验证:bash -n、ShellCheck。
2026-07-31 04:31:50 +08:00
wangbo
262090db7b
perf(acceptance): 使用多钱包身份分片模拟并发
...
单一验收钱包会把预留和结算串行化,掩盖双节点 Worker 的真实吞吐。验收现在幂等准备 32 个隔离身份和钱包,按请求轮询 API Key,并在 Run 配置中登记允许的 Key/User 身份对;密钥仅经 stdin 传给集群内压测进程。\n\n仍保留真实账务、候选权限、回调、重复扣费和强杀恢复校验。\n\n验证:Go 全量测试、临时 PostgreSQL 集成测试、go vet、OpenAPI 生成、迁移安全检查、bash -n、ShellCheck。
2026-07-31 04:25:09 +08:00