lili 88d3a23787 feat(amodel-gen): 根治B(input→L1 handleTap)+driver起局扫点+5 footgun蒸馏+wanglanmei E2E→studio可玩
根治 B(缩 M3 错面,结构性根除"点击在错 phase 消费/永不消费→启动不了"):
- input 订阅收归 L1(_template/src/game.js wrapper):L3 只写实例方法 handleTap(x,y)/handleKey(key),
  L1 在 pointerdown/keydown 直达派发;_template/src/game-logic.js 范例改用 handleTap。
- tools.mjs check:拦 ctx.getInput + 必须暴露 ≥1 输入方法;prompt.mjs/README/skill 同步输入契约。
- 机制+门双实证(node 全链路:menu→点开始→play、点客加分、点空白不加分;check 对 getInput/零输入方法拦截)。

driver(play.cdp.cjs):occupied 族起局从固定点 (195,422) 改中线纵向扫点,robust 命中各游戏「开始」按钮
  (原固定点落空→死菜单假阴;实测 wanglanmei「开门营业」在 y≈502)。

资产通道(boot-game-host.loadHostAssets + gen.mjs --assets-dir):M3 只决定怎么用资产、不造。
入库工具 publish-amgen.mjs:staged bundle → game_runtime_package(package_json.engineBundle,status=1)→ studio /play。

5 个 M3 footgun 蒸馏进 prompt.mjs + skill(均 wanglanmei-v2 实测翻车):
  ① scene update 回调签名 (dt) 非 (running,dt)  ② ctx.random.next() 非 ctx.random()
  ③ ctx.time.nowMs() 非 ctx.nowMs()  ④ _forensicsView 的 phase/targets 必须在 state() 内实时算(否则定格 boot 快照)
  ⑤ update(dt) 的 dt 是秒,毫秒计时要 ×1000。

验证:M3 生成 wanglanmei-tycoon-v2(+上述 5 footgun 修复)→ 九门 PASS(score 0→364,distinct 43/43)
  → 入库 → studio /play/80002/80002 加载+boot+渲染菜单真玩(art 走程序化回退,水彩 art 需引擎资产线 E2/E3)。
  (root-fix A 门可信化先于 cbe42933 提交;SAA Java 驱动绑定另track 暂不入此 commit)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 05:48:03 -07:00
..