3.0 KiB
3.0 KiB
Claw 3D 预览与快捷回复故障(2026-09-14)
现场证据
花城“产品成本评估”对话,08:00:11(北京时间)发起的报价任务已完成,回复含 31 个附件;BOM 成本 182.25 元、出厂报价 210.61 元,与反馈截图一致。整装 GLB、静态预览和交互清单均可读取,未重新生成或修改用户对话。
同一回复的 production-drawings.json 被重复请求。09:00 前的 Nginx 日志样本中,该文件有 368 次 499、1,365 次 429;08:15:40 assembled-preview.png 返回 429,08:16:20 对话 POST 返回 429。附件读取和对话提交原先共享通用 API 每分钟 100 次/IP 的预算。日志证实快捷按钮有提交请求到达服务端,不能把这次失败归因为用户没点中或切换浏览器。
修复
- 生产图纸和交互清单 effect 依赖稳定的附件索引、对话 ID 和消息 ID,避免父组件重新规范化附件对象时取消、重发请求;恢复使用私有 HTTP 缓存。
- Claw 附件 GET 使用独立的每分钟 600 次/用户预算,匿名访问按 IP,仍保留鉴权、所有权校验、SSRF 防护及 429/Retry-After。
- 静态预览失败时显示明确提示和手动重试,保留“查看 3D”入口。
- 已完成回复的快捷按钮不再被展示用的打字动画禁用;实际任务运行期间仍禁用,并保留发送去重保护。
- GLTFLoader 会规范化
SOURCE-001:1等节点名,交互清单保留原名。按加载器保存的userData.name匹配,恢复配件选中、拆解、组合及包装操作。
验证
- Chrome 中渲染实际预览组件,重建附件对象并每 20ms 更新父组件:修复前清单请求 121 次,修复后 1 次。
- 人为让首个静态预览请求返回 429,手动重试后图片正常显示。
- 从实际组件取快捷按钮及其禁用表达式:打字动画仍为 true 时点击可提交正确的确认文本;进入任务运行状态后禁止重复点击。发送回调在测试环境内记录,未向真实对话发送消息。
- 使用现场实际 GLB 和交互清单:整装模型 23/23 配件匹配,拆解前后 Canvas 截图不同;包装模型可加载,包装层全部匹配。真实文件仅保存在本地 QA 目录,未提交仓库。
- GLTFLoader 原始节点名回归测试覆盖两个实例、普通名字和不存在的节点;限流测试覆盖 600 次上限、对话预算隔离和另一用户隔离。
- 27 项相关测试通过;TypeScript 检查、Next.js 生产构建及 git diff --check 通过。构建有既存 HEIC 动态 require 警告。
开发分支补充记录:
发布
2026-09-14 已发布至 45.192.99.48 / ai.yydd.ai。生产代码提交 f3cded51,构建 ID kGGW4LcGZLR8YnJF06qkH。先在 3126 验证,再将正式 3125 服务切换至新构建;保留旧构建 .next-pre-claw-0914。线上登录页和新 JS 返回 200,未登录访问会话附件仍返回 401。
发布时已有的 Claw 上游任务继续通过持久化状态恢复,正式服务切换后记录仍在更新。修复分支及生产集成分支均已推送 Git。