阶段原始记录;当前产品流程以在线体验为准。
M3 工程与成本记录
实际路由
| 环节 | 当前实现 | 模型调用 | 成本记录 |
|---|---|---|---|
| 产品/香气素材 | 复用 M2 的 3 母图、4 背景、12 卡 | 本轮新增 0 次 | 历史生成费用仍未知 |
| 匹配与文案 | 4×3 固定映射、已审核模板 | 在线 LLM 0 次 | 未发生运行时模型 API 调用 |
| 用户留言 | 原文保留,40 字,HTML/XML 转义 | 0 次 | 只用于本地导出 |
| 分享/壁纸 | 预生成资产;留言按需合成 | 0 次 | 本地 sharp 计算,未计量 CPU/GPU 费用 |
| 打印 | pdf-lib 排版及页框 | 0 次 | 未计量本地运算费用 |
| UI/交易 | 原生 HTML/CSS/JS、演示数据 | 0 次 | 不收款,无生产服务费 |
没有使用 Midjourney、ComfyUI、Runway 或视频生成 API。本轮操作录像是浏览器真实操作录屏。不得把这些工具写进实际工具链。
在线模型调用为 0 不代表项目零成本:M2 的工具计费、开发工时、机器成本没有完整账单,不推算节约百分比。实际模型版本、GPU 时间、人工对照工时均未获得。
事件口径
composition_started 表示本地资源组合请求;只在真正发起模型请求时才允许记录 generation_started,本轮没有该事件。
card_rendered 记录 asset_id、request_id、等待到图片可用的 latency_ms;model_call_made=false、generation_mode=template_demo、fallback_used=true。其他包括导出触发/失败、演示订单建立/状态变更、演示券领取/核销。
本地状态台可导出会话 JSON,全部 data_kind=test、source_channel=direct。事件不包含个人留言;没有外部分析服务。展示会话不是用户行为样本,更不是新增到店或转化数据。
失败与修复证据
| 发现 | 根因 | 修复与验证 |
|---|---|---|
| 损坏本机订单可导致启动失败 | 只验证 id 前缀,未校验字段类型 | 恢复时校验字段、条目与金额;坏数据丢弃,浏览器回归通过 |
| 图片等待不受超时控制 | AbortController 只传给 fetch | 整段组合与 decode 纳入 abortable;图片延迟 6 秒回归,4.5 秒失败后迟到图不覆盖 |
| 券过期后金额静默增加 | 提交先按当前券状态重算 | 校验优惠意图,提示新金额并再次确认;21→24 元边界回归通过 |
| 点击重绘后丢焦点 | 替换 main 内节点 | 事件完成后恢复同一控件焦点;浏览器验证 |
| 手机菜单价签与操作拥挤 | 一行内缺乏明确间距 | 价格与动作分行,并查看 320/390 宽度 |
过程还包括测试脚本自身的导航选择与 URL 匹配修正,保留于 work/tests;它们不计为 AI 生成重试。模型重试数为 0;模板失败场景只作为故障演练。
资产与许可
品牌 SVG、产品 PNG 与香气背景均来自项目 M2,可追溯到既有生成记录。UI 使用 Noto Sans SC 子集,OFL 副本保留在 public/assets/OFL.txt,原字体与许可在项目 assets/fonts/NotoSansSC。事实数据保留源 URL、报道日期、限制;不使用未经授权的真实商家标识或照片。