host.js+entry.js:engineMode 分流。real=引擎掌帧(engineInit 五回调 engGameInit/ Update/UpdatePost/Render/RenderPost 接帧驱动+渲染)+getContext2d backing 切引擎 mainContext(setGLEnable(false) 纯2D渲进 mainContext);stub=α RAF桩原样保留(可回滚点)。 本机已验(主会话亲跑): - 155单测绿(基线持平,受控面/插件零改故计数不变) - 受控面零改实证:src/core/api.d.ts+plugin.js 未触(七项 backing 全在 host 层切换) - Q4边界:引擎 import 仅 host.js+entry.js(metafile importers 反查证),未泄进受控面/插件 - 真接线门①:esbuild metafile 实证 littlejsengine 真入产物(163691 bytesInOutput), box2d 惰性(0 wasm input),产物 205KB min 8-agent workflow(源码取证→设计→对抗复审→实现):3/3 concerns 0 fatal。 17 mustFix(P0×1/P1×9/P2×7)全采纳:P0=real像素门 overshoot(引擎追帧 N tick/RAF 墙钟抖动 污染采样帧)→改 stub 通道独占逐像素回归,real 只证掌帧;P1 源码级纠偏=debug水印每帧画 averageFPS入mainContext(setDebugWatermark(false))/clearColor默认alpha=0不铺底 (setCanvasClearColor(BLACK))/P75须读timeReal非mockNowMs(real模式退化逻辑帧钟)。 门0 G0-1~G0-7(引擎真掌帧/真渲2D mainContext/双时钟/无uncaught/水印已除)须 mini-desktop chrome 实测(6c6g 禁 chrome)——未实测不宣布 A0 完成。 新:docs/agent-specs/2026-06-13-A0-引擎掌帧接管-edit-plan.md(编辑计划+门0 runbook) +game-runtime/test/harness/gate0-engine-takeover.cjs(门0 CDP 驱动,独立闭合不复用未改造的 integration-run) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
29 lines
1.7 KiB
JavaScript
29 lines
1.7 KiB
JavaScript
/**
|
||
* host-dev/entry.js — host-dev 冒烟页的 esbuild 打包入口(集成段打成 iife → index.html 加载)
|
||
* owner:T1b-α 集成段 | 仅集成段(mini-desktop)用锁参打包;本机不构建。
|
||
*
|
||
* 【定位】
|
||
* 把「core 协议 + 九件插件 + host 引导(host.js 的 bootHostDev)」汇成一个 iife 全局,
|
||
* 供 host-dev/index.html 以 <script> 加载。**α 阶段不接 littlejsengine**——发行版 v0 = core+插件,
|
||
* 引擎接线由参考件循环按需决定(裁定见 REPORT)。故本入口只挂「受控面桩(createHostDevContext)+ 插件」,
|
||
* 引擎主循环用浏览器 RAF + bundle.tick 模拟(host-dev 桩语义),不引入真引擎。
|
||
*
|
||
* 【全局导出】window.GameRuntimeHostDev = { bootHostDev, ...(core 公开面 + 工厂,便于控制台调试)}
|
||
*/
|
||
|
||
'use strict';
|
||
|
||
import * as RT from '../src/all-plugins.js';
|
||
import { bootHostDev } from './host.js';
|
||
// 【A0:引擎主循环接管】littlejsengine import 落点之一(集成段 host,与 host.js 并列)。
|
||
// Q4 铁律:引擎 import 只许活在集成段 host(entry.js/host.js),禁泄进受控面契约/插件。
|
||
// host.js 自行 import * as LJS 作引擎掌帧实现;此处 export 仅为 DevTools 控制台手验引擎导出便利。
|
||
import * as LJS from 'littlejsengine';
|
||
|
||
// 暴露到全局:index.html 调 bootHostDev 启动;其余符号便于 DevTools 控制台手验。
|
||
// (esbuild globalName 也会把本模块的默认/具名导出挂全局,这里再显式聚合一份语义清晰的入口。)
|
||
export { bootHostDev };
|
||
export const Runtime = RT;
|
||
// A0:引擎名字空间挂入口,便于控制台手验引擎导出(host.js 才是引擎接管的真实现体)。
|
||
export const Engine = LJS;
|