zizi 878ad3f7da feat(game-runtime): T1b-α集成段三门全PASS——SIZES九件全≤配额(全栈gz16.5KB),mini-desktop真浏览器证据(probe链/vfx像素哈希×3/CDP真输入),host-dev宿主页+参考件轮1计划
- 门①构建绿:all-plugins barrel+host-dev 双构建日志留档
- 门②SIZES增量实测:九件单件全≤配额,插件gz净增13263B(自律线60K),core基准gz 3222
- 门③浏览器证据:六锚点FNV-1a链verify.ok=true/burst-trail-drift三预设哈希×3重跑一致+几何命中+直方图非空/vignette-dither开关对照哈希互异/CDP dispatchTouchEvent真点击→probe第7条firstInput旁证
- 模板哲学红线被门③实证:particles不内置颜色致首版全黑,host作引擎供色后过——验证门逮住设计而非绕过
- α不接littlejsengine裁定留痕(host.js顶注/index.html/REPORT §4.1),受控面桩即引擎接缝点
- 遗留:probe前四锚tMono=0(冻结lane件,注入时钟拆分留β)
- games/wanglanmei-ref/LOOP-LOG.md:参考件内部预判轮1计划(五要素挂点/插件用法图/mmx资产单13次/红线五条)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-12 12:39:15 +00:00

90 lines
3.6 KiB
HTML
Raw 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.

<!DOCTYPE html>
<!--
host-dev/index.html — host-dev 宿主页LittleJS 增强发行版 · core-protocol-v0 受控面真实接线)
ownerT1b-α 集成段
用法:
· 集成段在 mini-desktop 用锁参 esbuild 把 host-dev/entry.js 打成 dist/host-bundle.jsiifeglobalName=GameRuntimeHostDev
· serve 本目录,浏览器开 index.html
· ?seed=12345 注入主随机种子;?mode=smoke 挂全九插件做各自最小调用演示;
· window.__probe() 导出 probe JSONL+verifyChainwindow.__hostdev 暴露确定性取证入口CDP harness 用)。
α 阶段不接 littlejsengine裁定见 host.js / REPORT引擎主循环用浏览器 RAF + bundle.tick 模拟host-dev 桩语义)。
-->
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<!-- 固定取证视口390×844 移动竖屏基准user-scalable=no 防缩放扰动像素哈希。 -->
<meta name="viewport" content="width=390, height=844, initial-scale=1, user-scalable=no" />
<title>game-runtime host-dev (core-protocol-v0)</title>
<style>
/* 极简布局:黑底 + 居中画布;不引入任何美术/玩法 UIhost-dev 仅为受控面接线与取证)。 */
html, body {
margin: 0;
padding: 0;
background: #111;
color: #ccc;
font-family: -apple-system, "PingFang SC", "Microsoft YaHei", monospace;
overflow: hidden;
}
#wrap {
display: flex;
flex-direction: column;
align-items: center;
gap: 8px;
padding: 8px 0;
}
/* 画布CSS 逻辑尺寸 390×844物理像素由 host.js 按 DPR2 设置(取证清晰)。 */
#game {
width: 390px;
height: 844px;
background: #000;
display: block;
/* 触摸事件全部交给 JS 处理pointer 桥接),禁浏览器默认手势。 */
touch-action: none;
}
#status {
font-size: 12px;
line-height: 1.4;
min-height: 16px;
max-width: 390px;
word-break: break-all;
text-align: center;
}
</style>
</head>
<body>
<div id="wrap">
<!-- 状态行host-dev 可视反馈(取证不依赖它,仅人看)。 -->
<div id="status">booting host-dev...</div>
<!-- 受控画布:插件经 getContext2d 拿到的就是它。 -->
<canvas id="game"></canvas>
</div>
<!-- 发行版打包产物集成段生成iife 全局 GameRuntimeHostDev含 bootHostDev-->
<script src="./dist/host-bundle.js"></script>
<script>
// 引导:拿全局入口 → bootHostDev。失败把错误打到 status + console冒烟门要看 console 零未捕获错误)。
(function () {
'use strict';
var statusEl = document.getElementById('status');
var canvas = document.getElementById('game');
try {
var G = window.GameRuntimeHostDev;
if (!G || typeof G.bootHostDev !== 'function') {
throw new Error('GameRuntimeHostDev.bootHostDev 未找到host-bundle.js 未正确加载或 globalName 不符)');
}
// 启动并把句柄留全局,便于 CDP / 控制台手验。
window.__host = G.bootHostDev({ canvas: canvas, statusEl: statusEl });
// 标记「引导完成」供 CDP 探活(区分「脚本没加载」与「加载了但 boot 抛错」)。
window.__hostBooted = true;
} catch (e) {
window.__hostBooted = false;
window.__hostBootError = String((e && e.message) || e);
if (statusEl) statusEl.textContent = 'BOOT ERROR: ' + window.__hostBootError;
// 重新抛出,使 ?mode=smoke 的「console 零未捕获错误」门能逮住引导失败。
throw e;
}
})();
</script>
</body>
</html>