perf: Prewarm LiveAvatar browser sessions#16
Conversation
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
本轮 review 已逐项核对:
验证:129 tests passed,lint passed,production build passed(仅保留已有 ONNX dynamic-require warning)。真实 cloud template 的 |
|
更新:routing 已合入,本 PR 已基于最新 lex-main 恢复并完成重新移植与测试;当前分支是正式候选,不再是撤下状态。 |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
Claude finished @jiejuncai-ly's task in 1m 27s —— View job 任务清单
Review 结论通过 本轮唯一新增 commit 问题及建议未发现需要阻塞合并的问题。残余风险(沿用前两轮未修复的 P2,不阻塞合并):
|
修改内容
原因
原流程串行等待媒体与 Agent 初始化,用户进入会话后才能启动关键链路,导致首屏视频和人脸检测就绪偏慢。
验证
本地 browser 链路端到端通过,dispatch 约 1.1 秒。
人脸检测后 face gate 正常解除静音。
VAD/ONNX 资源全部加载成功,无网络或控制台错误。
前端测试:140 passed;lint 与 production build 通过。
/api/session/prewarm的每 Session secret 只用于服务端单次授权:执行中或成功后的重复请求返回409,失败释放 guard 允许 Gateway 重试;测试覆盖消费、并发与失败重试。Browser source 的部署支持范围为 Sandbox Chromium;音频/视频并行
getUserMedia按该运行环境验证。常规 dispatch 默认 8 秒是
lex-main的既有边界,本 PR 未缩短该路径;prewarm 在用户拿到 Session 前运行,worker-ready 与 dispatch 共用总计 20 秒预算,并受 Gateway 30 秒外层超时约束。fake-clock 行为测试分别验证 8 秒和 20 秒,并验证同一 Session 的并发调用共享最长 timeout 预算,包括旧 deadline 查询进行中的延长竞态;session registry 与 in-flight dispatch 状态通过 globalThis 跨 Next.js server chunk 共享。