{ "schemaVersion": 1, "task": "M9-14", "domains": ["CURVE", "GREASE_PENCIL", "PAINT"], "fixtures": { "CURVE": { "path": "tests/files/web/nonmesh_scene.blend", "sha256": "ae8ef85d606aa120ce6b7611fc03407fd80bb60311e94a6ef73f6384d0b6c8b4" }, "GREASE_PENCIL": { "path": "tests/files/web/modifier_grease_pencil_scene.blend", "sha256": "3a8525077807f9178dac3a5ba84b524e5f8e80874b15c54e2a6658ecb80315a3" }, "PAINT": { "path": "tests/files/web/attribute_scene.blend", "sha256": "12fa75bb79f8c38e660d3d2a8fc9cc16dd3df4fc9208b0e2ad94fb1f8aa68f71" } }, "requiredStages": ["WORKER_RESTART", "OOM", "GPU_RELEASE", "SMALL_SCENE"], "invariants": { "workerRestart": "identity hash preserved; new engine worker has one live Main handle", "oom": "GPU_GEOMETRY_UPLOAD maps to GPU_GEOMETRY_BUDGET_EXCEEDED and leaves zero temporary resources", "gpuRelease": "one WebGL2 resource release and one reinitialization render non-zero pixels", "smallScene": "domain identity, data IDs and visible pixels are restored" }, "verification": { "unit": "web/tests/unit/editing-domain-recovery.test.mjs", "browser": "web/tests/e2e/editing-domain-recovery.spec.ts", "command": "npm --prefix web run test:editing-domain-recovery" } }