games-development-ai/game-cloud/scripts/p3bB_publish_flip_9306.sql
zizi 238ec2dbe8 test(aigc-3b-B): 视觉终局达成——真游戏真玩入 feed(亲眼验);一句话现生成腿缺口=tap类driver:none→L1
3b-B 重跑视觉终局(mini-desktop·证据 wg1/gen-worker/evidence-3bB-final/):

 视觉终局达成(亲眼复核截图):feed 里一款真渲+真玩有进展的井字棋(gameId=9306/versionId=93112)——
  空盘「轮到X」→ 落子填盘 X·O → 「X 胜!」+ 重新开始(latch 终态);feed 真玩门 10/11 过
  (no_demo_fallback/engine_rendered/lively_interactive 全 true,唯一 false=play_start 遥测非阻断)。
  经真 HMAC 回调写链落库(验签通过 engineBundleLen=210891→建版本→组包 checksum 自洽→翻 feed)。

走兜底路(诚实标注):主路一句话现生成两次均失败,故取已验证过九门样板 tictactoe(便宜模型 flash 真生成、
  verdict A-I 全 pass)的 engineBundle 经派发面真回调路落 feed,DB bundle 与样板 sha256 字节级一致。
  仍是便宜模型真生成的过门游戏,只是非本次现生成。

★ 主路两次 fresh 失败真因(非模型壁垒,铁证):design agent 在 dispatch 面 run_studio(play_spec={}) 下
  均给 driver:{type:none}→harness 盲打打不中目标→moves/score 恒 0→H_progress 挂+latch 不触发,repairs=5
  耗尽。游戏本体全对(gen9306/9307 verdict 8/9 门过,targetX/Y/radius·board·moves 导出正确,G_input/
  I_control/F_wiring 均过)。样板过门靠 lane brief 手供 play_spec.driver=tap-targets。
  → 蒸馏入 cheap-model §7:DESIGN_SYSTEM 须对离散点击类强制产 tap-targets driver(纯 L1 生成域,
  moat『一句话现生成』腿的真·临门一脚)。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 00:48:50 +00:00

48 lines
3.1 KiB
SQL
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- ============================================================================
-- P3·W-G1 派发面终局 e2e·发布翻转把 gameId=9306 的 feed 卡翻到【回调链新建的真生成 version】
-- 缘由:回调链 handleCallback 建【新】version(N)+runtime_package(engineBundle=worker 真生成 bundle),但
-- 新 runtime_package 落库 status=0未发布且 project.current_version_id/feed_rank 仍指占位 93060。
-- 本脚本把三处翻到回调新版本 N使 feed 服务【回调链产物】(=真生成游戏),完成终局闭环。
-- 自动选 NgameId=9306 下 gen_task_id 非空(=回调建的,占位 93060 的 gen_task_id 为 NULL的最新 version。
-- 幂等:纯 UPDATE 翻指针,可重复执行(再跑选同一 N
-- 用法docker exec -i game-staging-mysql mysql --default-character-set=utf8mb4 -uroot -p"$MYSQL_ROOT_PASSWORD" < 本文件
-- ============================================================================
USE `ruoyi-vue-pro`;
SET NAMES utf8mb4;
START TRANSACTION;
-- 选回调新建的最新 version Ngen_task_id 非空 = 回调链建的;占位 93060 gen_task_id 为 NULL 被排除)
SET @vid := (SELECT id FROM game_version
WHERE game_id = 9306 AND gen_task_id IS NOT NULL AND deleted = b'0'
ORDER BY id DESC LIMIT 1);
-- ① 把回调新版本对应的 runtime_package 发布status 0→1占位 93060 包仍在但不再被 feed 指
UPDATE game_runtime_package SET status = 1, updater = '0', update_time = NOW()
WHERE game_id = 9306 AND version_id = @vid AND @vid IS NOT NULL;
-- ② project.current_version_id 指向回调新版本 N
UPDATE game_project SET current_version_id = @vid, updater = '0', update_time = NOW()
WHERE id = 9306 AND @vid IS NOT NULL;
-- ③ feed_rank.version_id 指向回调新版本 Nfeed 卡 /play 取此 version 的包 = 回调真生成产物)
UPDATE game_feed_rank SET version_id = @vid, updater = '0', update_time = NOW()
WHERE game_id = 9306 AND @vid IS NOT NULL;
COMMIT;
-- 回读:翻转后的指针 + 新版本运行包态(@vid 即 feed 现服务的 versionId供 CDP driver 用)
SELECT @vid AS flipped_version_id;
SELECT 'project.current_version' k, current_version_id v FROM game_project WHERE id=9306
UNION ALL SELECT 'feed_rank.version', version_id FROM game_feed_rank WHERE game_id=9306
UNION ALL SELECT 'new_pkg.status', status FROM game_runtime_package WHERE game_id=9306 AND version_id=@vid
UNION ALL SELECT 'new_pkg.bundleSize', bundle_size FROM game_runtime_package WHERE game_id=9306 AND version_id=@vid;
-- 校验 engineBundle 真入包LENGTH>0 = 回调把真生成 bundle 落进 package_json
SELECT 'engineBundle_in_pkg_len' k,
CHAR_LENGTH(JSON_UNQUOTE(JSON_EXTRACT(package_json, '$.engineBundle'))) v
FROM game_runtime_package WHERE game_id=9306 AND version_id=@vid;
-- 校验 checksum 自洽(列值 == 对所存 package_json 重算的 sha256——宿主完整性校验链不变量
SELECT 'checksum_selfconsistent' k,
(checksum = LOWER(SHA2(package_json, 256))) v
FROM game_runtime_package WHERE game_id=9306 AND version_id=@vid;