zizi c2cb4d75e3 docs(t1b-beta): T1b-β 实质收口落档——引擎真接线+Runner v2(arc)支撑feed真玩,零闭环缺口/零split-brain
5路并行侦察(读代码非读规格,PLANNED vs ACTUAL 以代码为准)实证:每个灰度闭环必需项
done/absorbed-by-arc 且有真机证据(A6 6/6 `3e5cab4` / P2真机6门 `5d3f7a8` /
3b-B井字棋入feed `238ec2d` / B1主链9001-9002);剩余全是 audit-debt+gold-plating,
无一在完成线(日历闸门)关键路径。

3处 spec↔代码漂移(有意改判非bug,已回填澄清):
- Phase B: packageUrl外链 → engineBundle内嵌(absorbed,契约一致无split-brain)
- Phase C: 1.x srcdoc→URL退役被P2 O2(b)supersede(moot,单宿主GamePlayer.vue无双轨)
- Phase A: random/time/input改判插件自管(透传破粒子确定性/污染帧钟,血统债)

落档(纯文档additive/低风险):
- 母spec 9处banner回填(Phase C supersede / Phase B engineBundle / Phase A drifts / 门3·门5·门12 / §12 immutable裁决)
- 新收口报告 docs/agent-specs/2026-06-15-T1b-β收口报告.md(wave-close七步)
- 总账(§5 backlog+推迟清单+§6执行记录row+表头日期2026-06-15)
- 作战清单(§0+T1b-β item标done)+ .agent(TODO→收口block+推迟清单)
- schema immutable孤儿字段标future(消无孤儿设计红线 AGENTS §7)

推迟清单(gold-plating+audit-debt)入backlog,创始人可点名某项转required。

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

34 lines
6.0 KiB
Plaintext
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.

