{ "schemaVersion": 1, "task": "M16-GAP-00011", "parentTask": "M16-GAP-00010", "status": "in_progress", "goal": "让同一个 Library fixture 在 Blender desktop 和 WASM/Main 中得到一致的最小可观察数据,并在 save/reopen 后保持一致。只改变 `datablock:Library` 这一条 gap;不扩大到其他 data-block 或编辑器行为。", "scope": { "gap": "datablock:Library", "ownerFamily": "RNA_DATABLOCK", "implementationClass": "LOCAL_EXACT" }, "commands": [ "build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00011.py -- tests/files/web/generated/M16-GAP-00011-datablock-Library.blend", "npm --prefix web run test:generated-gap -- --task M16-GAP-00011", "node tools/web/check-generated-gap.mjs --task M16-GAP-00011" ], "inputPaths": [ "tests/files/web/generated/M16-GAP-00011-datablock-Library.blend", "tools/web/generated/M16-GAP-00011.py", "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp", "tools/web/check-generated-gap.mjs" ], "exitCriteria": [ "desktop fixture evidence exists", "WASM uses the same fixture", "comparator passes", "save/reopen preserves Main", "manifest hashes all artifacts" ], "nextTask": "M16-GAP-00012", "sourceDocuments": { "queue": "docs/EXECUTION_QUEUE.md", "taskCard": "docs/tasks/M16-GAP-00011.md", "taskIndex": "tests/golden/M15-03A/task-index.json", "parentManifest": "tests/golden/M16-GAP-00010/manifest.json", "parentStatus": "docs/status/M16-GAP-00010.md" }, "readPolicy": { "required": [ "docs/EXECUTION_QUEUE.md", "docs/tasks/M16-GAP-00011.md", "tests/golden/M16-GAP-00010/manifest.json", "docs/status/M16-GAP-00010.md" ], "machineOnly": [ "tests/golden/M15-03A/task-index.json", "tests/golden/M15-03A/task-catalog.jsonl" ], "optionalByNeed": [ "docs/WEB_BLENDER_MODELER_V1_SCOPE.md", "任务卡列出的精确协议/生产路径", "任务卡明确命名的长期计划小节" ], "forbiddenByDefault": [ "完整 CURRENT_EXECUTION_PLAN.md", "完整 PROJECT_STATUS_AND_NEXT_WORK.md", "全部 docs/status/*.md", "完整 parity/WBS 计划", "README 历史和 test-results/" ] }, "parent": { "manifest": { "schemaVersion": 1, "task": "M16-GAP-00010", "parentTask": "M16-GAP-00009", "status": "done", "nextTask": "M16-GAP-00011", "artifactCount": 11 }, "statusSummary": [ "# M16-GAP-00010 Status", "status: done ", "task: Lattice data-block LOCAL_EXACT slice ", "updated: 2026-08-19 America/New_York", "scope: Blender 5.2 Lattice data-block dimensions, interpolation, outside flag, vertex group, point deformation, weight and selection.", "evidence:", "- Desktop fixture generated by `tools/web/generated/M16-GAP-00010.py`; Blender 5.2 opened, saved to a fresh file, reopened in a new process and matched exactly.", "- WASM/Main opened the same fixture, produced 3x2x2 / 12-point `lattice:WebGapLattice`, and matched the desktop point report exactly." ] }, "budgets": { "queueBytes": 4096, "taskBytes": 1945, "parentManifestBytes": 24576, "parentStatusBytes": 6144, "contextTokens": 3500, "taskLines": 40, "taskTokens": 377 }, "size": { "documents": [ { "path": "docs/EXECUTION_QUEUE.md", "bytes": 1969, "lines": 41, "tokens": 321 }, { "path": "docs/tasks/M16-GAP-00011.md", "bytes": 1945, "lines": 40, "tokens": 377 }, { "path": "tests/golden/M16-GAP-00010/manifest.json", "bytes": 2188, "lines": 58, "tokens": 547 }, { "path": "docs/status/M16-GAP-00010.md", "bytes": 1522, "lines": 24, "tokens": 381 } ], "totalTokens": 1626, "withinBudget": true } }