Govern task context and advance execution pointer
Some checks failed
M6 deployable RC / quick (push) Has been cancelled
M6 deployable RC / chromium (push) Has been cancelled
M6 deployable RC / release (push) Has been cancelled

This commit is contained in:
mes123456
2026-08-20 06:02:43 -04:00
parent 380cbed4ff
commit 10640aeb3c
984 changed files with 543475 additions and 327 deletions

View File

@@ -3,31 +3,128 @@
"task": "M14-04F",
"operation": "CHROMIUM_INPUT_MODAL_BOUNDARY",
"runtime": "PLAYWRIGHT_CHROMIUM",
"browserEvents": [
{
"pointerId": 2,
"pointerType": "touch",
"phase": "down"
"backends": {
"main": {
"events": [
{
"pointerId": 2,
"pointerType": "touch",
"phase": "down"
},
{
"pointerId": 4,
"pointerType": "touch",
"phase": "down"
},
{
"pointerId": 2,
"pointerType": "touch",
"phase": "cancel"
},
{
"pointerId": 9,
"pointerType": "pen",
"phase": "down"
},
{
"pointerId": 9,
"pointerType": "pen",
"phase": "up"
},
{
"pointerId": 9,
"pointerType": "pen",
"phase": "up"
},
{
"pointerId": 9,
"pointerType": "pen",
"phase": "cancel"
}
],
"twoFinger": {
"kind": "TOUCH_NAVIGATION",
"activePointerIds": "2,4",
"cancelled": "0",
"navigationRevision": 1,
"mainCommitCount": 0
},
"touchCancel": {
"kind": "NONE",
"activePointerIds": "",
"cancelled": "1",
"navigationRevision": 1,
"mainCommitCount": 0
},
"penCommit": {
"kind": "NONE",
"activePointerIds": "",
"cancelled": "1",
"navigationRevision": 1,
"mainCommitCount": 1
}
},
{
"pointerId": 4,
"pointerType": "touch",
"phase": "down"
},
{
"pointerId": 9,
"pointerType": "pen",
"phase": "down"
},
{
"pointerId": 2,
"phase": "cancel"
},
{
"pointerId": 9,
"phase": "up"
"offscreen": {
"events": [
{
"pointerId": 2,
"pointerType": "touch",
"phase": "down"
},
{
"pointerId": 4,
"pointerType": "touch",
"phase": "down"
},
{
"pointerId": 2,
"pointerType": "touch",
"phase": "cancel"
},
{
"pointerId": 9,
"pointerType": "pen",
"phase": "down"
},
{
"pointerId": 9,
"pointerType": "pen",
"phase": "up"
},
{
"pointerId": 9,
"pointerType": "pen",
"phase": "up"
},
{
"pointerId": 9,
"pointerType": "pen",
"phase": "cancel"
}
],
"twoFinger": {
"kind": "TOUCH_NAVIGATION",
"activePointerIds": "2,4",
"cancelled": "0",
"navigationRevision": 1,
"mainCommitCount": 0
},
"touchCancel": {
"kind": "NONE",
"activePointerIds": "",
"cancelled": "1",
"navigationRevision": 1,
"mainCommitCount": 0
},
"penCommit": {
"kind": "NONE",
"activePointerIds": "",
"cancelled": "1",
"navigationRevision": 1,
"mainCommitCount": 1
}
}
],
},
"guarantees": {
"touchCancelMainCommit": 0,
"twoFingerNavigationRevision": 1,

View File

@@ -13,15 +13,23 @@
},
"checker": {
"path": "tools/web/check-chromium-input-modal.mjs",
"sha256": "3ed496cbb9d24617c594025ba20f38ec79d6fee56e5d471317857230143c8295"
"sha256": "4f813623d9845b73c1a05aeccaf88d8d3b13d48e5fd83c83fa6222e13324e854"
},
"protocol": {
"path": "web/protocol/input-modal.ts",
"sha256": "1f8318e11dbdb7aebc4f391f8c2474e9ddd2ee872eac755c1856d1f20d78344d"
"sha256": "271e4f9e86a6aa4ebe92a43f6ce3d9b42b0931a5d12d9b40a8b4c26b2808cb23"
},
"unit": {
"path": "web/tests/unit/input-modal.test.mjs",
"sha256": "f56be3057561db6068e6f738a2e5e73febfe27ba5a8b210190056bd590a52c42"
"sha256": "f8105ebb59f3a369b15282a3923bdc47249f7a727794d3a89c29c1523f1aa989"
},
"mainViewport": {
"path": "web/app/src/three-adapter/viewport.ts",
"sha256": "e8d97cb59fd4eca3789aeeb35221a70cf47ef048a5665383d809d0efc49f7119"
},
"offscreenViewport": {
"path": "web/app/src/three-adapter/offscreen-viewport.ts",
"sha256": "4a210ae247d0e29972096da6c206f3457c2238e6061c6eb622f0ce55c6bfd439"
},
"package": {
"path": "web/package.json",
@@ -29,7 +37,7 @@
},
"report": {
"path": "tests/golden/M14-04F/chromium-input-modal-report.json",
"sha256": "11ea07732f74660a5410a696c3db7646a2dcc333d565d5318c2436c3ed93afc0"
"sha256": "dc8c386a705c4cd7335eb5f7ea0ec9d61feaae8b9529fdab423ab00898ecf911"
}
},
"nextTask": "M14-04G"

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,48 @@
{
"schemaVersion": 1,
"task": "M14-04G",
"parentTask": "M14-04F",
"enablingTask": false,
"parityStateChange": false,
"runtime": "PLAYWRIGHT_CHROMIUM",
"operation": "CHROMIUM_RESPONSIVE_LAYOUT_BOUNDARY",
"artifacts": {
"parentManifest": {
"path": "tests/golden/M14-04F/manifest.json",
"sha256": "895b460477a8379594ee93043139b9521952638dbd6670b0205eab1896886455"
},
"checker": {
"path": "tools/web/check-chromium-layout.mjs",
"sha256": "b211b703309e22810c39f85e4801bc5f0690fa682e33cdcb85157bd28ea042c0"
},
"app": {
"path": "web/app/src/app/App.tsx",
"sha256": "92d01daecf3f39bc4ac214e4b651ec6feb687bbfbf58c4d3e602a314cdcc664c"
},
"css": {
"path": "web/app/src/app/app-shell.css",
"sha256": "5961164f29e25b461c03201534fe56e32020633cac6c0970e149a58ba9f6e9fc"
},
"mainViewport": {
"path": "web/app/src/three-adapter/viewport.ts",
"sha256": "e8d97cb59fd4eca3789aeeb35221a70cf47ef048a5665383d809d0efc49f7119"
},
"offscreenViewport": {
"path": "web/app/src/three-adapter/offscreen-viewport.ts",
"sha256": "4a210ae247d0e29972096da6c206f3457c2238e6061c6eb622f0ce55c6bfd439"
},
"referenceE2E": {
"path": "web/tests/e2e/responsive-layout.spec.ts",
"sha256": "f5de57f570880f823224ebdcddb2be4d59ec414a32641effdaa68dc1f4102f28"
},
"package": {
"path": "web/package.json",
"sha256": "0345600a3249420582cfee7092c265e1a195333f28ebc46f8b37929372864896"
},
"report": {
"path": "tests/golden/M14-04G/chromium-layout-report.json",
"sha256": "65b1050217e2343e656d56c4d7893d13f36b5f07008288ea194a101dafbaa0e2"
}
},
"nextTask": "M14-04H"
}

View File

@@ -0,0 +1,33 @@
{
"schemaVersion": 1,
"task": "M14-04H",
"operation": "CHROMIUM_KEYBOARD_ACCESSIBILITY_BOUNDARY",
"runtime": "PLAYWRIGHT_CHROMIUM",
"backends": [
"main",
"offscreen"
],
"results": {
"main": {
"fileTabCount": 1,
"accessible": {
"missing": [],
"visibleInteractiveCount": 66
}
},
"offscreen": {
"fileTabCount": 1,
"accessible": {
"missing": [],
"visibleInteractiveCount": 66
}
}
},
"guarantees": {
"menuFocus": "RESTORED",
"operatorSearchFocus": "RESTORED",
"accessibleNames": "COMPLETE"
},
"execution": "DISABLED",
"nextTask": "M15-01A"
}

View File

@@ -0,0 +1,40 @@
{
"schemaVersion": 1,
"task": "M14-04H",
"parentTask": "M14-04G",
"enablingTask": false,
"parityStateChange": false,
"runtime": "PLAYWRIGHT_CHROMIUM",
"operation": "CHROMIUM_KEYBOARD_ACCESSIBILITY_BOUNDARY",
"artifacts": {
"parentManifest": {
"path": "tests/golden/M14-04G/manifest.json",
"sha256": "a5a80cedd824cc4aac27bd2cec39e11560d4cf3207ab947a1abe19c8bb9e053f"
},
"checker": {
"path": "tools/web/check-chromium-accessibility.mjs",
"sha256": "b39cdef61007e5ac1f2e7686ccdffd42f6b9723b2e93a7bd63e46800c4453ced"
},
"app": {
"path": "web/app/src/app/App.tsx",
"sha256": "5861988f3dfbb8c05d36aee3033a72514de53a0cb4ec6f3d832418ef6b5cc8b2"
},
"css": {
"path": "web/app/src/app/app-shell.css",
"sha256": "5961164f29e25b461c03201534fe56e32020633cac6c0970e149a58ba9f6e9fc"
},
"referenceE2E": {
"path": "web/tests/e2e/keyboard-accessibility.spec.ts",
"sha256": "e74a53a1f9e9bfea73be8da1de486938d0dcc4718e7585b57bee27a5ce78a978"
},
"package": {
"path": "web/package.json",
"sha256": "7e24f577b7ffbc002bb29e0b723f39cda887ec546765505f559c5694e016e54b"
},
"report": {
"path": "tests/golden/M14-04H/chromium-accessibility-report.json",
"sha256": "508adab3c6ced83c95bcced36d610c20f2f2fd456637cb79568b4b824d66ead9"
}
},
"nextTask": "M15-01A"
}

View File

@@ -0,0 +1,231 @@
{
"dataBlockTypes": [
{
"baseType": "ID",
"parityId": "BLENDER52_RNA_ID_ACTION",
"rnaIdentifier": "Action",
"sourceAnchor": "blender-5.2.0/source/blender/makesrna",
"typeName": "Action"
},
{
"baseType": "ID",
"parityId": "BLENDER52_RNA_ID_ARMATURE",
"rnaIdentifier": "Armature",
"sourceAnchor": "blender-5.2.0/source/blender/makesrna",
"typeName": "Armature"
},
{
"baseType": "ID",
"parityId": "BLENDER52_RNA_ID_BRUSH",
"rnaIdentifier": "Brush",
"sourceAnchor": "blender-5.2.0/source/blender/makesrna",
"typeName": "Brush"
},
{
"baseType": "ID",
"parityId": "BLENDER52_RNA_ID_CAMERA",
"rnaIdentifier": "Camera",
"sourceAnchor": "blender-5.2.0/source/blender/makesrna",
"typeName": "Camera"
},
{
"baseType": "ID",
"parityId": "BLENDER52_RNA_ID_COLLECTION",
"rnaIdentifier": "Collection",
"sourceAnchor": "blender-5.2.0/source/blender/makesrna",
"typeName": "Collection"
},
{
"baseType": "ID",
"parityId": "BLENDER52_RNA_ID_CURVE",
"rnaIdentifier": "Curve",
"sourceAnchor": "blender-5.2.0/source/blender/makesrna",
"typeName": "Curve"
},
{
"baseType": "ID",
"parityId": "BLENDER52_RNA_ID_CURVES",
"rnaIdentifier": "Curves",
"sourceAnchor": "blender-5.2.0/source/blender/makesrna",
"typeName": "Curves"
},
{
"baseType": "ID",
"parityId": "BLENDER52_RNA_ID_FREESTYLELINESTYLE",
"rnaIdentifier": "FreestyleLineStyle",
"sourceAnchor": "blender-5.2.0/source/blender/makesrna",
"typeName": "FreestyleLineStyle"
},
{
"baseType": "ID",
"parityId": "BLENDER52_RNA_ID_GREASEPENCIL",
"rnaIdentifier": "GreasePencil",
"sourceAnchor": "blender-5.2.0/source/blender/makesrna",
"typeName": "GreasePencil"
},
{
"baseType": "ID",
"parityId": "BLENDER52_RNA_ID_LATTICE",
"rnaIdentifier": "Lattice",
"sourceAnchor": "blender-5.2.0/source/blender/makesrna",
"typeName": "Lattice"
},
{
"baseType": "ID",
"parityId": "BLENDER52_RNA_ID_LIBRARY",
"rnaIdentifier": "Library",
"sourceAnchor": "blender-5.2.0/source/blender/makesrna",
"typeName": "Library"
},
{
"baseType": "ID",
"parityId": "BLENDER52_RNA_ID_LIGHT",
"rnaIdentifier": "Light",
"sourceAnchor": "blender-5.2.0/source/blender/makesrna",
"typeName": "Light"
},
{
"baseType": "ID",
"parityId": "BLENDER52_RNA_ID_MATERIAL",
"rnaIdentifier": "Material",
"sourceAnchor": "blender-5.2.0/source/blender/makesrna",
"typeName": "Material"
},
{
"baseType": "ID",
"parityId": "BLENDER52_RNA_ID_MESH",
"rnaIdentifier": "Mesh",
"sourceAnchor": "blender-5.2.0/source/blender/makesrna",
"typeName": "Mesh"
},
{
"baseType": "ID",
"parityId": "BLENDER52_RNA_ID_METABALL",
"rnaIdentifier": "MetaBall",
"sourceAnchor": "blender-5.2.0/source/blender/makesrna",
"typeName": "MetaBall"
},
{
"baseType": "ID",
"parityId": "BLENDER52_RNA_ID_NODETREE",
"rnaIdentifier": "NodeTree",
"sourceAnchor": "blender-5.2.0/source/blender/makesrna",
"typeName": "NodeTree"
},
{
"baseType": "ID",
"parityId": "BLENDER52_RNA_ID_OBJECT",
"rnaIdentifier": "Object",
"sourceAnchor": "blender-5.2.0/source/blender/makesrna",
"typeName": "Object"
},
{
"baseType": "ID",
"parityId": "BLENDER52_RNA_ID_PARTICLESETTINGS",
"rnaIdentifier": "ParticleSettings",
"sourceAnchor": "blender-5.2.0/source/blender/makesrna",
"typeName": "ParticleSettings"
},
{
"baseType": "ID",
"parityId": "BLENDER52_RNA_ID_POINTCLOUD",
"rnaIdentifier": "PointCloud",
"sourceAnchor": "blender-5.2.0/source/blender/makesrna",
"typeName": "PointCloud"
},
{
"baseType": "ID",
"parityId": "BLENDER52_RNA_ID_SCENE",
"rnaIdentifier": "Scene",
"sourceAnchor": "blender-5.2.0/source/blender/makesrna",
"typeName": "Scene"
},
{
"baseType": "ID",
"parityId": "BLENDER52_RNA_ID_SCREEN",
"rnaIdentifier": "Screen",
"sourceAnchor": "blender-5.2.0/source/blender/makesrna",
"typeName": "Screen"
},
{
"baseType": "ID",
"parityId": "BLENDER52_RNA_ID_SOUND",
"rnaIdentifier": "Sound",
"sourceAnchor": "blender-5.2.0/source/blender/makesrna",
"typeName": "Sound"
},
{
"baseType": "ID",
"parityId": "BLENDER52_RNA_ID_SPEAKER",
"rnaIdentifier": "Speaker",
"sourceAnchor": "blender-5.2.0/source/blender/makesrna",
"typeName": "Speaker"
},
{
"baseType": "ID",
"parityId": "BLENDER52_RNA_ID_TEXT",
"rnaIdentifier": "Text",
"sourceAnchor": "blender-5.2.0/source/blender/makesrna",
"typeName": "Text"
},
{
"baseType": "ID",
"parityId": "BLENDER52_RNA_ID_TEXTURE",
"rnaIdentifier": "Texture",
"sourceAnchor": "blender-5.2.0/source/blender/makesrna",
"typeName": "Texture"
},
{
"baseType": "ID",
"parityId": "BLENDER52_RNA_ID_VOLUME",
"rnaIdentifier": "Volume",
"sourceAnchor": "blender-5.2.0/source/blender/makesrna",
"typeName": "Volume"
},
{
"baseType": "ID",
"parityId": "BLENDER52_RNA_ID_WINDOWMANAGER",
"rnaIdentifier": "WindowManager",
"sourceAnchor": "blender-5.2.0/source/blender/makesrna",
"typeName": "WindowManager"
},
{
"baseType": "ID",
"parityId": "BLENDER52_RNA_ID_WORKSPACE",
"rnaIdentifier": "WorkSpace",
"sourceAnchor": "blender-5.2.0/source/blender/makesrna",
"typeName": "WorkSpace"
},
{
"baseType": "ID",
"parityId": "BLENDER52_RNA_ID_WORLD",
"rnaIdentifier": "World",
"sourceAnchor": "blender-5.2.0/source/blender/makesrna",
"typeName": "World"
}
],
"nextTask": "M15-01B",
"operation": "BLENDER_RNA_DATABLOCK_INVENTORY",
"runtime": {
"binarySha256": "d4483926610484ef9c2ad9241aae1469f934d955ebe791f1920e263e0ba85b82",
"blenderVersion": "5.2.0 LTS",
"buildBranch": "unknown",
"buildDate": "2026-07-24",
"buildHash": "unknown",
"buildPlatform": "Linux",
"buildTime": "08:03:47",
"buildType": "Release",
"versionTuple": [
5,
2,
0
]
},
"schemaVersion": 1,
"sourceAnchor": "blender-5.2.0/source/blender/makesrna",
"summary": {
"baseType": "ID",
"count": 29
},
"task": "M15-01A"
}

View File

@@ -0,0 +1,25 @@
{
"schemaVersion": 1,
"task": "M15-01A",
"operation": "BLENDER_RNA_DATABLOCK_INVENTORY_CHECK",
"runtime": {
"binarySha256": "d4483926610484ef9c2ad9241aae1469f934d955ebe791f1920e263e0ba85b82",
"blenderVersion": "5.2.0 LTS",
"buildBranch": "unknown",
"buildDate": "2026-07-24",
"buildHash": "unknown",
"buildPlatform": "Linux",
"buildTime": "08:03:47",
"buildType": "Release",
"versionTuple": [
5,
2,
0
]
},
"count": 29,
"first": "Action",
"last": "World",
"inventorySha256": "98e6c2ebc9f62647b43fb06eff178bef02db06516f6ac87048ae81fcf2d8e792",
"nextTask": "M15-01B"
}

View File

@@ -0,0 +1,36 @@
{
"schemaVersion": 1,
"task": "M15-01A",
"parentTask": "M14-04H",
"enablingTask": false,
"parityStateChange": false,
"runtime": "BLENDER_5_2_RNA",
"operation": "BLENDER_RNA_DATABLOCK_INVENTORY",
"artifacts": {
"parentManifest": {
"path": "tests/golden/M14-04H/manifest.json",
"sha256": "2c4e4323250f3426f610babb42978ba36c48e471729b20b0ce8f3483eb6f899c"
},
"generator": {
"path": "tools/web/generate-blender-rna-datablock-inventory.py",
"sha256": "2e61a1a8a2e5347d3ee0f8efa5bad74e9823de6e7b0959f505e73c9d96e7037b"
},
"checker": {
"path": "tools/web/check-blender-rna-datablock-inventory.mjs",
"sha256": "43b72286964fcfa1f6beebec786c4f96cf12d5d33c6227754e5b98e2dda668ab"
},
"inventory": {
"path": "tests/golden/M15-01A/blender-rna-datablock-inventory.json",
"sha256": "98e6c2ebc9f62647b43fb06eff178bef02db06516f6ac87048ae81fcf2d8e792"
},
"runtime": {
"path": "build_blender_5.2.0/bin/blender",
"sha256": "d4483926610484ef9c2ad9241aae1469f934d955ebe791f1920e263e0ba85b82"
},
"package": {
"path": "web/package.json",
"sha256": "159af906f4e468e3f18cfcd2f599a7e22c9c180cdc8032ba4eac5eaf5ad8cc0e"
}
},
"nextTask": "M15-01B"
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,40 @@
{
"schemaVersion": 1,
"task": "M15-01B",
"parentTask": "M15-01A",
"enablingTask": false,
"parityStateChange": false,
"runtime": "BLENDER_5_2_OPERATOR",
"operation": "BLENDER_OPERATOR_INVENTORY",
"artifacts": {
"parentManifest": {
"path": "tests/golden/M15-01A/manifest.json",
"sha256": "3d1e0ca2344299276e3ef1a3d79141efc3fc5d79257edbf2ce6d679f012986cc"
},
"generator": {
"path": "tools/web/generate-blender-operator-inventory.py",
"sha256": "5928c2df2074d7b530c173baffc4da2bb0bbb50817ab8b2cdb5f6d43e07b1727"
},
"checker": {
"path": "tools/web/check-blender-operator-inventory.mjs",
"sha256": "dbf4b64c77750809060e6b3a8eaf87cfd67a904f33949ac631b661153b1f6cde"
},
"inventory": {
"path": "tests/golden/M15-01B/blender-operator-inventory.json",
"sha256": "dabb774ea808f417a0085528ecc4538bc78f71d06f912a881a9453804597e49a"
},
"report": {
"path": "tests/golden/M15-01B/operator-inventory-check-report.json",
"sha256": "800102c010be59ec519d2e204aec4a97350fe7ba0f6729f52a8788f4a9bcde31"
},
"runtime": {
"path": "build_blender_5.2.0/bin/blender",
"sha256": "d4483926610484ef9c2ad9241aae1469f934d955ebe791f1920e263e0ba85b82"
},
"package": {
"path": "web/package.json",
"sha256": "159af906f4e468e3f18cfcd2f599a7e22c9c180cdc8032ba4eac5eaf5ad8cc0e"
}
},
"nextTask": "M15-01C"
}

View File

@@ -0,0 +1,31 @@
{
"schemaVersion": 1,
"task": "M15-01B",
"operation": "BLENDER_OPERATOR_INVENTORY_CHECK",
"runtime": {
"binarySha256": "d4483926610484ef9c2ad9241aae1469f934d955ebe791f1920e263e0ba85b82",
"blenderVersion": "5.2.0 LTS",
"buildBranch": "unknown",
"buildDate": "2026-07-24",
"buildHash": "unknown",
"buildPlatform": "Linux",
"buildTime": "08:03:47",
"buildType": "Release",
"versionTuple": [
5,
2,
0
]
},
"count": 2486,
"registered": 2486,
"poll": {
"true": 666,
"false": 1820,
"unknown": 0
},
"first": "action.bake_keys",
"last": "world.new",
"inventorySha256": "dabb774ea808f417a0085528ecc4538bc78f71d06f912a881a9453804597e49a",
"nextTask": "M15-01C"
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,34 @@
{
"schemaVersion": 1,
"task": "M15-01C",
"operation": "BLENDER_FAMILY_INVENTORY_CHECK",
"runtime": {
"binarySha256": "d4483926610484ef9c2ad9241aae1469f934d955ebe791f1920e263e0ba85b82",
"blenderVersion": "5.2.0 LTS",
"buildBranch": "unknown",
"buildDate": "2026-07-24",
"buildHash": "unknown",
"buildPlatform": "Linux",
"buildTime": "08:03:47",
"buildType": "Release",
"versionTuple": [
5,
2,
0
]
},
"summary": {
"constraintCount": 29,
"modifierCount": 83,
"nodeCount": 451,
"nodesByFamily": {
"Compositor": 88,
"Geometry": 264,
"Shader": 99
}
},
"firstModifier": "ARMATURE",
"lastNode": "ShaderNodeWireframe",
"inventorySha256": "bb7bbbf64184f326cd17933960800d7d761db6dd3b5f829e322e5ccdb12b8845",
"nextTask": "M15-01D"
}

View File

@@ -0,0 +1,40 @@
{
"schemaVersion": 1,
"task": "M15-01C",
"parentTask": "M15-01B",
"enablingTask": false,
"parityStateChange": false,
"runtime": "BLENDER_5_2_FAMILY",
"operation": "BLENDER_FAMILY_INVENTORY",
"artifacts": {
"parentManifest": {
"path": "tests/golden/M15-01B/manifest.json",
"sha256": "c17163242bba2cb0f0283af1a08b11eca55d2d9877b79254e4c7377c76a9d92c"
},
"generator": {
"path": "tools/web/generate-blender-family-inventory.py",
"sha256": "2630357cbe6ca7264499621399f1a010d6eb7af8c002283d9d16e65c23955eda"
},
"checker": {
"path": "tools/web/check-blender-family-inventory.mjs",
"sha256": "0cf9821bb0f6f691ee1eb5a96d77a78932eeb07565352e65a5ed68844f7c0108"
},
"inventory": {
"path": "tests/golden/M15-01C/blender-family-inventory.json",
"sha256": "bb7bbbf64184f326cd17933960800d7d761db6dd3b5f829e322e5ccdb12b8845"
},
"report": {
"path": "tests/golden/M15-01C/family-inventory-check-report.json",
"sha256": "0ca03907f828feba02df396d3fb9f0cfab791a5be67bd8d768c175a49088bae1"
},
"runtime": {
"path": "build_blender_5.2.0/bin/blender",
"sha256": "d4483926610484ef9c2ad9241aae1469f934d955ebe791f1920e263e0ba85b82"
},
"package": {
"path": "web/package.json",
"sha256": "159af906f4e468e3f18cfcd2f599a7e22c9c180cdc8032ba4eac5eaf5ad8cc0e"
}
},
"nextTask": "M15-01D"
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,29 @@
{
"schemaVersion": 1,
"task": "M15-01D",
"operation": "BLENDER_FORMAT_INVENTORY_CHECK",
"runtime": {
"binarySha256": "d4483926610484ef9c2ad9241aae1469f934d955ebe791f1920e263e0ba85b82",
"blenderVersion": "5.2.0 LTS",
"buildBranch": "unknown",
"buildDate": "2026-07-24",
"buildHash": "unknown",
"buildPlatform": "Linux",
"buildTime": "08:03:47",
"buildType": "Release",
"versionTuple": [
5,
2,
0
]
},
"summary": {
"ioOperatorCount": 33,
"physicsTypeCount": 65,
"stripTypeCount": 24
},
"firstStrip": "ADD",
"lastOperator": "wm.stl_import",
"inventorySha256": "d3892fc6126f2e477db8b7bcb2bc5ac7a77db1049f0165350ccc834d3a151394",
"nextTask": "M15-01E"
}

View File

@@ -0,0 +1,40 @@
{
"schemaVersion": 1,
"task": "M15-01D",
"parentTask": "M15-01C",
"enablingTask": false,
"parityStateChange": false,
"runtime": "BLENDER_5_2_FORMAT",
"operation": "BLENDER_FORMAT_INVENTORY",
"artifacts": {
"parentManifest": {
"path": "tests/golden/M15-01C/manifest.json",
"sha256": "b4b8fd37bf4ac946ff9a7a4c9b256401779e5e78bc6ff21f2c37348146349d3a"
},
"generator": {
"path": "tools/web/generate-blender-format-inventory.py",
"sha256": "618ceb016bf7ab4251d1c8575bd091ea96aecdd423c1d69eea1082b13a734804"
},
"checker": {
"path": "tools/web/check-blender-format-inventory.mjs",
"sha256": "3c22b24561a77058115e6ae1a58af7f0aaea782fab9416e2ce15221c4b91f8e4"
},
"inventory": {
"path": "tests/golden/M15-01D/blender-format-inventory.json",
"sha256": "d3892fc6126f2e477db8b7bcb2bc5ac7a77db1049f0165350ccc834d3a151394"
},
"report": {
"path": "tests/golden/M15-01D/format-inventory-check-report.json",
"sha256": "e345452bda9fa1c054974a34895027c080cf055ced2f24330189edbf9c0d5a5d"
},
"runtime": {
"path": "build_blender_5.2.0/bin/blender",
"sha256": "d4483926610484ef9c2ad9241aae1469f934d955ebe791f1920e263e0ba85b82"
},
"package": {
"path": "web/package.json",
"sha256": "159af906f4e468e3f18cfcd2f599a7e22c9c180cdc8032ba4eac5eaf5ad8cc0e"
}
},
"nextTask": "M15-01E"
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,33 @@
{
"schemaVersion": 1,
"task": "M15-01E",
"operation": "BLENDER_EDITOR_INVENTORY_CHECK",
"runtime": {
"binarySha256": "d4483926610484ef9c2ad9241aae1469f934d955ebe791f1920e263e0ba85b82",
"blenderVersion": "5.2.0 LTS",
"buildBranch": "unknown",
"buildDate": "2026-07-24",
"buildHash": "unknown",
"buildPlatform": "Linux",
"buildTime": "08:03:47",
"buildType": "Release",
"versionTuple": [
5,
2,
0
]
},
"summary": {
"areaTypeCount": 19,
"keymapCount": 280,
"keymapItemCount": 3228,
"regionTypeCount": 17,
"spaceClassCount": 16,
"spaceTypeCount": 19,
"workspaceModeCount": 13
},
"firstArea": "CLIP_EDITOR",
"lastKeymap": "Window",
"inventorySha256": "6293b5c5bc23c8a73fdde553a5173ac1da25a08c8158af5ec81f4b0f864a5064",
"nextTask": "M15-01F"
}

View File

@@ -0,0 +1,40 @@
{
"schemaVersion": 1,
"task": "M15-01E",
"parentTask": "M15-01D",
"enablingTask": false,
"parityStateChange": false,
"runtime": "BLENDER_5_2_EDITOR",
"operation": "BLENDER_EDITOR_INVENTORY",
"artifacts": {
"parentManifest": {
"path": "tests/golden/M15-01D/manifest.json",
"sha256": "d72b912b22b2eaed8bf0971d750d51aac074195b36f2a4d3315e6dddd84fdbf4"
},
"generator": {
"path": "tools/web/generate-blender-editor-inventory.py",
"sha256": "287c04d7d11068fc28c8aac3a70f12dc6a0631a894c88e4e8d28752e54214274"
},
"checker": {
"path": "tools/web/check-blender-editor-inventory.mjs",
"sha256": "dd4fe1c82ed6f6d9eff9bb1abd017a1066ec7d95f76867d33a4e76112ed7b754"
},
"inventory": {
"path": "tests/golden/M15-01E/blender-editor-inventory.json",
"sha256": "6293b5c5bc23c8a73fdde553a5173ac1da25a08c8158af5ec81f4b0f864a5064"
},
"report": {
"path": "tests/golden/M15-01E/editor-inventory-check-report.json",
"sha256": "cc88dd114f215100e28cefc9180e56204bd7694217047e5c6db1e79059966235"
},
"runtime": {
"path": "build_blender_5.2.0/bin/blender",
"sha256": "d4483926610484ef9c2ad9241aae1469f934d955ebe791f1920e263e0ba85b82"
},
"package": {
"path": "web/package.json",
"sha256": "159af906f4e468e3f18cfcd2f599a7e22c9c180cdc8032ba4eac5eaf5ad8cc0e"
}
},
"nextTask": "M15-01F"
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,34 @@
{
"schemaVersion": 1,
"task": "M15-01F",
"operation": "BLENDER_CORE_INVENTORY_CHECK",
"runtime": {
"binarySha256": "d4483926610484ef9c2ad9241aae1469f934d955ebe791f1920e263e0ba85b82",
"blenderVersion": "5.2.0 LTS",
"buildBranch": "unknown",
"buildDate": "2026-07-24",
"buildHash": "unknown",
"buildPlatform": "Linux",
"buildTime": "08:03:47",
"buildType": "Release",
"versionTuple": [
5,
2,
0
]
},
"summary": {
"byFamily": {
"Core": 20,
"Depsgraph": 3,
"Main": 39,
"Mesh": 30,
"Scene": 16
},
"classCount": 108
},
"firstClass": "Action",
"lastClass": "World",
"inventorySha256": "4810abd2f91e580da3f7be70f1583f5cf6b2ecc20a13f0ce09b7484c4393e643",
"nextTask": "M15-02A"
}

View File

@@ -0,0 +1,40 @@
{
"schemaVersion": 1,
"task": "M15-01F",
"parentTask": "M15-01E",
"enablingTask": false,
"parityStateChange": false,
"runtime": "BLENDER_5_2_CORE",
"operation": "BLENDER_CORE_INVENTORY",
"artifacts": {
"parentManifest": {
"path": "tests/golden/M15-01E/manifest.json",
"sha256": "3e2e17e93229d58748043135eadc92de671ee4563b7699ae48aadfe885aefda7"
},
"generator": {
"path": "tools/web/generate-blender-core-inventory.py",
"sha256": "64e6c3590b084ec8906e26f46cab1596211c197251e0c7a81de2f5edbc6dcd43"
},
"checker": {
"path": "tools/web/check-blender-core-inventory.mjs",
"sha256": "ca13efc97cd4709b103268be95f6fe9fa824f64a04f51ab678c78158c44979d7"
},
"inventory": {
"path": "tests/golden/M15-01F/blender-core-inventory.json",
"sha256": "4810abd2f91e580da3f7be70f1583f5cf6b2ecc20a13f0ce09b7484c4393e643"
},
"report": {
"path": "tests/golden/M15-01F/core-inventory-check-report.json",
"sha256": "8752644f8956c747c8da14afcd04f73e0a5823713ba98ee08c21cf240ff1f140"
},
"runtime": {
"path": "build_blender_5.2.0/bin/blender",
"sha256": "d4483926610484ef9c2ad9241aae1469f934d955ebe791f1920e263e0ba85b82"
},
"package": {
"path": "web/package.json",
"sha256": "159af906f4e468e3f18cfcd2f599a7e22c9c180cdc8032ba4eac5eaf5ad8cc0e"
}
},
"nextTask": "M15-02A"
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,36 @@
{
"schemaVersion": 1,
"task": "M15-02A",
"parentTask": "M15-01F",
"enablingTask": false,
"parityStateChange": false,
"runtime": "BLENDER_5_2_PARITY",
"operation": "BLENDER_PARITY_MAPPING",
"artifacts": {
"parentManifest": {
"path": "tests/golden/M15-01F/manifest.json",
"sha256": "70eefcdb97a839022a3c39ba152796389578f543562185ae9e13b2aa0c452b29"
},
"generator": {
"path": "tools/web/generate-blender-parity-map.mjs",
"sha256": "2430a0eaa408ebba2fe25a1e873989784f8c50fe6dccc6636a07a76e986eb4ca"
},
"checker": {
"path": "tools/web/check-blender-parity-map.mjs",
"sha256": "b5f33d8535c0d72c53979f3a222b0004a48d265706adf5c1f9cad6907c80d092"
},
"map": {
"path": "tests/golden/M15-02A/blender-parity-map.json",
"sha256": "f3e757f26e58a4252b6cc2a7f9275428bbe5bf659cc0f0ff6350a147bdf2809c"
},
"report": {
"path": "tests/golden/M15-02A/parity-map-check-report.json",
"sha256": "650a1c37e459bbaf19f20fa7f2be57bcb2ea8dd6ed472726a9ff399d17109132"
},
"package": {
"path": "web/package.json",
"sha256": "159af906f4e468e3f18cfcd2f599a7e22c9c180cdc8032ba4eac5eaf5ad8cc0e"
}
},
"nextTask": "M15-02B"
}

View File

@@ -0,0 +1,38 @@
{
"schemaVersion": 1,
"task": "M15-02A",
"operation": "BLENDER_PARITY_MAPPING_CHECK",
"mapped": 6900,
"byTask": {
"M15-01A": 29,
"M15-01B": 2486,
"M15-01C": 563,
"M15-01D": 122,
"M15-01E": 3592,
"M15-01F": 108
},
"ownerFamilies": [
"COMPOSITOR_NODE",
"CONSTRAINT",
"Core",
"Depsgraph",
"EDITOR",
"GEOMETRY_NODE",
"IMPORT_EXPORT",
"KEYMAP",
"MODIFIER",
"Main",
"Mesh",
"OPERATOR",
"PHYSICS",
"REGION",
"RNA_DATABLOCK",
"SEQUENCER",
"SHADER_NODE",
"SPACE",
"Scene",
"WORKSPACE"
],
"mapSha256": "f3e757f26e58a4252b6cc2a7f9275428bbe5bf659cc0f0ff6350a147bdf2809c",
"nextTask": "M15-02B"
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,16 @@
{
"schemaVersion": 1,
"task": "M15-02B",
"operation": "BLENDER_PARITY_GAP_AUDIT_CHECK",
"summary": {
"inventoried": 6900,
"unmapped": 0,
"duplicate": 0,
"summaryOnly": 6900,
"proxyOnly": 0,
"routeOnly": 0,
"gapCount": 6900
},
"auditSha256": "e976ff40d2f3491a5a57ffcdd0d0c0f0586e57d06984e4a4aa05ba1b36800faa",
"nextTask": "M15-02C"
}

View File

@@ -0,0 +1,36 @@
{
"schemaVersion": 1,
"task": "M15-02B",
"parentTask": "M15-02A",
"enablingTask": false,
"parityStateChange": false,
"runtime": "BLENDER_5_2_PARITY",
"operation": "BLENDER_PARITY_GAP_AUDIT",
"artifacts": {
"parentManifest": {
"path": "tests/golden/M15-02A/manifest.json",
"sha256": "dc4ed6dd13bee952a5096d44dc6f5731fe6e32512e09b9fbe78b77d662a4f0d3"
},
"generator": {
"path": "tools/web/generate-blender-gap-audit.mjs",
"sha256": "f0f44767cd6e2ce8aab4eed391b7e11fe1ff566cd52b80632c02085af0ec0f35"
},
"checker": {
"path": "tools/web/check-blender-gap-audit.mjs",
"sha256": "ebab966ef3edfd5e093d742950352e5f05b7cf04d82ba817812d7afcedccfe98"
},
"audit": {
"path": "tests/golden/M15-02B/blender-gap-audit.json",
"sha256": "e976ff40d2f3491a5a57ffcdd0d0c0f0586e57d06984e4a4aa05ba1b36800faa"
},
"report": {
"path": "tests/golden/M15-02B/gap-audit-check-report.json",
"sha256": "445fe3426a42579334707000e87eaff29bd895d888faf4fab30f1f4bb2666269"
},
"package": {
"path": "web/package.json",
"sha256": "159af906f4e468e3f18cfcd2f599a7e22c9c180cdc8032ba4eac5eaf5ad8cc0e"
}
},
"nextTask": "M15-02C"
}

View File

@@ -0,0 +1,23 @@
{
"schemaVersion": 1,
"task": "M15-02C",
"operation": "BLENDER_PARITY_CONTRACT_AUDIT_CHECK",
"contract": {
"mode": "LOCAL_EXACT",
"requiredEvidence": [
"desktopFixture",
"wasmFixture",
"sameFixture"
],
"failClosed": true
},
"summary": {
"inventoried": 6900,
"applicable": 0,
"blocked": 0,
"ready": 0,
"notApplicable": 6900
},
"auditSha256": "ab37f60ff9ea4ad99d0f6041de707d92010de81f22a1594dd6dfa4faf6c471cb",
"nextTask": "M15-02D"
}

View File

@@ -0,0 +1,29 @@
{
"schemaVersion": 1,
"task": "M15-02C",
"operation": "BLENDER_PARITY_CONTRACT_AUDIT",
"source": {
"path": "tests/golden/M15-02A/blender-parity-map.json",
"sha256": "f3e757f26e58a4252b6cc2a7f9275428bbe5bf659cc0f0ff6350a147bdf2809c"
},
"contract": {
"mode": "LOCAL_EXACT",
"requiredEvidence": [
"desktopFixture",
"wasmFixture",
"sameFixture"
],
"failClosed": true
},
"summary": {
"inventoried": 6900,
"applicable": 0,
"blocked": 0,
"ready": 0,
"notApplicable": 6900
},
"blockedIds": [],
"readyIds": [],
"interpretation": "NO_CLAIMS_DECLARED",
"nextTask": "M15-02D"
}

View File

@@ -0,0 +1,36 @@
{
"schemaVersion": 1,
"task": "M15-02C",
"parentTask": "M15-02B",
"enablingTask": false,
"parityStateChange": false,
"runtime": "BLENDER_5_2_PARITY",
"operation": "BLENDER_PARITY_CONTRACT_AUDIT",
"artifacts": {
"parentManifest": {
"path": "tests/golden/M15-02B/manifest.json",
"sha256": "62eca822315aff2956c41ad00e379ce238aa65c9573fe30ec6716e4bcb7a4258"
},
"generator": {
"path": "tools/web/generate-blender-contract-audit.mjs",
"sha256": "80e2bd15626a0bc87624156bbad4e42bf3869e42f7ebf9639f534ace04ff1a7e"
},
"checker": {
"path": "tools/web/check-blender-contract-audit.mjs",
"sha256": "885290f22ccd22715e254319d12b7b214c33b2d8e06ee7a5b35034e3eba46adc"
},
"audit": {
"path": "tests/golden/M15-02C/local-exact-audit.json",
"sha256": "ab37f60ff9ea4ad99d0f6041de707d92010de81f22a1594dd6dfa4faf6c471cb"
},
"report": {
"path": "tests/golden/M15-02C/local-exact-audit-check-report.json",
"sha256": "0e5ffaf4fa99e0e58f19fe21ae0d2c7fb465ab487fe84924cda06085a9c6f839"
},
"package": {
"path": "web/package.json",
"sha256": "159af906f4e468e3f18cfcd2f599a7e22c9c180cdc8032ba4eac5eaf5ad8cc0e"
}
},
"nextTask": "M15-02D"
}

View File

@@ -0,0 +1,22 @@
{
"schemaVersion": 1,
"task": "M15-02D",
"operation": "BLENDER_PARITY_CONTRACT_AUDIT_CHECK",
"contract": {
"mode": "LOCAL_EQUIVALENT",
"requiredEvidence": [
"mainEvidence",
"saveReopenEvidence"
],
"failClosed": true
},
"summary": {
"inventoried": 6900,
"applicable": 0,
"blocked": 0,
"ready": 0,
"notApplicable": 6900
},
"auditSha256": "6ffe0a7f076720b120a7b6a3f9bed3b5d4afbba583388df6ac7fb94df64998a2",
"nextTask": "M15-02E"
}

View File

@@ -0,0 +1,28 @@
{
"schemaVersion": 1,
"task": "M15-02D",
"operation": "BLENDER_PARITY_CONTRACT_AUDIT",
"source": {
"path": "tests/golden/M15-02A/blender-parity-map.json",
"sha256": "f3e757f26e58a4252b6cc2a7f9275428bbe5bf659cc0f0ff6350a147bdf2809c"
},
"contract": {
"mode": "LOCAL_EQUIVALENT",
"requiredEvidence": [
"mainEvidence",
"saveReopenEvidence"
],
"failClosed": true
},
"summary": {
"inventoried": 6900,
"applicable": 0,
"blocked": 0,
"ready": 0,
"notApplicable": 6900
},
"blockedIds": [],
"readyIds": [],
"interpretation": "NO_CLAIMS_DECLARED",
"nextTask": "M15-02E"
}

View File

@@ -0,0 +1,36 @@
{
"schemaVersion": 1,
"task": "M15-02D",
"parentTask": "M15-02C",
"enablingTask": false,
"parityStateChange": false,
"runtime": "BLENDER_5_2_PARITY",
"operation": "BLENDER_PARITY_CONTRACT_AUDIT",
"artifacts": {
"parentManifest": {
"path": "tests/golden/M15-02C/manifest.json",
"sha256": "f0eb2ccc7515bc4282fc0e6e1ce690870b98081c4f4d89a7b0988bc9dd8b5a59"
},
"generator": {
"path": "tools/web/generate-blender-contract-audit.mjs",
"sha256": "80e2bd15626a0bc87624156bbad4e42bf3869e42f7ebf9639f534ace04ff1a7e"
},
"checker": {
"path": "tools/web/check-blender-contract-audit.mjs",
"sha256": "885290f22ccd22715e254319d12b7b214c33b2d8e06ee7a5b35034e3eba46adc"
},
"audit": {
"path": "tests/golden/M15-02D/local-equivalent-audit.json",
"sha256": "6ffe0a7f076720b120a7b6a3f9bed3b5d4afbba583388df6ac7fb94df64998a2"
},
"report": {
"path": "tests/golden/M15-02D/local-equivalent-audit-check-report.json",
"sha256": "8864c360bcdb7c0a191e17ee209a42d762ab980c643e9fecc409d34453c05a9e"
},
"package": {
"path": "web/package.json",
"sha256": "159af906f4e468e3f18cfcd2f599a7e22c9c180cdc8032ba4eac5eaf5ad8cc0e"
}
},
"nextTask": "M15-02E"
}

View File

@@ -0,0 +1,36 @@
{
"schemaVersion": 1,
"task": "M15-02E",
"parentTask": "M15-02D",
"enablingTask": false,
"parityStateChange": false,
"runtime": "BLENDER_5_2_PARITY",
"operation": "BLENDER_PARITY_CONTRACT_AUDIT",
"artifacts": {
"parentManifest": {
"path": "tests/golden/M15-02D/manifest.json",
"sha256": "7692380d8049a6a36a279a7a97868804014ba1f5e8440d167961f95b557c0f30"
},
"generator": {
"path": "tools/web/generate-blender-contract-audit.mjs",
"sha256": "80e2bd15626a0bc87624156bbad4e42bf3869e42f7ebf9639f534ace04ff1a7e"
},
"checker": {
"path": "tools/web/check-blender-contract-audit.mjs",
"sha256": "885290f22ccd22715e254319d12b7b214c33b2d8e06ee7a5b35034e3eba46adc"
},
"audit": {
"path": "tests/golden/M15-02E/server-exact-audit.json",
"sha256": "2e77b526a90638160ba176bddb84d1028195a588f465475b3a5616854d90368e"
},
"report": {
"path": "tests/golden/M15-02E/server-exact-audit-check-report.json",
"sha256": "0f641bdf72ad4c97882b0ece84384702f9b83fc23c5b7aca8b555d5fd5206c6c"
},
"package": {
"path": "web/package.json",
"sha256": "159af906f4e468e3f18cfcd2f599a7e22c9c180cdc8032ba4eac5eaf5ad8cc0e"
}
},
"nextTask": "M15-02F"
}

View File

@@ -0,0 +1,24 @@
{
"schemaVersion": 1,
"task": "M15-02E",
"operation": "BLENDER_PARITY_CONTRACT_AUDIT_CHECK",
"contract": {
"mode": "SERVER_EXACT",
"requiredEvidence": [
"jobEvidence",
"cancelEvidence",
"isolationEvidence",
"resultBindingEvidence"
],
"failClosed": true
},
"summary": {
"inventoried": 6900,
"applicable": 0,
"blocked": 0,
"ready": 0,
"notApplicable": 6900
},
"auditSha256": "2e77b526a90638160ba176bddb84d1028195a588f465475b3a5616854d90368e",
"nextTask": "M15-02F"
}

View File

@@ -0,0 +1,30 @@
{
"schemaVersion": 1,
"task": "M15-02E",
"operation": "BLENDER_PARITY_CONTRACT_AUDIT",
"source": {
"path": "tests/golden/M15-02A/blender-parity-map.json",
"sha256": "f3e757f26e58a4252b6cc2a7f9275428bbe5bf659cc0f0ff6350a147bdf2809c"
},
"contract": {
"mode": "SERVER_EXACT",
"requiredEvidence": [
"jobEvidence",
"cancelEvidence",
"isolationEvidence",
"resultBindingEvidence"
],
"failClosed": true
},
"summary": {
"inventoried": 6900,
"applicable": 0,
"blocked": 0,
"ready": 0,
"notApplicable": 6900
},
"blockedIds": [],
"readyIds": [],
"interpretation": "NO_CLAIMS_DECLARED",
"nextTask": "M15-02F"
}

View File

@@ -0,0 +1,36 @@
{
"schemaVersion": 1,
"task": "M15-02F",
"parentTask": "M15-02E",
"enablingTask": false,
"parityStateChange": false,
"runtime": "BLENDER_5_2_PARITY",
"operation": "BLENDER_PARITY_CONTRACT_AUDIT",
"artifacts": {
"parentManifest": {
"path": "tests/golden/M15-02E/manifest.json",
"sha256": "b711e072727486b9c0011f1df7ac74857ba3b3de2ca46d388c78623203c9b508"
},
"generator": {
"path": "tools/web/generate-blender-contract-audit.mjs",
"sha256": "80e2bd15626a0bc87624156bbad4e42bf3869e42f7ebf9639f534ace04ff1a7e"
},
"checker": {
"path": "tools/web/check-blender-contract-audit.mjs",
"sha256": "885290f22ccd22715e254319d12b7b214c33b2d8e06ee7a5b35034e3eba46adc"
},
"audit": {
"path": "tests/golden/M15-02F/unknown-data-audit.json",
"sha256": "bec8d2444ceaeae3db9d35ce6621129c90df2f15bf950667be6e85b096a72e4f"
},
"report": {
"path": "tests/golden/M15-02F/unknown-data-audit-check-report.json",
"sha256": "e2733f49fa9bd755164519ca9dd46a99b1f41036b8ae4bdb0552487dcec4ab7a"
},
"package": {
"path": "web/package.json",
"sha256": "159af906f4e468e3f18cfcd2f599a7e22c9c180cdc8032ba4eac5eaf5ad8cc0e"
}
},
"nextTask": "M15-03A"
}

View File

@@ -0,0 +1,23 @@
{
"schemaVersion": 1,
"task": "M15-02F",
"operation": "BLENDER_PARITY_CONTRACT_AUDIT_CHECK",
"contract": {
"mode": "UNKNOWN_DATA_PRESERVATION",
"requiredEvidence": [
"unknownDataFixture",
"saveReloadEvidence",
"bytePreservationEvidence"
],
"failClosed": true
},
"summary": {
"inventoried": 6900,
"applicable": 0,
"blocked": 0,
"ready": 0,
"notApplicable": 6900
},
"auditSha256": "bec8d2444ceaeae3db9d35ce6621129c90df2f15bf950667be6e85b096a72e4f",
"nextTask": "M15-03A"
}

View File

@@ -0,0 +1,29 @@
{
"schemaVersion": 1,
"task": "M15-02F",
"operation": "BLENDER_PARITY_CONTRACT_AUDIT",
"source": {
"path": "tests/golden/M15-02A/blender-parity-map.json",
"sha256": "f3e757f26e58a4252b6cc2a7f9275428bbe5bf659cc0f0ff6350a147bdf2809c"
},
"contract": {
"mode": "UNKNOWN_DATA_PRESERVATION",
"requiredEvidence": [
"unknownDataFixture",
"saveReloadEvidence",
"bytePreservationEvidence"
],
"failClosed": true
},
"summary": {
"inventoried": 6900,
"applicable": 0,
"blocked": 0,
"ready": 0,
"notApplicable": 6900
},
"blockedIds": [],
"readyIds": [],
"interpretation": "NO_CLAIMS_DECLARED",
"nextTask": "M15-03A"
}

View File

@@ -0,0 +1,71 @@
[
"datablock:Action",
"datablock:Armature",
"datablock:Brush",
"datablock:Camera",
"datablock:Collection",
"datablock:Curve",
"datablock:Curves",
"datablock:FreestyleLineStyle",
"datablock:GreasePencil",
"datablock:Lattice",
"datablock:Library",
"datablock:Light",
"datablock:Material",
"datablock:Mesh",
"datablock:MetaBall",
"datablock:NodeTree",
"datablock:Object",
"datablock:ParticleSettings",
"datablock:PointCloud",
"datablock:Scene",
"datablock:Screen",
"datablock:Sound",
"datablock:Speaker",
"datablock:Text",
"datablock:Texture",
"datablock:Volume",
"datablock:WindowManager",
"datablock:WorkSpace",
"datablock:World",
"modifier:ARMATURE",
"modifier:ARRAY",
"modifier:BEVEL",
"modifier:BOOLEAN",
"modifier:BUILD",
"modifier:CAST",
"modifier:CLOTH",
"modifier:COLLISION",
"modifier:CORRECTIVE_SMOOTH",
"modifier:CURVE",
"modifier:DATA_TRANSFER",
"modifier:DECIMATE",
"modifier:DISPLACE",
"modifier:DYNAMIC_PAINT",
"modifier:EDGE_SPLIT",
"modifier:EXPLODE",
"modifier:FLUID",
"modifier:GREASE_PENCIL_ARMATURE",
"modifier:GREASE_PENCIL_ARRAY",
"modifier:GREASE_PENCIL_BUILD",
"modifier:GREASE_PENCIL_COLOR",
"modifier:GREASE_PENCIL_DASH",
"modifier:GREASE_PENCIL_ENVELOPE",
"modifier:GREASE_PENCIL_HOOK",
"modifier:GREASE_PENCIL_LATTICE",
"modifier:GREASE_PENCIL_LENGTH",
"modifier:GREASE_PENCIL_MIRROR",
"modifier:GREASE_PENCIL_MULTIPLY",
"modifier:GREASE_PENCIL_NOISE",
"modifier:GREASE_PENCIL_OFFSET",
"modifier:GREASE_PENCIL_OPACITY",
"modifier:GREASE_PENCIL_OUTLINE",
"modifier:GREASE_PENCIL_SHRINKWRAP",
"modifier:GREASE_PENCIL_SIMPLIFY",
"modifier:GREASE_PENCIL_SMOOTH",
"modifier:GREASE_PENCIL_SUBDIV",
"modifier:GREASE_PENCIL_TEXTURE",
"modifier:GREASE_PENCIL_THICKNESS",
"modifier:GREASE_PENCIL_TIME",
"modifier:GREASE_PENCIL_TINT"
]

View File

@@ -0,0 +1,35 @@
{
"schemaVersion": 1,
"task": "M15-03A",
"parentTask": "M15-02F",
"enablingTask": false,
"parityStateChange": false,
"operation": "BLENDER_NEXT_TASK_PLAN",
"artifacts": {
"parentManifest": {
"path": "tests/golden/M15-02F/manifest.json",
"sha256": "87b09a5e3f53e29ed4df4128862e60336a637abbb9fd4774a2dcedc1abb9030e"
},
"generator": {
"path": "tools/web/generate-blender-next-task-plan.mjs",
"sha256": "b944d9e0ee37497d397fac6bede348702768ec2fa84ff2246ef39cc58d4242c0"
},
"checker": {
"path": "tools/web/check-blender-next-task-plan.mjs",
"sha256": "8c98a1e8abc69f97fb8229886e462594c63ea5c68eb0560abc7345ffa9cb0a32"
},
"plan": {
"path": "tests/golden/M15-03A/next-task-plan.json",
"sha256": "a5c46410b419ede40a5adb6a84029e7f303e28e823f33d9d63d5e1815c1b0032"
},
"report": {
"path": "tests/golden/M15-03A/next-task-plan-check-report.json",
"sha256": "c24fb23170bdeae1931fbf367712ba7e92ebd4918a876691fb68f7b4af66ca2f"
},
"package": {
"path": "web/package.json",
"sha256": "540fcf5a711fe65654f5f9dcfccf4dfb4549dcdbef498a4eb37946cc24a76912"
}
},
"nextTask": "M15-03B"
}

View File

@@ -0,0 +1,24 @@
{
"schemaVersion": 1,
"task": "M15-03A",
"operation": "BLENDER_NEXT_TASK_PLAN_CHECK",
"summary": {
"taskCount": 6900,
"active": 1,
"pending": 6882,
"completed": 17,
"blocked": 0,
"byWave": {
"M16": 2667,
"M17": 29,
"M18": 451,
"M19": 20,
"M20": 89,
"M21": 3625,
"M22": 19
}
},
"firstTask": "M16-GAP-00018",
"planSha256": "a5c46410b419ede40a5adb6a84029e7f303e28e823f33d9d63d5e1815c1b0032",
"nextTask": "M15-03B"
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,35 @@
{
"schemaVersion": 1,
"task": "M15-03B",
"parentTask": "M15-03A",
"enablingTask": false,
"parityStateChange": false,
"operation": "BLENDER_NEXT_TASK_SPEC_CHECK",
"artifacts": {
"parentManifest": {
"path": "tests/golden/M15-03A/manifest.json",
"sha256": "ff4289e5df910b688e2e30f41e3697c79e6abd3b6a41f2fa06cda4b8dc8aa12c"
},
"generator": {
"path": "tools/web/generate-blender-next-task-plan.mjs",
"sha256": "b944d9e0ee37497d397fac6bede348702768ec2fa84ff2246ef39cc58d4242c0"
},
"checker": {
"path": "tools/web/check-blender-next-task-spec.mjs",
"sha256": "389634653fb03ddfdd8d2b140f65af5f2317d5b818873da623dc156302dd9787"
},
"plan": {
"path": "tests/golden/M15-03A/next-task-plan.json",
"sha256": "a5c46410b419ede40a5adb6a84029e7f303e28e823f33d9d63d5e1815c1b0032"
},
"report": {
"path": "tests/golden/M15-03B/next-task-spec-check-report.json",
"sha256": "20ce475cb146edc422020f16593f95c222fd1956080c224614f0e1f749b6ccc1"
},
"package": {
"path": "web/package.json",
"sha256": "540fcf5a711fe65654f5f9dcfccf4dfb4549dcdbef498a4eb37946cc24a76912"
}
},
"nextTask": "M15-03C"
}

View File

@@ -0,0 +1,23 @@
{
"schemaVersion": 1,
"task": "M15-03B",
"operation": "BLENDER_NEXT_TASK_SPEC_CHECK",
"source": {
"path": "tests/golden/M15-03A/next-task-plan.json",
"sha256": "a5c46410b419ede40a5adb6a84029e7f303e28e823f33d9d63d5e1815c1b0032"
},
"summary": {
"tasks": 6900,
"completeSpecs": 6900,
"missingFields": 0,
"malformed": 0
},
"requiredFields": [
"fixture",
"desktopCommand",
"webCommand",
"comparator",
"exitCriteria"
],
"nextTask": "M15-03C"
}

View File

@@ -0,0 +1,31 @@
{
"schemaVersion": 1,
"task": "M15-03C",
"parentTask": "M15-03B",
"enablingTask": false,
"parityStateChange": false,
"operation": "BLENDER_TASK_GRAPH_CHECK",
"artifacts": {
"parentManifest": {
"path": "tests/golden/M15-03B/manifest.json",
"sha256": "d0130d393233f2fd6573d80522385a3c39a701db9d6fd12cabdb841b81f9419a"
},
"checker": {
"path": "tools/web/check-blender-task-graph.mjs",
"sha256": "318bf3575decb41d0fd5a17fceffc7ed72c3224d79bf4a7e6368d5091b34d78d"
},
"plan": {
"path": "tests/golden/M15-03A/next-task-plan.json",
"sha256": "a5c46410b419ede40a5adb6a84029e7f303e28e823f33d9d63d5e1815c1b0032"
},
"report": {
"path": "tests/golden/M15-03C/task-graph-check-report.json",
"sha256": "dc6d2e5476a93e2e5cda9bd939f424558a7899871a87a8a3db84e7aeecb473cd"
},
"package": {
"path": "web/package.json",
"sha256": "540fcf5a711fe65654f5f9dcfccf4dfb4549dcdbef498a4eb37946cc24a76912"
}
},
"nextTask": "M15-03D"
}

View File

@@ -0,0 +1,17 @@
{
"schemaVersion": 1,
"task": "M15-03C",
"operation": "BLENDER_TASK_GRAPH_CHECK",
"source": {
"path": "tests/golden/M15-03A/next-task-plan.json",
"sha256": "a5c46410b419ede40a5adb6a84029e7f303e28e823f33d9d63d5e1815c1b0032"
},
"summary": {
"nodes": 6900,
"active": 1,
"missingDependencies": 0,
"cycles": 0
},
"activeTask": "M16-GAP-00018",
"nextTask": "M15-03D"
}

View File

@@ -0,0 +1,35 @@
{
"schemaVersion": 1,
"task": "M15-03D",
"parentTask": "M15-03C",
"enablingTask": false,
"parityStateChange": false,
"operation": "BLENDER_TASK_STATS_CHECK",
"artifacts": {
"parentManifest": {
"path": "tests/golden/M15-03C/manifest.json",
"sha256": "f90f91350792a4c74f41f1457cb911d581d9f385aa800d31268750c3266fe6cd"
},
"checker": {
"path": "tools/web/check-blender-task-stats.mjs",
"sha256": "e7e08f1bc7a245e2cba4cc8542420336346e329b7178133555e448633e5bf3e7"
},
"plan": {
"path": "tests/golden/M15-03A/next-task-plan.json",
"sha256": "a5c46410b419ede40a5adb6a84029e7f303e28e823f33d9d63d5e1815c1b0032"
},
"gapAudit": {
"path": "tests/golden/M15-02B/blender-gap-audit.json",
"sha256": "e976ff40d2f3491a5a57ffcdd0d0c0f0586e57d06984e4a4aa05ba1b36800faa"
},
"report": {
"path": "tests/golden/M15-03D/task-stats-check-report.json",
"sha256": "00757ebe8e7cf6555f8d8722ca42e68d94ac2ff3eeb583e02a5b6693774bd0c9"
},
"package": {
"path": "web/package.json",
"sha256": "540fcf5a711fe65654f5f9dcfccf4dfb4549dcdbef498a4eb37946cc24a76912"
}
},
"nextTask": "M15-03E"
}

View File

@@ -0,0 +1,22 @@
{
"schemaVersion": 1,
"task": "M15-03D",
"operation": "BLENDER_TASK_STATS_CHECK",
"sources": {
"plan": {
"path": "tests/golden/M15-03A/next-task-plan.json",
"sha256": "a5c46410b419ede40a5adb6a84029e7f303e28e823f33d9d63d5e1815c1b0032"
},
"gaps": {
"path": "tests/golden/M15-02B/blender-gap-audit.json",
"sha256": "e976ff40d2f3491a5a57ffcdd0d0c0f0586e57d06984e4a4aa05ba1b36800faa"
}
},
"statistics": {
"inventoried": 6900,
"completed": 17,
"blocked": 0,
"uninventoried": 0
},
"nextTask": "M15-03E"
}

View File

@@ -0,0 +1,32 @@
{
"schemaVersion": 1,
"task": "M15-03E",
"parentTask": "M15-03D",
"status": "BLOCKED",
"enablingTask": false,
"parityStateChange": false,
"operation": "BLENDER_ZERO_GAP_GATE",
"artifacts": {
"parentManifest": {
"path": "tests/golden/M15-03D/manifest.json",
"sha256": "2838a248140ebc944ee85190de5b2ae73bdc28e8d0be5972fb04e5cf2bf345c3"
},
"checker": {
"path": "tools/web/check-blender-zero-gap-gate.mjs",
"sha256": "169c37861ee4422fd2eacf4886a99e71d5ed4e5220132866dccaf961b4a6ac2b"
},
"plan": {
"path": "tests/golden/M15-03A/next-task-plan.json",
"sha256": "a5c46410b419ede40a5adb6a84029e7f303e28e823f33d9d63d5e1815c1b0032"
},
"report": {
"path": "tests/golden/M15-03E/zero-gap-gate-report.json",
"sha256": "41a5611e2719ed377db55bdfe6623c2a73dc91560e0f38266164d10645b57a69"
},
"package": {
"path": "web/package.json",
"sha256": "540fcf5a711fe65654f5f9dcfccf4dfb4549dcdbef498a4eb37946cc24a76912"
}
},
"nextTask": "M16-GAP-00018"
}

View File

@@ -0,0 +1,138 @@
{
"schemaVersion": 1,
"task": "M15-03E",
"operation": "BLENDER_ZERO_GAP_GATE",
"source": {
"path": "tests/golden/M15-03A/next-task-plan.json",
"sha256": "a5c46410b419ede40a5adb6a84029e7f303e28e823f33d9d63d5e1815c1b0032"
},
"status": "BLOCKED",
"summary": {
"ownerFamilies": 20,
"remaining": 6883
},
"byFamily": {
"RNA_DATABLOCK": {
"total": 29,
"completed": 17,
"blocked": 0,
"remaining": 12
},
"MODIFIER": {
"total": 83,
"completed": 0,
"blocked": 0,
"remaining": 83
},
"OPERATOR": {
"total": 2486,
"completed": 0,
"blocked": 0,
"remaining": 2486
},
"Main": {
"total": 39,
"completed": 0,
"blocked": 0,
"remaining": 39
},
"Mesh": {
"total": 30,
"completed": 0,
"blocked": 0,
"remaining": 30
},
"CONSTRAINT": {
"total": 29,
"completed": 0,
"blocked": 0,
"remaining": 29
},
"COMPOSITOR_NODE": {
"total": 88,
"completed": 0,
"blocked": 0,
"remaining": 88
},
"GEOMETRY_NODE": {
"total": 264,
"completed": 0,
"blocked": 0,
"remaining": 264
},
"SHADER_NODE": {
"total": 99,
"completed": 0,
"blocked": 0,
"remaining": 99
},
"Core": {
"total": 20,
"completed": 0,
"blocked": 0,
"remaining": 20
},
"PHYSICS": {
"total": 65,
"completed": 0,
"blocked": 0,
"remaining": 65
},
"SEQUENCER": {
"total": 24,
"completed": 0,
"blocked": 0,
"remaining": 24
},
"EDITOR": {
"total": 19,
"completed": 0,
"blocked": 0,
"remaining": 19
},
"IMPORT_EXPORT": {
"total": 33,
"completed": 0,
"blocked": 0,
"remaining": 33
},
"KEYMAP": {
"total": 3508,
"completed": 0,
"blocked": 0,
"remaining": 3508
},
"REGION": {
"total": 17,
"completed": 0,
"blocked": 0,
"remaining": 17
},
"SPACE": {
"total": 35,
"completed": 0,
"blocked": 0,
"remaining": 35
},
"WORKSPACE": {
"total": 13,
"completed": 0,
"blocked": 0,
"remaining": 13
},
"Depsgraph": {
"total": 3,
"completed": 0,
"blocked": 0,
"remaining": 3
},
"Scene": {
"total": 16,
"completed": 0,
"blocked": 0,
"remaining": 16
}
},
"activeTask": "M16-GAP-00018",
"nextTask": "M16-GAP-00018"
}

View File

@@ -0,0 +1,35 @@
{
"actions": [
{
"channels": [
[
"location",
0,
2
],
[
"location",
1,
2
],
[
"location",
2,
2
]
],
"frameRange": [
1.0,
10.0
],
"name": "AnimatedObjectAction"
}
],
"blenderVersion": "5.2.0 LTS",
"fixture": "/home/mes123456/workinf_Blender_Wasm/tests/files/web/generated/M16-GAP-00001-datablock-Action.blend",
"fixtureSha256": "cb921e862eff1dcf68f22d77ef8558679207203ace0b80239a5bc5874ec2a551",
"operation": "ACTION_DATABLOCK_DESKTOP",
"saveReopen": "EXACT",
"schemaVersion": 1,
"task": "M16-GAP-00001"
}

View File

@@ -0,0 +1,30 @@
{
"schemaVersion": 1,
"task": "M16-GAP-00001",
"operation": "ACTION_DATABLOCK_LOCAL_EXACT",
"fixture": {
"path": "tests/files/web/generated/M16-GAP-00001-datablock-Action.blend",
"sha256": "cb921e862eff1dcf68f22d77ef8558679207203ace0b80239a5bc5874ec2a551"
},
"desktop": {
"status": "EXACT",
"report": "tests/golden/M16-GAP-00001/action-desktop-report.json",
"saveReopen": "EXACT"
},
"wasm": {
"status": "EXACT",
"actionId": "action:AnimatedObjectAction:object:AnimatedObject",
"channelPaths": [
"location[0]",
"location[1]",
"location[2]"
],
"keyframesPerChannel": [
2,
2,
2
]
},
"saveReopen": "EXACT",
"nextTask": "M16-GAP-00002"
}

View File

@@ -0,0 +1,45 @@
{
"schemaVersion": 1,
"task": "M16-GAP-00001",
"parentTask": "M15-03E",
"enablingTask": true,
"parityStateChange": true,
"runtime": "BLENDER_5_2_LOCAL_EXACT",
"operation": "ACTION_DATABLOCK_LOCAL_EXACT",
"status": "done",
"artifacts": {
"parentManifest": {
"path": "tests/golden/M15-03E/manifest.json",
"sha256": "9e50746ba11f29a3a26c1eb04c25e7153f2edebbf32e092c5bdc89516f274f64"
},
"fixture": {
"path": "tests/files/web/generated/M16-GAP-00001-datablock-Action.blend",
"sha256": "cb921e862eff1dcf68f22d77ef8558679207203ace0b80239a5bc5874ec2a551"
},
"desktopChecker": {
"path": "tools/web/check-action-desktop.py",
"sha256": "7c32d786a8daedcf5e995d0ff29b6034e7c4f4c25c309ccd0542adecc19319f2"
},
"webChecker": {
"path": "tools/web/check-generated-gap.mjs",
"sha256": "a987e77c1e35f70d820fe12430d74d90e72bfb594b65dbbf39f005748c6683f8"
},
"desktopReport": {
"path": "tests/golden/M16-GAP-00001/action-desktop-report.json",
"sha256": "f6bea0003a9e8eb25048797156bc0ab59b6a63d76ce4156283b6d9761dbfb0ee"
},
"webReport": {
"path": "tests/golden/M16-GAP-00001/action-local-exact-report.json",
"sha256": "eb7a604af8b071c3186a39a30f3a9974a6fed03008751da5319d54d170b841d6"
},
"plan": {
"path": "tests/golden/M15-03A/next-task-plan.json",
"sha256": "732d34b5a696077ae6f7f11df768e1e1671379e2face64496f46fcbf352878ed"
},
"package": {
"path": "web/package.json",
"sha256": "159af906f4e468e3f18cfcd2f599a7e22c9c180cdc8032ba4eac5eaf5ad8cc0e"
}
},
"nextTask": "M16-GAP-00002"
}

View File

@@ -0,0 +1,42 @@
{
"armature": {
"bones": [
{
"head": [
0.0,
0.0,
-1.0
],
"name": "Root",
"parent": null,
"tail": [
0.0,
0.0,
0.0
]
},
{
"head": [
0.0,
0.0,
0.0
],
"name": "Tip",
"parent": "Root",
"tail": [
0.0,
0.0,
1.0
]
}
],
"name": "RiggedArmature"
},
"blenderVersion": "5.2.0 LTS",
"fixture": "/home/mes123456/workinf_Blender_Wasm/tests/files/web/generated/M16-GAP-00002-datablock-Armature.blend",
"fixtureSha256": "b7d1c05b70e97be9a70890d45fea60b143073462d2a4f62eb3cc607bd2d665ca",
"operation": "ARMATURE_DATABLOCK_DESKTOP",
"saveReopen": "EXACT",
"schemaVersion": 1,
"task": "M16-GAP-00002"
}

View File

@@ -0,0 +1,29 @@
{
"schemaVersion": 1,
"task": "M16-GAP-00002",
"operation": "ARMATURE_DATABLOCK_LOCAL_EXACT",
"fixture": {
"path": "tests/files/web/generated/M16-GAP-00002-datablock-Armature.blend",
"sha256": "b7d1c05b70e97be9a70890d45fea60b143073462d2a4f62eb3cc607bd2d665ca"
},
"desktop": {
"status": "EXACT",
"report": "tests/golden/M16-GAP-00002/armature-desktop-report.json"
},
"wasm": {
"status": "EXACT",
"armatureId": "armature:RiggedArmature",
"bones": [
{
"name": "Root",
"parentId": null
},
{
"name": "Tip",
"parentId": "bone:armature:RiggedArmature:Root"
}
]
},
"saveReopen": "EXACT",
"nextTask": "M16-GAP-00003"
}

View File

@@ -0,0 +1,45 @@
{
"schemaVersion": 1,
"task": "M16-GAP-00002",
"parentTask": "M16-GAP-00001",
"enablingTask": true,
"parityStateChange": true,
"runtime": "BLENDER_5_2_LOCAL_EXACT",
"operation": "ARMATURE_DATABLOCK_LOCAL_EXACT",
"status": "done",
"artifacts": {
"parentManifest": {
"path": "tests/golden/M16-GAP-00001/manifest.json",
"sha256": "ef0a497b61ee95fae55be76ab9dbbc047aeb7619bb161c0711319f4288f5d170"
},
"fixture": {
"path": "tests/files/web/generated/M16-GAP-00002-datablock-Armature.blend",
"sha256": "b7d1c05b70e97be9a70890d45fea60b143073462d2a4f62eb3cc607bd2d665ca"
},
"desktopChecker": {
"path": "tools/web/check-armature-desktop.py",
"sha256": "5a03e4c6d195219b6fe567973565b0d29f8957716d03c419b04d2003ed67429e"
},
"webChecker": {
"path": "tools/web/check-generated-gap.mjs",
"sha256": "a987e77c1e35f70d820fe12430d74d90e72bfb594b65dbbf39f005748c6683f8"
},
"desktopReport": {
"path": "tests/golden/M16-GAP-00002/armature-desktop-report.json",
"sha256": "970538d481dd9b2169c5e39e6901e6eeff0d9b2d26b42491837321841bcb4a5e"
},
"webReport": {
"path": "tests/golden/M16-GAP-00002/armature-local-exact-report.json",
"sha256": "eeb775648b186a9728851b8cffa0fa9c41701de4a8142e73f6ad98ef050dc877"
},
"plan": {
"path": "tests/golden/M15-03A/next-task-plan.json",
"sha256": "732d34b5a696077ae6f7f11df768e1e1671379e2face64496f46fcbf352878ed"
},
"package": {
"path": "web/package.json",
"sha256": "159af906f4e468e3f18cfcd2f599a7e22c9c180cdc8032ba4eac5eaf5ad8cc0e"
}
},
"nextTask": "M16-GAP-00003"
}

View File

@@ -0,0 +1,18 @@
{
"blenderVersion": "5.2.0 LTS",
"brush": {
"alpha": 0.65,
"hardness": 0.8,
"jitter": 0.2,
"name": "WebGapBrush",
"sculptTool": "DRAW",
"size": 42,
"spacing": 17
},
"fixture": "/home/mes123456/workinf_Blender_Wasm/tests/files/web/generated/M16-GAP-00003-datablock-Brush.blend",
"fixtureSha256": "f1f6922c4c9c31542a9cefad6932d616ef5dcde0067c0a9668f67902023f4f80",
"operation": "BRUSH_DATABLOCK_DESKTOP",
"saveReopen": "EXACT",
"schemaVersion": 1,
"task": "M16-GAP-00003"
}

View File

@@ -0,0 +1,27 @@
{
"schemaVersion": 1,
"task": "M16-GAP-00003",
"operation": "BRUSH_DATABLOCK_LOCAL_EXACT",
"fixture": {
"path": "tests/files/web/generated/M16-GAP-00003-datablock-Brush.blend",
"sha256": "f1f6922c4c9c31542a9cefad6932d616ef5dcde0067c0a9668f67902023f4f80"
},
"desktop": {
"status": "EXACT",
"report": "tests/golden/M16-GAP-00003/brush-desktop-report.json"
},
"wasm": {
"status": "EXACT",
"brushId": "brush:WebGapBrush",
"values": {
"size": 42,
"alpha": 0.6499999761581421,
"hardness": 0.800000011920929,
"spacing": 17,
"jitter": 0.20000000298023224,
"sculptTool": 1
}
},
"saveReopen": "EXACT",
"nextTask": "M16-GAP-00004"
}

View File

@@ -0,0 +1,61 @@
{
"schemaVersion": 1,
"task": "M16-GAP-00003",
"parentTask": "M16-GAP-00002",
"enablingTask": true,
"parityStateChange": true,
"runtime": "BLENDER_5_2_LOCAL_EXACT",
"operation": "BRUSH_DATABLOCK_LOCAL_EXACT",
"status": "done",
"artifacts": {
"parentManifest": {
"path": "tests/golden/M16-GAP-00002/manifest.json",
"sha256": "b8705243e00f62deb82644976838e197d84e72edb8113439efacfd95d4da4188"
},
"fixture": {
"path": "tests/files/web/generated/M16-GAP-00003-datablock-Brush.blend",
"sha256": "f1f6922c4c9c31542a9cefad6932d616ef5dcde0067c0a9668f67902023f4f80"
},
"fixtureGenerator": {
"path": "tools/web/generate-brush-fixture.py",
"sha256": "c4fd4a6c28c595b742b1ef083285ac87f9af56b65d75ba03750925079a0aa637"
},
"desktopChecker": {
"path": "tools/web/check-brush-desktop.py",
"sha256": "515b1eab3b6e2dc0a4e9a65d20764816916228f41082739c98efd6cc882926bf"
},
"webChecker": {
"path": "tools/web/check-generated-gap.mjs",
"sha256": "a987e77c1e35f70d820fe12430d74d90e72bfb594b65dbbf39f005748c6683f8"
},
"desktopReport": {
"path": "tests/golden/M16-GAP-00003/brush-desktop-report.json",
"sha256": "ca992c23e2c302ef0b85b91305eabdbf71da6b5bc60c49b71710d145d0787e09"
},
"webReport": {
"path": "tests/golden/M16-GAP-00003/brush-local-exact-report.json",
"sha256": "e48dcad3974b94404d5d9f0c7222b6c45ea5f3b7a467ea2b88691a6ff50e22a6"
},
"nativeReader": {
"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp",
"sha256": "9c2d9536cba500763ffc425d7f09132dfdb2d9c3c8e5e9dfd7246ee972cca3f9"
},
"protocol": {
"path": "web/protocol/scene-ir.ts",
"sha256": "8ba177250f629d6c2f83f78c376101e536e01388cda7b1672ceec9a15034b3b9"
},
"wasm": {
"path": "web/app/src/vendor/blender/web_engine.wasm",
"sha256": "6667cefcccdba3379ad2fd25a50339a2ad94d498d6c9360f1fc2fbd8319597c4"
},
"plan": {
"path": "tests/golden/M15-03A/next-task-plan.json",
"sha256": "732d34b5a696077ae6f7f11df768e1e1671379e2face64496f46fcbf352878ed"
},
"package": {
"path": "web/package.json",
"sha256": "159af906f4e468e3f18cfcd2f599a7e22c9c180cdc8032ba4eac5eaf5ad8cc0e"
}
},
"nextTask": "M16-GAP-00004"
}

View File

@@ -0,0 +1,17 @@
{
"blenderVersion": "5.2.0 LTS",
"camera": {
"clipEnd": 2500.0,
"clipStart": 0.1,
"lens": 52.0,
"name": "WebGapCamera",
"sensorWidth": 36.0,
"type": "PERSP"
},
"fixture": "/home/mes123456/workinf_Blender_Wasm/tests/files/web/generated/M16-GAP-00004-datablock-Camera.blend",
"fixtureSha256": "c637587ce3011cbe9b038ab87803a9a2f945d4512b55d616a5dda268628988a0",
"operation": "CAMERA_DATABLOCK_DESKTOP",
"saveReopen": "EXACT",
"schemaVersion": 1,
"task": "M16-GAP-00004"
}

View File

@@ -0,0 +1,25 @@
{
"schemaVersion": 1,
"task": "M16-GAP-00004",
"operation": "CAMERA_DATABLOCK_LOCAL_EXACT",
"fixture": {
"path": "tests/files/web/generated/M16-GAP-00004-datablock-Camera.blend",
"sha256": "c637587ce3011cbe9b038ab87803a9a2f945d4512b55d616a5dda268628988a0"
},
"desktop": {
"status": "EXACT",
"report": "tests/golden/M16-GAP-00004/camera-desktop-report.json"
},
"wasm": {
"status": "EXACT",
"cameraId": "camera:WebGapCamera",
"values": {
"projection": "PERSPECTIVE",
"lensMm": 52,
"near": 0.10000000149011612,
"far": 2500
}
},
"saveReopen": "EXACT",
"nextTask": "M16-GAP-00005"
}

View File

@@ -0,0 +1,49 @@
{
"schemaVersion": 1,
"task": "M16-GAP-00004",
"parentTask": "M16-GAP-00003",
"enablingTask": true,
"parityStateChange": true,
"runtime": "BLENDER_5_2_LOCAL_EXACT",
"operation": "CAMERA_DATABLOCK_LOCAL_EXACT",
"status": "done",
"artifacts": {
"parentManifest": {
"path": "tests/golden/M16-GAP-00003/manifest.json",
"sha256": "789282e4c913c77d8805490a132b26026f8d4a650539c1378f2dba546d4fcba1"
},
"fixture": {
"path": "tests/files/web/generated/M16-GAP-00004-datablock-Camera.blend",
"sha256": "c637587ce3011cbe9b038ab87803a9a2f945d4512b55d616a5dda268628988a0"
},
"fixtureGenerator": {
"path": "tools/web/generate-camera-fixture.py",
"sha256": "23c1bf411ed483f4bf111fb52f63e9ec77610f30819c68ac248075a851a59c97"
},
"desktopChecker": {
"path": "tools/web/check-camera-desktop.py",
"sha256": "27831385e1ed7e464c6b627bcbcb81af01ad2afa7ec66f28d2256641005802b4"
},
"webChecker": {
"path": "tools/web/check-generated-gap.mjs",
"sha256": "a987e77c1e35f70d820fe12430d74d90e72bfb594b65dbbf39f005748c6683f8"
},
"desktopReport": {
"path": "tests/golden/M16-GAP-00004/camera-desktop-report.json",
"sha256": "b11254b3e0cdeb5e5c39e350ea1d349f5e2991f8c62a5ad28f744c391beab3b5"
},
"webReport": {
"path": "tests/golden/M16-GAP-00004/camera-local-exact-report.json",
"sha256": "a2b2c321efbcf2ed765f2e8b1019fef7e2cd34af872f78474d18594c6cee5d1c"
},
"wasm": {
"path": "web/app/src/vendor/blender/web_engine.wasm",
"sha256": "6667cefcccdba3379ad2fd25a50339a2ad94d498d6c9360f1fc2fbd8319597c4"
},
"plan": {
"path": "tests/golden/M15-03A/next-task-plan.json",
"sha256": "732d34b5a696077ae6f7f11df768e1e1671379e2face64496f46fcbf352878ed"
}
},
"nextTask": "M16-GAP-00005"
}

View File

@@ -0,0 +1,25 @@
{
"blenderVersion": "5.2.0 LTS",
"collections": [
{
"children": [],
"name": "WebGapChild",
"objects": [
"WebGapCollectionObject"
]
},
{
"children": [
"WebGapChild"
],
"name": "WebGapCollection",
"objects": []
}
],
"fixture": "/home/mes123456/workinf_Blender_Wasm/tests/files/web/generated/M16-GAP-00005-datablock-Collection.blend",
"fixtureSha256": "c33d2b1b85b0272aa3bf06a012000db5f383a9a73b79bd4b90042110b70a912b",
"operation": "COLLECTION_DATABLOCK_DESKTOP",
"saveReopen": "EXACT",
"schemaVersion": 1,
"task": "M16-GAP-00005"
}

View File

@@ -0,0 +1,34 @@
{
"schemaVersion": 1,
"task": "M16-GAP-00005",
"operation": "COLLECTION_DATABLOCK_LOCAL_EXACT",
"fixture": {
"path": "tests/files/web/generated/M16-GAP-00005-datablock-Collection.blend",
"sha256": "c33d2b1b85b0272aa3bf06a012000db5f383a9a73b79bd4b90042110b70a912b"
},
"desktop": {
"status": "EXACT",
"report": "tests/golden/M16-GAP-00005/collection-desktop-report.json"
},
"wasm": {
"status": "EXACT",
"collections": [
{
"id": "collection:WebGapChild",
"childCollectionIds": [],
"objectIds": [
"object:WebGapCollectionObject"
]
},
{
"id": "collection:WebGapCollection",
"childCollectionIds": [
"collection:WebGapChild"
],
"objectIds": []
}
]
},
"saveReopen": "EXACT",
"nextTask": "M16-GAP-00006"
}

View File

@@ -0,0 +1,45 @@
{
"schemaVersion": 1,
"task": "M16-GAP-00005",
"parentTask": "M16-GAP-00004",
"enablingTask": true,
"parityStateChange": true,
"runtime": "BLENDER_5_2_LOCAL_EXACT",
"operation": "COLLECTION_DATABLOCK_LOCAL_EXACT",
"status": "done",
"artifacts": {
"parentManifest": {
"path": "tests/golden/M16-GAP-00004/manifest.json",
"sha256": "905c8f507a7c2e3c43a6d3c99a873124e1dc0aa1647e09a0b66f7e6a77462add"
},
"fixture": {
"path": "tests/files/web/generated/M16-GAP-00005-datablock-Collection.blend",
"sha256": "c33d2b1b85b0272aa3bf06a012000db5f383a9a73b79bd4b90042110b70a912b"
},
"fixtureGenerator": {
"path": "tools/web/generate-collection-fixture.py",
"sha256": "3f2a02903a1c1d74a3ba707342b6617b39a3857ccf58e30162ab993c7e112544"
},
"desktopChecker": {
"path": "tools/web/check-collection-desktop.py",
"sha256": "fca7970f55b654527226b1b39a88934db35da787772c69ba65075f11e2664f26"
},
"webChecker": {
"path": "tools/web/check-generated-gap.mjs",
"sha256": "a987e77c1e35f70d820fe12430d74d90e72bfb594b65dbbf39f005748c6683f8"
},
"desktopReport": {
"path": "tests/golden/M16-GAP-00005/collection-desktop-report.json",
"sha256": "6e6bcf8e5575d46c324d51409d19be6f89e5397b1f094f528b164ea72c607887"
},
"webReport": {
"path": "tests/golden/M16-GAP-00005/collection-local-exact-report.json",
"sha256": "2db40433007886b24f5ceb18dccf7470e0c393163838a11f2feb48bab516d740"
},
"plan": {
"path": "tests/golden/M15-03A/next-task-plan.json",
"sha256": "732d34b5a696077ae6f7f11df768e1e1671379e2face64496f46fcbf352878ed"
}
},
"nextTask": "M16-GAP-00006"
}

View File

@@ -0,0 +1,38 @@
{
"blenderVersion": "5.2.0 LTS",
"curve": {
"dimensions": "3D",
"name": "WebGapCurve",
"points": [
[
-1.0,
0.0,
0.0
],
[
0.0,
1.0,
0.5
],
[
1.0,
0.0,
1.0
]
],
"resolution": 8,
"splines": [
{
"count": 3,
"cyclic": false,
"type": "BEZIER"
}
]
},
"fixture": "/home/mes123456/workinf_Blender_Wasm/tests/files/web/generated/M16-GAP-00006-datablock-Curve.blend",
"fixtureSha256": "49af45a70c7e050277a9b4b643c41aa9f29978b1df5214b5e48dc629b0027a21",
"operation": "CURVE_DATABLOCK_DESKTOP",
"saveReopen": "EXACT",
"schemaVersion": 1,
"task": "M16-GAP-00006"
}

View File

@@ -0,0 +1,24 @@
{
"schemaVersion": 1,
"task": "M16-GAP-00006",
"operation": "CURVE_DATABLOCK_LOCAL_EXACT",
"fixture": {
"path": "tests/files/web/generated/M16-GAP-00006-datablock-Curve.blend",
"sha256": "49af45a70c7e050277a9b4b643c41aa9f29978b1df5214b5e48dc629b0027a21"
},
"desktop": {
"status": "EXACT",
"report": "tests/golden/M16-GAP-00006/curve-desktop-report.json"
},
"wasm": {
"status": "EXACT",
"curveId": "curve:WebGapCurve",
"splineCount": 1,
"pointCount": 3,
"splineTypes": [
"BEZIER"
]
},
"saveReopen": "EXACT",
"nextTask": "M16-GAP-00007"
}

View File

@@ -0,0 +1,49 @@
{
"schemaVersion": 1,
"task": "M16-GAP-00006",
"parentTask": "M16-GAP-00005",
"enablingTask": true,
"parityStateChange": true,
"runtime": "BLENDER_5_2_LOCAL_EXACT",
"operation": "CURVE_DATABLOCK_LOCAL_EXACT",
"status": "done",
"artifacts": {
"parentManifest": {
"path": "tests/golden/M16-GAP-00005/manifest.json",
"sha256": "581d3757a300c6dea5f8a989932f2787915c30ef84de8494a20fd65d2058551a"
},
"fixture": {
"path": "tests/files/web/generated/M16-GAP-00006-datablock-Curve.blend",
"sha256": "49af45a70c7e050277a9b4b643c41aa9f29978b1df5214b5e48dc629b0027a21"
},
"fixtureGenerator": {
"path": "tools/web/generate-curve-fixture.py",
"sha256": "bb93a2ca07e8e8ae81341c46edc7cbceb72ada2023b8fe956ee3b6ad03c7ae11"
},
"desktopChecker": {
"path": "tools/web/check-curve-desktop.py",
"sha256": "e66ba2ae04f6de97e9643e581fa4426650ce4ddcfea0ffc8b3bf9fb14fdd26ee"
},
"webChecker": {
"path": "tools/web/check-generated-gap.mjs",
"sha256": "a987e77c1e35f70d820fe12430d74d90e72bfb594b65dbbf39f005748c6683f8"
},
"desktopReport": {
"path": "tests/golden/M16-GAP-00006/curve-desktop-report.json",
"sha256": "85e8eee37daea993653bfa1785f5df19f953c2d013543e8a27743ed74d49d4ff"
},
"webReport": {
"path": "tests/golden/M16-GAP-00006/curve-local-exact-report.json",
"sha256": "048c9fb9116ab2a1b4460c74696340a263cd342ba4886ce56f8b03bef8743e58"
},
"wasm": {
"path": "web/app/src/vendor/blender/web_engine.wasm",
"sha256": "6667cefcccdba3379ad2fd25a50339a2ad94d498d6c9360f1fc2fbd8319597c4"
},
"plan": {
"path": "tests/golden/M15-03A/next-task-plan.json",
"sha256": "732d34b5a696077ae6f7f11df768e1e1671379e2face64496f46fcbf352878ed"
}
},
"nextTask": "M16-GAP-00007"
}

View File

@@ -0,0 +1,14 @@
{
"blenderVersion": "5.2.0 LTS",
"curves": {
"curveCount": 1,
"name": "WebGapCurves",
"pointCount": 4
},
"fixture": "/home/mes123456/workinf_Blender_Wasm/tests/files/web/generated/M16-GAP-00007-datablock-Curves.blend",
"fixtureSha256": "d6489313473ced7f55cc1d43f3fa73181672c0a5db4b6854002f18354ca1d9a6",
"operation": "CURVES_DATABLOCK_DESKTOP",
"saveReopen": "EXACT",
"schemaVersion": 1,
"task": "M16-GAP-00007"
}

View File

@@ -0,0 +1,21 @@
{
"schemaVersion": 1,
"task": "M16-GAP-00007",
"operation": "CURVES_DATABLOCK_LOCAL_EXACT",
"fixture": {
"path": "tests/files/web/generated/M16-GAP-00007-datablock-Curves.blend",
"sha256": "d6489313473ced7f55cc1d43f3fa73181672c0a5db4b6854002f18354ca1d9a6"
},
"desktop": {
"status": "EXACT",
"report": "tests/golden/M16-GAP-00007/curves-desktop-report.json"
},
"wasm": {
"status": "EXACT",
"curvesId": "curves:WebGapCurves",
"pointCount": 4,
"splineCount": 1
},
"saveReopen": "EXACT",
"nextTask": "M16-GAP-00008"
}

View File

@@ -0,0 +1,49 @@
{
"schemaVersion": 1,
"task": "M16-GAP-00007",
"parentTask": "M16-GAP-00006",
"enablingTask": true,
"parityStateChange": true,
"runtime": "BLENDER_5_2_LOCAL_EXACT",
"operation": "CURVES_DATABLOCK_LOCAL_EXACT",
"status": "done",
"artifacts": {
"parentManifest": {
"path": "tests/golden/M16-GAP-00006/manifest.json",
"sha256": "d17d368089b84c23ce4cc4016f61cc3bf0ea86ade968045a7a8dc6a3063394f0"
},
"fixture": {
"path": "tests/files/web/generated/M16-GAP-00007-datablock-Curves.blend",
"sha256": "d6489313473ced7f55cc1d43f3fa73181672c0a5db4b6854002f18354ca1d9a6"
},
"fixtureGenerator": {
"path": "tools/web/generate-curves-fixture.py",
"sha256": "792ec1d58d495cd9d425215aa631dd5e1d66f7bd5cf75e783b961760667faacc"
},
"desktopChecker": {
"path": "tools/web/check-curves-desktop.py",
"sha256": "3a8372a8ba072df2f5a3a1b3cccef44d219dde2193b551110017436cbd38e85c"
},
"webChecker": {
"path": "tools/web/check-generated-gap.mjs",
"sha256": "a987e77c1e35f70d820fe12430d74d90e72bfb594b65dbbf39f005748c6683f8"
},
"desktopReport": {
"path": "tests/golden/M16-GAP-00007/curves-desktop-report.json",
"sha256": "db15e64bfe202720b463ab742cbed2e6ec80b872456b825078afbba7a2540531"
},
"webReport": {
"path": "tests/golden/M16-GAP-00007/curves-local-exact-report.json",
"sha256": "bf093708e23b8318e1f50b925b5c033d66aa8c1f97303174ad2489a82191705f"
},
"wasm": {
"path": "web/app/src/vendor/blender/web_engine.wasm",
"sha256": "6667cefcccdba3379ad2fd25a50339a2ad94d498d6c9360f1fc2fbd8319597c4"
},
"plan": {
"path": "tests/golden/M15-03A/next-task-plan.json",
"sha256": "732d34b5a696077ae6f7f11df768e1e1671379e2face64496f46fcbf352878ed"
}
},
"nextTask": "M16-GAP-00008"
}

View File

@@ -0,0 +1,27 @@
{
"blenderVersion": "5.2.0 LTS",
"fixture": "/home/mes123456/workinf_Blender_Wasm/tests/files/web/generated/M16-GAP-00008-datablock-FreestyleLineStyle.blend",
"fixtureSha256": "94de965ad54018f7072f2b4f4b752dc6f28f6608836040dc353d18d19fe31fd9",
"lineStyle": {
"alpha": 0.75,
"chaining": true,
"color": [
0.2,
0.4,
0.8
],
"dashed": true,
"modifierCounts": {
"alpha": 0,
"color": 0,
"geometry": 1,
"thickness": 0
},
"name": "WebGapLineStyle",
"thickness": 2.5
},
"operation": "FREESTYLE_LINE_STYLE_DESKTOP",
"saveReopen": "EXACT",
"schemaVersion": 1,
"task": "M16-GAP-00008"
}

View File

@@ -0,0 +1,26 @@
{
"schemaVersion": 1,
"task": "M16-GAP-00008",
"operation": "FREESTYLE_LINE_STYLE_LOCAL_EXACT",
"fixture": {
"path": "tests/files/web/generated/M16-GAP-00008-datablock-FreestyleLineStyle.blend",
"sha256": "94de965ad54018f7072f2b4f4b752dc6f28f6608836040dc353d18d19fe31fd9"
},
"desktop": {
"status": "EXACT",
"report": "tests/golden/M16-GAP-00008/freestyle-desktop-report.json"
},
"wasm": {
"status": "EXACT",
"lineStyleId": "line-style:WebGapLineStyle",
"thickness": 2.5,
"modifierCounts": {
"alpha": 0,
"color": 0,
"geometry": 1,
"thickness": 0
}
},
"saveReopen": "EXACT",
"nextTask": "M16-GAP-00009"
}

View File

@@ -0,0 +1,57 @@
{
"schemaVersion": 1,
"task": "M16-GAP-00008",
"parentTask": "M16-GAP-00007",
"enablingTask": true,
"parityStateChange": true,
"runtime": "BLENDER_5_2_LOCAL_EXACT",
"operation": "FREESTYLE_LINE_STYLE_LOCAL_EXACT",
"status": "done",
"artifacts": {
"parentManifest": {
"path": "tests/golden/M16-GAP-00007/manifest.json",
"sha256": "0c115415e196995788045b412c37da40af5cac0f2200efc124515d730b63af14"
},
"fixture": {
"path": "tests/files/web/generated/M16-GAP-00008-datablock-FreestyleLineStyle.blend",
"sha256": "94de965ad54018f7072f2b4f4b752dc6f28f6608836040dc353d18d19fe31fd9"
},
"fixtureGenerator": {
"path": "tools/web/generate-freestyle-fixture.py",
"sha256": "e73088d9097c6ee94baaa07d3e8e279a55a0a34ccec2618e629699f840fd1ed1"
},
"desktopChecker": {
"path": "tools/web/check-freestyle-desktop.py",
"sha256": "7621b52c88adbae0bb611b2fd6ea2ccf1a0666341c36d4d03eda8f4c565efdc8"
},
"webChecker": {
"path": "tools/web/check-generated-gap.mjs",
"sha256": "a987e77c1e35f70d820fe12430d74d90e72bfb594b65dbbf39f005748c6683f8"
},
"desktopReport": {
"path": "tests/golden/M16-GAP-00008/freestyle-desktop-report.json",
"sha256": "2c42936cd8e4046b752f7e86949927769d1cb8f2086a2c9ba27eebf61a6f4a89"
},
"webReport": {
"path": "tests/golden/M16-GAP-00008/freestyle-local-exact-report.json",
"sha256": "ab75a7fdfa71a4abd4a5e97f7e726440bde7891163c0b256be0815e1cc51a99a"
},
"nativeReader": {
"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp",
"sha256": "9c2d9536cba500763ffc425d7f09132dfdb2d9c3c8e5e9dfd7246ee972cca3f9"
},
"protocol": {
"path": "web/protocol/scene-ir.ts",
"sha256": "8ba177250f629d6c2f83f78c376101e536e01388cda7b1672ceec9a15034b3b9"
},
"wasm": {
"path": "web/app/src/vendor/blender/web_engine.wasm",
"sha256": "6667cefcccdba3379ad2fd25a50339a2ad94d498d6c9360f1fc2fbd8319597c4"
},
"plan": {
"path": "tests/golden/M15-03A/next-task-plan.json",
"sha256": "732d34b5a696077ae6f7f11df768e1e1671379e2face64496f46fcbf352878ed"
}
},
"nextTask": "M16-GAP-00009"
}

View File

@@ -0,0 +1,20 @@
{
"blenderVersion": "5.2.0 LTS",
"fixture": "/home/mes123456/workinf_Blender_Wasm/tests/files/web/generated/M16-GAP-00009-datablock-GreasePencil.blend",
"fixtureSha256": "3a8525077807f9178dac3a5ba84b524e5f8e80874b15c54e2a6658ecb80315a3",
"greasePencil": {
"layers": [
{
"frames": [
1
],
"name": "Lines"
}
],
"name": "GreasePencilData"
},
"operation": "GREASE_PENCIL_DATABLOCK_DESKTOP",
"saveReopen": "EXACT",
"schemaVersion": 1,
"task": "M16-GAP-00009"
}

View File

@@ -0,0 +1,21 @@
{
"schemaVersion": 1,
"task": "M16-GAP-00009",
"operation": "GREASE_PENCIL_DATABLOCK_LOCAL_EXACT",
"fixture": {
"path": "tests/files/web/generated/M16-GAP-00009-datablock-GreasePencil.blend",
"sha256": "3a8525077807f9178dac3a5ba84b524e5f8e80874b15c54e2a6658ecb80315a3"
},
"desktop": {
"status": "EXACT",
"report": "tests/golden/M16-GAP-00009/grease-pencil-desktop-report.json"
},
"wasm": {
"status": "EXACT",
"dataName": "GreasePencilData",
"layerCount": 1,
"frameCount": 1
},
"saveReopen": "EXACT",
"nextTask": "M16-GAP-00010"
}

View File

@@ -0,0 +1,41 @@
{
"schemaVersion": 1,
"task": "M16-GAP-00009",
"parentTask": "M16-GAP-00008",
"enablingTask": true,
"parityStateChange": true,
"runtime": "BLENDER_5_2_LOCAL_EXACT",
"operation": "GREASE_PENCIL_DATABLOCK_LOCAL_EXACT",
"status": "done",
"artifacts": {
"parentManifest": {
"path": "tests/golden/M16-GAP-00008/manifest.json",
"sha256": "3b4c0eb24867cef0054cffb31d1e3320379dbf70e13e8920eaa08da6ace06c89"
},
"fixture": {
"path": "tests/files/web/generated/M16-GAP-00009-datablock-GreasePencil.blend",
"sha256": "3a8525077807f9178dac3a5ba84b524e5f8e80874b15c54e2a6658ecb80315a3"
},
"desktopChecker": {
"path": "tools/web/check-grease-pencil-desktop.py",
"sha256": "4d99d5e81fcdc8289e462279f2da278e2aea573f4d947fa5e71e959b506d1ee1"
},
"webChecker": {
"path": "tools/web/check-generated-gap.mjs",
"sha256": "a987e77c1e35f70d820fe12430d74d90e72bfb594b65dbbf39f005748c6683f8"
},
"desktopReport": {
"path": "tests/golden/M16-GAP-00009/grease-pencil-desktop-report.json",
"sha256": "6a1145d7447a08f51d751dca797e67f2be7eb12cba052a726c4c2f8ee28b585e"
},
"webReport": {
"path": "tests/golden/M16-GAP-00009/grease-pencil-local-exact-report.json",
"sha256": "94aaf84cc072ef13998517d610740d81d94c14593ba776ea7f4b88c673a0a71f"
},
"plan": {
"path": "tests/golden/M15-03A/next-task-plan.json",
"sha256": "732d34b5a696077ae6f7f11df768e1e1671379e2face64496f46fcbf352878ed"
}
},
"nextTask": "M16-GAP-00010"
}

View File

@@ -0,0 +1,137 @@
{
"blenderVersion": "5.2.0 LTS",
"fixture": "/home/mes123456/workinf_Blender_Wasm/tests/files/web/generated/M16-GAP-00010-datablock-Lattice.blend",
"fixtureSha256": "ec40e2661e20c8f7e3b18d9b42f9e585175be8c2f210a1c8c190e76a6e9fbc63",
"lattice": {
"activePoint": -1,
"dimensions": [
3,
2,
2
],
"id": "lattice:WebGapLattice",
"interpolation": [
"KEY_LINEAR",
"KEY_CARDINAL",
"KEY_BSPLINE"
],
"name": "WebGapLattice",
"pointCount": 12,
"points": [
{
"coDeform": [
-1.0,
-0.5,
-0.5
],
"selected": true,
"weight": 0.5
},
{
"coDeform": [
0.125,
-0.5625,
-0.5
],
"selected": false,
"weight": 0.625
},
{
"coDeform": [
1.25,
-0.5,
-0.5
],
"selected": false,
"weight": 0.75
},
{
"coDeform": [
-1.0,
0.4375,
-0.5
],
"selected": false,
"weight": 0.875
},
{
"coDeform": [
0.125,
0.5,
-0.5
],
"selected": false,
"weight": 1.0
},
{
"coDeform": [
1.25,
0.4375,
-0.5
],
"selected": false,
"weight": 1.125
},
{
"coDeform": [
-1.0,
-0.5,
0.75
],
"selected": false,
"weight": 1.25
},
{
"coDeform": [
0.125,
-0.5625,
0.75
],
"selected": false,
"weight": 1.375
},
{
"coDeform": [
1.25,
-0.5,
0.75
],
"selected": false,
"weight": 1.5
},
{
"coDeform": [
-1.0,
0.4375,
0.75
],
"selected": false,
"weight": 1.625
},
{
"coDeform": [
0.125,
0.5,
0.75
],
"selected": false,
"weight": 1.75
},
{
"coDeform": [
1.25,
0.4375,
0.75
],
"selected": true,
"weight": 1.875
}
],
"useOutside": true,
"vertexGroup": "WebGapInfluence"
},
"operation": "LATTICE_DATABLOCK_DESKTOP",
"saveReopen": "EXACT",
"schemaVersion": 1,
"task": "M16-GAP-00010"
}

View File

@@ -0,0 +1,32 @@
{
"schemaVersion": 1,
"task": "M16-GAP-00010",
"operation": "LATTICE_DATABLOCK_LOCAL_EXACT",
"fixture": {
"path": "tests/files/web/generated/M16-GAP-00010-datablock-Lattice.blend",
"sha256": "ec40e2661e20c8f7e3b18d9b42f9e585175be8c2f210a1c8c190e76a6e9fbc63"
},
"desktop": {
"status": "EXACT",
"report": "tests/golden/M16-GAP-00010/lattice-desktop-report.json",
"saveReopen": "EXACT"
},
"wasm": {
"status": "EXACT",
"latticeId": "lattice:WebGapLattice",
"dimensions": [
3,
2,
2
],
"pointCount": 12,
"interpolation": [
"KEY_LINEAR",
"KEY_CARDINAL",
"KEY_BSPLINE"
],
"pointHash": "f1b46c8600d9f44473ecb7d4d90fcc022d446dfa1ea9cd780a9f003f741895bc"
},
"saveReopen": "EXACT",
"nextTask": "M16-GAP-00011"
}

View File

@@ -0,0 +1,57 @@
{
"schemaVersion": 1,
"task": "M16-GAP-00010",
"parentTask": "M16-GAP-00009",
"enablingTask": false,
"parityStateChange": true,
"runtime": "BLENDER_5_2_LOCAL_EXACT",
"operation": "LATTICE_DATABLOCK_LOCAL_EXACT",
"status": "done",
"artifacts": {
"parentManifest": {
"path": "tests/golden/M16-GAP-00009/manifest.json",
"sha256": "c242975eccdcb4c516dfae17763f9a15b9db29b856bd9f845e9eceb429e8ce69"
},
"fixture": {
"path": "tests/files/web/generated/M16-GAP-00010-datablock-Lattice.blend",
"sha256": "ec40e2661e20c8f7e3b18d9b42f9e585175be8c2f210a1c8c190e76a6e9fbc63"
},
"generator": {
"path": "tools/web/generated/M16-GAP-00010.py",
"sha256": "35303113c57f1cc6c6b7bd1afc269be0c824b71f0c7bfbb0fd33f35fea40a8c2"
},
"desktopChecker": {
"path": "tools/web/check-lattice-desktop.py",
"sha256": "56f48405407b4baba4ee9a13038fddc951c6fe607a3d64d6894a00e61d30be9b"
},
"webChecker": {
"path": "tools/web/check-generated-gap.mjs",
"sha256": "8d93d0d65a0c3e0268dfb1ce9cdd27bdf7aab33f2234d6433b6749aa81403ad3"
},
"reader": {
"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp",
"sha256": "3c2c69a66d60692049956530c2570db377e5d10838d0048aa4e0f3fb210f9c62"
},
"protocol": {
"path": "web/protocol/scene-ir.ts",
"sha256": "7d96e706de6b42f4372d937708600be150190ae593e214066a06d030bcac8b73"
},
"wasm": {
"path": "web/app/src/vendor/blender/web_engine.wasm",
"sha256": "4a33528e8bd4d50956e741cba93ab0215350943c59f56b7c82e18df19f4ee450"
},
"wasmJs": {
"path": "web/app/src/vendor/blender/web_engine.js",
"sha256": "9c831d0351ac9d0714cce3b1da748cba416ced3086e3c59595cf24ac4da459ed"
},
"desktopReport": {
"path": "tests/golden/M16-GAP-00010/lattice-desktop-report.json",
"sha256": "bb8effdcf18a89794914d88311a598b3285e64f18c402c9cff477ae5700ba089"
},
"webReport": {
"path": "tests/golden/M16-GAP-00010/lattice-local-exact-report.json",
"sha256": "489c9d25a6e4164860f5528944eca0e173f8a7e4130e89404b6fa09da9b469a0"
}
},
"nextTask": "M16-GAP-00011"
}

View File

@@ -0,0 +1,17 @@
{
"blenderVersion": "5.2.0 LTS",
"fixture": "/home/mes123456/workinf_Blender_Wasm/tests/files/web/generated/M16-GAP-00011-datablock-Library.blend",
"fixtureSha256": "d6b00d6cdc0c1c73158ba91433d8344f4b6b0a2f1d5c81e57cc4e0b42d23c34a",
"library": {
"dependencyIds": [],
"id": "library:WebGapLibrary.blend",
"name": "WebGapLibrary.blend",
"packed": false,
"readOnly": true,
"sourcePath": "//WebGapLibrary.blend"
},
"operation": "LIBRARY_DATABLOCK_DESKTOP",
"saveReopen": "EXACT",
"schemaVersion": 1,
"task": "M16-GAP-00011"
}

View File

@@ -0,0 +1,26 @@
{
"schemaVersion": 1,
"task": "M16-GAP-00011",
"operation": "LIBRARY_DATABLOCK_LOCAL_EXACT",
"fixture": {
"path": "tests/files/web/generated/M16-GAP-00011-datablock-Library.blend",
"sha256": "d6b00d6cdc0c1c73158ba91433d8344f4b6b0a2f1d5c81e57cc4e0b42d23c34a"
},
"desktop": {
"status": "EXACT",
"report": "tests/golden/M16-GAP-00011/library-desktop-report.json",
"saveReopen": "EXACT"
},
"wasm": {
"status": "EXACT",
"libraryId": "library:WebGapLibrary.blend",
"sourcePath": "//WebGapLibrary.blend",
"libraryStatus": "EXTERNAL_REQUIRED",
"dependencyIds": []
},
"saveReopen": "EXACT",
"negative": {
"malformedBlend": "REJECTED_WITHOUT_MAIN_MUTATION"
},
"nextTask": "M16-GAP-00012"
}

View File

@@ -0,0 +1,61 @@
{
"schemaVersion": 1,
"task": "M16-GAP-00011",
"parentTask": "M16-GAP-00010",
"enablingTask": false,
"parityStateChange": true,
"runtime": "BLENDER_5_2_LOCAL_EXACT",
"operation": "LIBRARY_DATABLOCK_LOCAL_EXACT",
"status": "done",
"artifacts": {
"parentManifest": {
"path": "tests/golden/M16-GAP-00010/manifest.json",
"sha256": "cb3be7f0917ca95d831ffabaa11470eb528ce3fe5eda1ba1e3f7925ea2288737"
},
"fixture": {
"path": "tests/files/web/generated/M16-GAP-00011-datablock-Library.blend",
"sha256": "d6b00d6cdc0c1c73158ba91433d8344f4b6b0a2f1d5c81e57cc4e0b42d23c34a"
},
"librarySource": {
"path": "tests/files/web/generated/WebGapLibrary.blend",
"sha256": "1fe24e423713bc18dc936e723e97f7c306db4aa62cc24736055eb2d341375088"
},
"generator": {
"path": "tools/web/generated/M16-GAP-00011.py",
"sha256": "f33b9d5482193439fedd34f138b192d2e086db01205560276fa43bfd08ed430a"
},
"desktopChecker": {
"path": "tools/web/check-library-desktop.py",
"sha256": "34eda5a724ca7eab9fcb2e4f39cec46125e363f548fc77beb3f09133151fdeb4"
},
"webChecker": {
"path": "tools/web/check-generated-gap.mjs",
"sha256": "0e13f61a7f34ddc10388f8e6ee5215fe941714e2bbf759a795efbcdd0fbc3aa0"
},
"reader": {
"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp",
"sha256": "3c2c69a66d60692049956530c2570db377e5d10838d0048aa4e0f3fb210f9c62"
},
"protocol": {
"path": "web/protocol/scene-ir.ts",
"sha256": "7d96e706de6b42f4372d937708600be150190ae593e214066a06d030bcac8b73"
},
"wasm": {
"path": "web/app/src/vendor/blender/web_engine.wasm",
"sha256": "4a33528e8bd4d50956e741cba93ab0215350943c59f56b7c82e18df19f4ee450"
},
"wasmJs": {
"path": "web/app/src/vendor/blender/web_engine.js",
"sha256": "9c831d0351ac9d0714cce3b1da748cba416ced3086e3c59595cf24ac4da459ed"
},
"desktopReport": {
"path": "tests/golden/M16-GAP-00011/library-desktop-report.json",
"sha256": "0bc9032490f2450e99d30fd67fe95b164f8d359ca042d0e0b772ee1a28e39dbd"
},
"webReport": {
"path": "tests/golden/M16-GAP-00011/library-local-exact-report.json",
"sha256": "82c3a7ebb204da9dd8f817f0378374be062993892a4405d01f81c960677f45bf"
}
},
"nextTask": "M16-GAP-00012"
}

View File

@@ -0,0 +1,121 @@
{
"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
}
}

View File

@@ -0,0 +1,32 @@
{
"blenderVersion": "5.2.0 LTS",
"fixture": "/home/mes123456/workinf_Blender_Wasm/tests/files/web/generated/M16-GAP-00012-datablock-Light.blend",
"fixtureSha256": "b92565305572d48cc2311b749d50024f1df68c4084ae8bc52ce2ba2c3832a3fa",
"light": {
"areaShape": 1,
"areaSize": 3.0,
"areaSizeY": 2.0,
"areaSpread": 2.4,
"castsShadow": false,
"color": [
0.25,
0.5,
0.75
],
"energy": 400.0,
"exposure": 1.0,
"id": "light:WebGapLight",
"lightType": 4,
"name": "WebGapLight",
"radius": 0.3,
"spotAngle": 0.785398,
"spotBlend": 0.15,
"sunAngle": 0.00918,
"temperature": 5000.0,
"useTemperature": true
},
"operation": "LIGHT_DATABLOCK_DESKTOP",
"saveReopen": "EXACT",
"schemaVersion": 1,
"task": "M16-GAP-00012"
}

View File

@@ -0,0 +1,33 @@
{
"schemaVersion": 1,
"task": "M16-GAP-00012",
"operation": "LIGHT_DATABLOCK_LOCAL_EXACT",
"fixture": {
"path": "tests/files/web/generated/M16-GAP-00012-datablock-Light.blend",
"sha256": "b92565305572d48cc2311b749d50024f1df68c4084ae8bc52ce2ba2c3832a3fa"
},
"desktop": {
"status": "EXACT",
"report": "tests/golden/M16-GAP-00012/light-desktop-report.json",
"saveReopen": "EXACT"
},
"wasm": {
"status": "EXACT",
"lightId": "light:WebGapLight",
"lightType": 4,
"fields": {
"energy": 400,
"exposure": 1,
"temperature": 5000,
"useTemperature": true,
"castsShadow": false,
"areaSize": 3,
"areaSizeY": 2
}
},
"saveReopen": "EXACT",
"negative": {
"malformedBlend": "REJECTED_WITHOUT_MAIN_MUTATION"
},
"nextTask": "M16-GAP-00013"
}

View File

@@ -0,0 +1,57 @@
{
"schemaVersion": 1,
"task": "M16-GAP-00012",
"parentTask": "M16-GAP-00011",
"enablingTask": false,
"parityStateChange": true,
"runtime": "BLENDER_5_2_LOCAL_EXACT",
"operation": "LIGHT_DATABLOCK_LOCAL_EXACT",
"status": "done",
"artifacts": {
"parentManifest": {
"path": "tests/golden/M16-GAP-00011/manifest.json",
"sha256": "a29ac9278d37d187f5e421f365a71fb3d18a8aeb74cfe4ae733f8510a43446de"
},
"fixture": {
"path": "tests/files/web/generated/M16-GAP-00012-datablock-Light.blend",
"sha256": "b92565305572d48cc2311b749d50024f1df68c4084ae8bc52ce2ba2c3832a3fa"
},
"generator": {
"path": "tools/web/generated/M16-GAP-00012.py",
"sha256": "9b261d7d516e0514e6e96a876661d0ab8eb83b844e92cd72dc4ffda460da0b2b"
},
"desktopChecker": {
"path": "tools/web/check-light-desktop.py",
"sha256": "90025507cc88c1c2be028e52a0b6e0b80561915bf109f38c64b95191c716505c"
},
"webChecker": {
"path": "tools/web/check-generated-gap.mjs",
"sha256": "cf0cc4ebefcd319d6351d70864efd20c66e415dd0adb1637224e1390d1d38e70"
},
"reader": {
"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp",
"sha256": "3c2c69a66d60692049956530c2570db377e5d10838d0048aa4e0f3fb210f9c62"
},
"protocol": {
"path": "web/protocol/scene-ir.ts",
"sha256": "7d96e706de6b42f4372d937708600be150190ae593e214066a06d030bcac8b73"
},
"wasm": {
"path": "web/app/src/vendor/blender/web_engine.wasm",
"sha256": "4a33528e8bd4d50956e741cba93ab0215350943c59f56b7c82e18df19f4ee450"
},
"wasmJs": {
"path": "web/app/src/vendor/blender/web_engine.js",
"sha256": "9c831d0351ac9d0714cce3b1da748cba416ced3086e3c59595cf24ac4da459ed"
},
"desktopReport": {
"path": "tests/golden/M16-GAP-00012/light-desktop-report.json",
"sha256": "92bd381ec7b8242de6379d9e266ebbb63bd34c2d28e852d2ac7610eb7e67b8d3"
},
"webReport": {
"path": "tests/golden/M16-GAP-00012/light-local-exact-report.json",
"sha256": "103958f99cc13fccef7acb4128f3707e48580c8ad86813821a2ce40986c5a964"
}
},
"nextTask": "M16-GAP-00013"
}

View File

@@ -0,0 +1,124 @@
{
"schemaVersion": 1,
"task": "M16-GAP-00012",
"parentTask": "M16-GAP-00011",
"status": "in_progress",
"goal": "Make the same minimal fixture produce observable datablock:Light data in Blender desktop and WASM/Main, with save/reopen stability. Change only this gap; do not expand to other data-blocks, editors, or browsers.",
"scope": {
"gap": "datablock:Light",
"ownerFamily": "RNA_DATABLOCK",
"implementationClass": "LOCAL_EXACT"
},
"commands": [
"build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00012.py -- tests/files/web/generated/M16-GAP-00012-datablock-Light.blend",
"npm --prefix web run test:generated-gap -- --task M16-GAP-00012",
"node tools/web/check-generated-gap.mjs --task M16-GAP-00012"
],
"inputPaths": [
"tests/files/web/generated/M16-GAP-00012-datablock-Light.blend",
"tools/web/generated/M16-GAP-00012.py",
"blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp",
"tools/web/check-generated-gap.mjs",
"tests/golden/M16-GAP-00012/",
"docs/status/M16-GAP-00012.md",
"tests/golden/M16-GAP-00012/manifest.json"
],
"exitCriteria": [
"desktop fixture evidence exists",
"WASM uses the same fixture",
"comparator passes",
"save/reopen preserves Main",
"manifest hashes all artifacts"
],
"nextTask": "M16-GAP-00013",
"sourceDocuments": {
"queue": "docs/EXECUTION_QUEUE.md",
"taskCard": "docs/tasks/M16-GAP-00012.md",
"taskIndex": "tests/golden/M15-03A/task-index.json",
"parentManifest": "tests/golden/M16-GAP-00011/manifest.json",
"parentStatus": "docs/status/M16-GAP-00011.md"
},
"readPolicy": {
"required": [
"docs/EXECUTION_QUEUE.md",
"docs/tasks/M16-GAP-00012.md",
"tests/golden/M16-GAP-00011/manifest.json",
"docs/status/M16-GAP-00011.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-00011",
"parentTask": "M16-GAP-00010",
"status": "done",
"nextTask": "M16-GAP-00012",
"artifactCount": 12
},
"statusSummary": [
"# M16-GAP-00011 Status",
"status: done ",
"task: Library data-block LOCAL_EXACT slice ",
"updated: 2026-08-19 America/New_York",
"scope: Blender 5.2 Library metadata for one linked, project-relative source: stable id/name/path, packed state, external-required status, dependency list and read-only contract.",
"evidence:",
"- `tools/web/generated/M16-GAP-00011.py` generated a real linked-Library fixture from `WebGapLibrary.blend`; the target reopens in Blender desktop.",
"- Desktop report matched one `library:WebGapLibrary.blend` with `sourcePath=//WebGapLibrary.blend`, unpacked external-required state, empty dependencies and read-only=true after save/reopen."
]
},
"budgets": {
"queueBytes": 4096,
"taskBytes": 1724,
"parentManifestBytes": 24576,
"parentStatusBytes": 6144,
"contextTokens": 3500,
"taskLines": 38,
"taskTokens": 424
},
"size": {
"documents": [
{
"path": "docs/EXECUTION_QUEUE.md",
"bytes": 1969,
"lines": 41,
"tokens": 321
},
{
"path": "docs/tasks/M16-GAP-00012.md",
"bytes": 1724,
"lines": 38,
"tokens": 424
},
{
"path": "tests/golden/M16-GAP-00011/manifest.json",
"bytes": 2364,
"lines": 62,
"tokens": 591
},
{
"path": "docs/status/M16-GAP-00011.md",
"bytes": 1879,
"lines": 26,
"tokens": 470
}
],
"totalTokens": 1806,
"withinBudget": true
}
}

View File

@@ -0,0 +1,57 @@
{
"schemaVersion": 1,
"task": "M16-GAP-00013",
"parentTask": "M16-GAP-00012",
"enablingTask": false,
"parityStateChange": true,
"runtime": "BLENDER_5_2_LOCAL_EXACT",
"operation": "MATERIAL_DATABLOCK_LOCAL_EXACT",
"status": "done",
"artifacts": {
"parentManifest": {
"path": "tests/golden/M16-GAP-00012/manifest.json",
"sha256": "c71a0d9e23d13bf51a190c99f16e4e7e98da1f12cba50f2404bef8fcb6e94d4c"
},
"fixture": {
"path": "tests/files/web/generated/M16-GAP-00013-datablock-Material.blend",
"sha256": "e17880024b28e0fbc8fac5b815a2c673fe11d5000cb1d23a794cdc3d83658d76"
},
"generator": {
"path": "tools/web/generated/M16-GAP-00013.py",
"sha256": "bb04dd1da461e061c27be9d4e160b2787026855198661e72ff4fee802b72c817"
},
"desktopChecker": {
"path": "tools/web/check-material-desktop.py",
"sha256": "42a870bb79eceb8e1789686db689842dfe390d58db2744fded8dd571fe9cd8f5"
},
"webChecker": {
"path": "tools/web/check-generated-gap.mjs",
"sha256": "e0e510273337e56435cf44adef246ff5bf12d6857691376ac2aacf6a4fc79ed8"
},
"reader": {
"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp",
"sha256": "3c2c69a66d60692049956530c2570db377e5d10838d0048aa4e0f3fb210f9c62"
},
"protocol": {
"path": "web/protocol/scene-ir.ts",
"sha256": "7d96e706de6b42f4372d937708600be150190ae593e214066a06d030bcac8b73"
},
"wasm": {
"path": "web/app/src/vendor/blender/web_engine.wasm",
"sha256": "4a33528e8bd4d50956e741cba93ab0215350943c59f56b7c82e18df19f4ee450"
},
"wasmJs": {
"path": "web/app/src/vendor/blender/web_engine.js",
"sha256": "9c831d0351ac9d0714cce3b1da748cba416ced3086e3c59595cf24ac4da459ed"
},
"desktopReport": {
"path": "tests/golden/M16-GAP-00013/material-desktop-report.json",
"sha256": "7adfdd70f9b116268301e0bb6cf7e0b88cf8eb2ab20d25c944586df3a9cc000c"
},
"webReport": {
"path": "tests/golden/M16-GAP-00013/material-local-exact-report.json",
"sha256": "229f3fc85518da4539e311e6ca70fd6b156cdcc9ae4c4b901e0de5c895b3d333"
}
},
"nextTask": "M16-GAP-00014"
}

View File

@@ -0,0 +1,39 @@
{
"blenderVersion": "5.2.0 LTS",
"fixture": "/home/mes123456/workinf_Blender_Wasm/tests/files/web/generated/M16-GAP-00013-datablock-Material.blend",
"fixtureSha256": "e17880024b28e0fbc8fac5b815a2c673fe11d5000cb1d23a794cdc3d83658d76",
"material": {
"alpha": 0.9,
"baseColor": [
0.2,
0.4,
0.8,
0.9
],
"coatRoughness": 0.12,
"coatWeight": 0.64,
"emissionColor": [
0.05,
0.1,
0.2,
1.0
],
"emissionStrength": 3.5,
"id": "material:WebGapMaterial",
"ior": 1.6,
"linkCount": 1,
"metallic": 0.35,
"name": "WebGapMaterial",
"nodeTypes": [
"ShaderNodeBsdfPrincipled",
"ShaderNodeOutputMaterial"
],
"roughness": 0.6,
"specularIORLevel": 0.35,
"transmissionWeight": 0.27
},
"operation": "MATERIAL_DATABLOCK_DESKTOP",
"saveReopen": "EXACT",
"schemaVersion": 1,
"task": "M16-GAP-00013"
}

View File

@@ -0,0 +1,26 @@
{
"schemaVersion": 1,
"task": "M16-GAP-00013",
"operation": "MATERIAL_DATABLOCK_LOCAL_EXACT",
"fixture": {
"path": "tests/files/web/generated/M16-GAP-00013-datablock-Material.blend",
"sha256": "e17880024b28e0fbc8fac5b815a2c673fe11d5000cb1d23a794cdc3d83658d76"
},
"desktop": {
"status": "EXACT",
"report": "tests/golden/M16-GAP-00013/material-desktop-report.json",
"saveReopen": "EXACT"
},
"wasm": {
"status": "EXACT",
"materialId": "material:WebGapMaterial",
"shaderGraphHash": "6c4cc2b22454e1cc33d19d77aeab827415c4b90304d8113d0bbb4c70ac862a3a",
"nodeCount": 2,
"linkCount": 1
},
"saveReopen": "EXACT",
"negative": {
"malformedBlend": "REJECTED_WITHOUT_MAIN_MUTATION"
},
"nextTask": "M16-GAP-00014"
}

View File

@@ -0,0 +1,124 @@
{
"schemaVersion": 1,
"task": "M16-GAP-00013",
"parentTask": "M16-GAP-00012",
"status": "in_progress",
"goal": "Make the same minimal fixture produce observable datablock:Material data in Blender desktop and WASM/Main, with save/reopen stability. Change only this gap; do not expand to other data-blocks, editors, or browsers.",
"scope": {
"gap": "datablock:Material",
"ownerFamily": "RNA_DATABLOCK",
"implementationClass": "LOCAL_EXACT"
},
"commands": [
"build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00013.py -- tests/files/web/generated/M16-GAP-00013-datablock-Material.blend",
"npm --prefix web run test:generated-gap -- --task M16-GAP-00013",
"node tools/web/check-generated-gap.mjs --task M16-GAP-00013"
],
"inputPaths": [
"tests/files/web/generated/M16-GAP-00013-datablock-Material.blend",
"tools/web/generated/M16-GAP-00013.py",
"blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp",
"tools/web/check-generated-gap.mjs",
"tests/golden/M16-GAP-00013/",
"docs/status/M16-GAP-00013.md",
"tests/golden/M16-GAP-00013/manifest.json"
],
"exitCriteria": [
"desktop fixture evidence exists",
"WASM uses the same fixture",
"comparator passes",
"save/reopen preserves Main",
"manifest hashes all artifacts"
],
"nextTask": "M16-GAP-00014",
"sourceDocuments": {
"queue": "docs/EXECUTION_QUEUE.md",
"taskCard": "docs/tasks/M16-GAP-00013.md",
"taskIndex": "tests/golden/M15-03A/task-index.json",
"parentManifest": "tests/golden/M16-GAP-00012/manifest.json",
"parentStatus": "docs/status/M16-GAP-00012.md"
},
"readPolicy": {
"required": [
"docs/EXECUTION_QUEUE.md",
"docs/tasks/M16-GAP-00013.md",
"tests/golden/M16-GAP-00012/manifest.json",
"docs/status/M16-GAP-00012.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-00012",
"parentTask": "M16-GAP-00011",
"status": "done",
"nextTask": "M16-GAP-00013",
"artifactCount": 11
},
"statusSummary": [
"# M16-GAP-00012 Status",
"status: done ",
"task: Light data-block LOCAL_EXACT slice ",
"updated: 2026-08-19 America/New_York",
"scope: Blender 5.2 Area Light metadata: type, color, energy, exposure, temperature, temperature enablement, shadow flag, radius, area shape/size/spread and bounded default spot/sun fields.",
"evidence:",
"- `tools/web/generated/M16-GAP-00012.py` generated a single `WebGapLight` Area Light fixture with deterministic RNA values.",
"- Desktop report reopened the fixture after save and matched exactly, including Light type 4, rectangle shape 1, color `[0.25, 0.5, 0.75]`, energy 400, exposure 1, temperature 5000, area size 3x2 and spread 2.4."
]
},
"budgets": {
"queueBytes": 4096,
"taskBytes": 1739,
"parentManifestBytes": 24576,
"parentStatusBytes": 6144,
"contextTokens": 3500,
"taskLines": 38,
"taskTokens": 428
},
"size": {
"documents": [
{
"path": "docs/EXECUTION_QUEUE.md",
"bytes": 1969,
"lines": 41,
"tokens": 321
},
{
"path": "docs/tasks/M16-GAP-00013.md",
"bytes": 1739,
"lines": 38,
"tokens": 428
},
{
"path": "tests/golden/M16-GAP-00012/manifest.json",
"bytes": 2178,
"lines": 58,
"tokens": 545
},
{
"path": "docs/status/M16-GAP-00012.md",
"bytes": 1837,
"lines": 26,
"tokens": 460
}
],
"totalTokens": 1754,
"withinBudget": true
}
}

View File

@@ -0,0 +1,57 @@
{
"schemaVersion": 1,
"task": "M16-GAP-00014",
"parentTask": "M16-GAP-00013",
"enablingTask": false,
"parityStateChange": true,
"runtime": "BLENDER_5_2_LOCAL_EXACT",
"operation": "MESH_DATABLOCK_LOCAL_EXACT",
"status": "done",
"artifacts": {
"parentManifest": {
"path": "tests/golden/M16-GAP-00013/manifest.json",
"sha256": "47663ad9012f36f2947f3ac8dc0d628f8f5bc338809686692e92dd59ca46c591"
},
"fixture": {
"path": "tests/files/web/generated/M16-GAP-00014-datablock-Mesh.blend",
"sha256": "1676a26f95de4eb90e55ea169a497c382ca68f195c6b883de49b6a3223d84bb5"
},
"generator": {
"path": "tools/web/generated/M16-GAP-00014.py",
"sha256": "c1333fbd1f86bac31f1db1f09056d2152f3b537fe59353f3d6f50767e8d724db"
},
"desktopChecker": {
"path": "tools/web/check-mesh-desktop.py",
"sha256": "8fe5859138f84079ddb43030fc8d22b596044b08d4f863da5dd25acaeedafdd5"
},
"webChecker": {
"path": "tools/web/check-generated-gap.mjs",
"sha256": "82796fdee398c4d97d1506610b8d4b838eeb0ea6b33218ed8c749cf06d747289"
},
"reader": {
"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp",
"sha256": "3c2c69a66d60692049956530c2570db377e5d10838d0048aa4e0f3fb210f9c62"
},
"protocol": {
"path": "web/protocol/scene-ir.ts",
"sha256": "7d96e706de6b42f4372d937708600be150190ae593e214066a06d030bcac8b73"
},
"wasm": {
"path": "web/app/src/vendor/blender/web_engine.wasm",
"sha256": "4a33528e8bd4d50956e741cba93ab0215350943c59f56b7c82e18df19f4ee450"
},
"wasmJs": {
"path": "web/app/src/vendor/blender/web_engine.js",
"sha256": "9c831d0351ac9d0714cce3b1da748cba416ced3086e3c59595cf24ac4da459ed"
},
"desktopReport": {
"path": "tests/golden/M16-GAP-00014/mesh-desktop-report.json",
"sha256": "e26f0333707fa915b7261f305af413340f9edb26d050a82fb3c6afac12ee2169"
},
"webReport": {
"path": "tests/golden/M16-GAP-00014/mesh-local-exact-report.json",
"sha256": "36066f715b9993f0e789e12a0d29f9c0c9e79e0b5ff5914268e839fa648cb28a"
}
},
"nextTask": "M16-GAP-00015"
}

View File

@@ -0,0 +1,53 @@
{
"blenderVersion": "5.2.0 LTS",
"fixture": "/home/mes123456/workinf_Blender_Wasm/tests/files/web/generated/M16-GAP-00014-datablock-Mesh.blend",
"fixtureSha256": "1676a26f95de4eb90e55ea169a497c382ca68f195c6b883de49b6a3223d84bb5",
"mesh": {
"cornerCount": 4,
"edgeCount": 4,
"faceCount": 1,
"id": "mesh:WebGapMesh",
"indices": [
0,
1,
2,
0,
2,
3
],
"name": "WebGapMesh",
"positions": [
-1.0,
-1.0,
0.0,
1.0,
-1.0,
0.0,
1.0,
1.0,
0.25,
-1.0,
1.0,
0.25
],
"triangleCount": 2,
"uvLayers": [
"WebGapUV"
],
"uvs": [
0.0,
0.0,
1.0,
0.0,
1.0,
1.0,
0.0,
1.0
],
"vertexCount": 4
},
"operation": "MESH_DATABLOCK_DESKTOP",
"saveReopen": "EXACT",
"schemaVersion": 1,
"task": "M16-GAP-00014"
}

Some files were not shown because too many files have changed in this diff Show More