{ "schemaVersion": 1, "task": "WBV2-P1415-001", "operation": "MODULE_FUNCTION_EXECUTION", "phase": "CONTINUE", "moduleId": "MESH_MERGE_MACRO_BATCH", "batchId": "WBV2-P1415-001:MESH_MERGE_MACRO_BATCH:f34f40626ea8b27c", "selectedRecordIds": [ "operator:ANIM_OT_merge_animation" ], "commandBudget": { "maxCommands": 48, "maxReadCommands": 16, "commandCount": 4, "readCommandCount": 0, "withinBudget": true }, "status": "PASS", "source": { "paths": [ "blender-5.2.0/source/blender/editors/animation/anim_ops.cc", "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp", "web/tests/e2e/wbv2-mesh-topology-production.spec.ts", "tests/files/web/generated/WBV2-P2-003-MESH.EDIT_CORE.blend", "web/app/src/vendor/blender/web_engine.wasm", "web/app/public/vendor/blender/web_engine.wasm", "web/app/public/wasm-module-manifest.json", "web/app/public/vendor/blender/modules/single/web_engine.secondary.wasm", "web/app/public/vendor/blender/modules/pthread/web_engine.secondary.wasm" ], "auditedPaths": [ "blender-5.2.0/source/blender/editors/animation/anim_ops.cc", "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp" ], "before": { "blender-5.2.0/source/blender/editors/animation/anim_ops.cc": "cbbfa0d28f605ffda01ab05f3b71339ccf4324ef152d53714cad2a6a7b5e984a", "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp": "8a9b46e8f5f9c4b30ad7818fac6fbd64b20dc2d0a962630f50c8f352bdf230d3" }, "after": { "blender-5.2.0/source/blender/editors/animation/anim_ops.cc": "cbbfa0d28f605ffda01ab05f3b71339ccf4324ef152d53714cad2a6a7b5e984a", "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp": "8a9b46e8f5f9c4b30ad7818fac6fbd64b20dc2d0a962630f50c8f352bdf230d3" }, "unchanged": true }, "reusedReceipts": [ { "manifest": "tests/golden/WBV2-P1107-000/manifest.json", "report": "tests/golden/WBV2-P1107-000/module-receipt.json", "manifestSha256": "a53ebdc52db5dcf27d44e938e5551f1ee2adae8e46c3fe8661604ee6b1000f8c", "reportSha256": "6dd419799e1a4b9251328d9496f2459d148cd89118740a06b0ee6ffb78e0b1d2" } ], "cases": { "positive": [ "ANIM_OT_merge_animation type is read from Blender Main", "shared RNA metadata is preserved", "save/reopen preserves the batch metadata" ], "negative": [ "malformed blend is rejected without Main mutation", "unsupported batch data fails closed", "non-finite metadata is not synthesized" ], "recovery": [ "save/reopen", "worker termination", "deterministic second read" ] }, "commands": [ { "command": "source tools/web/emscripten-env.sh && cmake --build build_web_blender6 --target web_engine -- -j8 && cp build_web_blender6/bin/web_engine.wasm web/app/src/vendor/blender/web_engine.wasm && cp build_web_blender6/bin/web_engine.wasm web/app/public/vendor/blender/web_engine.wasm && node tools/web/split-wbv2-wasm.mjs --input web/app/public/vendor/blender/web_engine.wasm --output-dir web/app/public/vendor/blender/modules/single --split-funcs web_engine_get_live_handles && node tools/web/split-wbv2-wasm.mjs --input web/app/public/vendor/blender/pthread/web_engine.wasm --output-dir web/app/public/vendor/blender/modules/pthread --split-funcs web_engine_get_live_handles", "exitCode": 0, "durationMs": 1138 }, { "command": "npm --prefix web run typecheck", "exitCode": 0, "durationMs": 3302 }, { "command": "npm --prefix web run build", "exitCode": 0, "durationMs": 3905 }, { "command": "WBV2_BATCH_TASK=WBV2-P1415-001 WBV2_BATCH_PRODUCTION=tests/golden/WBV2-P1415-001/mesh-topology-production.json WBV2_BATCH_FIXTURE=tests/files/web/generated/WBV2-P2-003-MESH.EDIT_CORE.blend WBV2_BATCH_OPERATION=MERGE WBV2_BATCH_TYPES='[]' WBV2_BATCH_UNITS='[\"operator:ANIM_OT_merge_animation\"]' WEB_TEST_PORT=5371 npm --prefix web run test:e2e -- --workers=1 tests/e2e/wbv2-mesh-topology-production.spec.ts", "exitCode": 0, "durationMs": 3111 } ], "verification": { "required": [ "sourceHash", "wasmBuild", "positiveMainMutation", "negativeNoMutation", "undoRedo", "saveReopen", "aggregateManifest" ], "chromiumOnly": true, "fullFamilyParity": false }, "efficiency": { "existingEvidenceReused": false, "skippedCommands": 0, "totalDurationMs": 11456, "reusePolicy": "hash_bound_receipt" }, "inventory": { "historical": { "path": "tests/golden/WBV2-P0-002/parity-map.json", "sha256": "a60a77cae000941a953d55adbf93d8f6e275533891713d6eae993f60faed94e8", "total": 6900, "legacyCompleted": 281, "legacyPending": 6618, "effectiveCompleted": 290, "effectivePending": 6609, "mutation": "forbidden_by_module_execution" }, "dynamic": { "path": "tests/golden/WBV2/dynamic-inventory.json", "sha256": "8835fc04c58b1d7052e359548e4cd244f8b593f091d06861bbabf97bc5193fc3", "sourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202", "unitCount": 3745, "planningEstimate": 5200, "hardTarget": false, "verifiedUnits": 1149, "unverifiedUnits": 2596 } }, "nextTask": null }