# game-runtime/.agent —— LittleJS 增强发行版工作区Tier1 引擎+能力插件库)
> 进度一律以 `docs/mvp/MVP进度总账.md` 为准,本文件只记**职责边界与结构**。
## 定位
平台维护的「LittleJS + 插件套件」增强发行版工作区:引擎能力插件(碰撞/手感/粒子/物理/调色板/音频/存档/探针等)即插即用、可组合、版本化。**玩法/美术/关卡/UI 不在此层**——四者是 agent 造游戏时的生成域2026-06-12 模板哲学重申)。
## 结构
- `src/core/` — core-protocol-v0Plugin 接口+注册器+受控面6 项,禁直透引擎)
- `src/plugins/` — 9 件插件_example 为活样板,规格模板=`docs/PLUGIN-TEMPLATE.md`
- `schema/` — plugin-manifest schema零依赖校验器在 scripts/
- `scripts/` — build/size/test/validateesbuild 打包SIZES.md 由 size.mjs 生成勿手改)
- `test/harness/` — 浏览器证据 harnessCDP
- `games/wanglanmei-ref/` — 拔高样板「暖阳小卖部」(好玩基线 v2 立标件LOOP-LOG.md=循环台账test/=e2e 驱动+runbookevidence/=四件套证据)
## 边界与现状
- **裁决①2026-06-12 创始人拍)**:粒子/物理/后处理三件须改**引擎能力包装层**(包 littlejsengine 内建而非裸 Canvas2D 平行重造);β 设真接线门bundle grep 实证含 littlejsengine+受控面开包装透传通道+SIZES 按「引擎+包装层」重锚。collision/gamefeel 确为引擎缺件,维持自研。
- T1b-α ✅ 主门过(创始人亲玩 PASS收口报告=`docs/agent-specs/2026-06-12-T1b-α收口报告.md`。
- **A0 地基 ✅(`11c8eaf`门0 8/8 mini-desktop 实测)**host-dev 真接 littlejsengine——`engineInit` 五回调掌帧(引擎内部 RAF 真推帧)+ `setGLEnable(false)` 纯 2D 渲进 mainContext受控面 6 项零改(引擎可换边界守住,引擎 import 仅 host.js/entry.js回滚桩 `?engine=stub` 活(α 等价。门0 driver=`test/harness/gate0-engine-takeover.cjs`,证据=`evidence/gate0/`,编辑计划=`docs/agent-specs/2026-06-13-A0-引擎掌帧接管-edit-plan.md`。A1-A6 在此地基接线。
- **T1b-β ✅ 实质收口2026-06-15收口报告 `docs/agent-specs/2026-06-15-T1b-β收口报告.md`**——完成线=引擎真接线Phase AA0 掌帧+A1-A4 能力包装+A6 mini-desktop real 引擎门 6/6`3e5cab4`+ Runner v2经 runner-v2 全弧 P1/P2/P3engineBundle 内嵌机制)实质收口,已支撑 feed 真玩(零灰度闭环缺口、零 split-brain。原 TODO 五项逐项处置:
- 〔裁决①落地〕✅ **done**:粒子/物理/后处理三件改引擎能力包装层已落A2 EngineEmitterSpec additive+薄包装引擎 ParticleEmitter 删 simA3 包装 zzfxG/zzfxM 删 vendoredA4 easing 走门面+collision/physics/palette 缺件补层真接线门②call-ID 运行时真调引擎A6 实证 6/6。
- Runner v2 产品化〕✅ **absorbed-by-arc**(无 split-brain母 spec §5 计划「复用后端 packageUrl 外链取 iife bundle」实际被 **engineBundle 字段(契约#4 additive随 manifest JSON 内嵌)+ `window.__GameBundle` 全局名 + `bootGameHost` 装载**取代(裁决:不接 OSS 省一条基建线,整包 sha256 单校验面);`game-host.d.ts`第9类真落、bootGameHost 真泛化、3b-B 井字棋真游戏真渲入 feedgameId=9306`238ec2d`。packageUrl 链对引擎 bundle 从未启用(留 OSS 切换后用)。
- 1.x 退役〕✅ **supersededmoot非缺口无双轨**:母 spec「srcdoc→URL+四项兼容矩阵」已被 **P2 裁决 O2(b)(创始人 2026-06-13 追认)正式 supersede**,权威落档 `docs/agent-specs/2026-06-13-P2-runner-v2泛化宿主-execution.md` §2.1;代码现实=全 studio 单宿主 `game-studio/src/host/GamePlayer.vue`srcdoc引擎 vs demo 是 `inject.ts:240 'pkg.engineBundle?'` 同段 srcdoc 内确定性互斥分叉,非两个并行宿主。
- 〔参考件入 feed✅ **done主链本体已验**B1 真游戏走后端发布主链入 feed 已 e2e9001-9002 全链);参考件本身现走 SQL 灌库桩,**推迟**经后端发布主链入 feed主链已被 B1 验过,非阻断)。
- P7/P8 决策〕✅ **done**default v2 兜底已是结论;裁定落档**推迟**补录(不影响行为)。
- **T1b-β 推迟清单engine-line backlog不在完成线关键路径推迟到日历闸门后或 L1 空档;创始人可点名某项转 required**
- gold-platingrender.js 切引擎 drawTile/drawText/drawRect/Color 样板拔高(现仍 100% Canvas2D但引擎掌帧+2D mainContext+引擎粒子同屏已达成「经引擎画游戏」);屏震切相机 cameraPos`render.js:915` 仍 g.translate门3 逐像素 WebGL readPixels 回归A0 有意降级=real 通道追帧 overshoot 不可控→stub 2D 通道兜逐像素immutable 强缓存头补端点实现(接 OSS 时,见下条孤儿字段裁决);参考件经后端发布主链入 feedruntime-probe 改独立墙钟Play.vue 埋点已天然满足立意)。
- audit-debtA5 SIZES 单口径并表 + `scripts/size.mjs:150` 引擎入口(现「插件增量主表+引擎产物附录」两表并存门1③负向扫描沉淀为可复跑 harness`outcome:'win'|'lose'` additive 字段落地(`events.schema.json`R6 三件尽调补录R3 血统回填五条;矩阵① sandboxAttr 下发消费allowOrigins 已接门5 /preview 单独走查(/play 已 CDP 实证)。
- **immutable 孤儿字段裁决2026-06-15**`contracts/game-package.schema.json:71` 的 `immutable`URL 强缓存语义)后端**零消费**grep 无端点实现命中),因 P2 走 DB-manifest 内嵌、packageUrl 外链未启用 → 现为有意孤儿字段;**裁决=推迟到接 OSS/CDN 时补端点实现**additive 可选字段,留存不删,非 split-brain门4 用 CDP Network timing 验缓存命中口径已写在字段 description 内)。
- 插件协议升格正式契约 = W-G0 第 9 契约组(契约权威在 `contracts/`,此处为实现)。