2.3 KiB
2.3 KiB
M16-GAP-00010:Lattice data-block LOCAL_EXACT slice
task:M16-GAP-00010parent:M16-GAP-00009status:donegap:datablock:LatticeownerFamily:RNA_DATABLOCKtargetImplementationClass:LOCAL_EXACT
目标
让同一个 Lattice fixture 在 Blender desktop 和 WASM/Main 中得到一致的点阵/形变数据,并在 save/reopen 后保持一致。
输入与范围
- Fixture:
tests/files/web/generated/M16-GAP-00010-datablock-Lattice.blend - 生产入口:
blender-5.2.0/source/blender/web_engine/、web/app/src/vendor/blender/ - 检查器:
tools/web/check-generated-gap.mjs、tools/web/generated/M16-GAP-00010.py - 做:Lattice 数据读取、desktop/WASM 对标、save/reopen 和结构化报告。
- 不做:其他 data-block、UI 编辑器、Firefox/WebKit 或完整 Lattice 编辑工具。
子任务门
| 门 | 唯一交付 | 通过条件 |
|---|---|---|
| L-C | Lattice 字段/稳定 ID/错误码契约 | schema 和 malformed/unsupported 负例固定 |
| L-D | Blender desktop fixture/report | 同一 fixture 生成可重跑 report 和 hash |
| L-W | WASM/Main reader | 生产入口读取同一 fixture,输出字段与 desktop 对齐 |
| L-R | save/reopen | 新 Main 重开后点阵/形变和 revision 不变 |
| L-E | 证据交接 | comparator、manifest、status 和 rollback 全部可复验 |
每次只推进一扇门;失败门保持 in_progress,不得用后续报告代替前置证据。
验收
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00010.py -- tests/files/web/generated/M16-GAP-00010-datablock-Lattice.blend
npm --prefix web run test:generated-gap -- --task M16-GAP-00010
node tools/web/check-generated-gap.mjs --task M16-GAP-00010
必须覆盖 malformed/unsupported 输入或取消路径;失败不得改变 Main revision 或推进 nextTask。
交付与回滚
- 报告:
tests/golden/M16-GAP-00010/ - 状态:
docs/status/M16-GAP-00010.md - manifest:
tests/golden/M16-GAP-00010/manifest.json - 完成后运行
node tools/web/check-task-context.mjs --task M16-GAP-00010 --write。 - 回滚:删除本任务新增的生产入口、测试、报告、manifest、status 和 context,恢复 parent manifest 为队列尾;不得改写 parent 成功证据。