收口评审 P2:点选条款限定引擎档、对象名上限入边界、素材 id 格式写入 skill
Project CI / AI game creator shell Rust crates (pull_request) Successful in 4m29s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 7m6s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 5m50s
Project CI / Frontend tests (pull_request) Successful in 3m26s
Project CI / Backend tests (pull_request) Successful in 7m48s
Project CI / AI game creator shell web tests (pull_request) Successful in 3m3s
Project CI / Repository checks (pull_request) Successful in 7m15s
Project CI / Native shell tests (pull_request) Successful in 9m30s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 4m29s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 7m6s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 5m50s
Project CI / Frontend tests (pull_request) Successful in 3m26s
Project CI / Backend tests (pull_request) Successful in 7m48s
Project CI / AI game creator shell web tests (pull_request) Successful in 3m3s
Project CI / Repository checks (pull_request) Successful in 7m15s
Project CI / Native shell tests (pull_request) Successful in 9m30s
- 功能说明第 8 条「命中区域裁剪在画布内」限定为引擎档,并说明 DOM 档仍是元素矩形;证据表对应行同步对齐 - 功能说明「边界与非目标」新增一条:引擎档对象名超过 40 字符按取不到处理(有意保留),宿主侧标签上限另为 120 - SKILL.md「运行画面点选契约」第 3 条补一句:素材 id 不含空白与路径分隔符(localAssetId 由客户端生成) - skill-pack 指纹同步(agc-web-game-development version 2026-08-26.42 与 sha256)
This commit is contained in:
@@ -66,7 +66,7 @@ AGC 聊天输入框支持以结构化引用标记当前项目已登记素材,
|
||||
5. **命中反馈**:能定位到命中对象时,高亮范围是命中对象在画面上的区域;取不到对象矩形时退化为与 DOM 档一致的高亮范围。
|
||||
6. **协议与净化不变**:运行画面点选与 DOM 点选共用同一套预览消息协议、同一套字段净化与数量上限;引擎侧取到的标识必须先过同一套净化才能进入引用载荷。
|
||||
7. **点选不改变预览适配**:进入检查模式、悬停、点中对象都不得改变预览页上报的内容尺寸与宿主算出的适配布局;点选自身的高亮层不属于页面内容,不得参与内容尺寸测量。
|
||||
8. **命中区域裁剪在画布内**:上报/绘制的命中区域只取画布范围内的可见部分;命中区域与画布无交集时退化为指针点区域,不产生超出画布的巨型区域。
|
||||
8. **命中区域裁剪在画布内**:引擎档的命中区域只取画布范围内的可见部分;命中区域与画布无交集时退化为指针点区域,不产生超出画布的巨型区域。DOM 档仍是元素矩形。
|
||||
|
||||
### 边界与非目标
|
||||
|
||||
@@ -76,6 +76,7 @@ AGC 聊天输入框支持以结构化引用标记当前项目已登记素材,
|
||||
- 不做像素级或颜色拾取,不为了识别素材去改写玩法源码、资源文件或渲染结果。
|
||||
- **Phaser 4 默认装载下贴图地址不可得**:Phaser 4 默认用 XHR 装载图片,贴图元素上的地址是会话内的临时地址,读不回原始素材路径。这类项目**必须由玩法显式标注素材身份**才能点出素材;没有标注就按第 4 条退化(退化为不带素材的区域引用),不猜。
|
||||
- **只认玩法发布的只读引擎句柄**:预览页没有发布该句柄、或句柄声明的引擎类型不在支持范围内时,一律退化为不带素材的区域引用;宿主不通过扫描全局对象去猜引擎。
|
||||
- **引擎档对象名有 40 字符上限(有意保留)**:引擎档命中对象的名字超过 40 字符时按取不到处理,标签退到几何类型 / 对象类型;宿主侧标签上限另为 120。取 40 是为了避免程序化生成的长名塞进引用芯片。
|
||||
- **生成期契约落在 AGC 玩法 Skill**:句柄发布、Phaser 图片的 Image 装载、素材渲染对象的身份标注、素材在 dist 的稳定路径这四条写进 `agc-web-game-development` 的「运行画面点选契约」,生成期即按契约产出;本能力说明不承诺历史项目自动具备,也不改写既有项目。
|
||||
- **three 句柄只放桥要用的构造器**:契约推荐 `{ engine: 'three', three: { Raycaster, Vector2, Vector3, Box3 }, scene, camera, renderer }`;传整个 `THREE` 命名空间会破坏 tree-shaking(同一 Vite 构建实测 517,682 B → 730,831 B,+41%)。旧形态仍被兼容读取,但新代码与模板只用瘦身形态。
|
||||
|
||||
@@ -89,7 +90,7 @@ AGC 聊天输入框支持以结构化引用标记当前项目已登记素材,
|
||||
| 5 | 高亮矩形:声明级用例 + 真机目视 | 浏览器实测高亮矩形与期望逐值相减:Phaser 差 0px、three 最大差 ≈0.0006px;DOM 档仍是元素矩形。 |
|
||||
| 4、5 | 命中对象但取不到素材身份时:芯片显示画面侧可得的名字(对象名 → 几何类型 → 对象类型),不是一律的 `canvas`;矩形仍是命中对象在画面上的区域 | 真实 Chromium + 真实 three 0.184 + 真实桥脚本实测(瘦身句柄 `three: { Raycaster, Vector2, Vector3, Box3 }`):`object.name = 'Crate'` → 芯片 `Crate`、矩形 143×143;无名字的 `SphereGeometry` → 芯片 `SphereGeometry`、矩形 227×227;旧 `THREE` 命名空间句柄 → 芯片 `LegacyMesh`(两形态都命中);`userData.genarrativeResourceId` → `resourceIds: ["local-asset:probe"]`。两条 label 兜底与两形态句柄另由 `tests/runtimeInspectEngines.test.ts`(33 例)锁定。 |
|
||||
| 7 | `tests/localPreviewInspectSizeStability.test.ts`(5 例,对修复前的桥 5 failed) | 真实 Chromium 夹具对照:尺寸消息 1459 → 3、iframe 布局变更 1457 → 1、游戏 `resize` 1454 → 1、相机 `aspect` 由振荡变为恒定 1.607143。 |
|
||||
| 8 | 同文件用例覆盖「投影盒超出画布被裁剪」与「无交集退化为 1×1 指针点区域」 | 真实夹具高亮矩形由 `[-2852,-2078,6607,4721]` 变为 `[0,0,904,564]`(画布 900×560 + 2px 边框)。 |
|
||||
| 8 | 同文件用例覆盖引擎档的「投影盒超出画布被裁剪」与「无交集退化为 1×1 指针点区域」 | 真实夹具高亮矩形由 `[-2852,-2078,6607,4721]` 变为 `[0,0,904,564]`(画布 900×560 + 2px 边框);DOM 档仍给元素矩形。 |
|
||||
|
||||
素材收敛口径由 `tests/runtimeInspectResourceMatch.test.ts`(11 例)覆盖:显式 id、精确后缀、文件名、序列帧四档与去重。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user