Complete M16 action select circle parity
This commit is contained in:
@@ -67,5 +67,72 @@
|
||||
"modifier:GREASE_PENCIL_TEXTURE",
|
||||
"modifier:GREASE_PENCIL_THICKNESS",
|
||||
"modifier:GREASE_PENCIL_TIME",
|
||||
"modifier:GREASE_PENCIL_TINT"
|
||||
"modifier:GREASE_PENCIL_TINT",
|
||||
"modifier:GREASE_PENCIL_VERTEX_WEIGHT_ANGLE",
|
||||
"modifier:GREASE_PENCIL_VERTEX_WEIGHT_PROXIMITY",
|
||||
"modifier:HOOK",
|
||||
"modifier:LAPLACIANDEFORM",
|
||||
"modifier:LAPLACIANSMOOTH",
|
||||
"modifier:LATTICE",
|
||||
"modifier:LINEART",
|
||||
"modifier:MASK",
|
||||
"modifier:MESH_CACHE",
|
||||
"modifier:MESH_DEFORM",
|
||||
"modifier:MESH_SEQUENCE_CACHE",
|
||||
"modifier:MESH_TO_VOLUME",
|
||||
"modifier:MIRROR",
|
||||
"modifier:MULTIRES",
|
||||
"modifier:NODES",
|
||||
"modifier:NORMAL_EDIT",
|
||||
"modifier:OCEAN",
|
||||
"modifier:PARTICLE_INSTANCE",
|
||||
"modifier:PARTICLE_SYSTEM",
|
||||
"modifier:REMESH",
|
||||
"modifier:SCREW",
|
||||
"modifier:SHRINKWRAP",
|
||||
"modifier:SIMPLE_DEFORM",
|
||||
"modifier:SKIN",
|
||||
"modifier:SMOOTH",
|
||||
"modifier:SOFT_BODY",
|
||||
"modifier:SOLIDIFY",
|
||||
"modifier:SUBSURF",
|
||||
"modifier:SURFACE",
|
||||
"modifier:SURFACE_DEFORM",
|
||||
"modifier:TRIANGULATE",
|
||||
"modifier:UV_PROJECT",
|
||||
"modifier:UV_WARP",
|
||||
"modifier:VERTEX_WEIGHT_EDIT",
|
||||
"modifier:VERTEX_WEIGHT_MIX",
|
||||
"modifier:VERTEX_WEIGHT_PROXIMITY",
|
||||
"modifier:VOLUME_DISPLACE",
|
||||
"modifier:VOLUME_TO_MESH",
|
||||
"modifier:WARP",
|
||||
"modifier:WAVE",
|
||||
"modifier:WEIGHTED_NORMAL",
|
||||
"modifier:WELD",
|
||||
"modifier:WIREFRAME",
|
||||
"operator:action.bake_keys",
|
||||
"operator:action.clean",
|
||||
"operator:action.clickselect",
|
||||
"operator:action.copy",
|
||||
"operator:action.delete",
|
||||
"operator:action.duplicate",
|
||||
"operator:action.duplicate_move",
|
||||
"operator:action.easing_type",
|
||||
"operator:action.extrapolation_type",
|
||||
"operator:action.frame_jump",
|
||||
"operator:action.handle_type",
|
||||
"operator:action.interpolation_type",
|
||||
"operator:action.keyframe_insert",
|
||||
"operator:action.keyframe_type",
|
||||
"operator:action.markers_make_local",
|
||||
"operator:action.mirror",
|
||||
"operator:action.new",
|
||||
"operator:action.paste",
|
||||
"operator:action.previewrange_set",
|
||||
"operator:action.push_down",
|
||||
"operator:action.select_all",
|
||||
"operator:action.select_box",
|
||||
"operator:action.select_by_type",
|
||||
"operator:action.select_circle"
|
||||
]
|
||||
|
||||
@@ -13,14 +13,14 @@
|
||||
},
|
||||
"completions": {
|
||||
"path": "tests/golden/M15-03A/completed-gap-tasks.json",
|
||||
"sha256": "19e53785fe5f7ae596f470936f5bc3348898a863da1cac2339e4ec955490b912"
|
||||
"sha256": "65fc0455aaa0cde333537b6e6d1d5de022ad4fab161837ca18d47a8272ef25c8"
|
||||
}
|
||||
},
|
||||
"summary": {
|
||||
"taskCount": 6900,
|
||||
"active": 1,
|
||||
"pending": 6810,
|
||||
"completed": 89,
|
||||
"pending": 6763,
|
||||
"completed": 136,
|
||||
"blocked": 0,
|
||||
"byWave": {
|
||||
"M16": 2667,
|
||||
@@ -2223,7 +2223,7 @@
|
||||
"gapId": "modifier:SOLIDIFY",
|
||||
"ownerFamily": "MODIFIER",
|
||||
"sourceTask": "M15-01C",
|
||||
"state": "active",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -2246,7 +2246,7 @@
|
||||
"gapId": "modifier:SUBSURF",
|
||||
"ownerFamily": "MODIFIER",
|
||||
"sourceTask": "M15-01C",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -2269,7 +2269,7 @@
|
||||
"gapId": "modifier:SURFACE",
|
||||
"ownerFamily": "MODIFIER",
|
||||
"sourceTask": "M15-01C",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -2292,7 +2292,7 @@
|
||||
"gapId": "modifier:SURFACE_DEFORM",
|
||||
"ownerFamily": "MODIFIER",
|
||||
"sourceTask": "M15-01C",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -2315,7 +2315,7 @@
|
||||
"gapId": "modifier:TRIANGULATE",
|
||||
"ownerFamily": "MODIFIER",
|
||||
"sourceTask": "M15-01C",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -2338,7 +2338,7 @@
|
||||
"gapId": "modifier:UV_PROJECT",
|
||||
"ownerFamily": "MODIFIER",
|
||||
"sourceTask": "M15-01C",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -2361,7 +2361,7 @@
|
||||
"gapId": "modifier:UV_WARP",
|
||||
"ownerFamily": "MODIFIER",
|
||||
"sourceTask": "M15-01C",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -2384,7 +2384,7 @@
|
||||
"gapId": "modifier:VERTEX_WEIGHT_EDIT",
|
||||
"ownerFamily": "MODIFIER",
|
||||
"sourceTask": "M15-01C",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -2407,7 +2407,7 @@
|
||||
"gapId": "modifier:VERTEX_WEIGHT_MIX",
|
||||
"ownerFamily": "MODIFIER",
|
||||
"sourceTask": "M15-01C",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -2430,7 +2430,7 @@
|
||||
"gapId": "modifier:VERTEX_WEIGHT_PROXIMITY",
|
||||
"ownerFamily": "MODIFIER",
|
||||
"sourceTask": "M15-01C",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -2453,7 +2453,7 @@
|
||||
"gapId": "modifier:VOLUME_DISPLACE",
|
||||
"ownerFamily": "MODIFIER",
|
||||
"sourceTask": "M15-01C",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -2476,7 +2476,7 @@
|
||||
"gapId": "modifier:VOLUME_TO_MESH",
|
||||
"ownerFamily": "MODIFIER",
|
||||
"sourceTask": "M15-01C",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -2499,7 +2499,7 @@
|
||||
"gapId": "modifier:WARP",
|
||||
"ownerFamily": "MODIFIER",
|
||||
"sourceTask": "M15-01C",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -2522,7 +2522,7 @@
|
||||
"gapId": "modifier:WAVE",
|
||||
"ownerFamily": "MODIFIER",
|
||||
"sourceTask": "M15-01C",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -2545,7 +2545,7 @@
|
||||
"gapId": "modifier:WEIGHTED_NORMAL",
|
||||
"ownerFamily": "MODIFIER",
|
||||
"sourceTask": "M15-01C",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -2568,7 +2568,7 @@
|
||||
"gapId": "modifier:WELD",
|
||||
"ownerFamily": "MODIFIER",
|
||||
"sourceTask": "M15-01C",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -2591,7 +2591,7 @@
|
||||
"gapId": "modifier:WIREFRAME",
|
||||
"ownerFamily": "MODIFIER",
|
||||
"sourceTask": "M15-01C",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -2614,7 +2614,7 @@
|
||||
"gapId": "operator:action.bake_keys",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"sourceTask": "M15-01B",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -2637,7 +2637,7 @@
|
||||
"gapId": "operator:action.clean",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"sourceTask": "M15-01B",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -2660,7 +2660,7 @@
|
||||
"gapId": "operator:action.clickselect",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"sourceTask": "M15-01B",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -2683,7 +2683,7 @@
|
||||
"gapId": "operator:action.copy",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"sourceTask": "M15-01B",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -2706,7 +2706,7 @@
|
||||
"gapId": "operator:action.delete",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"sourceTask": "M15-01B",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -2729,7 +2729,7 @@
|
||||
"gapId": "operator:action.duplicate",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"sourceTask": "M15-01B",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -2752,7 +2752,7 @@
|
||||
"gapId": "operator:action.duplicate_move",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"sourceTask": "M15-01B",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -2775,7 +2775,7 @@
|
||||
"gapId": "operator:action.easing_type",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"sourceTask": "M15-01B",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -2798,7 +2798,7 @@
|
||||
"gapId": "operator:action.extrapolation_type",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"sourceTask": "M15-01B",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -2821,7 +2821,7 @@
|
||||
"gapId": "operator:action.frame_jump",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"sourceTask": "M15-01B",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -2844,7 +2844,7 @@
|
||||
"gapId": "operator:action.handle_type",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"sourceTask": "M15-01B",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -2867,7 +2867,7 @@
|
||||
"gapId": "operator:action.interpolation_type",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"sourceTask": "M15-01B",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -2890,7 +2890,7 @@
|
||||
"gapId": "operator:action.keyframe_insert",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"sourceTask": "M15-01B",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -2913,7 +2913,7 @@
|
||||
"gapId": "operator:action.keyframe_type",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"sourceTask": "M15-01B",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -2936,7 +2936,7 @@
|
||||
"gapId": "operator:action.markers_make_local",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"sourceTask": "M15-01B",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -2959,7 +2959,7 @@
|
||||
"gapId": "operator:action.mirror",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"sourceTask": "M15-01B",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -2982,7 +2982,7 @@
|
||||
"gapId": "operator:action.new",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"sourceTask": "M15-01B",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -3005,7 +3005,7 @@
|
||||
"gapId": "operator:action.paste",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"sourceTask": "M15-01B",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -3028,7 +3028,7 @@
|
||||
"gapId": "operator:action.previewrange_set",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"sourceTask": "M15-01B",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -3051,7 +3051,7 @@
|
||||
"gapId": "operator:action.push_down",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"sourceTask": "M15-01B",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -3074,7 +3074,7 @@
|
||||
"gapId": "operator:action.select_all",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"sourceTask": "M15-01B",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -3097,7 +3097,7 @@
|
||||
"gapId": "operator:action.select_box",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"sourceTask": "M15-01B",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -3120,7 +3120,7 @@
|
||||
"gapId": "operator:action.select_by_type",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"sourceTask": "M15-01B",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -3143,7 +3143,7 @@
|
||||
"gapId": "operator:action.select_circle",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"sourceTask": "M15-01B",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -3166,7 +3166,7 @@
|
||||
"gapId": "operator:action.select_column",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"sourceTask": "M15-01B",
|
||||
"state": "pending",
|
||||
"state": "active",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -158734,7 +158734,7 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"firstTask": "M16-GAP-00096",
|
||||
"firstTask": "M16-GAP-00137",
|
||||
"closureGate": "M15-03E",
|
||||
"nextTask": "M15-03B"
|
||||
}
|
||||
|
||||
@@ -93,48 +93,48 @@
|
||||
{"id":"M16-GAP-00093","gapId":"modifier:SKIN","ownerFamily":"MODIFIER","sourceTask":"M15-01C","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00094","gapId":"modifier:SMOOTH","ownerFamily":"MODIFIER","sourceTask":"M15-01C","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00095","gapId":"modifier:SOFT_BODY","ownerFamily":"MODIFIER","sourceTask":"M15-01C","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00096","gapId":"modifier:SOLIDIFY","ownerFamily":"MODIFIER","sourceTask":"M15-01C","state":"active","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00097","gapId":"modifier:SUBSURF","ownerFamily":"MODIFIER","sourceTask":"M15-01C","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00098","gapId":"modifier:SURFACE","ownerFamily":"MODIFIER","sourceTask":"M15-01C","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00099","gapId":"modifier:SURFACE_DEFORM","ownerFamily":"MODIFIER","sourceTask":"M15-01C","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00100","gapId":"modifier:TRIANGULATE","ownerFamily":"MODIFIER","sourceTask":"M15-01C","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00101","gapId":"modifier:UV_PROJECT","ownerFamily":"MODIFIER","sourceTask":"M15-01C","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00102","gapId":"modifier:UV_WARP","ownerFamily":"MODIFIER","sourceTask":"M15-01C","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00103","gapId":"modifier:VERTEX_WEIGHT_EDIT","ownerFamily":"MODIFIER","sourceTask":"M15-01C","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00104","gapId":"modifier:VERTEX_WEIGHT_MIX","ownerFamily":"MODIFIER","sourceTask":"M15-01C","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00105","gapId":"modifier:VERTEX_WEIGHT_PROXIMITY","ownerFamily":"MODIFIER","sourceTask":"M15-01C","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00106","gapId":"modifier:VOLUME_DISPLACE","ownerFamily":"MODIFIER","sourceTask":"M15-01C","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00107","gapId":"modifier:VOLUME_TO_MESH","ownerFamily":"MODIFIER","sourceTask":"M15-01C","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00108","gapId":"modifier:WARP","ownerFamily":"MODIFIER","sourceTask":"M15-01C","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00109","gapId":"modifier:WAVE","ownerFamily":"MODIFIER","sourceTask":"M15-01C","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00110","gapId":"modifier:WEIGHTED_NORMAL","ownerFamily":"MODIFIER","sourceTask":"M15-01C","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00111","gapId":"modifier:WELD","ownerFamily":"MODIFIER","sourceTask":"M15-01C","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00112","gapId":"modifier:WIREFRAME","ownerFamily":"MODIFIER","sourceTask":"M15-01C","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00113","gapId":"operator:action.bake_keys","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00114","gapId":"operator:action.clean","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00115","gapId":"operator:action.clickselect","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00116","gapId":"operator:action.copy","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00117","gapId":"operator:action.delete","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00118","gapId":"operator:action.duplicate","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00119","gapId":"operator:action.duplicate_move","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00120","gapId":"operator:action.easing_type","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00121","gapId":"operator:action.extrapolation_type","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00122","gapId":"operator:action.frame_jump","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00123","gapId":"operator:action.handle_type","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00124","gapId":"operator:action.interpolation_type","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00125","gapId":"operator:action.keyframe_insert","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00126","gapId":"operator:action.keyframe_type","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00127","gapId":"operator:action.markers_make_local","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00128","gapId":"operator:action.mirror","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00129","gapId":"operator:action.new","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00130","gapId":"operator:action.paste","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00131","gapId":"operator:action.previewrange_set","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00132","gapId":"operator:action.push_down","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00133","gapId":"operator:action.select_all","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00134","gapId":"operator:action.select_box","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00135","gapId":"operator:action.select_by_type","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00136","gapId":"operator:action.select_circle","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00137","gapId":"operator:action.select_column","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00096","gapId":"modifier:SOLIDIFY","ownerFamily":"MODIFIER","sourceTask":"M15-01C","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00097","gapId":"modifier:SUBSURF","ownerFamily":"MODIFIER","sourceTask":"M15-01C","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00098","gapId":"modifier:SURFACE","ownerFamily":"MODIFIER","sourceTask":"M15-01C","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00099","gapId":"modifier:SURFACE_DEFORM","ownerFamily":"MODIFIER","sourceTask":"M15-01C","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00100","gapId":"modifier:TRIANGULATE","ownerFamily":"MODIFIER","sourceTask":"M15-01C","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00101","gapId":"modifier:UV_PROJECT","ownerFamily":"MODIFIER","sourceTask":"M15-01C","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00102","gapId":"modifier:UV_WARP","ownerFamily":"MODIFIER","sourceTask":"M15-01C","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00103","gapId":"modifier:VERTEX_WEIGHT_EDIT","ownerFamily":"MODIFIER","sourceTask":"M15-01C","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00104","gapId":"modifier:VERTEX_WEIGHT_MIX","ownerFamily":"MODIFIER","sourceTask":"M15-01C","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00105","gapId":"modifier:VERTEX_WEIGHT_PROXIMITY","ownerFamily":"MODIFIER","sourceTask":"M15-01C","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00106","gapId":"modifier:VOLUME_DISPLACE","ownerFamily":"MODIFIER","sourceTask":"M15-01C","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00107","gapId":"modifier:VOLUME_TO_MESH","ownerFamily":"MODIFIER","sourceTask":"M15-01C","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00108","gapId":"modifier:WARP","ownerFamily":"MODIFIER","sourceTask":"M15-01C","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00109","gapId":"modifier:WAVE","ownerFamily":"MODIFIER","sourceTask":"M15-01C","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00110","gapId":"modifier:WEIGHTED_NORMAL","ownerFamily":"MODIFIER","sourceTask":"M15-01C","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00111","gapId":"modifier:WELD","ownerFamily":"MODIFIER","sourceTask":"M15-01C","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00112","gapId":"modifier:WIREFRAME","ownerFamily":"MODIFIER","sourceTask":"M15-01C","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00113","gapId":"operator:action.bake_keys","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00114","gapId":"operator:action.clean","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00115","gapId":"operator:action.clickselect","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00116","gapId":"operator:action.copy","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00117","gapId":"operator:action.delete","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00118","gapId":"operator:action.duplicate","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00119","gapId":"operator:action.duplicate_move","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00120","gapId":"operator:action.easing_type","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00121","gapId":"operator:action.extrapolation_type","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00122","gapId":"operator:action.frame_jump","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00123","gapId":"operator:action.handle_type","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00124","gapId":"operator:action.interpolation_type","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00125","gapId":"operator:action.keyframe_insert","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00126","gapId":"operator:action.keyframe_type","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00127","gapId":"operator:action.markers_make_local","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00128","gapId":"operator:action.mirror","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00129","gapId":"operator:action.new","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00130","gapId":"operator:action.paste","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00131","gapId":"operator:action.previewrange_set","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00132","gapId":"operator:action.push_down","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00133","gapId":"operator:action.select_all","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00134","gapId":"operator:action.select_box","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00135","gapId":"operator:action.select_by_type","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00136","gapId":"operator:action.select_circle","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00137","gapId":"operator:action.select_column","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"active","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00138","gapId":"operator:action.select_lasso","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00139","gapId":"operator:action.select_leftright","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00140","gapId":"operator:action.select_less","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
|
||||
File diff suppressed because one or more lines are too long
28
tests/golden/M16-GAP-00096/manifest.json
Normal file
28
tests/golden/M16-GAP-00096/manifest.json
Normal file
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00096",
|
||||
"parentTask": "M16-GAP-00095",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": true,
|
||||
"runtime": "BLENDER_5_2_LOCAL_EXACT",
|
||||
"operation": "SOLIDIFY_MODIFIER_LOCAL_EXACT",
|
||||
"status": "done",
|
||||
"artifacts": {
|
||||
"parentManifest": {"path": "tests/golden/M16-GAP-00095/manifest.json", "sha256": "9fa2c3ed7fbee3b52c0cb2f629f7886e492cfec2a2a4d11b93f33a0a16d7a92e"},
|
||||
"fixture": {"path": "tests/files/web/generated/M16-GAP-00096-modifier-SOLIDIFY.blend", "sha256": "0b319df9e6c4f677728af992114196e4fa29f80effabc01b3dbfd639bc2b66d5"},
|
||||
"generator": {"path": "tools/web/generated/M16-GAP-00096.py", "sha256": "8ffa8697f2d4490f9ca2f04d4eaa3866be4bdecbe17e9d5db11c13882034c009"},
|
||||
"desktopChecker": {"path": "tools/web/check-generic-modifier-desktop.py", "sha256": "06907bb045cb0c14b518b620facded50ae5cd52f23e2281de04017ff1b11bb71"},
|
||||
"webChecker": {"path": "tools/web/check-generated-gap.mjs", "sha256": "d613cf0915abdf2cdc1f2a534e1e0a478c38cb5ca2d89c2e3ad708e957e0849a"},
|
||||
"reader": {"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp", "sha256": "11c598f89b531f2e9d6e2169ab6eed07b7cbea86c8b8d58ef4c6ff045c6414bf"},
|
||||
"modifierCmake": {"path": "blender-5.2.0/source/blender/modifiers/CMakeLists.txt", "sha256": "acf2c49dcea2907a117efdf8d74d4d817a4456a41c6bec3a40f38263beaae127"},
|
||||
"particleModifier": {"path": "blender-5.2.0/source/blender/modifiers/intern/MOD_particlesystem.cc", "sha256": "92ea7223c192563062d9f485c45cc78290a8809eb79d3a28be12081a0c7d6e6f"},
|
||||
"particleCore": {"path": "blender-5.2.0/source/blender/blenkernel/intern/particle.cc", "sha256": "d712f922c3160bddb464e3b7e1f68bfc44591dd9e536f4fd901119025d17717c"},
|
||||
"physicsReader": {"path": "blender-5.2.0/source/blender/web_engine/web_engine_main_state.cpp", "sha256": "62af46e404d6174cc4b9d85adb6e8b259f1c537e5ebfd8485e4fd0cc4be0fded"},
|
||||
"wasm": {"path": "web/app/src/vendor/blender/web_engine.wasm", "sha256": "1a991f13fc2f2e4a7b00366c52e6285198c24e72c110bb5f1f6d005e56089104"},
|
||||
"wasmPublic": {"path": "web/app/public/vendor/blender/web_engine.wasm", "sha256": "1a991f13fc2f2e4a7b00366c52e6285198c24e72c110bb5f1f6d005e56089104"},
|
||||
"wasmJs": {"path": "web/app/src/vendor/blender/web_engine.js", "sha256": "9c831d0351ac9d0714cce3b1da748cba416ced3086e3c59595cf24ac4da459ed"},
|
||||
"desktopReport": {"path": "tests/golden/M16-GAP-00096/solidify-modifier-desktop-report.json", "sha256": "914187f8ec57e442d85fae5710aa98bd058e91930bdacd7928694281bad54df3"},
|
||||
"webReport": {"path": "tests/golden/M16-GAP-00096/solidify-modifier-local-exact-report.json", "sha256": "b6437999773cc18296a54e041c8df8b33d595f9ebe67c826a47f62308d307232"}
|
||||
},
|
||||
"nextTask": "M16-GAP-00097"
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"blenderVersion": "5.2.0 LTS",
|
||||
"fixture": "/home/mes123456/workinf_Blender_Wasm/tests/files/web/generated/M16-GAP-00096-modifier-SOLIDIFY.blend",
|
||||
"fixtureSha256": "0b319df9e6c4f677728af992114196e4fa29f80effabc01b3dbfd639bc2b66d5",
|
||||
"modifier": {
|
||||
"meshId": "mesh:WebGapSolidifyMesh",
|
||||
"modifier": {
|
||||
"name": "WebGapSolidify",
|
||||
"offset": 0.3499999940395355,
|
||||
"showEditMode": true,
|
||||
"showOnCage": false,
|
||||
"showRender": false,
|
||||
"showViewport": true,
|
||||
"thickness": 0.2750000059604645,
|
||||
"type": "SOLIDIFY",
|
||||
"typeCode": 33
|
||||
},
|
||||
"objectId": "object:WebGapSolidifyObject",
|
||||
"task": "M16-GAP-00096"
|
||||
},
|
||||
"operation": "SOLIDIFY_MODIFIER_DESKTOP",
|
||||
"saveReopen": "EXACT",
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00096"
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00096",
|
||||
"operation": "SOLIDIFY_MODIFIER_LOCAL_EXACT",
|
||||
"fixture": {
|
||||
"path": "tests/files/web/generated/M16-GAP-00096-modifier-SOLIDIFY.blend",
|
||||
"sha256": "0b319df9e6c4f677728af992114196e4fa29f80effabc01b3dbfd639bc2b66d5"
|
||||
},
|
||||
"desktop": {
|
||||
"status": "EXACT",
|
||||
"report": "tests/golden/M16-GAP-00096/solidify-modifier-desktop-report.json",
|
||||
"saveReopen": "EXACT"
|
||||
},
|
||||
"wasm": {
|
||||
"status": "EXACT",
|
||||
"objectId": "object:WebGapSolidifyObject",
|
||||
"meshId": "mesh:WebGapSolidifyMesh",
|
||||
"modifier": {
|
||||
"dependsOn": [],
|
||||
"enabled": true,
|
||||
"evaluationStatus": "METADATA_ONLY",
|
||||
"name": "WebGapSolidify",
|
||||
"parameters": {
|
||||
"flag": 5,
|
||||
"mode": 5,
|
||||
"offset": 0.3499999940395355,
|
||||
"persistentUid": 129666994,
|
||||
"thickness": 0.2750000059604645,
|
||||
"typeCode": 33
|
||||
},
|
||||
"showEditMode": true,
|
||||
"showOnCage": false,
|
||||
"showRender": false,
|
||||
"showViewport": true,
|
||||
"type": "SOLIDIFY",
|
||||
"uuid": "modifier:object:WebGapSolidifyObject:129666994"
|
||||
}
|
||||
},
|
||||
"saveReopen": "EXACT",
|
||||
"negative": {
|
||||
"malformedBlend": "REJECTED_WITHOUT_MAIN_MUTATION"
|
||||
},
|
||||
"nextTask": "M16-GAP-00097"
|
||||
}
|
||||
181
tests/golden/M16-GAP-00096/task-context.json
Normal file
181
tests/golden/M16-GAP-00096/task-context.json
Normal file
@@ -0,0 +1,181 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00096",
|
||||
"parentTask": "M16-GAP-00095",
|
||||
"status": "in_progress",
|
||||
"goal": "Make the same minimal fixture produce observable modifier:SOLIDIFY 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": "modifier:SOLIDIFY",
|
||||
"ownerFamily": "MODIFIER",
|
||||
"implementationClass": "LOCAL_EXACT"
|
||||
},
|
||||
"commands": [
|
||||
"build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00096.py -- tests/files/web/generated/M16-GAP-00096-modifier-SOLIDIFY.blend",
|
||||
"npm --prefix web run test:generated-gap -- --task M16-GAP-00096",
|
||||
"node tools/web/check-generated-gap.mjs --task M16-GAP-00096"
|
||||
],
|
||||
"inputPaths": [
|
||||
"tools/web/generated/M16-GAP-00096.py"
|
||||
],
|
||||
"inputSelection": {
|
||||
"schemaVersion": 1,
|
||||
"limits": {
|
||||
"maxFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextRemainingBytes": 6703,
|
||||
"contextRemainingTokens": 1674
|
||||
},
|
||||
"source": {
|
||||
"bytes": 7297,
|
||||
"tokens": 1826
|
||||
},
|
||||
"selected": [
|
||||
{
|
||||
"path": "tools/web/generated/M16-GAP-00096.py",
|
||||
"bytes": 1021,
|
||||
"tokens": 256
|
||||
}
|
||||
],
|
||||
"excluded": [
|
||||
{
|
||||
"path": "tests/files/web/generated/M16-GAP-00096-modifier-SOLIDIFY.blend",
|
||||
"bytes": 86420,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp",
|
||||
"bytes": 221861,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tools/web/check-generated-gap.mjs",
|
||||
"bytes": 141861,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00096/",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00096.md",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00096/manifest.json",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"files": 1,
|
||||
"bytes": 1021,
|
||||
"tokens": 256
|
||||
}
|
||||
},
|
||||
"exitCriteria": [
|
||||
"desktop fixture evidence exists",
|
||||
"WASM uses the same fixture",
|
||||
"comparator passes",
|
||||
"save/reopen preserves Main",
|
||||
"manifest hashes all artifacts"
|
||||
],
|
||||
"nextTask": "M16-GAP-00097",
|
||||
"sourceDocuments": {
|
||||
"queue": "docs/EXECUTION_QUEUE.md",
|
||||
"taskCard": "docs/tasks/M16-GAP-00096.md",
|
||||
"taskIndex": "tests/golden/M15-03A/task-index.json",
|
||||
"parentManifest": "tests/golden/M16-GAP-00095/manifest.json",
|
||||
"parentStatus": "docs/status/M16-GAP-00095.md"
|
||||
},
|
||||
"readPolicy": {
|
||||
"required": [
|
||||
"docs/EXECUTION_QUEUE.md",
|
||||
"docs/tasks/M16-GAP-00096.md",
|
||||
"tests/golden/M16-GAP-00095/manifest.json",
|
||||
"docs/status/M16-GAP-00095.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-00095",
|
||||
"parentTask": "M16-GAP-00094",
|
||||
"status": "done",
|
||||
"nextTask": "M16-GAP-00096",
|
||||
"artifactCount": 15
|
||||
},
|
||||
"statusSummary": [
|
||||
"# M16-GAP-00095 Status",
|
||||
"status: done",
|
||||
"task: SOFT_BODY modifier LOCAL_EXACT slice",
|
||||
"updated: 2026-08-20 America/New_York",
|
||||
"scope: Mesh SOFT_BODY modifier stack exposure for `mesh:WebGapSoftBodyMesh`.",
|
||||
"evidence:",
|
||||
"- Desktop fixture exposes `WebGapSoftBody` as SOFT_BODY type code 10; save/reopen is exact.",
|
||||
"- WASM/Main exposes the same SOFT_BODY stack entry as `METADATA_ONLY`; save/reopen is exact."
|
||||
]
|
||||
},
|
||||
"budgets": {
|
||||
"queueBytes": 4096,
|
||||
"taskBytes": 1729,
|
||||
"parentManifestBytes": 24576,
|
||||
"parentStatusBytes": 6144,
|
||||
"evidenceFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextTokens": 3500,
|
||||
"taskLines": 38,
|
||||
"taskTokens": 433
|
||||
},
|
||||
"size": {
|
||||
"documents": [
|
||||
{
|
||||
"path": "docs/EXECUTION_QUEUE.md",
|
||||
"bytes": 2168,
|
||||
"lines": 45,
|
||||
"tokens": 542
|
||||
},
|
||||
{
|
||||
"path": "docs/tasks/M16-GAP-00096.md",
|
||||
"bytes": 1729,
|
||||
"lines": 38,
|
||||
"tokens": 433
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00095/manifest.json",
|
||||
"bytes": 2743,
|
||||
"lines": 29,
|
||||
"tokens": 686
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00095.md",
|
||||
"bytes": 657,
|
||||
"lines": 19,
|
||||
"tokens": 165
|
||||
}
|
||||
],
|
||||
"sourceTokens": 1826,
|
||||
"evidenceFiles": 1,
|
||||
"evidenceBytes": 1021,
|
||||
"evidenceTokens": 256,
|
||||
"totalTokens": 2082,
|
||||
"withinBudget": true
|
||||
}
|
||||
}
|
||||
28
tests/golden/M16-GAP-00097/manifest.json
Normal file
28
tests/golden/M16-GAP-00097/manifest.json
Normal file
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00097",
|
||||
"parentTask": "M16-GAP-00096",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": true,
|
||||
"runtime": "BLENDER_5_2_LOCAL_EXACT",
|
||||
"operation": "SUBSURF_MODIFIER_LOCAL_EXACT",
|
||||
"status": "done",
|
||||
"artifacts": {
|
||||
"parentManifest": {"path": "tests/golden/M16-GAP-00096/manifest.json", "sha256": "f539f112a4c5aaa4565554d8a3d5947c9c77a8d8df8ef8f39adbc1b1146a2b8b"},
|
||||
"fixture": {"path": "tests/files/web/generated/M16-GAP-00097-modifier-SUBSURF.blend", "sha256": "f0c3e9801b4138c3701599e24242374dbb6217f223e2decc7c04d5558094108a"},
|
||||
"generator": {"path": "tools/web/generated/M16-GAP-00097.py", "sha256": "cd26d7bd580a78e40a78f7bd47526dbd3430d75b9c1f9c63849668b613277960"},
|
||||
"desktopChecker": {"path": "tools/web/check-generic-modifier-desktop.py", "sha256": "65d211c3a1ea33eca121771f33870466d53ef6248743eff96bd5e789b9f049be"},
|
||||
"webChecker": {"path": "tools/web/check-generated-gap.mjs", "sha256": "abb6f9d3de215df6abff830a83b3e964bccc0c42b29ab2b16af599508c156f83"},
|
||||
"reader": {"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp", "sha256": "11c598f89b531f2e9d6e2169ab6eed07b7cbea86c8b8d58ef4c6ff045c6414bf"},
|
||||
"modifierCmake": {"path": "blender-5.2.0/source/blender/modifiers/CMakeLists.txt", "sha256": "acf2c49dcea2907a117efdf8d74d4d817a4456a41c6bec3a40f38263beaae127"},
|
||||
"particleModifier": {"path": "blender-5.2.0/source/blender/modifiers/intern/MOD_particlesystem.cc", "sha256": "92ea7223c192563062d9f485c45cc78290a8809eb79d3a28be12081a0c7d6e6f"},
|
||||
"particleCore": {"path": "blender-5.2.0/source/blender/blenkernel/intern/particle.cc", "sha256": "d712f922c3160bddb464e3b7e1f68bfc44591dd9e536f4fd901119025d17717c"},
|
||||
"physicsReader": {"path": "blender-5.2.0/source/blender/web_engine/web_engine_main_state.cpp", "sha256": "62af46e404d6174cc4b9d85adb6e8b259f1c537e5ebfd8485e4fd0cc4be0fded"},
|
||||
"wasm": {"path": "web/app/src/vendor/blender/web_engine.wasm", "sha256": "1a991f13fc2f2e4a7b00366c52e6285198c24e72c110bb5f1f6d005e56089104"},
|
||||
"wasmPublic": {"path": "web/app/public/vendor/blender/web_engine.wasm", "sha256": "1a991f13fc2f2e4a7b00366c52e6285198c24e72c110bb5f1f6d005e56089104"},
|
||||
"wasmJs": {"path": "web/app/src/vendor/blender/web_engine.js", "sha256": "9c831d0351ac9d0714cce3b1da748cba416ced3086e3c59595cf24ac4da459ed"},
|
||||
"desktopReport": {"path": "tests/golden/M16-GAP-00097/subsurf-modifier-desktop-report.json", "sha256": "e1ce95f66a26b4e687bd32fc6f975044033d921703954e0e26674dfbce556bea"},
|
||||
"webReport": {"path": "tests/golden/M16-GAP-00097/subsurf-modifier-local-exact-report.json", "sha256": "c146dabc29a94e25df4f09e6de727a3377f48ea706dbe74f51b903efbc5a293d"}
|
||||
},
|
||||
"nextTask": "M16-GAP-00098"
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"blenderVersion": "5.2.0 LTS",
|
||||
"fixture": "/home/mes123456/workinf_Blender_Wasm/tests/files/web/generated/M16-GAP-00097-modifier-SUBSURF.blend",
|
||||
"fixtureSha256": "f0c3e9801b4138c3701599e24242374dbb6217f223e2decc7c04d5558094108a",
|
||||
"modifier": {
|
||||
"meshId": "mesh:WebGapSubsurfMesh",
|
||||
"modifier": {
|
||||
"levels": 2,
|
||||
"name": "WebGapSubsurf",
|
||||
"renderLevels": 3,
|
||||
"showEditMode": true,
|
||||
"showOnCage": false,
|
||||
"showRender": false,
|
||||
"showViewport": true,
|
||||
"subdivisionType": 1,
|
||||
"type": "SUBSURF",
|
||||
"typeCode": 1
|
||||
},
|
||||
"objectId": "object:WebGapSubsurfObject",
|
||||
"task": "M16-GAP-00097"
|
||||
},
|
||||
"operation": "SUBSURF_MODIFIER_DESKTOP",
|
||||
"saveReopen": "EXACT",
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00097"
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00097",
|
||||
"operation": "SUBSURF_MODIFIER_LOCAL_EXACT",
|
||||
"fixture": {
|
||||
"path": "tests/files/web/generated/M16-GAP-00097-modifier-SUBSURF.blend",
|
||||
"sha256": "f0c3e9801b4138c3701599e24242374dbb6217f223e2decc7c04d5558094108a"
|
||||
},
|
||||
"desktop": {
|
||||
"status": "EXACT",
|
||||
"report": "tests/golden/M16-GAP-00097/subsurf-modifier-desktop-report.json",
|
||||
"saveReopen": "EXACT"
|
||||
},
|
||||
"wasm": {
|
||||
"status": "EXACT",
|
||||
"objectId": "object:WebGapSubsurfObject",
|
||||
"meshId": "mesh:WebGapSubsurfMesh",
|
||||
"modifier": {
|
||||
"dependsOn": [],
|
||||
"enabled": true,
|
||||
"evaluationStatus": "METADATA_ONLY",
|
||||
"name": "WebGapSubsurf",
|
||||
"parameters": {
|
||||
"flag": 5,
|
||||
"levels": 2,
|
||||
"mode": 5,
|
||||
"persistentUid": 1454833520,
|
||||
"renderLevels": 3,
|
||||
"subdivisionType": 1,
|
||||
"typeCode": 1
|
||||
},
|
||||
"showEditMode": true,
|
||||
"showOnCage": false,
|
||||
"showRender": false,
|
||||
"showViewport": true,
|
||||
"type": "SUBSURF",
|
||||
"uuid": "modifier:object:WebGapSubsurfObject:1454833520"
|
||||
}
|
||||
},
|
||||
"saveReopen": "EXACT",
|
||||
"negative": {
|
||||
"malformedBlend": "REJECTED_WITHOUT_MAIN_MUTATION"
|
||||
},
|
||||
"nextTask": "M16-GAP-00098"
|
||||
}
|
||||
181
tests/golden/M16-GAP-00097/task-context.json
Normal file
181
tests/golden/M16-GAP-00097/task-context.json
Normal file
@@ -0,0 +1,181 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00097",
|
||||
"parentTask": "M16-GAP-00096",
|
||||
"status": "in_progress",
|
||||
"goal": "Make the same minimal fixture produce observable modifier:SUBSURF 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": "modifier:SUBSURF",
|
||||
"ownerFamily": "MODIFIER",
|
||||
"implementationClass": "LOCAL_EXACT"
|
||||
},
|
||||
"commands": [
|
||||
"build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00097.py -- tests/files/web/generated/M16-GAP-00097-modifier-SUBSURF.blend",
|
||||
"npm --prefix web run test:generated-gap -- --task M16-GAP-00097",
|
||||
"node tools/web/check-generated-gap.mjs --task M16-GAP-00097"
|
||||
],
|
||||
"inputPaths": [
|
||||
"tools/web/generated/M16-GAP-00097.py"
|
||||
],
|
||||
"inputSelection": {
|
||||
"schemaVersion": 1,
|
||||
"limits": {
|
||||
"maxFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextRemainingBytes": 6495,
|
||||
"contextRemainingTokens": 1623
|
||||
},
|
||||
"source": {
|
||||
"bytes": 7505,
|
||||
"tokens": 1877
|
||||
},
|
||||
"selected": [
|
||||
{
|
||||
"path": "tools/web/generated/M16-GAP-00097.py",
|
||||
"bytes": 1073,
|
||||
"tokens": 269
|
||||
}
|
||||
],
|
||||
"excluded": [
|
||||
{
|
||||
"path": "tests/files/web/generated/M16-GAP-00097-modifier-SUBSURF.blend",
|
||||
"bytes": 86391,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp",
|
||||
"bytes": 221861,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tools/web/check-generated-gap.mjs",
|
||||
"bytes": 142260,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00097/",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00097.md",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00097/manifest.json",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"files": 1,
|
||||
"bytes": 1073,
|
||||
"tokens": 269
|
||||
}
|
||||
},
|
||||
"exitCriteria": [
|
||||
"desktop fixture evidence exists",
|
||||
"WASM uses the same fixture",
|
||||
"comparator passes",
|
||||
"save/reopen preserves Main",
|
||||
"manifest hashes all artifacts"
|
||||
],
|
||||
"nextTask": "M16-GAP-00098",
|
||||
"sourceDocuments": {
|
||||
"queue": "docs/EXECUTION_QUEUE.md",
|
||||
"taskCard": "docs/tasks/M16-GAP-00097.md",
|
||||
"taskIndex": "tests/golden/M15-03A/task-index.json",
|
||||
"parentManifest": "tests/golden/M16-GAP-00096/manifest.json",
|
||||
"parentStatus": "docs/status/M16-GAP-00096.md"
|
||||
},
|
||||
"readPolicy": {
|
||||
"required": [
|
||||
"docs/EXECUTION_QUEUE.md",
|
||||
"docs/tasks/M16-GAP-00097.md",
|
||||
"tests/golden/M16-GAP-00096/manifest.json",
|
||||
"docs/status/M16-GAP-00096.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-00096",
|
||||
"parentTask": "M16-GAP-00095",
|
||||
"status": "done",
|
||||
"nextTask": "M16-GAP-00097",
|
||||
"artifactCount": 15
|
||||
},
|
||||
"statusSummary": [
|
||||
"# M16-GAP-00096 Status",
|
||||
"status: done",
|
||||
"task: SOLIDIFY modifier LOCAL_EXACT slice",
|
||||
"updated: 2026-08-20 America/New_York",
|
||||
"scope: Mesh SOLIDIFY modifier stack exposure for `mesh:WebGapSolidifyMesh`.",
|
||||
"evidence:",
|
||||
"- Desktop fixture exposes `WebGapSolidify` as SOLIDIFY type code 33 with thickness `0.275` and offset `0.35`; save/reopen is exact.",
|
||||
"- WASM/Main exposes the same SOLIDIFY stack entry with matching thickness/offset and generic visibility flags; save/reopen is exact."
|
||||
]
|
||||
},
|
||||
"budgets": {
|
||||
"queueBytes": 4096,
|
||||
"taskBytes": 1724,
|
||||
"parentManifestBytes": 24576,
|
||||
"parentStatusBytes": 6144,
|
||||
"evidenceFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextTokens": 3500,
|
||||
"taskLines": 38,
|
||||
"taskTokens": 431
|
||||
},
|
||||
"size": {
|
||||
"documents": [
|
||||
{
|
||||
"path": "docs/EXECUTION_QUEUE.md",
|
||||
"bytes": 2168,
|
||||
"lines": 45,
|
||||
"tokens": 542
|
||||
},
|
||||
{
|
||||
"path": "docs/tasks/M16-GAP-00097.md",
|
||||
"bytes": 1724,
|
||||
"lines": 38,
|
||||
"tokens": 431
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00096/manifest.json",
|
||||
"bytes": 2739,
|
||||
"lines": 29,
|
||||
"tokens": 685
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00096.md",
|
||||
"bytes": 874,
|
||||
"lines": 20,
|
||||
"tokens": 219
|
||||
}
|
||||
],
|
||||
"sourceTokens": 1877,
|
||||
"evidenceFiles": 1,
|
||||
"evidenceBytes": 1073,
|
||||
"evidenceTokens": 269,
|
||||
"totalTokens": 2146,
|
||||
"withinBudget": true
|
||||
}
|
||||
}
|
||||
28
tests/golden/M16-GAP-00098/manifest.json
Normal file
28
tests/golden/M16-GAP-00098/manifest.json
Normal file
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00098",
|
||||
"parentTask": "M16-GAP-00097",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": true,
|
||||
"runtime": "BLENDER_5_2_LOCAL_EXACT",
|
||||
"operation": "SURFACE_MODIFIER_LOCAL_EXACT",
|
||||
"status": "done",
|
||||
"artifacts": {
|
||||
"parentManifest": {"path": "tests/golden/M16-GAP-00097/manifest.json", "sha256": "df24b8387d70f8c6ca35306fb7994b056801c0f700769584d718bf30a885adee"},
|
||||
"fixture": {"path": "tests/files/web/generated/M16-GAP-00098-modifier-SURFACE.blend", "sha256": "41aa335359773ce72a3f372784d1fbf74a1ec65c077652f0cb98d34793edc937"},
|
||||
"generator": {"path": "tools/web/generated/M16-GAP-00098.py", "sha256": "988ad257572050d657a7c82ece4f639246a93e700ee3cb216469fb73bbb948e9"},
|
||||
"desktopChecker": {"path": "tools/web/check-generic-modifier-desktop.py", "sha256": "65d211c3a1ea33eca121771f33870466d53ef6248743eff96bd5e789b9f049be"},
|
||||
"webChecker": {"path": "tools/web/check-generated-gap.mjs", "sha256": "dc23d8d7837fd9d43896804c076221cf584bf044d2e897bb2dad2320a662959a"},
|
||||
"reader": {"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp", "sha256": "11c598f89b531f2e9d6e2169ab6eed07b7cbea86c8b8d58ef4c6ff045c6414bf"},
|
||||
"modifierCmake": {"path": "blender-5.2.0/source/blender/modifiers/CMakeLists.txt", "sha256": "acf2c49dcea2907a117efdf8d74d4d817a4456a41c6bec3a40f38263beaae127"},
|
||||
"particleModifier": {"path": "blender-5.2.0/source/blender/modifiers/intern/MOD_particlesystem.cc", "sha256": "92ea7223c192563062d9f485c45cc78290a8809eb79d3a28be12081a0c7d6e6f"},
|
||||
"particleCore": {"path": "blender-5.2.0/source/blender/blenkernel/intern/particle.cc", "sha256": "d712f922c3160bddb464e3b7e1f68bfc44591dd9e536f4fd901119025d17717c"},
|
||||
"physicsReader": {"path": "blender-5.2.0/source/blender/web_engine/web_engine_main_state.cpp", "sha256": "62af46e404d6174cc4b9d85adb6e8b259f1c537e5ebfd8485e4fd0cc4be0fded"},
|
||||
"wasm": {"path": "web/app/src/vendor/blender/web_engine.wasm", "sha256": "1a991f13fc2f2e4a7b00366c52e6285198c24e72c110bb5f1f6d005e56089104"},
|
||||
"wasmPublic": {"path": "web/app/public/vendor/blender/web_engine.wasm", "sha256": "1a991f13fc2f2e4a7b00366c52e6285198c24e72c110bb5f1f6d005e56089104"},
|
||||
"wasmJs": {"path": "web/app/src/vendor/blender/web_engine.js", "sha256": "9c831d0351ac9d0714cce3b1da748cba416ced3086e3c59595cf24ac4da459ed"},
|
||||
"desktopReport": {"path": "tests/golden/M16-GAP-00098/surface-modifier-desktop-report.json", "sha256": "75a588cd606fe0395c7f6541eed4ca26daa0109d7f6fa62cffe87e41149d0a95"},
|
||||
"webReport": {"path": "tests/golden/M16-GAP-00098/surface-modifier-local-exact-report.json", "sha256": "7b004c755290ebe920a9296a7768ff3231eaec66e1836536d98dffa4d6c6dbab"}
|
||||
},
|
||||
"nextTask": "M16-GAP-00099"
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"blenderVersion": "5.2.0 LTS",
|
||||
"fixture": "/home/mes123456/workinf_Blender_Wasm/tests/files/web/generated/M16-GAP-00098-modifier-SURFACE.blend",
|
||||
"fixtureSha256": "41aa335359773ce72a3f372784d1fbf74a1ec65c077652f0cb98d34793edc937",
|
||||
"modifier": {
|
||||
"meshId": "mesh:WebGapSurfaceMesh",
|
||||
"modifier": {
|
||||
"name": "WebGapSurface",
|
||||
"showEditMode": false,
|
||||
"showOnCage": false,
|
||||
"showRender": false,
|
||||
"showViewport": true,
|
||||
"type": "SURFACE",
|
||||
"typeCode": 30
|
||||
},
|
||||
"objectId": "object:WebGapSurfaceObject",
|
||||
"task": "M16-GAP-00098"
|
||||
},
|
||||
"operation": "SURFACE_MODIFIER_DESKTOP",
|
||||
"saveReopen": "EXACT",
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00098"
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00098",
|
||||
"operation": "SURFACE_MODIFIER_LOCAL_EXACT",
|
||||
"fixture": {
|
||||
"path": "tests/files/web/generated/M16-GAP-00098-modifier-SURFACE.blend",
|
||||
"sha256": "41aa335359773ce72a3f372784d1fbf74a1ec65c077652f0cb98d34793edc937"
|
||||
},
|
||||
"desktop": {
|
||||
"status": "EXACT",
|
||||
"report": "tests/golden/M16-GAP-00098/surface-modifier-desktop-report.json",
|
||||
"saveReopen": "EXACT"
|
||||
},
|
||||
"wasm": {
|
||||
"status": "EXACT",
|
||||
"objectId": "object:WebGapSurfaceObject",
|
||||
"meshId": "mesh:WebGapSurfaceMesh",
|
||||
"modifier": {
|
||||
"dependsOn": [],
|
||||
"enabled": true,
|
||||
"evaluationStatus": "BLOCKED",
|
||||
"name": "WebGapSurface",
|
||||
"parameters": {
|
||||
"flag": 5,
|
||||
"mode": 1,
|
||||
"persistentUid": 298436185,
|
||||
"typeCode": 30
|
||||
},
|
||||
"showEditMode": false,
|
||||
"showOnCage": false,
|
||||
"showRender": false,
|
||||
"showViewport": true,
|
||||
"type": "SURFACE",
|
||||
"uuid": "modifier:object:WebGapSurfaceObject:298436185"
|
||||
}
|
||||
},
|
||||
"saveReopen": "EXACT",
|
||||
"negative": {
|
||||
"malformedBlend": "REJECTED_WITHOUT_MAIN_MUTATION"
|
||||
},
|
||||
"nextTask": "M16-GAP-00099"
|
||||
}
|
||||
181
tests/golden/M16-GAP-00098/task-context.json
Normal file
181
tests/golden/M16-GAP-00098/task-context.json
Normal file
@@ -0,0 +1,181 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00098",
|
||||
"parentTask": "M16-GAP-00097",
|
||||
"status": "in_progress",
|
||||
"goal": "Make the same minimal fixture produce observable modifier:SURFACE 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": "modifier:SURFACE",
|
||||
"ownerFamily": "MODIFIER",
|
||||
"implementationClass": "LOCAL_EXACT"
|
||||
},
|
||||
"commands": [
|
||||
"build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00098.py -- tests/files/web/generated/M16-GAP-00098-modifier-SURFACE.blend",
|
||||
"npm --prefix web run test:generated-gap -- --task M16-GAP-00098",
|
||||
"node tools/web/check-generated-gap.mjs --task M16-GAP-00098"
|
||||
],
|
||||
"inputPaths": [
|
||||
"tools/web/generated/M16-GAP-00098.py"
|
||||
],
|
||||
"inputSelection": {
|
||||
"schemaVersion": 1,
|
||||
"limits": {
|
||||
"maxFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextRemainingBytes": 6606,
|
||||
"contextRemainingTokens": 1651
|
||||
},
|
||||
"source": {
|
||||
"bytes": 7394,
|
||||
"tokens": 1849
|
||||
},
|
||||
"selected": [
|
||||
{
|
||||
"path": "tools/web/generated/M16-GAP-00098.py",
|
||||
"bytes": 977,
|
||||
"tokens": 245
|
||||
}
|
||||
],
|
||||
"excluded": [
|
||||
{
|
||||
"path": "tests/files/web/generated/M16-GAP-00098-modifier-SURFACE.blend",
|
||||
"bytes": 86387,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp",
|
||||
"bytes": 221861,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tools/web/check-generated-gap.mjs",
|
||||
"bytes": 142350,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00098/",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00098.md",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00098/manifest.json",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"files": 1,
|
||||
"bytes": 977,
|
||||
"tokens": 245
|
||||
}
|
||||
},
|
||||
"exitCriteria": [
|
||||
"desktop fixture evidence exists",
|
||||
"WASM uses the same fixture",
|
||||
"comparator passes",
|
||||
"save/reopen preserves Main",
|
||||
"manifest hashes all artifacts"
|
||||
],
|
||||
"nextTask": "M16-GAP-00099",
|
||||
"sourceDocuments": {
|
||||
"queue": "docs/EXECUTION_QUEUE.md",
|
||||
"taskCard": "docs/tasks/M16-GAP-00098.md",
|
||||
"taskIndex": "tests/golden/M15-03A/task-index.json",
|
||||
"parentManifest": "tests/golden/M16-GAP-00097/manifest.json",
|
||||
"parentStatus": "docs/status/M16-GAP-00097.md"
|
||||
},
|
||||
"readPolicy": {
|
||||
"required": [
|
||||
"docs/EXECUTION_QUEUE.md",
|
||||
"docs/tasks/M16-GAP-00098.md",
|
||||
"tests/golden/M16-GAP-00097/manifest.json",
|
||||
"docs/status/M16-GAP-00097.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-00097",
|
||||
"parentTask": "M16-GAP-00096",
|
||||
"status": "done",
|
||||
"nextTask": "M16-GAP-00098",
|
||||
"artifactCount": 15
|
||||
},
|
||||
"statusSummary": [
|
||||
"# M16-GAP-00097 Status",
|
||||
"status: done",
|
||||
"task: SUBSURF modifier LOCAL_EXACT slice",
|
||||
"updated: 2026-08-20 America/New_York",
|
||||
"scope: Mesh SUBSURF modifier stack exposure for `mesh:WebGapSubsurfMesh`.",
|
||||
"evidence:",
|
||||
"- Desktop fixture exposes `WebGapSubsurf` as SUBSURF type code 1 with SIMPLE subdivision, viewport level 2, and render level 3; save/reopen is exact.",
|
||||
"- WASM/Main exposes the same SUBSURF stack entry and matching subdivision parameters; save/reopen is exact."
|
||||
]
|
||||
},
|
||||
"budgets": {
|
||||
"queueBytes": 4096,
|
||||
"taskBytes": 1724,
|
||||
"parentManifestBytes": 24576,
|
||||
"parentStatusBytes": 6144,
|
||||
"evidenceFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextTokens": 3500,
|
||||
"taskLines": 38,
|
||||
"taskTokens": 431
|
||||
},
|
||||
"size": {
|
||||
"documents": [
|
||||
{
|
||||
"path": "docs/EXECUTION_QUEUE.md",
|
||||
"bytes": 2168,
|
||||
"lines": 45,
|
||||
"tokens": 542
|
||||
},
|
||||
{
|
||||
"path": "docs/tasks/M16-GAP-00098.md",
|
||||
"bytes": 1724,
|
||||
"lines": 38,
|
||||
"tokens": 431
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00097/manifest.json",
|
||||
"bytes": 2735,
|
||||
"lines": 29,
|
||||
"tokens": 684
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00097.md",
|
||||
"bytes": 767,
|
||||
"lines": 19,
|
||||
"tokens": 192
|
||||
}
|
||||
],
|
||||
"sourceTokens": 1849,
|
||||
"evidenceFiles": 1,
|
||||
"evidenceBytes": 977,
|
||||
"evidenceTokens": 245,
|
||||
"totalTokens": 2094,
|
||||
"withinBudget": true
|
||||
}
|
||||
}
|
||||
28
tests/golden/M16-GAP-00099/manifest.json
Normal file
28
tests/golden/M16-GAP-00099/manifest.json
Normal file
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00099",
|
||||
"parentTask": "M16-GAP-00098",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": true,
|
||||
"runtime": "BLENDER_5_2_LOCAL_EXACT",
|
||||
"operation": "SURFACE_DEFORM_MODIFIER_LOCAL_EXACT",
|
||||
"status": "done",
|
||||
"artifacts": {
|
||||
"parentManifest": {"path": "tests/golden/M16-GAP-00098/manifest.json", "sha256": "c447e41b823dd1c7bd59619771424eb733bd257a58029de4b794edb5b544f7e2"},
|
||||
"fixture": {"path": "tests/files/web/generated/M16-GAP-00099-modifier-SURFACE_DEFORM.blend", "sha256": "cb459101d9ecdd4e5761a3e216dcf3eda99a09eaad5642573ef0ba0b4c063072"},
|
||||
"generator": {"path": "tools/web/generated/M16-GAP-00099.py", "sha256": "bafaa8cf007d02851acca674b3894d758a8dc3874ca87c184d705a07fdfc724d"},
|
||||
"desktopChecker": {"path": "tools/web/check-generic-modifier-desktop.py", "sha256": "65d211c3a1ea33eca121771f33870466d53ef6248743eff96bd5e789b9f049be"},
|
||||
"webChecker": {"path": "tools/web/check-generated-gap.mjs", "sha256": "998a0950251d1c0069cf709b1b301268ca9df7705d1b31f97b522f38d83f40a5"},
|
||||
"reader": {"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp", "sha256": "11c598f89b531f2e9d6e2169ab6eed07b7cbea86c8b8d58ef4c6ff045c6414bf"},
|
||||
"modifierCmake": {"path": "blender-5.2.0/source/blender/modifiers/CMakeLists.txt", "sha256": "acf2c49dcea2907a117efdf8d74d4d817a4456a41c6bec3a40f38263beaae127"},
|
||||
"particleModifier": {"path": "blender-5.2.0/source/blender/modifiers/intern/MOD_particlesystem.cc", "sha256": "92ea7223c192563062d9f485c45cc78290a8809eb79d3a28be12081a0c7d6e6f"},
|
||||
"particleCore": {"path": "blender-5.2.0/source/blender/blenkernel/intern/particle.cc", "sha256": "d712f922c3160bddb464e3b7e1f68bfc44591dd9e536f4fd901119025d17717c"},
|
||||
"physicsReader": {"path": "blender-5.2.0/source/blender/web_engine/web_engine_main_state.cpp", "sha256": "62af46e404d6174cc4b9d85adb6e8b259f1c537e5ebfd8485e4fd0cc4be0fded"},
|
||||
"wasm": {"path": "web/app/src/vendor/blender/web_engine.wasm", "sha256": "1a991f13fc2f2e4a7b00366c52e6285198c24e72c110bb5f1f6d005e56089104"},
|
||||
"wasmPublic": {"path": "web/app/public/vendor/blender/web_engine.wasm", "sha256": "1a991f13fc2f2e4a7b00366c52e6285198c24e72c110bb5f1f6d005e56089104"},
|
||||
"wasmJs": {"path": "web/app/src/vendor/blender/web_engine.js", "sha256": "9c831d0351ac9d0714cce3b1da748cba416ced3086e3c59595cf24ac4da459ed"},
|
||||
"desktopReport": {"path": "tests/golden/M16-GAP-00099/surface-deform-modifier-desktop-report.json", "sha256": "bfd91c545efcf0688bfa9cee24e65de82224eecf715a1ab4385061a7d7df4db1"},
|
||||
"webReport": {"path": "tests/golden/M16-GAP-00099/surface-deform-modifier-local-exact-report.json", "sha256": "7d5f760727e03951c3f5b2c3e885b33ce92af7293ca101732fa490136dc25ed5"}
|
||||
},
|
||||
"nextTask": "M16-GAP-00100"
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"blenderVersion": "5.2.0 LTS",
|
||||
"fixture": "/home/mes123456/workinf_Blender_Wasm/tests/files/web/generated/M16-GAP-00099-modifier-SURFACE_DEFORM.blend",
|
||||
"fixtureSha256": "cb459101d9ecdd4e5761a3e216dcf3eda99a09eaad5642573ef0ba0b4c063072",
|
||||
"modifier": {
|
||||
"meshId": "mesh:WebGapSurfaceDeformMesh",
|
||||
"modifier": {
|
||||
"name": "WebGapSurfaceDeform",
|
||||
"showEditMode": false,
|
||||
"showOnCage": false,
|
||||
"showRender": false,
|
||||
"showViewport": true,
|
||||
"type": "SURFACE_DEFORM",
|
||||
"typeCode": 53
|
||||
},
|
||||
"objectId": "object:WebGapSurfaceDeformObject",
|
||||
"task": "M16-GAP-00099"
|
||||
},
|
||||
"operation": "SURFACE_DEFORM_MODIFIER_DESKTOP",
|
||||
"saveReopen": "EXACT",
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00099"
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00099",
|
||||
"operation": "SURFACE_DEFORM_MODIFIER_LOCAL_EXACT",
|
||||
"fixture": {
|
||||
"path": "tests/files/web/generated/M16-GAP-00099-modifier-SURFACE_DEFORM.blend",
|
||||
"sha256": "cb459101d9ecdd4e5761a3e216dcf3eda99a09eaad5642573ef0ba0b4c063072"
|
||||
},
|
||||
"desktop": {
|
||||
"status": "EXACT",
|
||||
"report": "tests/golden/M16-GAP-00099/surface-deform-modifier-desktop-report.json",
|
||||
"saveReopen": "EXACT"
|
||||
},
|
||||
"wasm": {
|
||||
"status": "EXACT",
|
||||
"objectId": "object:WebGapSurfaceDeformObject",
|
||||
"meshId": "mesh:WebGapSurfaceDeformMesh",
|
||||
"modifier": {
|
||||
"dependsOn": [],
|
||||
"enabled": true,
|
||||
"evaluationStatus": "METADATA_ONLY",
|
||||
"name": "WebGapSurfaceDeform",
|
||||
"parameters": {
|
||||
"falloff": 4,
|
||||
"flag": 5,
|
||||
"mode": 1,
|
||||
"persistentUid": 583674501,
|
||||
"strength": 1,
|
||||
"surfaceDeformFlags": 0,
|
||||
"typeCode": 53,
|
||||
"vertexGroup": ""
|
||||
},
|
||||
"showEditMode": false,
|
||||
"showOnCage": false,
|
||||
"showRender": false,
|
||||
"showViewport": true,
|
||||
"type": "SURFACE_DEFORM",
|
||||
"uuid": "modifier:object:WebGapSurfaceDeformObject:583674501"
|
||||
}
|
||||
},
|
||||
"saveReopen": "EXACT",
|
||||
"negative": {
|
||||
"malformedBlend": "REJECTED_WITHOUT_MAIN_MUTATION"
|
||||
},
|
||||
"nextTask": "M16-GAP-00100"
|
||||
}
|
||||
28
tests/golden/M16-GAP-00100/manifest.json
Normal file
28
tests/golden/M16-GAP-00100/manifest.json
Normal file
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00100",
|
||||
"parentTask": "M16-GAP-00099",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": true,
|
||||
"runtime": "BLENDER_5_2_LOCAL_EXACT",
|
||||
"operation": "TRIANGULATE_MODIFIER_LOCAL_EXACT",
|
||||
"status": "done",
|
||||
"artifacts": {
|
||||
"parentManifest": {"path": "tests/golden/M16-GAP-00099/manifest.json", "sha256": "08e66a8c4bede64bcfc0e6625843f70f4e51b03be655b0078110e086ce599a7b"},
|
||||
"fixture": {"path": "tests/files/web/generated/M16-GAP-00100-modifier-TRIANGULATE.blend", "sha256": "4475c06ab20bc9f9f771556173e7d5782049548dfcb845e7febba79c27f5ffcf"},
|
||||
"generator": {"path": "tools/web/generated/M16-GAP-00100.py", "sha256": "38d58e97c7b10b34abb70090deea9127a9bfda58bf446a8fa6fa7b8835482e82"},
|
||||
"desktopChecker": {"path": "tools/web/check-generic-modifier-desktop.py", "sha256": "140a3a86220c2af01d5daad10dd482316b208a6a2aa0af762dd39b65c6cda9d8"},
|
||||
"webChecker": {"path": "tools/web/check-generated-gap.mjs", "sha256": "fff50cc76b793191b61746290d28c6ea1d429f700d094aa444d8f2f91db26462"},
|
||||
"reader": {"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp", "sha256": "11c598f89b531f2e9d6e2169ab6eed07b7cbea86c8b8d58ef4c6ff045c6414bf"},
|
||||
"modifierCmake": {"path": "blender-5.2.0/source/blender/modifiers/CMakeLists.txt", "sha256": "acf2c49dcea2907a117efdf8d74d4d817a4456a41c6bec3a40f38263beaae127"},
|
||||
"particleModifier": {"path": "blender-5.2.0/source/blender/modifiers/intern/MOD_particlesystem.cc", "sha256": "92ea7223c192563062d9f485c45cc78290a8809eb79d3a28be12081a0c7d6e6f"},
|
||||
"particleCore": {"path": "blender-5.2.0/source/blender/blenkernel/intern/particle.cc", "sha256": "d712f922c3160bddb464e3b7e1f68bfc44591dd9e536f4fd901119025d17717c"},
|
||||
"physicsReader": {"path": "blender-5.2.0/source/blender/web_engine/web_engine_main_state.cpp", "sha256": "62af46e404d6174cc4b9d85adb6e8b259f1c537e5ebfd8485e4fd0cc4be0fded"},
|
||||
"wasm": {"path": "web/app/src/vendor/blender/web_engine.wasm", "sha256": "1a991f13fc2f2e4a7b00366c52e6285198c24e72c110bb5f1f6d005e56089104"},
|
||||
"wasmPublic": {"path": "web/app/public/vendor/blender/web_engine.wasm", "sha256": "1a991f13fc2f2e4a7b00366c52e6285198c24e72c110bb5f1f6d005e56089104"},
|
||||
"wasmJs": {"path": "web/app/src/vendor/blender/web_engine.js", "sha256": "9c831d0351ac9d0714cce3b1da748cba416ced3086e3c59595cf24ac4da459ed"},
|
||||
"desktopReport": {"path": "tests/golden/M16-GAP-00100/triangulate-modifier-desktop-report.json", "sha256": "8e1472c739110448d2c1987c32403714b9465606c0e8b3a8e3ae4867743ba377"},
|
||||
"webReport": {"path": "tests/golden/M16-GAP-00100/triangulate-modifier-local-exact-report.json", "sha256": "d715e77c6e2ef82c9611a68a3808057d08feb3de715ab1a3f07c6e1b67b6b69d"}
|
||||
},
|
||||
"nextTask": "M16-GAP-00101"
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"blenderVersion": "5.2.0 LTS",
|
||||
"fixture": "/home/mes123456/workinf_Blender_Wasm/tests/files/web/generated/M16-GAP-00100-modifier-TRIANGULATE.blend",
|
||||
"fixtureSha256": "4475c06ab20bc9f9f771556173e7d5782049548dfcb845e7febba79c27f5ffcf",
|
||||
"modifier": {
|
||||
"meshId": "mesh:WebGapTriangulateMesh",
|
||||
"modifier": {
|
||||
"name": "WebGapTriangulate",
|
||||
"ngonMethod": 1,
|
||||
"quadMethod": 1,
|
||||
"showEditMode": true,
|
||||
"showOnCage": false,
|
||||
"showRender": false,
|
||||
"showViewport": true,
|
||||
"type": "TRIANGULATE",
|
||||
"typeCode": 44
|
||||
},
|
||||
"objectId": "object:WebGapTriangulateObject",
|
||||
"task": "M16-GAP-00100"
|
||||
},
|
||||
"operation": "TRIANGULATE_MODIFIER_DESKTOP",
|
||||
"saveReopen": "EXACT",
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00100"
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00100",
|
||||
"operation": "TRIANGULATE_MODIFIER_LOCAL_EXACT",
|
||||
"fixture": {
|
||||
"path": "tests/files/web/generated/M16-GAP-00100-modifier-TRIANGULATE.blend",
|
||||
"sha256": "4475c06ab20bc9f9f771556173e7d5782049548dfcb845e7febba79c27f5ffcf"
|
||||
},
|
||||
"desktop": {
|
||||
"status": "EXACT",
|
||||
"report": "tests/golden/M16-GAP-00100/triangulate-modifier-desktop-report.json",
|
||||
"saveReopen": "EXACT"
|
||||
},
|
||||
"wasm": {
|
||||
"status": "EXACT",
|
||||
"objectId": "object:WebGapTriangulateObject",
|
||||
"meshId": "mesh:WebGapTriangulateMesh",
|
||||
"modifier": {
|
||||
"dependsOn": [],
|
||||
"enabled": true,
|
||||
"evaluationStatus": "METADATA_ONLY",
|
||||
"name": "WebGapTriangulate",
|
||||
"parameters": {
|
||||
"flag": 5,
|
||||
"mode": 5,
|
||||
"ngonMethod": 1,
|
||||
"persistentUid": 1222815822,
|
||||
"quadMethod": 1,
|
||||
"typeCode": 44
|
||||
},
|
||||
"showEditMode": true,
|
||||
"showOnCage": false,
|
||||
"showRender": false,
|
||||
"showViewport": true,
|
||||
"type": "TRIANGULATE",
|
||||
"uuid": "modifier:object:WebGapTriangulateObject:1222815822"
|
||||
}
|
||||
},
|
||||
"saveReopen": "EXACT",
|
||||
"negative": {
|
||||
"malformedBlend": "REJECTED_WITHOUT_MAIN_MUTATION"
|
||||
},
|
||||
"nextTask": "M16-GAP-00101"
|
||||
}
|
||||
28
tests/golden/M16-GAP-00101/manifest.json
Normal file
28
tests/golden/M16-GAP-00101/manifest.json
Normal file
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00101",
|
||||
"parentTask": "M16-GAP-00100",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": true,
|
||||
"runtime": "BLENDER_5_2_LOCAL_EXACT",
|
||||
"operation": "UV_PROJECT_MODIFIER_LOCAL_EXACT",
|
||||
"status": "done",
|
||||
"artifacts": {
|
||||
"parentManifest": {"path": "tests/golden/M16-GAP-00100/manifest.json", "sha256": "2acecca22e6e3cbcaf6fad687cff49558182f1b16a9052d303162e863c2fb17e"},
|
||||
"fixture": {"path": "tests/files/web/generated/M16-GAP-00101-modifier-UV_PROJECT.blend", "sha256": "e5cf137ee1feddf7b03f287b04299a7a78177b58e63545ccca15c78f202ce2a4"},
|
||||
"generator": {"path": "tools/web/generated/M16-GAP-00101.py", "sha256": "d86878aacd79189a5c1fce75f94eab1f7c04039562acefa101152cc097334765"},
|
||||
"desktopChecker": {"path": "tools/web/check-generic-modifier-desktop.py", "sha256": "140a3a86220c2af01d5daad10dd482316b208a6a2aa0af762dd39b65c6cda9d8"},
|
||||
"webChecker": {"path": "tools/web/check-generated-gap.mjs", "sha256": "c9d184a6f0d5ea3aea493cab8fa3e82fd99cc77fc797ef39f4da995df3f225ff"},
|
||||
"reader": {"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp", "sha256": "11c598f89b531f2e9d6e2169ab6eed07b7cbea86c8b8d58ef4c6ff045c6414bf"},
|
||||
"modifierCmake": {"path": "blender-5.2.0/source/blender/modifiers/CMakeLists.txt", "sha256": "acf2c49dcea2907a117efdf8d74d4d817a4456a41c6bec3a40f38263beaae127"},
|
||||
"particleModifier": {"path": "blender-5.2.0/source/blender/modifiers/intern/MOD_particlesystem.cc", "sha256": "92ea7223c192563062d9f485c45cc78290a8809eb79d3a28be12081a0c7d6e6f"},
|
||||
"particleCore": {"path": "blender-5.2.0/source/blender/blenkernel/intern/particle.cc", "sha256": "d712f922c3160bddb464e3b7e1f68bfc44591dd9e536f4fd901119025d17717c"},
|
||||
"physicsReader": {"path": "blender-5.2.0/source/blender/web_engine/web_engine_main_state.cpp", "sha256": "62af46e404d6174cc4b9d85adb6e8b259f1c537e5ebfd8485e4fd0cc4be0fded"},
|
||||
"wasm": {"path": "web/app/src/vendor/blender/web_engine.wasm", "sha256": "1a991f13fc2f2e4a7b00366c52e6285198c24e72c110bb5f1f6d005e56089104"},
|
||||
"wasmPublic": {"path": "web/app/public/vendor/blender/web_engine.wasm", "sha256": "1a991f13fc2f2e4a7b00366c52e6285198c24e72c110bb5f1f6d005e56089104"},
|
||||
"wasmJs": {"path": "web/app/src/vendor/blender/web_engine.js", "sha256": "9c831d0351ac9d0714cce3b1da748cba416ced3086e3c59595cf24ac4da459ed"},
|
||||
"desktopReport": {"path": "tests/golden/M16-GAP-00101/uv-project-modifier-desktop-report.json", "sha256": "18364763d8956b1426ae0ce7809491562d66833cbf77b7e00b141c002c54d8ed"},
|
||||
"webReport": {"path": "tests/golden/M16-GAP-00101/uv-project-modifier-local-exact-report.json", "sha256": "b0605455ac7287165072c928a06d556af759f9f7bd1ba1fac32cccb0ca0e0556"}
|
||||
},
|
||||
"nextTask": "M16-GAP-00102"
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"blenderVersion": "5.2.0 LTS",
|
||||
"fixture": "/home/mes123456/workinf_Blender_Wasm/tests/files/web/generated/M16-GAP-00101-modifier-UV_PROJECT.blend",
|
||||
"fixtureSha256": "e5cf137ee1feddf7b03f287b04299a7a78177b58e63545ccca15c78f202ce2a4",
|
||||
"modifier": {
|
||||
"meshId": "mesh:WebGapUvProjectMesh",
|
||||
"modifier": {
|
||||
"name": "WebGapUvProject",
|
||||
"showEditMode": true,
|
||||
"showOnCage": false,
|
||||
"showRender": false,
|
||||
"showViewport": true,
|
||||
"type": "UV_PROJECT",
|
||||
"typeCode": 15
|
||||
},
|
||||
"objectId": "object:WebGapUvProjectObject",
|
||||
"task": "M16-GAP-00101"
|
||||
},
|
||||
"operation": "UV_PROJECT_MODIFIER_DESKTOP",
|
||||
"saveReopen": "EXACT",
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00101"
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00101",
|
||||
"operation": "UV_PROJECT_MODIFIER_LOCAL_EXACT",
|
||||
"fixture": {
|
||||
"path": "tests/files/web/generated/M16-GAP-00101-modifier-UV_PROJECT.blend",
|
||||
"sha256": "e5cf137ee1feddf7b03f287b04299a7a78177b58e63545ccca15c78f202ce2a4"
|
||||
},
|
||||
"desktop": {
|
||||
"status": "EXACT",
|
||||
"report": "tests/golden/M16-GAP-00101/uv-project-modifier-desktop-report.json",
|
||||
"saveReopen": "EXACT"
|
||||
},
|
||||
"wasm": {
|
||||
"status": "EXACT",
|
||||
"objectId": "object:WebGapUvProjectObject",
|
||||
"meshId": "mesh:WebGapUvProjectMesh",
|
||||
"modifier": {
|
||||
"dependsOn": [],
|
||||
"enabled": true,
|
||||
"evaluationStatus": "BLOCKED",
|
||||
"name": "WebGapUvProject",
|
||||
"parameters": {
|
||||
"flag": 5,
|
||||
"mode": 5,
|
||||
"persistentUid": 986394667,
|
||||
"typeCode": 15
|
||||
},
|
||||
"showEditMode": true,
|
||||
"showOnCage": false,
|
||||
"showRender": false,
|
||||
"showViewport": true,
|
||||
"type": "UV_PROJECT",
|
||||
"uuid": "modifier:object:WebGapUvProjectObject:986394667"
|
||||
}
|
||||
},
|
||||
"saveReopen": "EXACT",
|
||||
"negative": {
|
||||
"malformedBlend": "REJECTED_WITHOUT_MAIN_MUTATION"
|
||||
},
|
||||
"nextTask": "M16-GAP-00102"
|
||||
}
|
||||
28
tests/golden/M16-GAP-00102/manifest.json
Normal file
28
tests/golden/M16-GAP-00102/manifest.json
Normal file
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00102",
|
||||
"parentTask": "M16-GAP-00101",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": true,
|
||||
"runtime": "BLENDER_5_2_LOCAL_EXACT",
|
||||
"operation": "UV_WARP_MODIFIER_LOCAL_EXACT",
|
||||
"status": "done",
|
||||
"artifacts": {
|
||||
"parentManifest": {"path": "tests/golden/M16-GAP-00101/manifest.json", "sha256": "ada91eacc9d9d81aef07ba22a8522fa5968491bb202b84db74649098901cefbc"},
|
||||
"fixture": {"path": "tests/files/web/generated/M16-GAP-00102-modifier-UV_WARP.blend", "sha256": "ad3f2ba8f4d282b2333fc192f3e2fdc598c06125f3b14c9c47b4721f9a1a0df9"},
|
||||
"generator": {"path": "tools/web/generated/M16-GAP-00102.py", "sha256": "aa91e891f053d2d4716e204c64e54a9c139f8dc9e53b23bf43e7f9c4cbba93b8"},
|
||||
"desktopChecker": {"path": "tools/web/check-generic-modifier-desktop.py", "sha256": "140a3a86220c2af01d5daad10dd482316b208a6a2aa0af762dd39b65c6cda9d8"},
|
||||
"webChecker": {"path": "tools/web/check-generated-gap.mjs", "sha256": "8c30d63a2c7bb08f52836f2a7d085d5cac8ab594b5e14f0e9e587534c85eae45"},
|
||||
"reader": {"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp", "sha256": "11c598f89b531f2e9d6e2169ab6eed07b7cbea86c8b8d58ef4c6ff045c6414bf"},
|
||||
"modifierCmake": {"path": "blender-5.2.0/source/blender/modifiers/CMakeLists.txt", "sha256": "acf2c49dcea2907a117efdf8d74d4d817a4456a41c6bec3a40f38263beaae127"},
|
||||
"particleModifier": {"path": "blender-5.2.0/source/blender/modifiers/intern/MOD_particlesystem.cc", "sha256": "92ea7223c192563062d9f485c45cc78290a8809eb79d3a28be12081a0c7d6e6f"},
|
||||
"particleCore": {"path": "blender-5.2.0/source/blender/blenkernel/intern/particle.cc", "sha256": "d712f922c3160bddb464e3b7e1f68bfc44591dd9e536f4fd901119025d17717c"},
|
||||
"physicsReader": {"path": "blender-5.2.0/source/blender/web_engine/web_engine_main_state.cpp", "sha256": "62af46e404d6174cc4b9d85adb6e8b259f1c537e5ebfd8485e4fd0cc4be0fded"},
|
||||
"wasm": {"path": "web/app/src/vendor/blender/web_engine.wasm", "sha256": "1a991f13fc2f2e4a7b00366c52e6285198c24e72c110bb5f1f6d005e56089104"},
|
||||
"wasmPublic": {"path": "web/app/public/vendor/blender/web_engine.wasm", "sha256": "1a991f13fc2f2e4a7b00366c52e6285198c24e72c110bb5f1f6d005e56089104"},
|
||||
"wasmJs": {"path": "web/app/src/vendor/blender/web_engine.js", "sha256": "9c831d0351ac9d0714cce3b1da748cba416ced3086e3c59595cf24ac4da459ed"},
|
||||
"desktopReport": {"path": "tests/golden/M16-GAP-00102/uv-warp-modifier-desktop-report.json", "sha256": "ed6bf6150e20eef0b7207397cee12db3408836075866f05bb48da92e706ab828"},
|
||||
"webReport": {"path": "tests/golden/M16-GAP-00102/uv-warp-modifier-local-exact-report.json", "sha256": "9499f499401b3703ee7e4ebab55516710fc235f08cdbd93271d9b348b066ba5f"}
|
||||
},
|
||||
"nextTask": "M16-GAP-00103"
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"blenderVersion": "5.2.0 LTS",
|
||||
"fixture": "/home/mes123456/workinf_Blender_Wasm/tests/files/web/generated/M16-GAP-00102-modifier-UV_WARP.blend",
|
||||
"fixtureSha256": "ad3f2ba8f4d282b2333fc192f3e2fdc598c06125f3b14c9c47b4721f9a1a0df9",
|
||||
"modifier": {
|
||||
"meshId": "mesh:WebGapUvWarpMesh",
|
||||
"modifier": {
|
||||
"name": "WebGapUvWarp",
|
||||
"showEditMode": true,
|
||||
"showOnCage": false,
|
||||
"showRender": false,
|
||||
"showViewport": true,
|
||||
"type": "UV_WARP",
|
||||
"typeCode": 45
|
||||
},
|
||||
"objectId": "object:WebGapUvWarpObject",
|
||||
"task": "M16-GAP-00102"
|
||||
},
|
||||
"operation": "UV_WARP_MODIFIER_DESKTOP",
|
||||
"saveReopen": "EXACT",
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00102"
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00102",
|
||||
"operation": "UV_WARP_MODIFIER_LOCAL_EXACT",
|
||||
"fixture": {
|
||||
"path": "tests/files/web/generated/M16-GAP-00102-modifier-UV_WARP.blend",
|
||||
"sha256": "ad3f2ba8f4d282b2333fc192f3e2fdc598c06125f3b14c9c47b4721f9a1a0df9"
|
||||
},
|
||||
"desktop": {
|
||||
"status": "EXACT",
|
||||
"report": "tests/golden/M16-GAP-00102/uv-warp-modifier-desktop-report.json",
|
||||
"saveReopen": "EXACT"
|
||||
},
|
||||
"wasm": {
|
||||
"status": "EXACT",
|
||||
"objectId": "object:WebGapUvWarpObject",
|
||||
"meshId": "mesh:WebGapUvWarpMesh",
|
||||
"modifier": {
|
||||
"dependsOn": [],
|
||||
"enabled": true,
|
||||
"evaluationStatus": "BLOCKED",
|
||||
"name": "WebGapUvWarp",
|
||||
"parameters": {
|
||||
"flag": 5,
|
||||
"mode": 5,
|
||||
"persistentUid": 2036523567,
|
||||
"typeCode": 45
|
||||
},
|
||||
"showEditMode": true,
|
||||
"showOnCage": false,
|
||||
"showRender": false,
|
||||
"showViewport": true,
|
||||
"type": "UV_WARP",
|
||||
"uuid": "modifier:object:WebGapUvWarpObject:2036523567"
|
||||
}
|
||||
},
|
||||
"saveReopen": "EXACT",
|
||||
"negative": {
|
||||
"malformedBlend": "REJECTED_WITHOUT_MAIN_MUTATION"
|
||||
},
|
||||
"nextTask": "M16-GAP-00103"
|
||||
}
|
||||
28
tests/golden/M16-GAP-00103/manifest.json
Normal file
28
tests/golden/M16-GAP-00103/manifest.json
Normal file
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00103",
|
||||
"parentTask": "M16-GAP-00102",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": true,
|
||||
"runtime": "BLENDER_5_2_LOCAL_EXACT",
|
||||
"operation": "VERTEX_WEIGHT_EDIT_MODIFIER_LOCAL_EXACT",
|
||||
"status": "done",
|
||||
"artifacts": {
|
||||
"parentManifest": {"path": "tests/golden/M16-GAP-00102/manifest.json", "sha256": "57cf7929d23fbc053782f4bbe4c480bd9432c2af6cfdab74f9e4bc0160c0e7ad"},
|
||||
"fixture": {"path": "tests/files/web/generated/M16-GAP-00103-modifier-VERTEX_WEIGHT_EDIT.blend", "sha256": "2ecafafb8d81c27842512406dd93978754f624f0e9012e4a2036d32eac1178b2"},
|
||||
"generator": {"path": "tools/web/generated/M16-GAP-00103.py", "sha256": "383166f3a110e555a87ba5e0f62d5805c6890d736cf79c6f1dd8972e6e6b0a2a"},
|
||||
"desktopChecker": {"path": "tools/web/check-generic-modifier-desktop.py", "sha256": "140a3a86220c2af01d5daad10dd482316b208a6a2aa0af762dd39b65c6cda9d8"},
|
||||
"webChecker": {"path": "tools/web/check-generated-gap.mjs", "sha256": "6f8937c4947673b8582af68c2d48335ef493e4b8d844104abf1e9d2db36ac7f7"},
|
||||
"reader": {"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp", "sha256": "0e1a72ef3655eb51047dd488c3a9a733022193f1631b21d59c615f8acb1a67f8"},
|
||||
"modifierCmake": {"path": "blender-5.2.0/source/blender/modifiers/CMakeLists.txt", "sha256": "acf2c49dcea2907a117efdf8d74d4d817a4456a41c6bec3a40f38263beaae127"},
|
||||
"particleModifier": {"path": "blender-5.2.0/source/blender/modifiers/intern/MOD_particlesystem.cc", "sha256": "92ea7223c192563062d9f485c45cc78290a8809eb79b79d3a28be12081a0c7d6e6f"},
|
||||
"particleCore": {"path": "blender-5.2.0/source/blender/blenkernel/intern/particle.cc", "sha256": "d712f922c3160bddb464e3b7e1f68bfc44591dd9e536f4fd901119025d17717c"},
|
||||
"physicsReader": {"path": "blender-5.2.0/source/blender/web_engine/web_engine_main_state.cpp", "sha256": "62af46e404d6174cc4b9d85adb6e8b259f1c537e5ebfd8485e4fd0cc4be0fded"},
|
||||
"wasm": {"path": "web/app/src/vendor/blender/web_engine.wasm", "sha256": "a847df61055dd322c70b8e57702439f095997831b6d431107895bb5284750234"},
|
||||
"wasmPublic": {"path": "web/app/public/vendor/blender/web_engine.wasm", "sha256": "a847df61055dd322c70b8e57702439f095997831b6d431107895bb5284750234"},
|
||||
"wasmJs": {"path": "web/app/src/vendor/blender/web_engine.js", "sha256": "9c831d0351ac9d0714cce3b1da748cba416ced3086e3c59595cf24ac4da459ed"},
|
||||
"desktopReport": {"path": "tests/golden/M16-GAP-00103/vertex-weight-edit-modifier-desktop-report.json", "sha256": "442287f280444efcc0dcfc8602d935066af17aeca0072e978f64ffa3e6e13b9d"},
|
||||
"webReport": {"path": "tests/golden/M16-GAP-00103/vertex-weight-edit-modifier-local-exact-report.json", "sha256": "23d26e90775bce127efb1a8572c7a9f92acdf4d22b41bd1de6c78a11b7246ba8"}
|
||||
},
|
||||
"nextTask": "M16-GAP-00104"
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"blenderVersion": "5.2.0 LTS",
|
||||
"fixture": "/home/mes123456/workinf_Blender_Wasm/tests/files/web/generated/M16-GAP-00103-modifier-VERTEX_WEIGHT_EDIT.blend",
|
||||
"fixtureSha256": "2ecafafb8d81c27842512406dd93978754f624f0e9012e4a2036d32eac1178b2",
|
||||
"modifier": {
|
||||
"meshId": "mesh:WebGapVertexWeightEditMesh",
|
||||
"modifier": {
|
||||
"name": "WebGapVertexWeightEdit",
|
||||
"showEditMode": false,
|
||||
"showOnCage": false,
|
||||
"showRender": false,
|
||||
"showViewport": true,
|
||||
"type": "VERTEX_WEIGHT_EDIT",
|
||||
"typeCode": 36
|
||||
},
|
||||
"objectId": "object:WebGapVertexWeightEditObject",
|
||||
"task": "M16-GAP-00103"
|
||||
},
|
||||
"operation": "VERTEX_WEIGHT_EDIT_MODIFIER_DESKTOP",
|
||||
"saveReopen": "EXACT",
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00103"
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00103",
|
||||
"operation": "VERTEX_WEIGHT_EDIT_MODIFIER_LOCAL_EXACT",
|
||||
"fixture": {
|
||||
"path": "tests/files/web/generated/M16-GAP-00103-modifier-VERTEX_WEIGHT_EDIT.blend",
|
||||
"sha256": "2ecafafb8d81c27842512406dd93978754f624f0e9012e4a2036d32eac1178b2"
|
||||
},
|
||||
"desktop": {
|
||||
"status": "EXACT",
|
||||
"report": "tests/golden/M16-GAP-00103/vertex-weight-edit-modifier-desktop-report.json",
|
||||
"saveReopen": "EXACT"
|
||||
},
|
||||
"wasm": {
|
||||
"status": "EXACT",
|
||||
"objectId": "object:WebGapVertexWeightEditObject",
|
||||
"meshId": "mesh:WebGapVertexWeightEditMesh",
|
||||
"modifier": {
|
||||
"dependsOn": [],
|
||||
"enabled": true,
|
||||
"evaluationStatus": "BLOCKED",
|
||||
"name": "WebGapVertexWeightEdit",
|
||||
"parameters": {
|
||||
"flag": 5,
|
||||
"mode": 1,
|
||||
"persistentUid": 1300223564,
|
||||
"typeCode": 36
|
||||
},
|
||||
"showEditMode": false,
|
||||
"showOnCage": false,
|
||||
"showRender": false,
|
||||
"showViewport": true,
|
||||
"type": "VERTEX_WEIGHT_EDIT",
|
||||
"uuid": "modifier:object:WebGapVertexWeightEditObject:1300223564"
|
||||
}
|
||||
},
|
||||
"saveReopen": "EXACT",
|
||||
"negative": {
|
||||
"malformedBlend": "REJECTED_WITHOUT_MAIN_MUTATION"
|
||||
},
|
||||
"nextTask": "M16-GAP-00104"
|
||||
}
|
||||
28
tests/golden/M16-GAP-00104/manifest.json
Normal file
28
tests/golden/M16-GAP-00104/manifest.json
Normal file
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00104",
|
||||
"parentTask": "M16-GAP-00103",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": true,
|
||||
"runtime": "BLENDER_5_2_LOCAL_EXACT",
|
||||
"operation": "VERTEX_WEIGHT_MIX_MODIFIER_LOCAL_EXACT",
|
||||
"status": "done",
|
||||
"artifacts": {
|
||||
"parentManifest": {"path": "tests/golden/M16-GAP-00103/manifest.json", "sha256": "b6e93793349780cbc30a543d5c6abc9c5ba19df2acb62419a6a25b6da816fb21"},
|
||||
"fixture": {"path": "tests/files/web/generated/M16-GAP-00104-modifier-VERTEX_WEIGHT_MIX.blend", "sha256": "19a164b591a6fbe02df07797c422aea350e26f1e9125589037067f609095105a"},
|
||||
"generator": {"path": "tools/web/generated/M16-GAP-00104.py", "sha256": "d3d6405f1f20036043610b8a8bb22faf5e8652d6e47ee08cc40cd5e9f5567464"},
|
||||
"desktopChecker": {"path": "tools/web/check-generic-modifier-desktop.py", "sha256": "140a3a86220c2af01d5daad10dd482316b208a6a2aa0af762dd39b65c6cda9d8"},
|
||||
"webChecker": {"path": "tools/web/check-generated-gap.mjs", "sha256": "0f1f49ee8663b9f25a350d4f90c5dd682e30933709c423f5d0d02e1306618886"},
|
||||
"reader": {"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp", "sha256": "0e1a72ef3655eb51047dd488c3a9a733022193f1631b21d59c615f8acb1a67f8"},
|
||||
"modifierCmake": {"path": "blender-5.2.0/source/blender/modifiers/CMakeLists.txt", "sha256": "acf2c49dcea2907a117efdf8d74d4d817a4456a41c6bec3a40f38263beaae127"},
|
||||
"particleModifier": {"path": "blender-5.2.0/source/blender/modifiers/intern/MOD_particlesystem.cc", "sha256": "92ea7223c192563062d9f485c45cc78290a8809eb79b79d3a28be12081a0c7d6e6f"},
|
||||
"particleCore": {"path": "blender-5.2.0/source/blender/blenkernel/intern/particle.cc", "sha256": "d712f922c3160bddb464e3b7e1f68bfc44591dd9e536f4fd901119025d17717c"},
|
||||
"physicsReader": {"path": "blender-5.2.0/source/blender/web_engine/web_engine_main_state.cpp", "sha256": "62af46e404d6174cc4b9d85adb6e8b259f1c537e5ebfd8485e4fd0cc4be0fded"},
|
||||
"wasm": {"path": "web/app/src/vendor/blender/web_engine.wasm", "sha256": "a847df61055dd322c70b8e57702439f095997831b6d431107895bb5284750234"},
|
||||
"wasmPublic": {"path": "web/app/public/vendor/blender/web_engine.wasm", "sha256": "a847df61055dd322c70b8e57702439f095997831b6d431107895bb5284750234"},
|
||||
"wasmJs": {"path": "web/app/src/vendor/blender/web_engine.js", "sha256": "9c831d0351ac9d0714cce3b1da748cba416ced3086e3c59595cf24ac4da459ed"},
|
||||
"desktopReport": {"path": "tests/golden/M16-GAP-00104/vertex-weight-mix-modifier-desktop-report.json", "sha256": "6121a089239450b95037c25858958ab5d067af538657f56452fdce81186834a6"},
|
||||
"webReport": {"path": "tests/golden/M16-GAP-00104/vertex-weight-mix-modifier-local-exact-report.json", "sha256": "a755e5c88c8a22305155dc02c455e9fe6ccb1e92b7053be7a3ca57da2aa48971"}
|
||||
},
|
||||
"nextTask": "M16-GAP-00105"
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"blenderVersion": "5.2.0 LTS",
|
||||
"fixture": "/home/mes123456/workinf_Blender_Wasm/tests/files/web/generated/M16-GAP-00104-modifier-VERTEX_WEIGHT_MIX.blend",
|
||||
"fixtureSha256": "19a164b591a6fbe02df07797c422aea350e26f1e9125589037067f609095105a",
|
||||
"modifier": {
|
||||
"meshId": "mesh:WebGapVertexWeightMixMesh",
|
||||
"modifier": {
|
||||
"name": "WebGapVertexWeightMix",
|
||||
"showEditMode": false,
|
||||
"showOnCage": false,
|
||||
"showRender": false,
|
||||
"showViewport": true,
|
||||
"type": "VERTEX_WEIGHT_MIX",
|
||||
"typeCode": 37
|
||||
},
|
||||
"objectId": "object:WebGapVertexWeightMixObject",
|
||||
"task": "M16-GAP-00104"
|
||||
},
|
||||
"operation": "VERTEX_WEIGHT_MIX_MODIFIER_DESKTOP",
|
||||
"saveReopen": "EXACT",
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00104"
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00104",
|
||||
"operation": "VERTEX_WEIGHT_MIX_MODIFIER_LOCAL_EXACT",
|
||||
"fixture": {
|
||||
"path": "tests/files/web/generated/M16-GAP-00104-modifier-VERTEX_WEIGHT_MIX.blend",
|
||||
"sha256": "19a164b591a6fbe02df07797c422aea350e26f1e9125589037067f609095105a"
|
||||
},
|
||||
"desktop": {
|
||||
"status": "EXACT",
|
||||
"report": "tests/golden/M16-GAP-00104/vertex-weight-mix-modifier-desktop-report.json",
|
||||
"saveReopen": "EXACT"
|
||||
},
|
||||
"wasm": {
|
||||
"status": "EXACT",
|
||||
"objectId": "object:WebGapVertexWeightMixObject",
|
||||
"meshId": "mesh:WebGapVertexWeightMixMesh",
|
||||
"modifier": {
|
||||
"dependsOn": [],
|
||||
"enabled": true,
|
||||
"evaluationStatus": "BLOCKED",
|
||||
"name": "WebGapVertexWeightMix",
|
||||
"parameters": {
|
||||
"flag": 5,
|
||||
"mode": 1,
|
||||
"persistentUid": 1288824592,
|
||||
"typeCode": 37
|
||||
},
|
||||
"showEditMode": false,
|
||||
"showOnCage": false,
|
||||
"showRender": false,
|
||||
"showViewport": true,
|
||||
"type": "VERTEX_WEIGHT_MIX",
|
||||
"uuid": "modifier:object:WebGapVertexWeightMixObject:1288824592"
|
||||
}
|
||||
},
|
||||
"saveReopen": "EXACT",
|
||||
"negative": {
|
||||
"malformedBlend": "REJECTED_WITHOUT_MAIN_MUTATION"
|
||||
},
|
||||
"nextTask": "M16-GAP-00105"
|
||||
}
|
||||
28
tests/golden/M16-GAP-00105/manifest.json
Normal file
28
tests/golden/M16-GAP-00105/manifest.json
Normal file
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00105",
|
||||
"parentTask": "M16-GAP-00104",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": true,
|
||||
"runtime": "BLENDER_5_2_LOCAL_EXACT",
|
||||
"operation": "VERTEX_WEIGHT_PROXIMITY_MODIFIER_LOCAL_EXACT",
|
||||
"status": "done",
|
||||
"artifacts": {
|
||||
"parentManifest": {"path": "tests/golden/M16-GAP-00104/manifest.json", "sha256": "47790989f092bf86ec6f628d88249455428265d6d0f5e4cffa1d9d55e87757b2"},
|
||||
"fixture": {"path": "tests/files/web/generated/M16-GAP-00105-modifier-VERTEX_WEIGHT_PROXIMITY.blend", "sha256": "53234cfd0e10e91b78465d8f18a4b8d863885d1d93c0757c07f0d31da486fbf2"},
|
||||
"generator": {"path": "tools/web/generated/M16-GAP-00105.py", "sha256": "59dfdb7ba6bb853ebc3d5d24a7c63c6a09fdda5381d62febc211128a87adc7d9"},
|
||||
"desktopChecker": {"path": "tools/web/check-generic-modifier-desktop.py", "sha256": "140a3a86220c2af01d5daad10dd482316b208a6a2aa0af762dd39b65c6cda9d8"},
|
||||
"webChecker": {"path": "tools/web/check-generated-gap.mjs", "sha256": "cbb3b8077beaef003acab57637c051d5ab1c4c8cffa81171577474a7a0329ca7"},
|
||||
"reader": {"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp", "sha256": "0e1a72ef3655eb51047dd488c3a9a733022193f1631b21d59c615f8acb1a67f8"},
|
||||
"modifierCmake": {"path": "blender-5.2.0/source/blender/modifiers/CMakeLists.txt", "sha256": "acf2c49dcea2907a117efdf8d74d4d817a4456a41c6bec3a40f38263beaae127"},
|
||||
"particleModifier": {"path": "blender-5.2.0/source/blender/modifiers/intern/MOD_particlesystem.cc", "sha256": "92ea7223c192563062d9f485c45cc78290a8809eb79b79d3a28be12081a0c7d6e6f"},
|
||||
"particleCore": {"path": "blender-5.2.0/source/blender/blenkernel/intern/particle.cc", "sha256": "d712f922c3160bddb464e3b7e1f68bfc44591dd9e536f4fd901119025d17717c"},
|
||||
"physicsReader": {"path": "blender-5.2.0/source/blender/web_engine/web_engine_main_state.cpp", "sha256": "62af46e404d6174cc4b9d85adb6e8b259f1c537e5ebfd8485e4fd0cc4be0fded"},
|
||||
"wasm": {"path": "web/app/src/vendor/blender/web_engine.wasm", "sha256": "a847df61055dd322c70b8e57702439f095997831b6d431107895bb5284750234"},
|
||||
"wasmPublic": {"path": "web/app/public/vendor/blender/web_engine.wasm", "sha256": "a847df61055dd322c70b8e57702439f095997831b6d431107895bb5284750234"},
|
||||
"wasmJs": {"path": "web/app/src/vendor/blender/web_engine.js", "sha256": "9c831d0351ac9d0714cce3b1da748cba416ced3086e3c59595cf24ac4da459ed"},
|
||||
"desktopReport": {"path": "tests/golden/M16-GAP-00105/vertex-weight-proximity-modifier-desktop-report.json", "sha256": "7e6ebaf459de04781a6e6467be84c6065039a4f3fb6b4c748fcbeda3b4806179"},
|
||||
"webReport": {"path": "tests/golden/M16-GAP-00105/vertex-weight-proximity-modifier-local-exact-report.json", "sha256": "7594f78376b061793524a4c586ecd2335d7aa9064d4e31b840f92e03819fac1f"}
|
||||
},
|
||||
"nextTask": "M16-GAP-00106"
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"blenderVersion": "5.2.0 LTS",
|
||||
"fixture": "/home/mes123456/workinf_Blender_Wasm/tests/files/web/generated/M16-GAP-00105-modifier-VERTEX_WEIGHT_PROXIMITY.blend",
|
||||
"fixtureSha256": "53234cfd0e10e91b78465d8f18a4b8d863885d1d93c0757c07f0d31da486fbf2",
|
||||
"modifier": {
|
||||
"meshId": "mesh:WebGapVertexWeightProximityMesh",
|
||||
"modifier": {
|
||||
"name": "WebGapVertexWeightProximity",
|
||||
"showEditMode": false,
|
||||
"showOnCage": false,
|
||||
"showRender": false,
|
||||
"showViewport": true,
|
||||
"type": "VERTEX_WEIGHT_PROXIMITY",
|
||||
"typeCode": 38
|
||||
},
|
||||
"objectId": "object:WebGapVertexWeightProximityObject",
|
||||
"task": "M16-GAP-00105"
|
||||
},
|
||||
"operation": "VERTEX_WEIGHT_PROXIMITY_MODIFIER_DESKTOP",
|
||||
"saveReopen": "EXACT",
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00105"
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00105",
|
||||
"operation": "VERTEX_WEIGHT_PROXIMITY_MODIFIER_LOCAL_EXACT",
|
||||
"fixture": {
|
||||
"path": "tests/files/web/generated/M16-GAP-00105-modifier-VERTEX_WEIGHT_PROXIMITY.blend",
|
||||
"sha256": "53234cfd0e10e91b78465d8f18a4b8d863885d1d93c0757c07f0d31da486fbf2"
|
||||
},
|
||||
"desktop": {
|
||||
"status": "EXACT",
|
||||
"report": "tests/golden/M16-GAP-00105/vertex-weight-proximity-modifier-desktop-report.json",
|
||||
"saveReopen": "EXACT"
|
||||
},
|
||||
"wasm": {
|
||||
"status": "EXACT",
|
||||
"objectId": "object:WebGapVertexWeightProximityObject",
|
||||
"meshId": "mesh:WebGapVertexWeightProximityMesh",
|
||||
"modifier": {
|
||||
"dependsOn": [],
|
||||
"enabled": true,
|
||||
"evaluationStatus": "BLOCKED",
|
||||
"name": "WebGapVertexWeightProximity",
|
||||
"parameters": {
|
||||
"flag": 5,
|
||||
"mode": 1,
|
||||
"persistentUid": 1266791070,
|
||||
"typeCode": 38
|
||||
},
|
||||
"showEditMode": false,
|
||||
"showOnCage": false,
|
||||
"showRender": false,
|
||||
"showViewport": true,
|
||||
"type": "VERTEX_WEIGHT_PROXIMITY",
|
||||
"uuid": "modifier:object:WebGapVertexWeightProximityObject:1266791070"
|
||||
}
|
||||
},
|
||||
"saveReopen": "EXACT",
|
||||
"negative": {
|
||||
"malformedBlend": "REJECTED_WITHOUT_MAIN_MUTATION"
|
||||
},
|
||||
"nextTask": "M16-GAP-00106"
|
||||
}
|
||||
28
tests/golden/M16-GAP-00106/manifest.json
Normal file
28
tests/golden/M16-GAP-00106/manifest.json
Normal file
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00106",
|
||||
"parentTask": "M16-GAP-00105",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": true,
|
||||
"runtime": "BLENDER_5_2_LOCAL_EXACT",
|
||||
"operation": "VOLUME_DISPLACE_MODIFIER_LOCAL_EXACT",
|
||||
"status": "done",
|
||||
"artifacts": {
|
||||
"parentManifest": {"path": "tests/golden/M16-GAP-00105/manifest.json", "sha256": "cf9de11d57b483cf564f2f3e782724ca84f86ddfc6e320e757051a50912281d7"},
|
||||
"fixture": {"path": "tests/files/web/generated/M16-GAP-00106-modifier-VOLUME_DISPLACE.blend", "sha256": "95a922b90fb5bce90cb2f7995761805709a4a18b9206fab7f30e3848160b2c95"},
|
||||
"generator": {"path": "tools/web/generated/M16-GAP-00106.py", "sha256": "7aad13aed9fc5da77c671e89961dc744228cfea00c65044270000f0fb8e4c396"},
|
||||
"desktopChecker": {"path": "tools/web/check-generic-modifier-desktop.py", "sha256": "140a3a86220c2af01d5daad10dd482316b208a6a2aa0af762dd39b65c6cda9d8"},
|
||||
"webChecker": {"path": "tools/web/check-generated-gap.mjs", "sha256": "318cea1fb5a332cf2d4504c5319781257b7450ccc1b9ee0c61d1f4c99eebb0db"},
|
||||
"reader": {"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp", "sha256": "0e1a72ef3655eb51047dd488c3a9a733022193f1631b21d59c615f8acb1a67f8"},
|
||||
"modifierCmake": {"path": "blender-5.2.0/source/blender/modifiers/CMakeLists.txt", "sha256": "acf2c49dcea2907a117efdf8d74d4d817a4456a41c6bec3a40f38263beaae127"},
|
||||
"particleModifier": {"path": "blender-5.2.0/source/blender/modifiers/intern/MOD_particlesystem.cc", "sha256": "92ea7223c192563062d9f485c45cc78290a8809eb79b79d3a28be12081a0c7d6e6f"},
|
||||
"particleCore": {"path": "blender-5.2.0/source/blender/blenkernel/intern/particle.cc", "sha256": "d712f922c3160bddb464e3b7e1f68bfc44591dd9e536f4fd901119025d17717c"},
|
||||
"physicsReader": {"path": "blender-5.2.0/source/blender/web_engine/web_engine_main_state.cpp", "sha256": "62af46e404d6174cc4b9d85adb6e8b259f1c537e5ebfd8485e4fd0cc4be0fded"},
|
||||
"wasm": {"path": "web/app/src/vendor/blender/web_engine.wasm", "sha256": "a847df61055dd322c70b8e57702439f095997831b6d431107895bb5284750234"},
|
||||
"wasmPublic": {"path": "web/app/public/vendor/blender/web_engine.wasm", "sha256": "a847df61055dd322c70b8e57702439f095997831b6d431107895bb5284750234"},
|
||||
"wasmJs": {"path": "web/app/src/vendor/blender/web_engine.js", "sha256": "9c831d0351ac9d0714cce3b1da748cba416ced3086e3c59595cf24ac4da459ed"},
|
||||
"desktopReport": {"path": "tests/golden/M16-GAP-00106/volume-displace-modifier-desktop-report.json", "sha256": "00ee176bc712320454f7ddb585710ccab243b9b5b89f2e2f0eb364c536bddcd6"},
|
||||
"webReport": {"path": "tests/golden/M16-GAP-00106/volume-displace-modifier-local-exact-report.json", "sha256": "9c44441bc0cfadbdce570f5c3e7b074e3da00f19a7f8a2e8d84d0ae6167164f8"}
|
||||
},
|
||||
"nextTask": "M16-GAP-00107"
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"blenderVersion": "5.2.0 LTS",
|
||||
"fixture": "/home/mes123456/workinf_Blender_Wasm/tests/files/web/generated/M16-GAP-00106-modifier-VOLUME_DISPLACE.blend",
|
||||
"fixtureSha256": "95a922b90fb5bce90cb2f7995761805709a4a18b9206fab7f30e3848160b2c95",
|
||||
"modifier": {
|
||||
"modifier": {
|
||||
"name": "WebGapVolumeDisplace",
|
||||
"showEditMode": false,
|
||||
"showOnCage": false,
|
||||
"showRender": false,
|
||||
"showViewport": true,
|
||||
"type": "VOLUME_DISPLACE",
|
||||
"typeCode": 59
|
||||
},
|
||||
"objectId": "object:WebGapVolumeDisplaceObject",
|
||||
"task": "M16-GAP-00106"
|
||||
},
|
||||
"operation": "VOLUME_DISPLACE_MODIFIER_DESKTOP",
|
||||
"saveReopen": "EXACT",
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00106"
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00106",
|
||||
"operation": "VOLUME_DISPLACE_MODIFIER_LOCAL_EXACT",
|
||||
"fixture": {
|
||||
"path": "tests/files/web/generated/M16-GAP-00106-modifier-VOLUME_DISPLACE.blend",
|
||||
"sha256": "95a922b90fb5bce90cb2f7995761805709a4a18b9206fab7f30e3848160b2c95"
|
||||
},
|
||||
"desktop": {
|
||||
"status": "EXACT",
|
||||
"report": "tests/golden/M16-GAP-00106/volume-displace-modifier-desktop-report.json",
|
||||
"saveReopen": "EXACT"
|
||||
},
|
||||
"wasm": {
|
||||
"status": "EXACT",
|
||||
"objectId": "object:WebGapVolumeDisplaceObject",
|
||||
"modifier": {
|
||||
"dependsOn": [],
|
||||
"enabled": true,
|
||||
"evaluationStatus": "BLOCKED",
|
||||
"name": "WebGapVolumeDisplace",
|
||||
"parameters": {
|
||||
"flag": 5,
|
||||
"mode": 1,
|
||||
"persistentUid": 1329852763,
|
||||
"typeCode": 59
|
||||
},
|
||||
"showEditMode": false,
|
||||
"showOnCage": false,
|
||||
"showRender": false,
|
||||
"showViewport": true,
|
||||
"type": "VOLUME_DISPLACE",
|
||||
"uuid": "modifier:object:WebGapVolumeDisplaceObject:1329852763"
|
||||
}
|
||||
},
|
||||
"saveReopen": "EXACT",
|
||||
"negative": {
|
||||
"malformedBlend": "REJECTED_WITHOUT_MAIN_MUTATION"
|
||||
},
|
||||
"nextTask": "M16-GAP-00107"
|
||||
}
|
||||
28
tests/golden/M16-GAP-00107/manifest.json
Normal file
28
tests/golden/M16-GAP-00107/manifest.json
Normal file
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00107",
|
||||
"parentTask": "M16-GAP-00106",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": true,
|
||||
"runtime": "BLENDER_5_2_LOCAL_EXACT",
|
||||
"operation": "VOLUME_TO_MESH_MODIFIER_LOCAL_EXACT",
|
||||
"status": "done",
|
||||
"artifacts": {
|
||||
"parentManifest": {"path": "tests/golden/M16-GAP-00106/manifest.json", "sha256": "a2d9d12cc1bfdd28c4766ca951d1d63aff3cb53631d36f618e85918a3b7c717d"},
|
||||
"fixture": {"path": "tests/files/web/generated/M16-GAP-00107-modifier-VOLUME_TO_MESH.blend", "sha256": "fab68f64a3d9bbf1b224393518bc43a454601eabf8d936020aee5b478012356f"},
|
||||
"generator": {"path": "tools/web/generated/M16-GAP-00107.py", "sha256": "9730c26f96cd994d92cf2e2670718124f899e0ce2e3d044a10404f8b0fafa834"},
|
||||
"desktopChecker": {"path": "tools/web/check-generic-modifier-desktop.py", "sha256": "140a3a86220c2af01d5daad10dd482316b208a6a2aa0af762dd39b65c6cda9d8"},
|
||||
"webChecker": {"path": "tools/web/check-generated-gap.mjs", "sha256": "b1707169fa5c648b9c8b21d6057f0c1dbb78c11a7a5e0f16ee135f49a28ce0d2"},
|
||||
"reader": {"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp", "sha256": "0e1a72ef3655eb51047dd488c3a9a733022193f1631b21d59c615f8acb1a67f8"},
|
||||
"modifierCmake": {"path": "blender-5.2.0/source/blender/modifiers/CMakeLists.txt", "sha256": "acf2c49dcea2907a117efdf8d74d4d817a4456a41c6bec3a40f38263beaae127"},
|
||||
"particleModifier": {"path": "blender-5.2.0/source/blender/modifiers/intern/MOD_particlesystem.cc", "sha256": "92ea7223c192563062d9f485c45cc78290a8809eb79b79d3a28be12081a0c7d6e6f"},
|
||||
"particleCore": {"path": "blender-5.2.0/source/blender/blenkernel/intern/particle.cc", "sha256": "d712f922c3160bddb464e3b7e1f68bfc44591dd9e536f4fd901119025d17717c"},
|
||||
"physicsReader": {"path": "blender-5.2.0/source/blender/web_engine/web_engine_main_state.cpp", "sha256": "62af46e404d6174cc4b9d85adb6e8b259f1c537e5ebfd8485e4fd0cc4be0fded"},
|
||||
"wasm": {"path": "web/app/src/vendor/blender/web_engine.wasm", "sha256": "a847df61055dd322c70b8e57702439f095997831b6d431107895bb5284750234"},
|
||||
"wasmPublic": {"path": "web/app/public/vendor/blender/web_engine.wasm", "sha256": "a847df61055dd322c70b8e57702439f095997831b6d431107895bb5284750234"},
|
||||
"wasmJs": {"path": "web/app/src/vendor/blender/web_engine.js", "sha256": "9c831d0351ac9d0714cce3b1da748cba416ced3086e3c59595cf24ac4da459ed"},
|
||||
"desktopReport": {"path": "tests/golden/M16-GAP-00107/volume-to-mesh-modifier-desktop-report.json", "sha256": "7cbfeae24f5f74a8b9509da418a65520a595530b164733bbd9ecf9de99212f02"},
|
||||
"webReport": {"path": "tests/golden/M16-GAP-00107/volume-to-mesh-modifier-local-exact-report.json", "sha256": "1083d3e4144e172245c61b1ff8afa8b1bcf80b9bfae4d066e7eb0cfab80f5279"}
|
||||
},
|
||||
"nextTask": "M16-GAP-00108"
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"blenderVersion": "5.2.0 LTS",
|
||||
"fixture": "/home/mes123456/workinf_Blender_Wasm/tests/files/web/generated/M16-GAP-00107-modifier-VOLUME_TO_MESH.blend",
|
||||
"fixtureSha256": "fab68f64a3d9bbf1b224393518bc43a454601eabf8d936020aee5b478012356f",
|
||||
"modifier": {
|
||||
"meshId": "mesh:WebGapVolumeToMeshMesh",
|
||||
"modifier": {
|
||||
"name": "WebGapVolumeToMesh",
|
||||
"showEditMode": false,
|
||||
"showOnCage": false,
|
||||
"showRender": false,
|
||||
"showViewport": true,
|
||||
"type": "VOLUME_TO_MESH",
|
||||
"typeCode": 60
|
||||
},
|
||||
"objectId": "object:WebGapVolumeToMeshObject",
|
||||
"task": "M16-GAP-00107"
|
||||
},
|
||||
"operation": "VOLUME_TO_MESH_MODIFIER_DESKTOP",
|
||||
"saveReopen": "EXACT",
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00107"
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00107",
|
||||
"operation": "VOLUME_TO_MESH_MODIFIER_LOCAL_EXACT",
|
||||
"fixture": {
|
||||
"path": "tests/files/web/generated/M16-GAP-00107-modifier-VOLUME_TO_MESH.blend",
|
||||
"sha256": "fab68f64a3d9bbf1b224393518bc43a454601eabf8d936020aee5b478012356f"
|
||||
},
|
||||
"desktop": {
|
||||
"status": "EXACT",
|
||||
"report": "tests/golden/M16-GAP-00107/volume-to-mesh-modifier-desktop-report.json",
|
||||
"saveReopen": "EXACT"
|
||||
},
|
||||
"wasm": {
|
||||
"status": "EXACT",
|
||||
"objectId": "object:WebGapVolumeToMeshObject",
|
||||
"meshId": "mesh:WebGapVolumeToMeshMesh",
|
||||
"modifier": {
|
||||
"dependsOn": [],
|
||||
"enabled": true,
|
||||
"evaluationStatus": "BLOCKED",
|
||||
"name": "WebGapVolumeToMesh",
|
||||
"parameters": {
|
||||
"flag": 5,
|
||||
"mode": 1,
|
||||
"persistentUid": 662944674,
|
||||
"typeCode": 60
|
||||
},
|
||||
"showEditMode": false,
|
||||
"showOnCage": false,
|
||||
"showRender": false,
|
||||
"showViewport": true,
|
||||
"type": "VOLUME_TO_MESH",
|
||||
"uuid": "modifier:object:WebGapVolumeToMeshObject:662944674"
|
||||
}
|
||||
},
|
||||
"saveReopen": "EXACT",
|
||||
"negative": {
|
||||
"malformedBlend": "REJECTED_WITHOUT_MAIN_MUTATION"
|
||||
},
|
||||
"nextTask": "M16-GAP-00108"
|
||||
}
|
||||
28
tests/golden/M16-GAP-00108/manifest.json
Normal file
28
tests/golden/M16-GAP-00108/manifest.json
Normal file
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00108",
|
||||
"parentTask": "M16-GAP-00107",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": true,
|
||||
"runtime": "BLENDER_5_2_LOCAL_EXACT",
|
||||
"operation": "WARP_MODIFIER_LOCAL_EXACT",
|
||||
"status": "done",
|
||||
"artifacts": {
|
||||
"parentManifest": {"path": "tests/golden/M16-GAP-00107/manifest.json", "sha256": "760706922c497ed0898b84fd07789d0d8c53f5a448191ad6c2425d1d7e13ad20"},
|
||||
"fixture": {"path": "tests/files/web/generated/M16-GAP-00108-modifier-WARP.blend", "sha256": "a328ef4b4cbcf265de0483012f80860fccb75e53fcb25bd6ccbe81dc97cb0ba5"},
|
||||
"generator": {"path": "tools/web/generated/M16-GAP-00108.py", "sha256": "ee8667312b3608fff806a2f888edca90cad3a960184ee64d0b7b33fd9cad2657"},
|
||||
"desktopChecker": {"path": "tools/web/check-generic-modifier-desktop.py", "sha256": "140a3a86220c2af01d5daad10dd482316b208a6a2aa0af762dd39b65c6cda9d8"},
|
||||
"webChecker": {"path": "tools/web/check-generated-gap.mjs", "sha256": "71f6265a1769981b08b714ddbf0c95881181e003694761935e7e592279d3237a"},
|
||||
"reader": {"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp", "sha256": "0e1a72ef3655eb51047dd488c3a9a733022193f1631b21d59c615f8acb1a67f8"},
|
||||
"modifierCmake": {"path": "blender-5.2.0/source/blender/modifiers/CMakeLists.txt", "sha256": "acf2c49dcea2907a117efdf8d74d4d817a4456a41c6bec3a40f38263beaae127"},
|
||||
"particleModifier": {"path": "blender-5.2.0/source/blender/modifiers/intern/MOD_particlesystem.cc", "sha256": "92ea7223c192563062d9f485c45cc78290a8809eb79b79d3a28be12081a0c7d6e6f"},
|
||||
"particleCore": {"path": "blender-5.2.0/source/blender/blenkernel/intern/particle.cc", "sha256": "d712f922c3160bddb464e3b7e1f68bfc44591dd9e536f4fd901119025d17717c"},
|
||||
"physicsReader": {"path": "blender-5.2.0/source/blender/web_engine/web_engine_main_state.cpp", "sha256": "62af46e404d6174cc4b9d85adb6e8b259f1c537e5ebfd8485e4fd0cc4be0fded"},
|
||||
"wasm": {"path": "web/app/src/vendor/blender/web_engine.wasm", "sha256": "a847df61055dd322c70b8e57702439f095997831b6d431107895bb5284750234"},
|
||||
"wasmPublic": {"path": "web/app/public/vendor/blender/web_engine.wasm", "sha256": "a847df61055dd322c70b8e57702439f095997831b6d431107895bb5284750234"},
|
||||
"wasmJs": {"path": "web/app/src/vendor/blender/web_engine.js", "sha256": "9c831d0351ac9d0714cce3b1da748cba416ced3086e3c59595cf24ac4da459ed"},
|
||||
"desktopReport": {"path": "tests/golden/M16-GAP-00108/warp-modifier-desktop-report.json", "sha256": "5daba0b7befe92e75dab3dca35e00ee1e3c211ab02e9f5ec3ec9bdb5c6164250"},
|
||||
"webReport": {"path": "tests/golden/M16-GAP-00108/warp-modifier-local-exact-report.json", "sha256": "0aeac2276b0828180780358383b626295b1ef43fece15ac6fcadff880f861dd3"}
|
||||
},
|
||||
"nextTask": "M16-GAP-00109"
|
||||
}
|
||||
181
tests/golden/M16-GAP-00108/task-context.json
Normal file
181
tests/golden/M16-GAP-00108/task-context.json
Normal file
@@ -0,0 +1,181 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00108",
|
||||
"parentTask": "M16-GAP-00107",
|
||||
"status": "in_progress",
|
||||
"goal": "Make the same minimal fixture produce observable modifier:WARP 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": "modifier:WARP",
|
||||
"ownerFamily": "MODIFIER",
|
||||
"implementationClass": "LOCAL_EXACT"
|
||||
},
|
||||
"commands": [
|
||||
"build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00108.py -- tests/files/web/generated/M16-GAP-00108-modifier-WARP.blend",
|
||||
"npm --prefix web run test:generated-gap -- --task M16-GAP-00108",
|
||||
"node tools/web/check-generated-gap.mjs --task M16-GAP-00108"
|
||||
],
|
||||
"inputPaths": [
|
||||
"tools/web/generated/M16-GAP-00108.py"
|
||||
],
|
||||
"inputSelection": {
|
||||
"schemaVersion": 1,
|
||||
"limits": {
|
||||
"maxFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextRemainingBytes": 6635,
|
||||
"contextRemainingTokens": 1657
|
||||
},
|
||||
"source": {
|
||||
"bytes": 7365,
|
||||
"tokens": 1843
|
||||
},
|
||||
"selected": [
|
||||
{
|
||||
"path": "tools/web/generated/M16-GAP-00108.py",
|
||||
"bytes": 965,
|
||||
"tokens": 242
|
||||
}
|
||||
],
|
||||
"excluded": [
|
||||
{
|
||||
"path": "tests/files/web/generated/M16-GAP-00108-modifier-WARP.blend",
|
||||
"bytes": 86403,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp",
|
||||
"bytes": 221873,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tools/web/check-generated-gap.mjs",
|
||||
"bytes": 143583,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00108/",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00108.md",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00108/manifest.json",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"files": 1,
|
||||
"bytes": 965,
|
||||
"tokens": 242
|
||||
}
|
||||
},
|
||||
"exitCriteria": [
|
||||
"desktop fixture evidence exists",
|
||||
"WASM uses the same fixture",
|
||||
"comparator passes",
|
||||
"save/reopen preserves Main",
|
||||
"manifest hashes all artifacts"
|
||||
],
|
||||
"nextTask": "M16-GAP-00109",
|
||||
"sourceDocuments": {
|
||||
"queue": "docs/EXECUTION_QUEUE.md",
|
||||
"taskCard": "docs/tasks/M16-GAP-00108.md",
|
||||
"taskIndex": "tests/golden/M15-03A/task-index.json",
|
||||
"parentManifest": "tests/golden/M16-GAP-00107/manifest.json",
|
||||
"parentStatus": "docs/status/M16-GAP-00107.md"
|
||||
},
|
||||
"readPolicy": {
|
||||
"required": [
|
||||
"docs/EXECUTION_QUEUE.md",
|
||||
"docs/tasks/M16-GAP-00108.md",
|
||||
"tests/golden/M16-GAP-00107/manifest.json",
|
||||
"docs/status/M16-GAP-00107.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-00107",
|
||||
"parentTask": "M16-GAP-00106",
|
||||
"status": "done",
|
||||
"nextTask": "M16-GAP-00108",
|
||||
"artifactCount": 15
|
||||
},
|
||||
"statusSummary": [
|
||||
"# M16-GAP-00107 Status",
|
||||
"status: done",
|
||||
"task: VOLUME_TO_MESH modifier LOCAL_EXACT slice",
|
||||
"updated: 2026-08-20 America/New_York",
|
||||
"scope: Mesh-hosted VOLUME_TO_MESH modifier stack exposure for `mesh:WebGapVolumeToMeshMesh`.",
|
||||
"evidence:",
|
||||
"- Desktop fixture exposes `WebGapVolumeToMesh` as VOLUME_TO_MESH type code 58; save/reopen is exact.",
|
||||
"- WASM/Main exposes the same VOLUME_TO_MESH stack entry with matching generic visibility flags; save/reopen is exact."
|
||||
]
|
||||
},
|
||||
"budgets": {
|
||||
"queueBytes": 4096,
|
||||
"taskBytes": 1709,
|
||||
"parentManifestBytes": 24576,
|
||||
"parentStatusBytes": 6144,
|
||||
"evidenceFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextTokens": 3500,
|
||||
"taskLines": 38,
|
||||
"taskTokens": 428
|
||||
},
|
||||
"size": {
|
||||
"documents": [
|
||||
{
|
||||
"path": "docs/EXECUTION_QUEUE.md",
|
||||
"bytes": 2168,
|
||||
"lines": 45,
|
||||
"tokens": 542
|
||||
},
|
||||
{
|
||||
"path": "docs/tasks/M16-GAP-00108.md",
|
||||
"bytes": 1709,
|
||||
"lines": 38,
|
||||
"tokens": 428
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00107/manifest.json",
|
||||
"bytes": 2766,
|
||||
"lines": 29,
|
||||
"tokens": 692
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00107.md",
|
||||
"bytes": 722,
|
||||
"lines": 19,
|
||||
"tokens": 181
|
||||
}
|
||||
],
|
||||
"sourceTokens": 1843,
|
||||
"evidenceFiles": 1,
|
||||
"evidenceBytes": 965,
|
||||
"evidenceTokens": 242,
|
||||
"totalTokens": 2085,
|
||||
"withinBudget": true
|
||||
}
|
||||
}
|
||||
23
tests/golden/M16-GAP-00108/warp-modifier-desktop-report.json
Normal file
23
tests/golden/M16-GAP-00108/warp-modifier-desktop-report.json
Normal file
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"blenderVersion": "5.2.0 LTS",
|
||||
"fixture": "/home/mes123456/workinf_Blender_Wasm/tests/files/web/generated/M16-GAP-00108-modifier-WARP.blend",
|
||||
"fixtureSha256": "a328ef4b4cbcf265de0483012f80860fccb75e53fcb25bd6ccbe81dc97cb0ba5",
|
||||
"modifier": {
|
||||
"meshId": "mesh:WebGapWarpMesh",
|
||||
"modifier": {
|
||||
"name": "WebGapWarp",
|
||||
"showEditMode": false,
|
||||
"showOnCage": false,
|
||||
"showRender": false,
|
||||
"showViewport": true,
|
||||
"type": "WARP",
|
||||
"typeCode": 35
|
||||
},
|
||||
"objectId": "object:WebGapWarpObject",
|
||||
"task": "M16-GAP-00108"
|
||||
},
|
||||
"operation": "WARP_MODIFIER_DESKTOP",
|
||||
"saveReopen": "EXACT",
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00108"
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00108",
|
||||
"operation": "WARP_MODIFIER_LOCAL_EXACT",
|
||||
"fixture": {
|
||||
"path": "tests/files/web/generated/M16-GAP-00108-modifier-WARP.blend",
|
||||
"sha256": "a328ef4b4cbcf265de0483012f80860fccb75e53fcb25bd6ccbe81dc97cb0ba5"
|
||||
},
|
||||
"desktop": {
|
||||
"status": "EXACT",
|
||||
"report": "tests/golden/M16-GAP-00108/warp-modifier-desktop-report.json",
|
||||
"saveReopen": "EXACT"
|
||||
},
|
||||
"wasm": {
|
||||
"status": "EXACT",
|
||||
"objectId": "object:WebGapWarpObject",
|
||||
"meshId": "mesh:WebGapWarpMesh",
|
||||
"modifier": {
|
||||
"dependsOn": [],
|
||||
"enabled": true,
|
||||
"evaluationStatus": "BLOCKED",
|
||||
"name": "WebGapWarp",
|
||||
"parameters": {
|
||||
"flag": 5,
|
||||
"mode": 1,
|
||||
"persistentUid": 614917079,
|
||||
"typeCode": 35
|
||||
},
|
||||
"showEditMode": false,
|
||||
"showOnCage": false,
|
||||
"showRender": false,
|
||||
"showViewport": true,
|
||||
"type": "WARP",
|
||||
"uuid": "modifier:object:WebGapWarpObject:614917079"
|
||||
}
|
||||
},
|
||||
"saveReopen": "EXACT",
|
||||
"negative": {
|
||||
"malformedBlend": "REJECTED_WITHOUT_MAIN_MUTATION"
|
||||
},
|
||||
"nextTask": "M16-GAP-00109"
|
||||
}
|
||||
28
tests/golden/M16-GAP-00109/manifest.json
Normal file
28
tests/golden/M16-GAP-00109/manifest.json
Normal file
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00109",
|
||||
"parentTask": "M16-GAP-00108",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": true,
|
||||
"runtime": "BLENDER_5_2_LOCAL_EXACT",
|
||||
"operation": "WAVE_MODIFIER_LOCAL_EXACT",
|
||||
"status": "done",
|
||||
"artifacts": {
|
||||
"parentManifest": {"path": "tests/golden/M16-GAP-00108/manifest.json", "sha256": "4a3c0e88bba11217d661ea22c62cc01fe15379527cec68b8b7c92d01042ecda2"},
|
||||
"fixture": {"path": "tests/files/web/generated/M16-GAP-00109-modifier-WAVE.blend", "sha256": "41c81c36b176656e08a33c9c428da5a257c11ab6e9f0f8bfa530336b7ab159a8"},
|
||||
"generator": {"path": "tools/web/generated/M16-GAP-00109.py", "sha256": "2c8f4bfe4a36a069fd6e106fc80836bf38df2663e2343a6cde15114f00cbffdc"},
|
||||
"desktopChecker": {"path": "tools/web/check-generic-modifier-desktop.py", "sha256": "87827a3285bd779d9faff41e7aaea94eb17e6e5f402f966a106e0e6a209de54e"},
|
||||
"webChecker": {"path": "tools/web/check-generated-gap.mjs", "sha256": "a50a1f23fa9e8eef0eb32af88a4c0983b63176b7f39aee55deafb59adcb37ac4"},
|
||||
"reader": {"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp", "sha256": "0e1a72ef3655eb51047dd488c3a9a733022193f1631b21d59c615f8acb1a67f8"},
|
||||
"modifierCmake": {"path": "blender-5.2.0/source/blender/modifiers/CMakeLists.txt", "sha256": "acf2c49dcea2907a117efdf8d74d4d817a4456a41c6bec3a40f38263beaae127"},
|
||||
"particleModifier": {"path": "blender-5.2.0/source/blender/modifiers/intern/MOD_particlesystem.cc", "sha256": "92ea7223c192563062d9f485c45cc78290a8809eb79b79d3a28be12081a0c7d6e6f"},
|
||||
"particleCore": {"path": "blender-5.2.0/source/blender/blenkernel/intern/particle.cc", "sha256": "d712f922c3160bddb464e3b7e1f68bfc44591dd9e536f4fd901119025d17717c"},
|
||||
"physicsReader": {"path": "blender-5.2.0/source/blender/web_engine/web_engine_main_state.cpp", "sha256": "62af46e404d6174cc4b9d85adb6e8b259f1c537e5ebfd8485e4fd0cc4be0fded"},
|
||||
"wasm": {"path": "web/app/src/vendor/blender/web_engine.wasm", "sha256": "a847df61055dd322c70b8e57702439f095997831b6d431107895bb5284750234"},
|
||||
"wasmPublic": {"path": "web/app/public/vendor/blender/web_engine.wasm", "sha256": "a847df61055dd322c70b8e57702439f095997831b6d431107895bb5284750234"},
|
||||
"wasmJs": {"path": "web/app/src/vendor/blender/web_engine.js", "sha256": "9c831d0351ac9d0714cce3b1da748cba416ced3086e3c59595cf24ac4da459ed"},
|
||||
"desktopReport": {"path": "tests/golden/M16-GAP-00109/wave-modifier-desktop-report.json", "sha256": "ddec88c688169daaaeda211a7b5b1ad2a7e9bd2f5baf29c8c85c5d5ae2265f3c"},
|
||||
"webReport": {"path": "tests/golden/M16-GAP-00109/wave-modifier-local-exact-report.json", "sha256": "29e011eec263333878bc92b5514ec9b153142872bd59d89cecba740395f7e7bc"}
|
||||
},
|
||||
"nextTask": "M16-GAP-00110"
|
||||
}
|
||||
181
tests/golden/M16-GAP-00109/task-context.json
Normal file
181
tests/golden/M16-GAP-00109/task-context.json
Normal file
@@ -0,0 +1,181 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00109",
|
||||
"parentTask": "M16-GAP-00108",
|
||||
"status": "in_progress",
|
||||
"goal": "Make the same minimal fixture produce observable modifier:WAVE 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": "modifier:WAVE",
|
||||
"ownerFamily": "MODIFIER",
|
||||
"implementationClass": "LOCAL_EXACT"
|
||||
},
|
||||
"commands": [
|
||||
"build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00109.py -- tests/files/web/generated/M16-GAP-00109-modifier-WAVE.blend",
|
||||
"npm --prefix web run test:generated-gap -- --task M16-GAP-00109",
|
||||
"node tools/web/check-generated-gap.mjs --task M16-GAP-00109"
|
||||
],
|
||||
"inputPaths": [
|
||||
"tools/web/generated/M16-GAP-00109.py"
|
||||
],
|
||||
"inputSelection": {
|
||||
"schemaVersion": 1,
|
||||
"limits": {
|
||||
"maxFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextRemainingBytes": 6736,
|
||||
"contextRemainingTokens": 1682
|
||||
},
|
||||
"source": {
|
||||
"bytes": 7264,
|
||||
"tokens": 1818
|
||||
},
|
||||
"selected": [
|
||||
{
|
||||
"path": "tools/web/generated/M16-GAP-00109.py",
|
||||
"bytes": 1044,
|
||||
"tokens": 261
|
||||
}
|
||||
],
|
||||
"excluded": [
|
||||
{
|
||||
"path": "tests/files/web/generated/M16-GAP-00109-modifier-WAVE.blend",
|
||||
"bytes": 86396,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp",
|
||||
"bytes": 221873,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tools/web/check-generated-gap.mjs",
|
||||
"bytes": 143984,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00109/",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00109.md",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00109/manifest.json",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"files": 1,
|
||||
"bytes": 1044,
|
||||
"tokens": 261
|
||||
}
|
||||
},
|
||||
"exitCriteria": [
|
||||
"desktop fixture evidence exists",
|
||||
"WASM uses the same fixture",
|
||||
"comparator passes",
|
||||
"save/reopen preserves Main",
|
||||
"manifest hashes all artifacts"
|
||||
],
|
||||
"nextTask": "M16-GAP-00110",
|
||||
"sourceDocuments": {
|
||||
"queue": "docs/EXECUTION_QUEUE.md",
|
||||
"taskCard": "docs/tasks/M16-GAP-00109.md",
|
||||
"taskIndex": "tests/golden/M15-03A/task-index.json",
|
||||
"parentManifest": "tests/golden/M16-GAP-00108/manifest.json",
|
||||
"parentStatus": "docs/status/M16-GAP-00108.md"
|
||||
},
|
||||
"readPolicy": {
|
||||
"required": [
|
||||
"docs/EXECUTION_QUEUE.md",
|
||||
"docs/tasks/M16-GAP-00109.md",
|
||||
"tests/golden/M16-GAP-00108/manifest.json",
|
||||
"docs/status/M16-GAP-00108.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-00108",
|
||||
"parentTask": "M16-GAP-00107",
|
||||
"status": "done",
|
||||
"nextTask": "M16-GAP-00109",
|
||||
"artifactCount": 15
|
||||
},
|
||||
"statusSummary": [
|
||||
"# M16-GAP-00108 Status",
|
||||
"status: done",
|
||||
"task: WARP modifier LOCAL_EXACT slice",
|
||||
"updated: 2026-08-20 America/New_York",
|
||||
"scope: Mesh WARP modifier stack exposure for `mesh:WebGapWarpMesh`.",
|
||||
"evidence:",
|
||||
"- Desktop fixture exposes `WebGapWarp` as WARP type code 35; save/reopen is exact.",
|
||||
"- WASM/Main exposes the same WARP stack entry with matching generic visibility flags; save/reopen is exact."
|
||||
]
|
||||
},
|
||||
"budgets": {
|
||||
"queueBytes": 4096,
|
||||
"taskBytes": 1709,
|
||||
"parentManifestBytes": 24576,
|
||||
"parentStatusBytes": 6144,
|
||||
"evidenceFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextTokens": 3500,
|
||||
"taskLines": 38,
|
||||
"taskTokens": 428
|
||||
},
|
||||
"size": {
|
||||
"documents": [
|
||||
{
|
||||
"path": "docs/EXECUTION_QUEUE.md",
|
||||
"bytes": 2168,
|
||||
"lines": 45,
|
||||
"tokens": 542
|
||||
},
|
||||
{
|
||||
"path": "docs/tasks/M16-GAP-00109.md",
|
||||
"bytes": 1709,
|
||||
"lines": 38,
|
||||
"tokens": 428
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00108/manifest.json",
|
||||
"bytes": 2726,
|
||||
"lines": 29,
|
||||
"tokens": 682
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00108.md",
|
||||
"bytes": 661,
|
||||
"lines": 19,
|
||||
"tokens": 166
|
||||
}
|
||||
],
|
||||
"sourceTokens": 1818,
|
||||
"evidenceFiles": 1,
|
||||
"evidenceBytes": 1044,
|
||||
"evidenceTokens": 261,
|
||||
"totalTokens": 2079,
|
||||
"withinBudget": true
|
||||
}
|
||||
}
|
||||
26
tests/golden/M16-GAP-00109/wave-modifier-desktop-report.json
Normal file
26
tests/golden/M16-GAP-00109/wave-modifier-desktop-report.json
Normal file
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"blenderVersion": "5.2.0 LTS",
|
||||
"fixture": "/home/mes123456/workinf_Blender_Wasm/tests/files/web/generated/M16-GAP-00109-modifier-WAVE.blend",
|
||||
"fixtureSha256": "41c81c36b176656e08a33c9c428da5a257c11ab6e9f0f8bfa530336b7ab159a8",
|
||||
"modifier": {
|
||||
"meshId": "mesh:WebGapWaveMesh",
|
||||
"modifier": {
|
||||
"height": 0.6499999761581421,
|
||||
"name": "WebGapWave",
|
||||
"showEditMode": false,
|
||||
"showOnCage": false,
|
||||
"showRender": false,
|
||||
"showViewport": true,
|
||||
"speed": 0.41999998688697815,
|
||||
"type": "WAVE",
|
||||
"typeCode": 7,
|
||||
"width": 1.75
|
||||
},
|
||||
"objectId": "object:WebGapWaveObject",
|
||||
"task": "M16-GAP-00109"
|
||||
},
|
||||
"operation": "WAVE_MODIFIER_DESKTOP",
|
||||
"saveReopen": "EXACT",
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00109"
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00109",
|
||||
"operation": "WAVE_MODIFIER_LOCAL_EXACT",
|
||||
"fixture": {
|
||||
"path": "tests/files/web/generated/M16-GAP-00109-modifier-WAVE.blend",
|
||||
"sha256": "41c81c36b176656e08a33c9c428da5a257c11ab6e9f0f8bfa530336b7ab159a8"
|
||||
},
|
||||
"desktop": {
|
||||
"status": "EXACT",
|
||||
"report": "tests/golden/M16-GAP-00109/wave-modifier-desktop-report.json",
|
||||
"saveReopen": "EXACT"
|
||||
},
|
||||
"wasm": {
|
||||
"status": "EXACT",
|
||||
"objectId": "object:WebGapWaveObject",
|
||||
"meshId": "mesh:WebGapWaveMesh",
|
||||
"modifier": {
|
||||
"dependsOn": [],
|
||||
"enabled": true,
|
||||
"evaluationStatus": "METADATA_ONLY",
|
||||
"name": "WebGapWave",
|
||||
"parameters": {
|
||||
"flag": 5,
|
||||
"height": 0.6499999761581421,
|
||||
"mode": 1,
|
||||
"persistentUid": 1403213978,
|
||||
"speed": 0.41999998688697815,
|
||||
"typeCode": 7,
|
||||
"width": 1.75
|
||||
},
|
||||
"showEditMode": false,
|
||||
"showOnCage": false,
|
||||
"showRender": false,
|
||||
"showViewport": true,
|
||||
"type": "WAVE",
|
||||
"uuid": "modifier:object:WebGapWaveObject:1403213978"
|
||||
}
|
||||
},
|
||||
"saveReopen": "EXACT",
|
||||
"negative": {
|
||||
"malformedBlend": "REJECTED_WITHOUT_MAIN_MUTATION"
|
||||
},
|
||||
"nextTask": "M16-GAP-00110"
|
||||
}
|
||||
28
tests/golden/M16-GAP-00110/manifest.json
Normal file
28
tests/golden/M16-GAP-00110/manifest.json
Normal file
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00110",
|
||||
"parentTask": "M16-GAP-00109",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": true,
|
||||
"runtime": "BLENDER_5_2_LOCAL_EXACT",
|
||||
"operation": "WEIGHTED_NORMAL_MODIFIER_LOCAL_EXACT",
|
||||
"status": "done",
|
||||
"artifacts": {
|
||||
"parentManifest": {"path": "tests/golden/M16-GAP-00109/manifest.json", "sha256": "8af6813c16138942441f7772e08a6f2c6586e21c665248ee7566be5f26279081"},
|
||||
"fixture": {"path": "tests/files/web/generated/M16-GAP-00110-modifier-WEIGHTED_NORMAL.blend", "sha256": "26469e905bbc2c52467b4b1361f80ffb75b756206974724debbae5e06fd363f0"},
|
||||
"generator": {"path": "tools/web/generated/M16-GAP-00110.py", "sha256": "17fb8ee025fe4fadff5ca63401d795ace27920d88fd4dbe4c32af7614e0892ab"},
|
||||
"desktopChecker": {"path": "tools/web/check-generic-modifier-desktop.py", "sha256": "be849a5eaae8c3b7551aa3e0f560aba3eccd0d346769fdc2093dd4f46ff80652"},
|
||||
"webChecker": {"path": "tools/web/check-generated-gap.mjs", "sha256": "87ef950db06c906b1d541af408295d589167f96c66ba87e19d5006f353da4a54"},
|
||||
"reader": {"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp", "sha256": "0e1a72ef3655eb51047dd488c3a9a733022193f1631b21d59c615f8acb1a67f8"},
|
||||
"modifierCmake": {"path": "blender-5.2.0/source/blender/modifiers/CMakeLists.txt", "sha256": "acf2c49dcea2907a117efdf8d74d4d817a4456a41c6bec3a40f38263beaae127"},
|
||||
"particleModifier": {"path": "blender-5.2.0/source/blender/modifiers/intern/MOD_particlesystem.cc", "sha256": "92ea7223c192563062d9f485c45cc78290a8809eb79b79d3a28be12081a0c7d6e6f"},
|
||||
"particleCore": {"path": "blender-5.2.0/source/blender/blenkernel/intern/particle.cc", "sha256": "d712f922c3160bddb464e3b7e1f68bfc44591dd9e536f4fd901119025d17717c"},
|
||||
"physicsReader": {"path": "blender-5.2.0/source/blender/web_engine/web_engine_main_state.cpp", "sha256": "62af46e404d6174cc4b9d85adb6e8b259f1c537e5ebfd8485e4fd0cc4be0fded"},
|
||||
"wasm": {"path": "web/app/src/vendor/blender/web_engine.wasm", "sha256": "a847df61055dd322c70b8e57702439f095997831b6d431107895bb5284750234"},
|
||||
"wasmPublic": {"path": "web/app/public/vendor/blender/web_engine.wasm", "sha256": "a847df61055dd322c70b8e57702439f095997831b6d431107895bb5284750234"},
|
||||
"wasmJs": {"path": "web/app/src/vendor/blender/web_engine.js", "sha256": "9c831d0351ac9d0714cce3b1da748cba416ced3086e3c59595cf24ac4da459ed"},
|
||||
"desktopReport": {"path": "tests/golden/M16-GAP-00110/weighted-normal-modifier-desktop-report.json", "sha256": "ae59fdc10466bfa461dbaed1aa45bb2ac6211b8a303e58de8ea3ee9c5e0e40ba"},
|
||||
"webReport": {"path": "tests/golden/M16-GAP-00110/weighted-normal-modifier-local-exact-report.json", "sha256": "6360a1706e7456a5d51fa2effbc7505cd7209818690ab1b7665abf0bbff7a311"}
|
||||
},
|
||||
"nextTask": "M16-GAP-00111"
|
||||
}
|
||||
181
tests/golden/M16-GAP-00110/task-context.json
Normal file
181
tests/golden/M16-GAP-00110/task-context.json
Normal file
@@ -0,0 +1,181 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00110",
|
||||
"parentTask": "M16-GAP-00109",
|
||||
"status": "in_progress",
|
||||
"goal": "Make the same minimal fixture produce observable modifier:WEIGHTED_NORMAL 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": "modifier:WEIGHTED_NORMAL",
|
||||
"ownerFamily": "MODIFIER",
|
||||
"implementationClass": "LOCAL_EXACT"
|
||||
},
|
||||
"commands": [
|
||||
"build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00110.py -- tests/files/web/generated/M16-GAP-00110-modifier-WEIGHTED_NORMAL.blend",
|
||||
"npm --prefix web run test:generated-gap -- --task M16-GAP-00110",
|
||||
"node tools/web/check-generated-gap.mjs --task M16-GAP-00110"
|
||||
],
|
||||
"inputPaths": [
|
||||
"tools/web/generated/M16-GAP-00110.py"
|
||||
],
|
||||
"inputSelection": {
|
||||
"schemaVersion": 1,
|
||||
"limits": {
|
||||
"maxFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextRemainingBytes": 6603,
|
||||
"contextRemainingTokens": 1650
|
||||
},
|
||||
"source": {
|
||||
"bytes": 7397,
|
||||
"tokens": 1850
|
||||
},
|
||||
"selected": [
|
||||
{
|
||||
"path": "tools/web/generated/M16-GAP-00110.py",
|
||||
"bytes": 1101,
|
||||
"tokens": 276
|
||||
}
|
||||
],
|
||||
"excluded": [
|
||||
{
|
||||
"path": "tests/files/web/generated/M16-GAP-00110-modifier-WEIGHTED_NORMAL.blend",
|
||||
"bytes": 86410,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp",
|
||||
"bytes": 221873,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tools/web/check-generated-gap.mjs",
|
||||
"bytes": 144216,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00110/",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00110.md",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00110/manifest.json",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"files": 1,
|
||||
"bytes": 1101,
|
||||
"tokens": 276
|
||||
}
|
||||
},
|
||||
"exitCriteria": [
|
||||
"desktop fixture evidence exists",
|
||||
"WASM uses the same fixture",
|
||||
"comparator passes",
|
||||
"save/reopen preserves Main",
|
||||
"manifest hashes all artifacts"
|
||||
],
|
||||
"nextTask": "M16-GAP-00111",
|
||||
"sourceDocuments": {
|
||||
"queue": "docs/EXECUTION_QUEUE.md",
|
||||
"taskCard": "docs/tasks/M16-GAP-00110.md",
|
||||
"taskIndex": "tests/golden/M15-03A/task-index.json",
|
||||
"parentManifest": "tests/golden/M16-GAP-00109/manifest.json",
|
||||
"parentStatus": "docs/status/M16-GAP-00109.md"
|
||||
},
|
||||
"readPolicy": {
|
||||
"required": [
|
||||
"docs/EXECUTION_QUEUE.md",
|
||||
"docs/tasks/M16-GAP-00110.md",
|
||||
"tests/golden/M16-GAP-00109/manifest.json",
|
||||
"docs/status/M16-GAP-00109.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-00109",
|
||||
"parentTask": "M16-GAP-00108",
|
||||
"status": "done",
|
||||
"nextTask": "M16-GAP-00110",
|
||||
"artifactCount": 15
|
||||
},
|
||||
"statusSummary": [
|
||||
"# M16-GAP-00109 Status",
|
||||
"status: done",
|
||||
"task: WAVE modifier LOCAL_EXACT slice",
|
||||
"updated: 2026-08-20 America/New_York",
|
||||
"scope: Mesh WAVE modifier stack exposure for `mesh:WebGapWaveMesh`.",
|
||||
"evidence:",
|
||||
"- Desktop fixture exposes `WebGapWave` as WAVE type code 7 with height 0.65, width 1.75, and speed 0.42; save/reopen is exact.",
|
||||
"- WASM/Main exposes the same WAVE stack entry and matching height, width, speed, and generic visibility flags; save/reopen is exact."
|
||||
]
|
||||
},
|
||||
"budgets": {
|
||||
"queueBytes": 4096,
|
||||
"taskBytes": 1764,
|
||||
"parentManifestBytes": 24576,
|
||||
"parentStatusBytes": 6144,
|
||||
"evidenceFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextTokens": 3500,
|
||||
"taskLines": 38,
|
||||
"taskTokens": 441
|
||||
},
|
||||
"size": {
|
||||
"documents": [
|
||||
{
|
||||
"path": "docs/EXECUTION_QUEUE.md",
|
||||
"bytes": 2168,
|
||||
"lines": 45,
|
||||
"tokens": 542
|
||||
},
|
||||
{
|
||||
"path": "docs/tasks/M16-GAP-00110.md",
|
||||
"bytes": 1764,
|
||||
"lines": 38,
|
||||
"tokens": 441
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00109/manifest.json",
|
||||
"bytes": 2726,
|
||||
"lines": 29,
|
||||
"tokens": 682
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00109.md",
|
||||
"bytes": 739,
|
||||
"lines": 19,
|
||||
"tokens": 185
|
||||
}
|
||||
],
|
||||
"sourceTokens": 1850,
|
||||
"evidenceFiles": 1,
|
||||
"evidenceBytes": 1101,
|
||||
"evidenceTokens": 276,
|
||||
"totalTokens": 2126,
|
||||
"withinBudget": true
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"blenderVersion": "5.2.0 LTS",
|
||||
"fixture": "/home/mes123456/workinf_Blender_Wasm/tests/files/web/generated/M16-GAP-00110-modifier-WEIGHTED_NORMAL.blend",
|
||||
"fixtureSha256": "26469e905bbc2c52467b4b1361f80ffb75b756206974724debbae5e06fd363f0",
|
||||
"modifier": {
|
||||
"meshId": "mesh:WebGapWeightedNormalMesh",
|
||||
"modifier": {
|
||||
"keepSharp": true,
|
||||
"name": "WebGapWeightedNormal",
|
||||
"showEditMode": true,
|
||||
"showOnCage": false,
|
||||
"showRender": false,
|
||||
"showViewport": true,
|
||||
"type": "WEIGHTED_NORMAL",
|
||||
"typeCode": 54,
|
||||
"useFaceInfluence": true,
|
||||
"weight": 70
|
||||
},
|
||||
"objectId": "object:WebGapWeightedNormalObject",
|
||||
"task": "M16-GAP-00110"
|
||||
},
|
||||
"operation": "WEIGHTED_NORMAL_MODIFIER_DESKTOP",
|
||||
"saveReopen": "EXACT",
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00110"
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00110",
|
||||
"operation": "WEIGHTED_NORMAL_MODIFIER_LOCAL_EXACT",
|
||||
"fixture": {
|
||||
"path": "tests/files/web/generated/M16-GAP-00110-modifier-WEIGHTED_NORMAL.blend",
|
||||
"sha256": "26469e905bbc2c52467b4b1361f80ffb75b756206974724debbae5e06fd363f0"
|
||||
},
|
||||
"desktop": {
|
||||
"status": "EXACT",
|
||||
"report": "tests/golden/M16-GAP-00110/weighted-normal-modifier-desktop-report.json",
|
||||
"saveReopen": "EXACT"
|
||||
},
|
||||
"wasm": {
|
||||
"status": "EXACT",
|
||||
"objectId": "object:WebGapWeightedNormalObject",
|
||||
"meshId": "mesh:WebGapWeightedNormalMesh",
|
||||
"modifier": {
|
||||
"dependsOn": [],
|
||||
"enabled": true,
|
||||
"evaluationStatus": "METADATA_ONLY",
|
||||
"name": "WebGapWeightedNormal",
|
||||
"parameters": {
|
||||
"flag": 5,
|
||||
"mode": 5,
|
||||
"persistentUid": 1800999687,
|
||||
"typeCode": 54,
|
||||
"weight": 70
|
||||
},
|
||||
"showEditMode": true,
|
||||
"showOnCage": false,
|
||||
"showRender": false,
|
||||
"showViewport": true,
|
||||
"type": "WEIGHTED_NORMAL",
|
||||
"uuid": "modifier:object:WebGapWeightedNormalObject:1800999687"
|
||||
}
|
||||
},
|
||||
"saveReopen": "EXACT",
|
||||
"negative": {
|
||||
"malformedBlend": "REJECTED_WITHOUT_MAIN_MUTATION"
|
||||
},
|
||||
"nextTask": "M16-GAP-00111"
|
||||
}
|
||||
28
tests/golden/M16-GAP-00111/manifest.json
Normal file
28
tests/golden/M16-GAP-00111/manifest.json
Normal file
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00111",
|
||||
"parentTask": "M16-GAP-00110",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": true,
|
||||
"runtime": "BLENDER_5_2_LOCAL_EXACT",
|
||||
"operation": "WELD_MODIFIER_LOCAL_EXACT",
|
||||
"status": "done",
|
||||
"artifacts": {
|
||||
"parentManifest": {"path": "tests/golden/M16-GAP-00110/manifest.json", "sha256": "a1432f7c5e7f4d3891e00872c9023890b177806eebd3f988ba6f5968817a9ea7"},
|
||||
"fixture": {"path": "tests/files/web/generated/M16-GAP-00111-modifier-WELD.blend", "sha256": "fa82df1cc06f762f90acfd62c6172c631534838342d971e2ecba931d9bbb4b14"},
|
||||
"generator": {"path": "tools/web/generated/M16-GAP-00111.py", "sha256": "70a5a835615617c1feaa7795f1ee8c4dc2e07021a62c97ea87915a4231ef509c"},
|
||||
"desktopChecker": {"path": "tools/web/check-generic-modifier-desktop.py", "sha256": "4f5ae268fd90a36ef11d4fe411e18968bc6a1479e83f72b6dbb369a082fb4f0c"},
|
||||
"webChecker": {"path": "tools/web/check-generated-gap.mjs", "sha256": "aa81363720f6d980e9aa93b9dfe4d50345b3ceb17b0f73be3c32cfca0a977c35"},
|
||||
"reader": {"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp", "sha256": "0e1a72ef3655eb51047dd488c3a9a733022193f1631b21d59c615f8acb1a67f8"},
|
||||
"modifierCmake": {"path": "blender-5.2.0/source/blender/modifiers/CMakeLists.txt", "sha256": "acf2c49dcea2907a117efdf8d74d4d817a4456a41c6bec3a40f38263beaae127"},
|
||||
"particleModifier": {"path": "blender-5.2.0/source/blender/modifiers/intern/MOD_particlesystem.cc", "sha256": "92ea7223c192563062d9f485c45cc78290a8809eb79b79d3a28be12081a0c7d6e6f"},
|
||||
"particleCore": {"path": "blender-5.2.0/source/blender/blenkernel/intern/particle.cc", "sha256": "d712f922c3160bddb464e3b7e1f68bfc44591dd9e536f4fd901119025d17717c"},
|
||||
"physicsReader": {"path": "blender-5.2.0/source/blender/web_engine/web_engine_main_state.cpp", "sha256": "62af46e404d6174cc4b9d85adb6e8b259f1c537e5ebfd8485e4fd0cc4be0fded"},
|
||||
"wasm": {"path": "web/app/src/vendor/blender/web_engine.wasm", "sha256": "a847df61055dd322c70b8e57702439f095997831b6d431107895bb5284750234"},
|
||||
"wasmPublic": {"path": "web/app/public/vendor/blender/web_engine.wasm", "sha256": "a847df61055dd322c70b8e57702439f095997831b6d431107895bb5284750234"},
|
||||
"wasmJs": {"path": "web/app/src/vendor/blender/web_engine.js", "sha256": "9c831d0351ac9d0714cce3b1da748cba416ced3086e3c59595cf24ac4da459ed"},
|
||||
"desktopReport": {"path": "tests/golden/M16-GAP-00111/weld-modifier-desktop-report.json", "sha256": "cef902e3eaaae85c8c441320ed1dad00b1193a73003c098e61ba179538972d9d"},
|
||||
"webReport": {"path": "tests/golden/M16-GAP-00111/weld-modifier-local-exact-report.json", "sha256": "91ec33d946f8b526ae5af1f0b533896e5c6678655b9ddaa844ca5fafdb773e9e"}
|
||||
},
|
||||
"nextTask": "M16-GAP-00112"
|
||||
}
|
||||
181
tests/golden/M16-GAP-00111/task-context.json
Normal file
181
tests/golden/M16-GAP-00111/task-context.json
Normal file
@@ -0,0 +1,181 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00111",
|
||||
"parentTask": "M16-GAP-00110",
|
||||
"status": "in_progress",
|
||||
"goal": "Make the same minimal fixture produce observable modifier:WELD 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": "modifier:WELD",
|
||||
"ownerFamily": "MODIFIER",
|
||||
"implementationClass": "LOCAL_EXACT"
|
||||
},
|
||||
"commands": [
|
||||
"build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00111.py -- tests/files/web/generated/M16-GAP-00111-modifier-WELD.blend",
|
||||
"npm --prefix web run test:generated-gap -- --task M16-GAP-00111",
|
||||
"node tools/web/check-generated-gap.mjs --task M16-GAP-00111"
|
||||
],
|
||||
"inputPaths": [
|
||||
"tools/web/generated/M16-GAP-00111.py"
|
||||
],
|
||||
"inputSelection": {
|
||||
"schemaVersion": 1,
|
||||
"limits": {
|
||||
"maxFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextRemainingBytes": 6622,
|
||||
"contextRemainingTokens": 1654
|
||||
},
|
||||
"source": {
|
||||
"bytes": 7378,
|
||||
"tokens": 1846
|
||||
},
|
||||
"selected": [
|
||||
{
|
||||
"path": "tools/web/generated/M16-GAP-00111.py",
|
||||
"bytes": 1002,
|
||||
"tokens": 251
|
||||
}
|
||||
],
|
||||
"excluded": [
|
||||
{
|
||||
"path": "tests/files/web/generated/M16-GAP-00111-modifier-WELD.blend",
|
||||
"bytes": 86394,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp",
|
||||
"bytes": 221873,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tools/web/check-generated-gap.mjs",
|
||||
"bytes": 144447,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00111/",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00111.md",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00111/manifest.json",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"files": 1,
|
||||
"bytes": 1002,
|
||||
"tokens": 251
|
||||
}
|
||||
},
|
||||
"exitCriteria": [
|
||||
"desktop fixture evidence exists",
|
||||
"WASM uses the same fixture",
|
||||
"comparator passes",
|
||||
"save/reopen preserves Main",
|
||||
"manifest hashes all artifacts"
|
||||
],
|
||||
"nextTask": "M16-GAP-00112",
|
||||
"sourceDocuments": {
|
||||
"queue": "docs/EXECUTION_QUEUE.md",
|
||||
"taskCard": "docs/tasks/M16-GAP-00111.md",
|
||||
"taskIndex": "tests/golden/M15-03A/task-index.json",
|
||||
"parentManifest": "tests/golden/M16-GAP-00110/manifest.json",
|
||||
"parentStatus": "docs/status/M16-GAP-00110.md"
|
||||
},
|
||||
"readPolicy": {
|
||||
"required": [
|
||||
"docs/EXECUTION_QUEUE.md",
|
||||
"docs/tasks/M16-GAP-00111.md",
|
||||
"tests/golden/M16-GAP-00110/manifest.json",
|
||||
"docs/status/M16-GAP-00110.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-00110",
|
||||
"parentTask": "M16-GAP-00109",
|
||||
"status": "done",
|
||||
"nextTask": "M16-GAP-00111",
|
||||
"artifactCount": 15
|
||||
},
|
||||
"statusSummary": [
|
||||
"# M16-GAP-00110 Status",
|
||||
"status: done",
|
||||
"task: WEIGHTED_NORMAL modifier LOCAL_EXACT slice",
|
||||
"updated: 2026-08-20 America/New_York",
|
||||
"scope: Mesh WEIGHTED_NORMAL modifier stack exposure for `mesh:WebGapWeightedNormalMesh`.",
|
||||
"evidence:",
|
||||
"- Desktop fixture exposes `WebGapWeightedNormal` as WEIGHTED_NORMAL type code 54 with weight 70; save/reopen is exact.",
|
||||
"- WASM/Main exposes the same stack entry and matching weight plus generic visibility flags; save/reopen is exact."
|
||||
]
|
||||
},
|
||||
"budgets": {
|
||||
"queueBytes": 4096,
|
||||
"taskBytes": 1709,
|
||||
"parentManifestBytes": 24576,
|
||||
"parentStatusBytes": 6144,
|
||||
"evidenceFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextTokens": 3500,
|
||||
"taskLines": 38,
|
||||
"taskTokens": 428
|
||||
},
|
||||
"size": {
|
||||
"documents": [
|
||||
{
|
||||
"path": "docs/EXECUTION_QUEUE.md",
|
||||
"bytes": 2168,
|
||||
"lines": 45,
|
||||
"tokens": 542
|
||||
},
|
||||
{
|
||||
"path": "docs/tasks/M16-GAP-00111.md",
|
||||
"bytes": 1709,
|
||||
"lines": 38,
|
||||
"tokens": 428
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00110/manifest.json",
|
||||
"bytes": 2770,
|
||||
"lines": 29,
|
||||
"tokens": 693
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00110.md",
|
||||
"bytes": 731,
|
||||
"lines": 19,
|
||||
"tokens": 183
|
||||
}
|
||||
],
|
||||
"sourceTokens": 1846,
|
||||
"evidenceFiles": 1,
|
||||
"evidenceBytes": 1002,
|
||||
"evidenceTokens": 251,
|
||||
"totalTokens": 2097,
|
||||
"withinBudget": true
|
||||
}
|
||||
}
|
||||
24
tests/golden/M16-GAP-00111/weld-modifier-desktop-report.json
Normal file
24
tests/golden/M16-GAP-00111/weld-modifier-desktop-report.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"blenderVersion": "5.2.0 LTS",
|
||||
"fixture": "/home/mes123456/workinf_Blender_Wasm/tests/files/web/generated/M16-GAP-00111-modifier-WELD.blend",
|
||||
"fixtureSha256": "fa82df1cc06f762f90acfd62c6172c631534838342d971e2ecba931d9bbb4b14",
|
||||
"modifier": {
|
||||
"meshId": "mesh:WebGapWeldMesh",
|
||||
"modifier": {
|
||||
"mergeThreshold": 0.125,
|
||||
"name": "WebGapWeld",
|
||||
"showEditMode": true,
|
||||
"showOnCage": false,
|
||||
"showRender": false,
|
||||
"showViewport": true,
|
||||
"type": "WELD",
|
||||
"typeCode": 55
|
||||
},
|
||||
"objectId": "object:WebGapWeldObject",
|
||||
"task": "M16-GAP-00111"
|
||||
},
|
||||
"operation": "WELD_MODIFIER_DESKTOP",
|
||||
"saveReopen": "EXACT",
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00111"
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00111",
|
||||
"operation": "WELD_MODIFIER_LOCAL_EXACT",
|
||||
"fixture": {
|
||||
"path": "tests/files/web/generated/M16-GAP-00111-modifier-WELD.blend",
|
||||
"sha256": "fa82df1cc06f762f90acfd62c6172c631534838342d971e2ecba931d9bbb4b14"
|
||||
},
|
||||
"desktop": {
|
||||
"status": "EXACT",
|
||||
"report": "tests/golden/M16-GAP-00111/weld-modifier-desktop-report.json",
|
||||
"saveReopen": "EXACT"
|
||||
},
|
||||
"wasm": {
|
||||
"status": "EXACT",
|
||||
"objectId": "object:WebGapWeldObject",
|
||||
"meshId": "mesh:WebGapWeldMesh",
|
||||
"modifier": {
|
||||
"dependsOn": [],
|
||||
"enabled": true,
|
||||
"evaluationStatus": "METADATA_ONLY",
|
||||
"name": "WebGapWeld",
|
||||
"parameters": {
|
||||
"flag": 5,
|
||||
"mergeThreshold": 0.125,
|
||||
"mode": 5,
|
||||
"persistentUid": 1358744700,
|
||||
"typeCode": 55
|
||||
},
|
||||
"showEditMode": true,
|
||||
"showOnCage": false,
|
||||
"showRender": false,
|
||||
"showViewport": true,
|
||||
"type": "WELD",
|
||||
"uuid": "modifier:object:WebGapWeldObject:1358744700"
|
||||
}
|
||||
},
|
||||
"saveReopen": "EXACT",
|
||||
"negative": {
|
||||
"malformedBlend": "REJECTED_WITHOUT_MAIN_MUTATION"
|
||||
},
|
||||
"nextTask": "M16-GAP-00112"
|
||||
}
|
||||
28
tests/golden/M16-GAP-00112/manifest.json
Normal file
28
tests/golden/M16-GAP-00112/manifest.json
Normal file
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00112",
|
||||
"parentTask": "M16-GAP-00111",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": true,
|
||||
"runtime": "BLENDER_5_2_LOCAL_EXACT",
|
||||
"operation": "WIREFRAME_MODIFIER_LOCAL_EXACT",
|
||||
"status": "done",
|
||||
"artifacts": {
|
||||
"parentManifest": {"path": "tests/golden/M16-GAP-00111/manifest.json", "sha256": "62531e22304954c1ded239004e91c95f9c42d8c9d43d039e339be52e68b20c8f"},
|
||||
"fixture": {"path": "tests/files/web/generated/M16-GAP-00112-modifier-WIREFRAME.blend", "sha256": "b1952474708ab9f56145f661b3cf5562dc0535a5fa0fe6903c71864af73b0641"},
|
||||
"generator": {"path": "tools/web/generated/M16-GAP-00112.py", "sha256": "403b955f748db90be606506213ee1cd50f8c95f45ecc4ed1bda8a847dd18ab6d"},
|
||||
"desktopChecker": {"path": "tools/web/check-generic-modifier-desktop.py", "sha256": "2df81f9bd231298b00b29f316254531ce097ed66dd122323f26b1301df130f19"},
|
||||
"webChecker": {"path": "tools/web/check-generated-gap.mjs", "sha256": "24069332d14f2eae8cb9a105abcdf7571f04571731f351fd69da6e579f70bcf1"},
|
||||
"reader": {"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp", "sha256": "0e1a72ef3655eb51047dd488c3a9a733022193f1631b21d59c615f8acb1a67f8"},
|
||||
"modifierCmake": {"path": "blender-5.2.0/source/blender/modifiers/CMakeLists.txt", "sha256": "acf2c49dcea2907a117efdf8d74d4d817a4456a41c6bec3a40f38263beaae127"},
|
||||
"particleModifier": {"path": "blender-5.2.0/source/blender/modifiers/intern/MOD_particlesystem.cc", "sha256": "92ea7223c192563062d9f485c45cc78290a8809eb79d3a28be12081a0c7d6e6f"},
|
||||
"particleCore": {"path": "blender-5.2.0/source/blender/blenkernel/intern/particle.cc", "sha256": "d712f922c3160bddb464e3b7e1f68bfc44591dd9e536f4fd901119025d17717c"},
|
||||
"physicsReader": {"path": "blender-5.2.0/source/blender/web_engine/web_engine_main_state.cpp", "sha256": "62af46e404d6174cc4b9d85adb6e8b259f1c537e5ebfd8485e4fd0cc4be0fded"},
|
||||
"wasm": {"path": "web/app/src/vendor/blender/web_engine.wasm", "sha256": "a847df61055dd322c70b8e57702439f095997831b6d431107895bb5284750234"},
|
||||
"wasmPublic": {"path": "web/app/public/vendor/blender/web_engine.wasm", "sha256": "a847df61055dd322c70b8e57702439f095997831b6d431107895bb5284750234"},
|
||||
"wasmJs": {"path": "web/app/src/vendor/blender/web_engine.js", "sha256": "9c831d0351ac9d0714cce3b1da748cba416ced3086e3c59595cf24ac4da459ed"},
|
||||
"desktopReport": {"path": "tests/golden/M16-GAP-00112/wireframe-modifier-desktop-report.json", "sha256": "f83750dfca898b529013b6d3fbefa283e5800a00312c3c613d06735a362ee26a"},
|
||||
"webReport": {"path": "tests/golden/M16-GAP-00112/wireframe-modifier-local-exact-report.json", "sha256": "b74f89e88d7e280175c4ff534ebf20477ca35aed189b53ebd4a69fbdacc7e92c"}
|
||||
},
|
||||
"nextTask": "M16-GAP-00113"
|
||||
}
|
||||
181
tests/golden/M16-GAP-00112/task-context.json
Normal file
181
tests/golden/M16-GAP-00112/task-context.json
Normal file
@@ -0,0 +1,181 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00112",
|
||||
"parentTask": "M16-GAP-00111",
|
||||
"status": "in_progress",
|
||||
"goal": "Make the same minimal fixture produce observable modifier:WIREFRAME 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": "modifier:WIREFRAME",
|
||||
"ownerFamily": "MODIFIER",
|
||||
"implementationClass": "LOCAL_EXACT"
|
||||
},
|
||||
"commands": [
|
||||
"build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00112.py -- tests/files/web/generated/M16-GAP-00112-modifier-WIREFRAME.blend",
|
||||
"npm --prefix web run test:generated-gap -- --task M16-GAP-00112",
|
||||
"node tools/web/check-generated-gap.mjs --task M16-GAP-00112"
|
||||
],
|
||||
"inputPaths": [
|
||||
"tools/web/generated/M16-GAP-00112.py"
|
||||
],
|
||||
"inputSelection": {
|
||||
"schemaVersion": 1,
|
||||
"limits": {
|
||||
"maxFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextRemainingBytes": 6675,
|
||||
"contextRemainingTokens": 1667
|
||||
},
|
||||
"source": {
|
||||
"bytes": 7325,
|
||||
"tokens": 1833
|
||||
},
|
||||
"selected": [
|
||||
{
|
||||
"path": "tools/web/generated/M16-GAP-00112.py",
|
||||
"bytes": 1043,
|
||||
"tokens": 261
|
||||
}
|
||||
],
|
||||
"excluded": [
|
||||
{
|
||||
"path": "tests/files/web/generated/M16-GAP-00112-modifier-WIREFRAME.blend",
|
||||
"bytes": 86399,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp",
|
||||
"bytes": 221873,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tools/web/check-generated-gap.mjs",
|
||||
"bytes": 144683,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00112/",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00112.md",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00112/manifest.json",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"files": 1,
|
||||
"bytes": 1043,
|
||||
"tokens": 261
|
||||
}
|
||||
},
|
||||
"exitCriteria": [
|
||||
"desktop fixture evidence exists",
|
||||
"WASM uses the same fixture",
|
||||
"comparator passes",
|
||||
"save/reopen preserves Main",
|
||||
"manifest hashes all artifacts"
|
||||
],
|
||||
"nextTask": "M16-GAP-00113",
|
||||
"sourceDocuments": {
|
||||
"queue": "docs/EXECUTION_QUEUE.md",
|
||||
"taskCard": "docs/tasks/M16-GAP-00112.md",
|
||||
"taskIndex": "tests/golden/M15-03A/task-index.json",
|
||||
"parentManifest": "tests/golden/M16-GAP-00111/manifest.json",
|
||||
"parentStatus": "docs/status/M16-GAP-00111.md"
|
||||
},
|
||||
"readPolicy": {
|
||||
"required": [
|
||||
"docs/EXECUTION_QUEUE.md",
|
||||
"docs/tasks/M16-GAP-00112.md",
|
||||
"tests/golden/M16-GAP-00111/manifest.json",
|
||||
"docs/status/M16-GAP-00111.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-00111",
|
||||
"parentTask": "M16-GAP-00110",
|
||||
"status": "done",
|
||||
"nextTask": "M16-GAP-00112",
|
||||
"artifactCount": 15
|
||||
},
|
||||
"statusSummary": [
|
||||
"# M16-GAP-00111 Status",
|
||||
"status: done",
|
||||
"task: WELD modifier LOCAL_EXACT slice",
|
||||
"updated: 2026-08-20 America/New_York",
|
||||
"scope: Mesh WELD modifier stack exposure for `mesh:WebGapWeldMesh`.",
|
||||
"evidence:",
|
||||
"- Desktop fixture exposes `WebGapWeld` as WELD type code 55 with merge threshold 0.125; save/reopen is exact.",
|
||||
"- WASM/Main exposes the same stack entry and matching merge threshold plus generic visibility flags; save/reopen is exact."
|
||||
]
|
||||
},
|
||||
"budgets": {
|
||||
"queueBytes": 4096,
|
||||
"taskBytes": 1734,
|
||||
"parentManifestBytes": 24576,
|
||||
"parentStatusBytes": 6144,
|
||||
"evidenceFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextTokens": 3500,
|
||||
"taskLines": 38,
|
||||
"taskTokens": 434
|
||||
},
|
||||
"size": {
|
||||
"documents": [
|
||||
{
|
||||
"path": "docs/EXECUTION_QUEUE.md",
|
||||
"bytes": 2168,
|
||||
"lines": 45,
|
||||
"tokens": 542
|
||||
},
|
||||
{
|
||||
"path": "docs/tasks/M16-GAP-00112.md",
|
||||
"bytes": 1734,
|
||||
"lines": 38,
|
||||
"tokens": 434
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00111/manifest.json",
|
||||
"bytes": 2726,
|
||||
"lines": 29,
|
||||
"tokens": 682
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00111.md",
|
||||
"bytes": 697,
|
||||
"lines": 19,
|
||||
"tokens": 175
|
||||
}
|
||||
],
|
||||
"sourceTokens": 1833,
|
||||
"evidenceFiles": 1,
|
||||
"evidenceBytes": 1043,
|
||||
"evidenceTokens": 261,
|
||||
"totalTokens": 2094,
|
||||
"withinBudget": true
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"blenderVersion": "5.2.0 LTS",
|
||||
"fixture": "/home/mes123456/workinf_Blender_Wasm/tests/files/web/generated/M16-GAP-00112-modifier-WIREFRAME.blend",
|
||||
"fixtureSha256": "b1952474708ab9f56145f661b3cf5562dc0535a5fa0fe6903c71864af73b0641",
|
||||
"modifier": {
|
||||
"meshId": "mesh:WebGapWireframeMesh",
|
||||
"modifier": {
|
||||
"name": "WebGapWireframe",
|
||||
"showEditMode": false,
|
||||
"showOnCage": false,
|
||||
"showRender": false,
|
||||
"showViewport": true,
|
||||
"thickness": 0.07999999821186066,
|
||||
"type": "WIREFRAME",
|
||||
"typeCode": 48
|
||||
},
|
||||
"objectId": "object:WebGapWireframeObject",
|
||||
"task": "M16-GAP-00112"
|
||||
},
|
||||
"operation": "WIREFRAME_MODIFIER_DESKTOP",
|
||||
"saveReopen": "EXACT",
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00112"
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00112",
|
||||
"operation": "WIREFRAME_MODIFIER_LOCAL_EXACT",
|
||||
"fixture": {
|
||||
"path": "tests/files/web/generated/M16-GAP-00112-modifier-WIREFRAME.blend",
|
||||
"sha256": "b1952474708ab9f56145f661b3cf5562dc0535a5fa0fe6903c71864af73b0641"
|
||||
},
|
||||
"desktop": {
|
||||
"status": "EXACT",
|
||||
"report": "tests/golden/M16-GAP-00112/wireframe-modifier-desktop-report.json",
|
||||
"saveReopen": "EXACT"
|
||||
},
|
||||
"wasm": {
|
||||
"status": "EXACT",
|
||||
"objectId": "object:WebGapWireframeObject",
|
||||
"meshId": "mesh:WebGapWireframeMesh",
|
||||
"modifier": {
|
||||
"dependsOn": [],
|
||||
"enabled": true,
|
||||
"evaluationStatus": "METADATA_ONLY",
|
||||
"name": "WebGapWireframe",
|
||||
"parameters": {
|
||||
"flag": 5,
|
||||
"mode": 1,
|
||||
"persistentUid": 1067521755,
|
||||
"thickness": 0.07999999821186066,
|
||||
"typeCode": 48
|
||||
},
|
||||
"showEditMode": false,
|
||||
"showOnCage": false,
|
||||
"showRender": false,
|
||||
"showViewport": true,
|
||||
"type": "WIREFRAME",
|
||||
"uuid": "modifier:object:WebGapWireframeObject:1067521755"
|
||||
}
|
||||
},
|
||||
"saveReopen": "EXACT",
|
||||
"negative": {
|
||||
"malformedBlend": "REJECTED_WITHOUT_MAIN_MUTATION"
|
||||
},
|
||||
"nextTask": "M16-GAP-00113"
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
{
|
||||
"action": {
|
||||
"channels": [
|
||||
{
|
||||
"frames": [
|
||||
1.0,
|
||||
2.0,
|
||||
3.0,
|
||||
4.0,
|
||||
5.0
|
||||
],
|
||||
"index": 0,
|
||||
"path": "location"
|
||||
},
|
||||
{
|
||||
"frames": [
|
||||
1.0,
|
||||
2.0,
|
||||
3.0,
|
||||
4.0,
|
||||
5.0
|
||||
],
|
||||
"index": 1,
|
||||
"path": "location"
|
||||
},
|
||||
{
|
||||
"frames": [
|
||||
1.0,
|
||||
2.0,
|
||||
3.0,
|
||||
4.0,
|
||||
5.0
|
||||
],
|
||||
"index": 2,
|
||||
"path": "location"
|
||||
}
|
||||
],
|
||||
"name": "WebGapBakeKeysObjectAction"
|
||||
},
|
||||
"blenderVersion": "5.2.0 LTS",
|
||||
"fixture": "/home/mes123456/workinf_Blender_Wasm/tests/files/web/generated/M16-GAP-00113-operator-action.bake_keys.blend",
|
||||
"fixtureSha256": "6253d0f8f008dcf8881bae4326d09648d21977a844c0f604c1a4773ef8372931",
|
||||
"operation": "ACTION_BAKE_KEYS_DESKTOP",
|
||||
"saveReopen": "EXACT",
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00113"
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00113",
|
||||
"operation": "ACTION_BAKE_KEYS_LOCAL_EXACT",
|
||||
"fixture": {
|
||||
"path": "tests/files/web/generated/M16-GAP-00113-operator-action.bake_keys.blend",
|
||||
"sha256": "6253d0f8f008dcf8881bae4326d09648d21977a844c0f604c1a4773ef8372931"
|
||||
},
|
||||
"desktop": {
|
||||
"status": "EXACT",
|
||||
"report": "tests/golden/M16-GAP-00113/action-bake-keys-desktop-report.json",
|
||||
"saveReopen": "EXACT"
|
||||
},
|
||||
"wasm": {
|
||||
"status": "EXACT",
|
||||
"actionId": "action:WebGapBakeKeysObjectAction:object:WebGapBakeKeysObject",
|
||||
"channelPaths": [
|
||||
"location[0]",
|
||||
"location[1]",
|
||||
"location[2]"
|
||||
],
|
||||
"keyframesPerChannel": [
|
||||
5,
|
||||
5,
|
||||
5
|
||||
]
|
||||
},
|
||||
"saveReopen": "EXACT",
|
||||
"negative": {
|
||||
"malformedBlend": "REJECTED_WITHOUT_MAIN_MUTATION"
|
||||
},
|
||||
"nextTask": "M16-GAP-00114"
|
||||
}
|
||||
28
tests/golden/M16-GAP-00113/manifest.json
Normal file
28
tests/golden/M16-GAP-00113/manifest.json
Normal file
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00113",
|
||||
"parentTask": "M16-GAP-00112",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": true,
|
||||
"runtime": "BLENDER_5_2_LOCAL_EXACT",
|
||||
"operation": "ACTION_BAKE_KEYS_LOCAL_EXACT",
|
||||
"status": "done",
|
||||
"artifacts": {
|
||||
"parentManifest": {"path": "tests/golden/M16-GAP-00112/manifest.json", "sha256": "3d8defe2c37894bcc30e7e752499016b89101057f68301d19dcb24414e682d55"},
|
||||
"fixture": {"path": "tests/files/web/generated/M16-GAP-00113-operator-action.bake_keys.blend", "sha256": "6253d0f8f008dcf8881bae4326d09648d21977a844c0f604c1a4773ef8372931"},
|
||||
"generator": {"path": "tools/web/generated/M16-GAP-00113.py", "sha256": "e1eb89000230ec1d198930f06da6b5b35207a83a93eaf3e333c69560d212c5ae"},
|
||||
"desktopChecker": {"path": "tools/web/check-action-bake-keys-desktop.py", "sha256": "a03213895003f141054a80fd7ddf8060b59ded44994eefc8f3e4699313923fb6"},
|
||||
"webChecker": {"path": "tools/web/check-generated-gap.mjs", "sha256": "072695686843e8e0025858790440999223e4f1498d8f891b5f8e5010b5c27953"},
|
||||
"reader": {"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp", "sha256": "0e1a72ef3655eb51047dd488c3a9a733022193f1631b21d59c615f8acb1a67f8"},
|
||||
"modifierCmake": {"path": "blender-5.2.0/source/blender/modifiers/CMakeLists.txt", "sha256": "acf2c49dcea2907a117efdf8d74d4d817a4456a41c6bec3a40f38263beaae127"},
|
||||
"particleModifier": {"path": "blender-5.2.0/source/blender/modifiers/intern/MOD_particlesystem.cc", "sha256": "92ea7223c192563062d9f485c45cc78290a8809eb79b79d3a28be12081a0c7d6e6f"},
|
||||
"particleCore": {"path": "blender-5.2.0/source/blender/blenkernel/intern/particle.cc", "sha256": "d712f922c3160bddb464e3b7e1f68bfc44591dd9e536f4fd901119025d17717c"},
|
||||
"physicsReader": {"path": "blender-5.2.0/source/blender/web_engine/web_engine_main_state.cpp", "sha256": "62af46e404d6174cc4b9d85adb6e8b259f1c537e5ebfd8485e4fd0cc4be0fded"},
|
||||
"wasm": {"path": "web/app/src/vendor/blender/web_engine.wasm", "sha256": "a847df61055dd322c70b8e57702439f095997831b6d431107895bb5284750234"},
|
||||
"wasmPublic": {"path": "web/app/public/vendor/blender/web_engine.wasm", "sha256": "a847df61055dd322c70b8e57702439f095997831b6d431107895bb5284750234"},
|
||||
"wasmJs": {"path": "web/app/src/vendor/blender/web_engine.js", "sha256": "9c831d0351ac9d0714cce3b1da748cba416ced3086e3c59595cf24ac4da459ed"},
|
||||
"desktopReport": {"path": "tests/golden/M16-GAP-00113/action-bake-keys-desktop-report.json", "sha256": "3226d30e020b3384b3a5504c72fe1481f43c048f0827ff6bcbfa1327d9cfd330"},
|
||||
"webReport": {"path": "tests/golden/M16-GAP-00113/action-bake-keys-local-exact-report.json", "sha256": "d8a6aaa82c299916a37f2b8ef477349ac675a930d95ff7800450dc6e5a282d58"}
|
||||
},
|
||||
"nextTask": "M16-GAP-00114"
|
||||
}
|
||||
181
tests/golden/M16-GAP-00113/task-context.json
Normal file
181
tests/golden/M16-GAP-00113/task-context.json
Normal file
@@ -0,0 +1,181 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00113",
|
||||
"parentTask": "M16-GAP-00112",
|
||||
"status": "in_progress",
|
||||
"goal": "Make the same minimal fixture produce observable operator:action.bake_keys 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": "operator:action.bake_keys",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"implementationClass": "LOCAL_EXACT"
|
||||
},
|
||||
"commands": [
|
||||
"build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00113.py -- tests/files/web/generated/M16-GAP-00113-operator-action.bake_keys.blend",
|
||||
"npm --prefix web run test:generated-gap -- --task M16-GAP-00113",
|
||||
"node tools/web/check-generated-gap.mjs --task M16-GAP-00113"
|
||||
],
|
||||
"inputPaths": [
|
||||
"tools/web/generated/M16-GAP-00113.py"
|
||||
],
|
||||
"inputSelection": {
|
||||
"schemaVersion": 1,
|
||||
"limits": {
|
||||
"maxFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextRemainingBytes": 6612,
|
||||
"contextRemainingTokens": 1652
|
||||
},
|
||||
"source": {
|
||||
"bytes": 7388,
|
||||
"tokens": 1848
|
||||
},
|
||||
"selected": [
|
||||
{
|
||||
"path": "tools/web/generated/M16-GAP-00113.py",
|
||||
"bytes": 2339,
|
||||
"tokens": 585
|
||||
}
|
||||
],
|
||||
"excluded": [
|
||||
{
|
||||
"path": "tests/files/web/generated/M16-GAP-00113-operator-action.bake_keys.blend",
|
||||
"bytes": 86996,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp",
|
||||
"bytes": 221873,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tools/web/check-generated-gap.mjs",
|
||||
"bytes": 148046,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00113/",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00113.md",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00113/manifest.json",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"files": 1,
|
||||
"bytes": 2339,
|
||||
"tokens": 585
|
||||
}
|
||||
},
|
||||
"exitCriteria": [
|
||||
"desktop fixture evidence exists",
|
||||
"WASM uses the same fixture",
|
||||
"comparator passes",
|
||||
"save/reopen preserves Main",
|
||||
"manifest hashes all artifacts"
|
||||
],
|
||||
"nextTask": "M16-GAP-00114",
|
||||
"sourceDocuments": {
|
||||
"queue": "docs/EXECUTION_QUEUE.md",
|
||||
"taskCard": "docs/tasks/M16-GAP-00113.md",
|
||||
"taskIndex": "tests/golden/M15-03A/task-index.json",
|
||||
"parentManifest": "tests/golden/M16-GAP-00112/manifest.json",
|
||||
"parentStatus": "docs/status/M16-GAP-00112.md"
|
||||
},
|
||||
"readPolicy": {
|
||||
"required": [
|
||||
"docs/EXECUTION_QUEUE.md",
|
||||
"docs/tasks/M16-GAP-00113.md",
|
||||
"tests/golden/M16-GAP-00112/manifest.json",
|
||||
"docs/status/M16-GAP-00112.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-00112",
|
||||
"parentTask": "M16-GAP-00111",
|
||||
"status": "done",
|
||||
"nextTask": "M16-GAP-00113",
|
||||
"artifactCount": 15
|
||||
},
|
||||
"statusSummary": [
|
||||
"# M16-GAP-00112 Status",
|
||||
"status: done",
|
||||
"task: WIREFRAME modifier LOCAL_EXACT slice",
|
||||
"updated: 2026-08-20 America/New_York",
|
||||
"scope: Mesh WIREFRAME modifier stack exposure for `mesh:WebGapWireframeMesh`.",
|
||||
"evidence:",
|
||||
"- Desktop fixture exposes `WebGapWireframe` as WIREFRAME type code 48 with thickness 0.08; save/reopen is exact.",
|
||||
"- WASM/Main exposes the same stack entry and matching thickness plus generic visibility flags; save/reopen is exact."
|
||||
]
|
||||
},
|
||||
"budgets": {
|
||||
"queueBytes": 4096,
|
||||
"taskBytes": 1769,
|
||||
"parentManifestBytes": 24576,
|
||||
"parentStatusBytes": 6144,
|
||||
"evidenceFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextTokens": 3500,
|
||||
"taskLines": 38,
|
||||
"taskTokens": 443
|
||||
},
|
||||
"size": {
|
||||
"documents": [
|
||||
{
|
||||
"path": "docs/EXECUTION_QUEUE.md",
|
||||
"bytes": 2168,
|
||||
"lines": 45,
|
||||
"tokens": 542
|
||||
},
|
||||
{
|
||||
"path": "docs/tasks/M16-GAP-00113.md",
|
||||
"bytes": 1769,
|
||||
"lines": 38,
|
||||
"tokens": 443
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00112/manifest.json",
|
||||
"bytes": 2743,
|
||||
"lines": 29,
|
||||
"tokens": 686
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00112.md",
|
||||
"bytes": 708,
|
||||
"lines": 19,
|
||||
"tokens": 177
|
||||
}
|
||||
],
|
||||
"sourceTokens": 1848,
|
||||
"evidenceFiles": 1,
|
||||
"evidenceBytes": 2339,
|
||||
"evidenceTokens": 585,
|
||||
"totalTokens": 2433,
|
||||
"withinBudget": true
|
||||
}
|
||||
}
|
||||
36
tests/golden/M16-GAP-00114/action-clean-desktop-report.json
Normal file
36
tests/golden/M16-GAP-00114/action-clean-desktop-report.json
Normal file
@@ -0,0 +1,36 @@
|
||||
{
|
||||
"action": {
|
||||
"channels": [
|
||||
{
|
||||
"frames": [
|
||||
1.0
|
||||
],
|
||||
"index": 0,
|
||||
"path": "location"
|
||||
},
|
||||
{
|
||||
"frames": [
|
||||
1.0
|
||||
],
|
||||
"index": 1,
|
||||
"path": "location"
|
||||
},
|
||||
{
|
||||
"frames": [
|
||||
1.0
|
||||
],
|
||||
"index": 2,
|
||||
"path": "location"
|
||||
}
|
||||
],
|
||||
"name": "WebGapCleanObjectAction"
|
||||
},
|
||||
"blenderVersion": "5.2.0 LTS",
|
||||
"fixture": "/home/mes123456/workinf_Blender_Wasm/tests/files/web/generated/M16-GAP-00114-operator-action.clean.blend",
|
||||
"fixtureSha256": "edd9074159f387a456bc1eb7bb37053fa63038532b928de849378fdcaab9d3e4",
|
||||
"operation": "ACTION_CLEAN_DESKTOP",
|
||||
"saveReopen": "EXACT",
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00114",
|
||||
"threshold": 0.01
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00114",
|
||||
"operation": "ACTION_CLEAN_LOCAL_EXACT",
|
||||
"fixture": {
|
||||
"path": "tests/files/web/generated/M16-GAP-00114-operator-action.clean.blend",
|
||||
"sha256": "edd9074159f387a456bc1eb7bb37053fa63038532b928de849378fdcaab9d3e4"
|
||||
},
|
||||
"desktop": {
|
||||
"status": "EXACT",
|
||||
"report": "tests/golden/M16-GAP-00114/action-clean-desktop-report.json",
|
||||
"saveReopen": "EXACT"
|
||||
},
|
||||
"wasm": {
|
||||
"status": "EXACT",
|
||||
"actionId": "action:WebGapCleanObjectAction:object:WebGapCleanObject",
|
||||
"threshold": 0.01,
|
||||
"keyframesPerChannel": [
|
||||
1,
|
||||
1,
|
||||
1
|
||||
]
|
||||
},
|
||||
"saveReopen": "EXACT",
|
||||
"negative": {
|
||||
"malformedBlend": "REJECTED_WITHOUT_MAIN_MUTATION"
|
||||
},
|
||||
"nextTask": "M16-GAP-00115"
|
||||
}
|
||||
57
tests/golden/M16-GAP-00114/manifest.json
Normal file
57
tests/golden/M16-GAP-00114/manifest.json
Normal file
@@ -0,0 +1,57 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00114",
|
||||
"parentTask": "M16-GAP-00113",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": true,
|
||||
"runtime": "BLENDER_5_2_LOCAL_EXACT",
|
||||
"operation": "ACTION_CLEAN_LOCAL_EXACT",
|
||||
"status": "done",
|
||||
"artifacts": {
|
||||
"parentManifest": {
|
||||
"path": "tests/golden/M16-GAP-00113/manifest.json",
|
||||
"sha256": "284d37f62f121504e0f50beb0e0cb96dde49c12e3fbd35b151dbb9389673704d"
|
||||
},
|
||||
"fixture": {
|
||||
"path": "tests/files/web/generated/M16-GAP-00114-operator-action.clean.blend",
|
||||
"sha256": "edd9074159f387a456bc1eb7bb37053fa63038532b928de849378fdcaab9d3e4"
|
||||
},
|
||||
"generator": {
|
||||
"path": "tools/web/generated/M16-GAP-00114.py",
|
||||
"sha256": "ab1e15afe86016892d2abf43ae84836ff4c84df917d15ca8f1d8b245e138bd52"
|
||||
},
|
||||
"desktopChecker": {
|
||||
"path": "tools/web/check-action-clean-desktop.py",
|
||||
"sha256": "4ab652e99fa8fa98cdec6832157f3bbb2e1ac7e5779f01ddd974f192945ea58e"
|
||||
},
|
||||
"webChecker": {
|
||||
"path": "tools/web/check-generated-gap.mjs",
|
||||
"sha256": "2d0a3927afb559d601b5d5e56d5d2e7fd2c586eb2ceb3e9b38f5299b6871990e"
|
||||
},
|
||||
"reader": {
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp",
|
||||
"sha256": "0e1a72ef3655eb51047dd488c3a9a733022193f1631b21d59c615f8acb1a67f8"
|
||||
},
|
||||
"wasm": {
|
||||
"path": "web/app/src/vendor/blender/web_engine.wasm",
|
||||
"sha256": "a847df61055dd322c70b8e57702439f095997831b6d431107895bb5284750234"
|
||||
},
|
||||
"wasmPublic": {
|
||||
"path": "web/app/public/vendor/blender/web_engine.wasm",
|
||||
"sha256": "a847df61055dd322c70b8e57702439f095997831b6d431107895bb5284750234"
|
||||
},
|
||||
"wasmJs": {
|
||||
"path": "web/app/src/vendor/blender/web_engine.js",
|
||||
"sha256": "9c831d0351ac9d0714cce3b1da748cba416ced3086e3c59595cf24ac4da459ed"
|
||||
},
|
||||
"desktopReport": {
|
||||
"path": "tests/golden/M16-GAP-00114/action-clean-desktop-report.json",
|
||||
"sha256": "94e987bcc4704cc880a88b510d7f01a2b990c04a109c9296b6e896d108d1e95d"
|
||||
},
|
||||
"webReport": {
|
||||
"path": "tests/golden/M16-GAP-00114/action-clean-local-exact-report.json",
|
||||
"sha256": "58e3dfb9fc14a88bc57c616d02870ce0cb995a596f84bc57a686eb63e2e2952a"
|
||||
}
|
||||
},
|
||||
"nextTask": "M16-GAP-00115"
|
||||
}
|
||||
181
tests/golden/M16-GAP-00114/task-context.json
Normal file
181
tests/golden/M16-GAP-00114/task-context.json
Normal file
@@ -0,0 +1,181 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00114",
|
||||
"parentTask": "M16-GAP-00113",
|
||||
"status": "in_progress",
|
||||
"goal": "Make the same minimal fixture produce observable operator:action.clean 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": "operator:action.clean",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"implementationClass": "LOCAL_EXACT"
|
||||
},
|
||||
"commands": [
|
||||
"build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00114.py -- tests/files/web/generated/M16-GAP-00114-operator-action.clean.blend",
|
||||
"npm --prefix web run test:generated-gap -- --task M16-GAP-00114",
|
||||
"node tools/web/check-generated-gap.mjs --task M16-GAP-00114"
|
||||
],
|
||||
"inputPaths": [
|
||||
"tools/web/generated/M16-GAP-00114.py"
|
||||
],
|
||||
"inputSelection": {
|
||||
"schemaVersion": 1,
|
||||
"limits": {
|
||||
"maxFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextRemainingBytes": 6491,
|
||||
"contextRemainingTokens": 1621
|
||||
},
|
||||
"source": {
|
||||
"bytes": 7509,
|
||||
"tokens": 1879
|
||||
},
|
||||
"selected": [
|
||||
{
|
||||
"path": "tools/web/generated/M16-GAP-00114.py",
|
||||
"bytes": 1981,
|
||||
"tokens": 496
|
||||
}
|
||||
],
|
||||
"excluded": [
|
||||
{
|
||||
"path": "tests/files/web/generated/M16-GAP-00114-operator-action.clean.blend",
|
||||
"bytes": 86804,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp",
|
||||
"bytes": 221873,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tools/web/check-generated-gap.mjs",
|
||||
"bytes": 151340,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00114/",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00114.md",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00114/manifest.json",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"files": 1,
|
||||
"bytes": 1981,
|
||||
"tokens": 496
|
||||
}
|
||||
},
|
||||
"exitCriteria": [
|
||||
"desktop fixture evidence exists",
|
||||
"WASM uses the same fixture",
|
||||
"comparator passes",
|
||||
"save/reopen preserves Main",
|
||||
"manifest hashes all artifacts"
|
||||
],
|
||||
"nextTask": "M16-GAP-00115",
|
||||
"sourceDocuments": {
|
||||
"queue": "docs/EXECUTION_QUEUE.md",
|
||||
"taskCard": "docs/tasks/M16-GAP-00114.md",
|
||||
"taskIndex": "tests/golden/M15-03A/task-index.json",
|
||||
"parentManifest": "tests/golden/M16-GAP-00113/manifest.json",
|
||||
"parentStatus": "docs/status/M16-GAP-00113.md"
|
||||
},
|
||||
"readPolicy": {
|
||||
"required": [
|
||||
"docs/EXECUTION_QUEUE.md",
|
||||
"docs/tasks/M16-GAP-00114.md",
|
||||
"tests/golden/M16-GAP-00113/manifest.json",
|
||||
"docs/status/M16-GAP-00113.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-00113",
|
||||
"parentTask": "M16-GAP-00112",
|
||||
"status": "done",
|
||||
"nextTask": "M16-GAP-00114",
|
||||
"artifactCount": 15
|
||||
},
|
||||
"statusSummary": [
|
||||
"# M16-GAP-00113 Status",
|
||||
"status: done",
|
||||
"task: action.bake_keys operator LOCAL_EXACT slice",
|
||||
"updated: 2026-08-20 America/New_York",
|
||||
"scope: Action Editor bake-keys operation on `object:WebGapBakeKeysObject`.",
|
||||
"evidence:",
|
||||
"- Blender generator creates two selected endpoint keys and executes `bpy.ops.action.bake_keys` in a real Action Editor context; each location channel contains frames 1 through 5 afterward.",
|
||||
"- WASM/Main reads the same fixture with three matching channels and five keyframes per channel; save/reopen is exact."
|
||||
]
|
||||
},
|
||||
"budgets": {
|
||||
"queueBytes": 4096,
|
||||
"taskBytes": 1749,
|
||||
"parentManifestBytes": 24576,
|
||||
"parentStatusBytes": 6144,
|
||||
"evidenceFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextTokens": 3500,
|
||||
"taskLines": 38,
|
||||
"taskTokens": 438
|
||||
},
|
||||
"size": {
|
||||
"documents": [
|
||||
{
|
||||
"path": "docs/EXECUTION_QUEUE.md",
|
||||
"bytes": 2168,
|
||||
"lines": 45,
|
||||
"tokens": 542
|
||||
},
|
||||
{
|
||||
"path": "docs/tasks/M16-GAP-00114.md",
|
||||
"bytes": 1749,
|
||||
"lines": 38,
|
||||
"tokens": 438
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00113/manifest.json",
|
||||
"bytes": 2747,
|
||||
"lines": 29,
|
||||
"tokens": 687
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00113.md",
|
||||
"bytes": 845,
|
||||
"lines": 19,
|
||||
"tokens": 212
|
||||
}
|
||||
],
|
||||
"sourceTokens": 1879,
|
||||
"evidenceFiles": 1,
|
||||
"evidenceBytes": 1981,
|
||||
"evidenceTokens": 496,
|
||||
"totalTokens": 2375,
|
||||
"withinBudget": true
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
{
|
||||
"action": {
|
||||
"channels": [
|
||||
{
|
||||
"frames": [
|
||||
1.0,
|
||||
3.0,
|
||||
5.0
|
||||
],
|
||||
"index": 0,
|
||||
"path": "location",
|
||||
"selected": [
|
||||
false,
|
||||
true,
|
||||
false
|
||||
]
|
||||
},
|
||||
{
|
||||
"frames": [
|
||||
1.0,
|
||||
3.0,
|
||||
5.0
|
||||
],
|
||||
"index": 1,
|
||||
"path": "location",
|
||||
"selected": [
|
||||
false,
|
||||
true,
|
||||
false
|
||||
]
|
||||
},
|
||||
{
|
||||
"frames": [
|
||||
1.0,
|
||||
3.0,
|
||||
5.0
|
||||
],
|
||||
"index": 2,
|
||||
"path": "location",
|
||||
"selected": [
|
||||
false,
|
||||
true,
|
||||
false
|
||||
]
|
||||
}
|
||||
],
|
||||
"name": "WebGapClickSelectObjectAction"
|
||||
},
|
||||
"blenderVersion": "5.2.0 LTS",
|
||||
"click": {
|
||||
"column": true,
|
||||
"deselectAll": true,
|
||||
"frame": 3.0
|
||||
},
|
||||
"fixture": "/home/mes123456/workinf_Blender_Wasm/tests/files/web/generated/M16-GAP-00115-operator-action.clickselect.blend",
|
||||
"fixtureSha256": "862548b70dd61ae3a132854a495648a2e265df2997054cadd1160e135ec3f059",
|
||||
"operation": "ACTION_CLICKSELECT_DESKTOP",
|
||||
"saveReopen": "EXACT",
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00115"
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00115",
|
||||
"operation": "ACTION_CLICKSELECT_LOCAL_EXACT",
|
||||
"fixture": {
|
||||
"path": "tests/files/web/generated/M16-GAP-00115-operator-action.clickselect.blend",
|
||||
"sha256": "862548b70dd61ae3a132854a495648a2e265df2997054cadd1160e135ec3f059"
|
||||
},
|
||||
"desktop": {
|
||||
"status": "EXACT",
|
||||
"report": "tests/golden/M16-GAP-00115/action-clickselect-desktop-report.json",
|
||||
"saveReopen": "EXACT"
|
||||
},
|
||||
"wasm": {
|
||||
"status": "EXACT",
|
||||
"actionId": "action:WebGapClickSelectObjectAction:object:WebGapClickSelectObject",
|
||||
"selectedFrames": [
|
||||
[
|
||||
3
|
||||
],
|
||||
[
|
||||
3
|
||||
],
|
||||
[
|
||||
3
|
||||
]
|
||||
]
|
||||
},
|
||||
"saveReopen": "EXACT",
|
||||
"negative": {
|
||||
"malformedBlend": "REJECTED_WITHOUT_MAIN_MUTATION"
|
||||
},
|
||||
"nextTask": "M16-GAP-00116"
|
||||
}
|
||||
24
tests/golden/M16-GAP-00115/manifest.json
Normal file
24
tests/golden/M16-GAP-00115/manifest.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00115",
|
||||
"parentTask": "M16-GAP-00114",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": true,
|
||||
"runtime": "BLENDER_5_2_LOCAL_EXACT",
|
||||
"operation": "ACTION_CLICKSELECT_LOCAL_EXACT",
|
||||
"status": "done",
|
||||
"artifacts": {
|
||||
"parentManifest": {"path": "tests/golden/M16-GAP-00114/manifest.json", "sha256": "de0839580800f06f6f0d9291a8aabc97083ee19434f94f0a943fc2f2efd11fc1"},
|
||||
"fixture": {"path": "tests/files/web/generated/M16-GAP-00115-operator-action.clickselect.blend", "sha256": "862548b70dd61ae3a132854a495648a2e265df2997054cadd1160e135ec3f059"},
|
||||
"generator": {"path": "tools/web/generated/M16-GAP-00115.py", "sha256": "e91f19fa0f133900cace0b2708ee5a7fcb6efe589e036963b2b0fa6ff5bbaef9"},
|
||||
"desktopChecker": {"path": "tools/web/check-action-clickselect-desktop.py", "sha256": "29f5ab8b8489b38ec874b8bf1d779b45e19934862bec3b730b0f3aee08700f74"},
|
||||
"webChecker": {"path": "tools/web/check-generated-gap.mjs", "sha256": "8e25ee7af735d2c5749d7dd2daba099a401abd952e2f7bfaba43f1ddd5d42244"},
|
||||
"reader": {"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp", "sha256": "89ceabc2ee3fa085a9edfaf66320c88bf91880b7af46530a894af2e7846dc300"},
|
||||
"wasm": {"path": "web/app/src/vendor/blender/web_engine.wasm", "sha256": "857caf1d9976a1e12c55c39dcba35f985ea2841c18e8c0af58000583de4a4e37"},
|
||||
"wasmPublic": {"path": "web/app/public/vendor/blender/web_engine.wasm", "sha256": "857caf1d9976a1e12c55c39dcba35f985ea2841c18e8c0af58000583de4a4e37"},
|
||||
"wasmJs": {"path": "web/app/src/vendor/blender/web_engine.js", "sha256": "9c831d0351ac9d0714cce3b1da748cba416ced3086e3c59595cf24ac4da459ed"},
|
||||
"desktopReport": {"path": "tests/golden/M16-GAP-00115/action-clickselect-desktop-report.json", "sha256": "8f6090591fd02d88ea4714ed6a570bbe1e9315226a7496a1382a1bcfb4a8dfe6"},
|
||||
"webReport": {"path": "tests/golden/M16-GAP-00115/action-clickselect-local-exact-report.json", "sha256": "ca2832eaceaf118bc1ce6b3efef1d5c4f9c63dae410d451b42b42f62316bbe37"}
|
||||
},
|
||||
"nextTask": "M16-GAP-00116"
|
||||
}
|
||||
181
tests/golden/M16-GAP-00115/task-context.json
Normal file
181
tests/golden/M16-GAP-00115/task-context.json
Normal file
@@ -0,0 +1,181 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00115",
|
||||
"parentTask": "M16-GAP-00114",
|
||||
"status": "in_progress",
|
||||
"goal": "Make the same minimal fixture produce observable operator:action.clickselect 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": "operator:action.clickselect",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"implementationClass": "LOCAL_EXACT"
|
||||
},
|
||||
"commands": [
|
||||
"build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00115.py -- tests/files/web/generated/M16-GAP-00115-operator-action.clickselect.blend",
|
||||
"npm --prefix web run test:generated-gap -- --task M16-GAP-00115",
|
||||
"node tools/web/check-generated-gap.mjs --task M16-GAP-00115"
|
||||
],
|
||||
"inputPaths": [
|
||||
"tools/web/generated/M16-GAP-00115.py"
|
||||
],
|
||||
"inputSelection": {
|
||||
"schemaVersion": 1,
|
||||
"limits": {
|
||||
"maxFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextRemainingBytes": 6946,
|
||||
"contextRemainingTokens": 1735
|
||||
},
|
||||
"source": {
|
||||
"bytes": 7054,
|
||||
"tokens": 1765
|
||||
},
|
||||
"selected": [
|
||||
{
|
||||
"path": "tools/web/generated/M16-GAP-00115.py",
|
||||
"bytes": 2658,
|
||||
"tokens": 665
|
||||
}
|
||||
],
|
||||
"excluded": [
|
||||
{
|
||||
"path": "tests/files/web/generated/M16-GAP-00115-operator-action.clickselect.blend",
|
||||
"bytes": 87093,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp",
|
||||
"bytes": 222085,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tools/web/check-generated-gap.mjs",
|
||||
"bytes": 154808,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00115/",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00115.md",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00115/manifest.json",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"files": 1,
|
||||
"bytes": 2658,
|
||||
"tokens": 665
|
||||
}
|
||||
},
|
||||
"exitCriteria": [
|
||||
"desktop fixture evidence exists",
|
||||
"WASM uses the same fixture",
|
||||
"comparator passes",
|
||||
"save/reopen preserves Main",
|
||||
"manifest hashes all artifacts"
|
||||
],
|
||||
"nextTask": "M16-GAP-00116",
|
||||
"sourceDocuments": {
|
||||
"queue": "docs/EXECUTION_QUEUE.md",
|
||||
"taskCard": "docs/tasks/M16-GAP-00115.md",
|
||||
"taskIndex": "tests/golden/M15-03A/task-index.json",
|
||||
"parentManifest": "tests/golden/M16-GAP-00114/manifest.json",
|
||||
"parentStatus": "docs/status/M16-GAP-00114.md"
|
||||
},
|
||||
"readPolicy": {
|
||||
"required": [
|
||||
"docs/EXECUTION_QUEUE.md",
|
||||
"docs/tasks/M16-GAP-00115.md",
|
||||
"tests/golden/M16-GAP-00114/manifest.json",
|
||||
"docs/status/M16-GAP-00114.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-00114",
|
||||
"parentTask": "M16-GAP-00113",
|
||||
"status": "done",
|
||||
"nextTask": "M16-GAP-00115",
|
||||
"artifactCount": 11
|
||||
},
|
||||
"statusSummary": [
|
||||
"# M16-GAP-00114 Status",
|
||||
"status: done",
|
||||
"task: action.clean operator LOCAL_EXACT slice",
|
||||
"updated: 2026-08-20 America/New_York",
|
||||
"scope: Action Editor clean operation on `object:WebGapCleanObject`.",
|
||||
"evidence:",
|
||||
"- Blender generator creates three location channels with frames 1, 3, and 5 and executes `bpy.ops.action.clean(threshold=0.01, channels=False)` in a real Action Editor context; each channel retains the single frame at 1.",
|
||||
"- WASM/Main reads the same fixture with three matching channels and one keyframe per channel; save/reopen is exact."
|
||||
]
|
||||
},
|
||||
"budgets": {
|
||||
"queueBytes": 4096,
|
||||
"taskBytes": 1779,
|
||||
"parentManifestBytes": 24576,
|
||||
"parentStatusBytes": 6144,
|
||||
"evidenceFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextTokens": 3500,
|
||||
"taskLines": 38,
|
||||
"taskTokens": 445
|
||||
},
|
||||
"size": {
|
||||
"documents": [
|
||||
{
|
||||
"path": "docs/EXECUTION_QUEUE.md",
|
||||
"bytes": 2168,
|
||||
"lines": 45,
|
||||
"tokens": 542
|
||||
},
|
||||
{
|
||||
"path": "docs/tasks/M16-GAP-00115.md",
|
||||
"bytes": 1779,
|
||||
"lines": 38,
|
||||
"tokens": 445
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00114/manifest.json",
|
||||
"bytes": 2225,
|
||||
"lines": 58,
|
||||
"tokens": 557
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00114.md",
|
||||
"bytes": 882,
|
||||
"lines": 19,
|
||||
"tokens": 221
|
||||
}
|
||||
],
|
||||
"sourceTokens": 1765,
|
||||
"evidenceFiles": 1,
|
||||
"evidenceBytes": 2658,
|
||||
"evidenceTokens": 665,
|
||||
"totalTokens": 2430,
|
||||
"withinBudget": true
|
||||
}
|
||||
}
|
||||
60
tests/golden/M16-GAP-00116/action-copy-desktop-report.json
Normal file
60
tests/golden/M16-GAP-00116/action-copy-desktop-report.json
Normal file
@@ -0,0 +1,60 @@
|
||||
{
|
||||
"action": {
|
||||
"channels": [
|
||||
{
|
||||
"frames": [
|
||||
1.0,
|
||||
3.0,
|
||||
5.0
|
||||
],
|
||||
"index": 0,
|
||||
"path": "location",
|
||||
"selected": [
|
||||
false,
|
||||
true,
|
||||
false
|
||||
]
|
||||
},
|
||||
{
|
||||
"frames": [
|
||||
1.0,
|
||||
3.0,
|
||||
5.0
|
||||
],
|
||||
"index": 1,
|
||||
"path": "location",
|
||||
"selected": [
|
||||
false,
|
||||
true,
|
||||
false
|
||||
]
|
||||
},
|
||||
{
|
||||
"frames": [
|
||||
1.0,
|
||||
3.0,
|
||||
5.0
|
||||
],
|
||||
"index": 2,
|
||||
"path": "location",
|
||||
"selected": [
|
||||
false,
|
||||
true,
|
||||
false
|
||||
]
|
||||
}
|
||||
],
|
||||
"name": "WebGapCopyObjectAction"
|
||||
},
|
||||
"blenderVersion": "5.2.0 LTS",
|
||||
"copiedFrames": [
|
||||
3.0
|
||||
],
|
||||
"fixture": "/home/mes123456/workinf_Blender_Wasm/tests/files/web/generated/M16-GAP-00116-operator-action.copy.blend",
|
||||
"fixtureSha256": "d291508ed19a9ba575908253a13310eab58dffa168cf07b401816f2ffd6a5448",
|
||||
"mainMutation": "NONE",
|
||||
"operation": "ACTION_COPY_DESKTOP",
|
||||
"saveReopen": "EXACT",
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00116"
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00116",
|
||||
"operation": "ACTION_COPY_LOCAL_EXACT",
|
||||
"fixture": {
|
||||
"path": "tests/files/web/generated/M16-GAP-00116-operator-action.copy.blend",
|
||||
"sha256": "d291508ed19a9ba575908253a13310eab58dffa168cf07b401816f2ffd6a5448"
|
||||
},
|
||||
"desktop": {
|
||||
"status": "EXACT",
|
||||
"report": "tests/golden/M16-GAP-00116/action-copy-desktop-report.json",
|
||||
"saveReopen": "EXACT",
|
||||
"mainMutation": "NONE"
|
||||
},
|
||||
"wasm": {
|
||||
"status": "EXACT",
|
||||
"actionId": "action:WebGapCopyObjectAction:object:WebGapCopyObject",
|
||||
"copiedFrames": [
|
||||
3
|
||||
],
|
||||
"selectedFrames": [
|
||||
[
|
||||
3
|
||||
],
|
||||
[
|
||||
3
|
||||
],
|
||||
[
|
||||
3
|
||||
]
|
||||
]
|
||||
},
|
||||
"saveReopen": "EXACT",
|
||||
"negative": {
|
||||
"malformedBlend": "REJECTED_WITHOUT_MAIN_MUTATION"
|
||||
},
|
||||
"nextTask": "M16-GAP-00117"
|
||||
}
|
||||
24
tests/golden/M16-GAP-00116/manifest.json
Normal file
24
tests/golden/M16-GAP-00116/manifest.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00116",
|
||||
"parentTask": "M16-GAP-00115",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": true,
|
||||
"runtime": "BLENDER_5_2_LOCAL_EXACT",
|
||||
"operation": "ACTION_COPY_LOCAL_EXACT",
|
||||
"status": "done",
|
||||
"artifacts": {
|
||||
"parentManifest": {"path": "tests/golden/M16-GAP-00115/manifest.json", "sha256": "186aba8a5d9e660604321526dfd3d47b4389f358acdc620bd2966a61f833fc11"},
|
||||
"fixture": {"path": "tests/files/web/generated/M16-GAP-00116-operator-action.copy.blend", "sha256": "d291508ed19a9ba575908253a13310eab58dffa168cf07b401816f2ffd6a5448"},
|
||||
"generator": {"path": "tools/web/generated/M16-GAP-00116.py", "sha256": "318545fd674bc2477d674292bc3c273684978e101c526a258f52af965dc3eb6f"},
|
||||
"desktopChecker": {"path": "tools/web/check-action-copy-desktop.py", "sha256": "d5db0d6d0962ec780faa5a2c6fc1960a7e7d7babfced9d362ca05e46e0889c7c"},
|
||||
"webChecker": {"path": "tools/web/check-generated-gap.mjs", "sha256": "24f6d7bed006c71a4be4d63623e3f58bde0380caa079f592508f65d8d23fefcc"},
|
||||
"reader": {"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp", "sha256": "89ceabc2ee3fa085a9edfaf66320c88bf91880b7af46530a894af2e7846dc300"},
|
||||
"wasm": {"path": "web/app/src/vendor/blender/web_engine.wasm", "sha256": "857caf1d9976a1e12c55c39dcba35f985ea2841c18e8c0af58000583de4a4e37"},
|
||||
"wasmPublic": {"path": "web/app/public/vendor/blender/web_engine.wasm", "sha256": "857caf1d9976a1e12c55c39dcba35f985ea2841c18e8c0af58000583de4a4e37"},
|
||||
"wasmJs": {"path": "web/app/src/vendor/blender/web_engine.js", "sha256": "9c831d0351ac9d0714cce3b1da748cba416ced3086e3c59595cf24ac4da459ed"},
|
||||
"desktopReport": {"path": "tests/golden/M16-GAP-00116/action-copy-desktop-report.json", "sha256": "688cff599ed4b5b6ff17bc79141a040f8f9de59e6912285ae294af68efed0772"},
|
||||
"webReport": {"path": "tests/golden/M16-GAP-00116/action-copy-local-exact-report.json", "sha256": "d1698dbf04e3d7c7983734cdc88c7b109f61e10b33b09192e4576c60e2762b5e"}
|
||||
},
|
||||
"nextTask": "M16-GAP-00117"
|
||||
}
|
||||
181
tests/golden/M16-GAP-00116/task-context.json
Normal file
181
tests/golden/M16-GAP-00116/task-context.json
Normal file
@@ -0,0 +1,181 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00116",
|
||||
"parentTask": "M16-GAP-00115",
|
||||
"status": "in_progress",
|
||||
"goal": "Make the same minimal fixture produce observable operator:action.copy 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": "operator:action.copy",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"implementationClass": "LOCAL_EXACT"
|
||||
},
|
||||
"commands": [
|
||||
"build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00116.py -- tests/files/web/generated/M16-GAP-00116-operator-action.copy.blend",
|
||||
"npm --prefix web run test:generated-gap -- --task M16-GAP-00116",
|
||||
"node tools/web/check-generated-gap.mjs --task M16-GAP-00116"
|
||||
],
|
||||
"inputPaths": [
|
||||
"tools/web/generated/M16-GAP-00116.py"
|
||||
],
|
||||
"inputSelection": {
|
||||
"schemaVersion": 1,
|
||||
"limits": {
|
||||
"maxFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextRemainingBytes": 7092,
|
||||
"contextRemainingTokens": 1772
|
||||
},
|
||||
"source": {
|
||||
"bytes": 6908,
|
||||
"tokens": 1728
|
||||
},
|
||||
"selected": [
|
||||
{
|
||||
"path": "tools/web/generated/M16-GAP-00116.py",
|
||||
"bytes": 2388,
|
||||
"tokens": 597
|
||||
}
|
||||
],
|
||||
"excluded": [
|
||||
{
|
||||
"path": "tests/files/web/generated/M16-GAP-00116-operator-action.copy.blend",
|
||||
"bytes": 87090,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp",
|
||||
"bytes": 222085,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tools/web/check-generated-gap.mjs",
|
||||
"bytes": 158344,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00116/",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00116.md",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00116/manifest.json",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"files": 1,
|
||||
"bytes": 2388,
|
||||
"tokens": 597
|
||||
}
|
||||
},
|
||||
"exitCriteria": [
|
||||
"desktop fixture evidence exists",
|
||||
"WASM uses the same fixture",
|
||||
"comparator passes",
|
||||
"save/reopen preserves Main",
|
||||
"manifest hashes all artifacts"
|
||||
],
|
||||
"nextTask": "M16-GAP-00117",
|
||||
"sourceDocuments": {
|
||||
"queue": "docs/EXECUTION_QUEUE.md",
|
||||
"taskCard": "docs/tasks/M16-GAP-00116.md",
|
||||
"taskIndex": "tests/golden/M15-03A/task-index.json",
|
||||
"parentManifest": "tests/golden/M16-GAP-00115/manifest.json",
|
||||
"parentStatus": "docs/status/M16-GAP-00115.md"
|
||||
},
|
||||
"readPolicy": {
|
||||
"required": [
|
||||
"docs/EXECUTION_QUEUE.md",
|
||||
"docs/tasks/M16-GAP-00116.md",
|
||||
"tests/golden/M16-GAP-00115/manifest.json",
|
||||
"docs/status/M16-GAP-00115.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-00115",
|
||||
"parentTask": "M16-GAP-00114",
|
||||
"status": "done",
|
||||
"nextTask": "M16-GAP-00116",
|
||||
"artifactCount": 11
|
||||
},
|
||||
"statusSummary": [
|
||||
"# M16-GAP-00115 Status",
|
||||
"status: done",
|
||||
"task: action.clickselect operator LOCAL_EXACT slice",
|
||||
"updated: 2026-08-20 America/New_York",
|
||||
"scope: Action Editor click-select operation on `object:WebGapClickSelectObject`.",
|
||||
"evidence:",
|
||||
"- Blender generator creates three location channels with frames 1, 3, and 5, frames the Action Editor, and executes `bpy.ops.action.clickselect` at frame 3 with column selection; frame 3 is selected in all three channels.",
|
||||
"- WASM/Main reads the same fixture with selected keyframe metadata, matching frame-3 selections, and save/reopen is exact."
|
||||
]
|
||||
},
|
||||
"budgets": {
|
||||
"queueBytes": 4096,
|
||||
"taskBytes": 1744,
|
||||
"parentManifestBytes": 24576,
|
||||
"parentStatusBytes": 6144,
|
||||
"evidenceFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextTokens": 3500,
|
||||
"taskLines": 38,
|
||||
"taskTokens": 436
|
||||
},
|
||||
"size": {
|
||||
"documents": [
|
||||
{
|
||||
"path": "docs/EXECUTION_QUEUE.md",
|
||||
"bytes": 2168,
|
||||
"lines": 45,
|
||||
"tokens": 542
|
||||
},
|
||||
{
|
||||
"path": "docs/tasks/M16-GAP-00116.md",
|
||||
"bytes": 1744,
|
||||
"lines": 38,
|
||||
"tokens": 436
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00115/manifest.json",
|
||||
"bytes": 2057,
|
||||
"lines": 25,
|
||||
"tokens": 515
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00115.md",
|
||||
"bytes": 939,
|
||||
"lines": 19,
|
||||
"tokens": 235
|
||||
}
|
||||
],
|
||||
"sourceTokens": 1728,
|
||||
"evidenceFiles": 1,
|
||||
"evidenceBytes": 2388,
|
||||
"evidenceTokens": 597,
|
||||
"totalTokens": 2325,
|
||||
"withinBudget": true
|
||||
}
|
||||
}
|
||||
53
tests/golden/M16-GAP-00117/action-delete-desktop-report.json
Normal file
53
tests/golden/M16-GAP-00117/action-delete-desktop-report.json
Normal file
@@ -0,0 +1,53 @@
|
||||
{
|
||||
"action": {
|
||||
"channels": [
|
||||
{
|
||||
"frames": [
|
||||
1.0,
|
||||
5.0
|
||||
],
|
||||
"index": 0,
|
||||
"path": "location",
|
||||
"selected": [
|
||||
false,
|
||||
false
|
||||
]
|
||||
},
|
||||
{
|
||||
"frames": [
|
||||
1.0,
|
||||
5.0
|
||||
],
|
||||
"index": 1,
|
||||
"path": "location",
|
||||
"selected": [
|
||||
false,
|
||||
false
|
||||
]
|
||||
},
|
||||
{
|
||||
"frames": [
|
||||
1.0,
|
||||
5.0
|
||||
],
|
||||
"index": 2,
|
||||
"path": "location",
|
||||
"selected": [
|
||||
false,
|
||||
false
|
||||
]
|
||||
}
|
||||
],
|
||||
"name": "WebGapDeleteObjectAction"
|
||||
},
|
||||
"blenderVersion": "5.2.0 LTS",
|
||||
"deletedFrames": [
|
||||
3.0
|
||||
],
|
||||
"fixture": "/home/mes123456/workinf_Blender_Wasm/tests/files/web/generated/M16-GAP-00117-operator-action.delete.blend",
|
||||
"fixtureSha256": "5112a074973e086eb2eaa00e604786dc2d7b8dffb1691de800c9dde97592de78",
|
||||
"operation": "ACTION_DELETE_DESKTOP",
|
||||
"saveReopen": "EXACT",
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00117"
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00117",
|
||||
"operation": "ACTION_DELETE_LOCAL_EXACT",
|
||||
"fixture": {
|
||||
"path": "tests/files/web/generated/M16-GAP-00117-operator-action.delete.blend",
|
||||
"sha256": "5112a074973e086eb2eaa00e604786dc2d7b8dffb1691de800c9dde97592de78"
|
||||
},
|
||||
"desktop": {
|
||||
"status": "EXACT",
|
||||
"report": "tests/golden/M16-GAP-00117/action-delete-desktop-report.json",
|
||||
"saveReopen": "EXACT"
|
||||
},
|
||||
"wasm": {
|
||||
"status": "EXACT",
|
||||
"actionId": "action:WebGapDeleteObjectAction:object:WebGapDeleteObject",
|
||||
"deletedFrames": [
|
||||
3
|
||||
],
|
||||
"remainingFrames": [
|
||||
[
|
||||
1,
|
||||
5
|
||||
],
|
||||
[
|
||||
1,
|
||||
5
|
||||
],
|
||||
[
|
||||
1,
|
||||
5
|
||||
]
|
||||
]
|
||||
},
|
||||
"saveReopen": "EXACT",
|
||||
"negative": {
|
||||
"malformedBlend": "REJECTED_WITHOUT_MAIN_MUTATION"
|
||||
},
|
||||
"nextTask": "M16-GAP-00118"
|
||||
}
|
||||
24
tests/golden/M16-GAP-00117/manifest.json
Normal file
24
tests/golden/M16-GAP-00117/manifest.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00117",
|
||||
"parentTask": "M16-GAP-00116",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": true,
|
||||
"runtime": "BLENDER_5_2_LOCAL_EXACT",
|
||||
"operation": "ACTION_DELETE_LOCAL_EXACT",
|
||||
"status": "done",
|
||||
"artifacts": {
|
||||
"parentManifest": {"path": "tests/golden/M16-GAP-00116/manifest.json", "sha256": "36ca61fedaeec33d50141058224f4907f09535027a966552d9edaf5922111870"},
|
||||
"fixture": {"path": "tests/files/web/generated/M16-GAP-00117-operator-action.delete.blend", "sha256": "5112a074973e086eb2eaa00e604786dc2d7b8dffb1691de800c9dde97592de78"},
|
||||
"generator": {"path": "tools/web/generated/M16-GAP-00117.py", "sha256": "517943d741eaceb53e7f8d89a8bed07282afa157d4357e3a25690fb8f5df89b4"},
|
||||
"desktopChecker": {"path": "tools/web/check-action-delete-desktop.py", "sha256": "3655cc712601ed60095f850b4a419499007e13a7cceeebcd6c38bf42f7a1a6c0"},
|
||||
"webChecker": {"path": "tools/web/check-generated-gap.mjs", "sha256": "f0a2a884678cbee7c3ef19fa0227328ac19268118249fc13109834ffb712b71d"},
|
||||
"reader": {"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp", "sha256": "89ceabc2ee3fa085a9edfaf66320c88bf91880b7af46530a894af2e7846dc300"},
|
||||
"wasm": {"path": "web/app/src/vendor/blender/web_engine.wasm", "sha256": "857caf1d9976a1e12c55c39dcba35f985ea2841c18e8c0af58000583de4a4e37"},
|
||||
"wasmPublic": {"path": "web/app/public/vendor/blender/web_engine.wasm", "sha256": "857caf1d9976a1e12c55c39dcba35f985ea2841c18e8c0af58000583de4a4e37"},
|
||||
"wasmJs": {"path": "web/app/src/vendor/blender/web_engine.js", "sha256": "9c831d0351ac9d0714cce3b1da748cba416ced3086e3c59595cf24ac4da459ed"},
|
||||
"desktopReport": {"path": "tests/golden/M16-GAP-00117/action-delete-desktop-report.json", "sha256": "9c3f91e026c110496626bc0214a719c5475c71357572f6861cc0287a2948169e"},
|
||||
"webReport": {"path": "tests/golden/M16-GAP-00117/action-delete-local-exact-report.json", "sha256": "a2b9dda82da0c7a7751ac7bf36a958a624291a8ebe4cea12d54587fb3f441aa2"}
|
||||
},
|
||||
"nextTask": "M16-GAP-00118"
|
||||
}
|
||||
181
tests/golden/M16-GAP-00117/task-context.json
Normal file
181
tests/golden/M16-GAP-00117/task-context.json
Normal file
@@ -0,0 +1,181 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00117",
|
||||
"parentTask": "M16-GAP-00116",
|
||||
"status": "in_progress",
|
||||
"goal": "Make the same minimal fixture produce observable operator:action.delete 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": "operator:action.delete",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"implementationClass": "LOCAL_EXACT"
|
||||
},
|
||||
"commands": [
|
||||
"build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00117.py -- tests/files/web/generated/M16-GAP-00117-operator-action.delete.blend",
|
||||
"npm --prefix web run test:generated-gap -- --task M16-GAP-00117",
|
||||
"node tools/web/check-generated-gap.mjs --task M16-GAP-00117"
|
||||
],
|
||||
"inputPaths": [
|
||||
"tools/web/generated/M16-GAP-00117.py"
|
||||
],
|
||||
"inputSelection": {
|
||||
"schemaVersion": 1,
|
||||
"limits": {
|
||||
"maxFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextRemainingBytes": 7255,
|
||||
"contextRemainingTokens": 1812
|
||||
},
|
||||
"source": {
|
||||
"bytes": 6745,
|
||||
"tokens": 1688
|
||||
},
|
||||
"selected": [
|
||||
{
|
||||
"path": "tools/web/generated/M16-GAP-00117.py",
|
||||
"bytes": 2216,
|
||||
"tokens": 554
|
||||
}
|
||||
],
|
||||
"excluded": [
|
||||
{
|
||||
"path": "tests/files/web/generated/M16-GAP-00117-operator-action.delete.blend",
|
||||
"bytes": 86816,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp",
|
||||
"bytes": 222085,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tools/web/check-generated-gap.mjs",
|
||||
"bytes": 161758,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00117/",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00117.md",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00117/manifest.json",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"files": 1,
|
||||
"bytes": 2216,
|
||||
"tokens": 554
|
||||
}
|
||||
},
|
||||
"exitCriteria": [
|
||||
"desktop fixture evidence exists",
|
||||
"WASM uses the same fixture",
|
||||
"comparator passes",
|
||||
"save/reopen preserves Main",
|
||||
"manifest hashes all artifacts"
|
||||
],
|
||||
"nextTask": "M16-GAP-00118",
|
||||
"sourceDocuments": {
|
||||
"queue": "docs/EXECUTION_QUEUE.md",
|
||||
"taskCard": "docs/tasks/M16-GAP-00117.md",
|
||||
"taskIndex": "tests/golden/M15-03A/task-index.json",
|
||||
"parentManifest": "tests/golden/M16-GAP-00116/manifest.json",
|
||||
"parentStatus": "docs/status/M16-GAP-00116.md"
|
||||
},
|
||||
"readPolicy": {
|
||||
"required": [
|
||||
"docs/EXECUTION_QUEUE.md",
|
||||
"docs/tasks/M16-GAP-00117.md",
|
||||
"tests/golden/M16-GAP-00116/manifest.json",
|
||||
"docs/status/M16-GAP-00116.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-00116",
|
||||
"parentTask": "M16-GAP-00115",
|
||||
"status": "done",
|
||||
"nextTask": "M16-GAP-00117",
|
||||
"artifactCount": 11
|
||||
},
|
||||
"statusSummary": [
|
||||
"# M16-GAP-00116 Status",
|
||||
"status: done",
|
||||
"task: action.copy operator LOCAL_EXACT slice",
|
||||
"updated: 2026-08-20 America/New_York",
|
||||
"scope: Action Editor copy operation on `object:WebGapCopyObject`.",
|
||||
"evidence:",
|
||||
"- Blender generator selects frame 3 in all three location channels and executes `bpy.ops.action.copy` in a real Action Editor context.",
|
||||
"- Desktop and WASM/Main observe the same selected source keys; copy leaves Main unchanged and save/reopen is exact."
|
||||
]
|
||||
},
|
||||
"budgets": {
|
||||
"queueBytes": 4096,
|
||||
"taskBytes": 1754,
|
||||
"parentManifestBytes": 24576,
|
||||
"parentStatusBytes": 6144,
|
||||
"evidenceFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextTokens": 3500,
|
||||
"taskLines": 38,
|
||||
"taskTokens": 439
|
||||
},
|
||||
"size": {
|
||||
"documents": [
|
||||
{
|
||||
"path": "docs/EXECUTION_QUEUE.md",
|
||||
"bytes": 2168,
|
||||
"lines": 45,
|
||||
"tokens": 542
|
||||
},
|
||||
{
|
||||
"path": "docs/tasks/M16-GAP-00117.md",
|
||||
"bytes": 1754,
|
||||
"lines": 38,
|
||||
"tokens": 439
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00116/manifest.json",
|
||||
"bytes": 2022,
|
||||
"lines": 25,
|
||||
"tokens": 506
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00116.md",
|
||||
"bytes": 801,
|
||||
"lines": 19,
|
||||
"tokens": 201
|
||||
}
|
||||
],
|
||||
"sourceTokens": 1688,
|
||||
"evidenceFiles": 1,
|
||||
"evidenceBytes": 2216,
|
||||
"evidenceTokens": 554,
|
||||
"totalTokens": 2242,
|
||||
"withinBudget": true
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,65 @@
|
||||
{
|
||||
"action": {
|
||||
"channels": [
|
||||
{
|
||||
"frames": [
|
||||
1.0,
|
||||
3.0,
|
||||
3.0,
|
||||
5.0
|
||||
],
|
||||
"index": 0,
|
||||
"path": "location",
|
||||
"selected": [
|
||||
false,
|
||||
false,
|
||||
true,
|
||||
false
|
||||
]
|
||||
},
|
||||
{
|
||||
"frames": [
|
||||
1.0,
|
||||
3.0,
|
||||
3.0,
|
||||
5.0
|
||||
],
|
||||
"index": 1,
|
||||
"path": "location",
|
||||
"selected": [
|
||||
false,
|
||||
false,
|
||||
true,
|
||||
false
|
||||
]
|
||||
},
|
||||
{
|
||||
"frames": [
|
||||
1.0,
|
||||
3.0,
|
||||
3.0,
|
||||
5.0
|
||||
],
|
||||
"index": 2,
|
||||
"path": "location",
|
||||
"selected": [
|
||||
false,
|
||||
false,
|
||||
true,
|
||||
false
|
||||
]
|
||||
}
|
||||
],
|
||||
"name": "WebGapDuplicateObjectAction"
|
||||
},
|
||||
"blenderVersion": "5.2.0 LTS",
|
||||
"duplicatedFrames": [
|
||||
3.0
|
||||
],
|
||||
"fixture": "/home/mes123456/workinf_Blender_Wasm/tests/files/web/generated/M16-GAP-00118-operator-action.duplicate.blend",
|
||||
"fixtureSha256": "090e668d61cbdf9a9618c3f592e8337b1776386ab71dda115aacd3591e5a2718",
|
||||
"operation": "ACTION_DUPLICATE_DESKTOP",
|
||||
"saveReopen": "EXACT",
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00118"
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00118",
|
||||
"operation": "ACTION_DUPLICATE_LOCAL_EXACT",
|
||||
"fixture": {
|
||||
"path": "tests/files/web/generated/M16-GAP-00118-operator-action.duplicate.blend",
|
||||
"sha256": "090e668d61cbdf9a9618c3f592e8337b1776386ab71dda115aacd3591e5a2718"
|
||||
},
|
||||
"desktop": {
|
||||
"status": "EXACT",
|
||||
"report": "tests/golden/M16-GAP-00118/action-duplicate-desktop-report.json",
|
||||
"saveReopen": "EXACT"
|
||||
},
|
||||
"wasm": {
|
||||
"status": "EXACT",
|
||||
"actionId": "action:WebGapDuplicateObjectAction:object:WebGapDuplicateObject",
|
||||
"duplicatedFrames": [
|
||||
3
|
||||
],
|
||||
"keyframesPerChannel": [
|
||||
[
|
||||
1,
|
||||
3,
|
||||
3,
|
||||
5
|
||||
],
|
||||
[
|
||||
1,
|
||||
3,
|
||||
3,
|
||||
5
|
||||
],
|
||||
[
|
||||
1,
|
||||
3,
|
||||
3,
|
||||
5
|
||||
]
|
||||
]
|
||||
},
|
||||
"saveReopen": "EXACT",
|
||||
"negative": {
|
||||
"malformedBlend": "REJECTED_WITHOUT_MAIN_MUTATION"
|
||||
},
|
||||
"nextTask": "M16-GAP-00119"
|
||||
}
|
||||
24
tests/golden/M16-GAP-00118/manifest.json
Normal file
24
tests/golden/M16-GAP-00118/manifest.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00118",
|
||||
"parentTask": "M16-GAP-00117",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": true,
|
||||
"runtime": "BLENDER_5_2_LOCAL_EXACT",
|
||||
"operation": "ACTION_DUPLICATE_LOCAL_EXACT",
|
||||
"status": "done",
|
||||
"artifacts": {
|
||||
"parentManifest": {"path": "tests/golden/M16-GAP-00117/manifest.json", "sha256": "d8f39b623121af30f36767bf0a89c3e4aba7ae23802563023aa7362b814d8da1"},
|
||||
"fixture": {"path": "tests/files/web/generated/M16-GAP-00118-operator-action.duplicate.blend", "sha256": "090e668d61cbdf9a9618c3f592e8337b1776386ab71dda115aacd3591e5a2718"},
|
||||
"generator": {"path": "tools/web/generated/M16-GAP-00118.py", "sha256": "6829baf79faa5225c6fb8a18201a5d91a2371ac4480ba1180534c7e8a8e89624"},
|
||||
"desktopChecker": {"path": "tools/web/check-action-duplicate-desktop.py", "sha256": "281551ded3cdad0c4abc4e9b937b99e37ee51ecdfdb923137afc3ce7b0c5b29f"},
|
||||
"webChecker": {"path": "tools/web/check-generated-gap.mjs", "sha256": "6c1303e38d822e463063f02fdaf32a6469de4573df375750c2cd13b1320ec190"},
|
||||
"reader": {"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp", "sha256": "89ceabc2ee3fa085a9edfaf66320c88bf91880b7af46530a894af2e7846dc300"},
|
||||
"wasm": {"path": "web/app/src/vendor/blender/web_engine.wasm", "sha256": "857caf1d9976a1e12c55c39dcba35f985ea2841c18e8c0af58000583de4a4e37"},
|
||||
"wasmPublic": {"path": "web/app/public/vendor/blender/web_engine.wasm", "sha256": "857caf1d9976a1e12c55c39dcba35f985ea2841c18e8c0af58000583de4a4e37"},
|
||||
"wasmJs": {"path": "web/app/src/vendor/blender/web_engine.js", "sha256": "9c831d0351ac9d0714cce3b1da748cba416ced3086e3c59595cf24ac4da459ed"},
|
||||
"desktopReport": {"path": "tests/golden/M16-GAP-00118/action-duplicate-desktop-report.json", "sha256": "1b84545f6b5f01877c191170b8b5a0d21035e5448373506b4cca50399780e1be"},
|
||||
"webReport": {"path": "tests/golden/M16-GAP-00118/action-duplicate-local-exact-report.json", "sha256": "31b61f287906adee9b83d2c05cb302b76012cf5284f96cf45a8ea349a855c320"}
|
||||
},
|
||||
"nextTask": "M16-GAP-00119"
|
||||
}
|
||||
181
tests/golden/M16-GAP-00118/task-context.json
Normal file
181
tests/golden/M16-GAP-00118/task-context.json
Normal file
@@ -0,0 +1,181 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00118",
|
||||
"parentTask": "M16-GAP-00117",
|
||||
"status": "in_progress",
|
||||
"goal": "Make the same minimal fixture produce observable operator:action.duplicate 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": "operator:action.duplicate",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"implementationClass": "LOCAL_EXACT"
|
||||
},
|
||||
"commands": [
|
||||
"build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00118.py -- tests/files/web/generated/M16-GAP-00118-operator-action.duplicate.blend",
|
||||
"npm --prefix web run test:generated-gap -- --task M16-GAP-00118",
|
||||
"node tools/web/check-generated-gap.mjs --task M16-GAP-00118"
|
||||
],
|
||||
"inputPaths": [
|
||||
"tools/web/generated/M16-GAP-00118.py"
|
||||
],
|
||||
"inputSelection": {
|
||||
"schemaVersion": 1,
|
||||
"limits": {
|
||||
"maxFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextRemainingBytes": 7169,
|
||||
"contextRemainingTokens": 1791
|
||||
},
|
||||
"source": {
|
||||
"bytes": 6831,
|
||||
"tokens": 1709
|
||||
},
|
||||
"selected": [
|
||||
{
|
||||
"path": "tools/web/generated/M16-GAP-00118.py",
|
||||
"bytes": 2227,
|
||||
"tokens": 557
|
||||
}
|
||||
],
|
||||
"excluded": [
|
||||
{
|
||||
"path": "tests/files/web/generated/M16-GAP-00118-operator-action.duplicate.blend",
|
||||
"bytes": 86896,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp",
|
||||
"bytes": 222085,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tools/web/check-generated-gap.mjs",
|
||||
"bytes": 165216,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00118/",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00118.md",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00118/manifest.json",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"files": 1,
|
||||
"bytes": 2227,
|
||||
"tokens": 557
|
||||
}
|
||||
},
|
||||
"exitCriteria": [
|
||||
"desktop fixture evidence exists",
|
||||
"WASM uses the same fixture",
|
||||
"comparator passes",
|
||||
"save/reopen preserves Main",
|
||||
"manifest hashes all artifacts"
|
||||
],
|
||||
"nextTask": "M16-GAP-00119",
|
||||
"sourceDocuments": {
|
||||
"queue": "docs/EXECUTION_QUEUE.md",
|
||||
"taskCard": "docs/tasks/M16-GAP-00118.md",
|
||||
"taskIndex": "tests/golden/M15-03A/task-index.json",
|
||||
"parentManifest": "tests/golden/M16-GAP-00117/manifest.json",
|
||||
"parentStatus": "docs/status/M16-GAP-00117.md"
|
||||
},
|
||||
"readPolicy": {
|
||||
"required": [
|
||||
"docs/EXECUTION_QUEUE.md",
|
||||
"docs/tasks/M16-GAP-00118.md",
|
||||
"tests/golden/M16-GAP-00117/manifest.json",
|
||||
"docs/status/M16-GAP-00117.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-00117",
|
||||
"parentTask": "M16-GAP-00116",
|
||||
"status": "done",
|
||||
"nextTask": "M16-GAP-00118",
|
||||
"artifactCount": 11
|
||||
},
|
||||
"statusSummary": [
|
||||
"# M16-GAP-00117 Status",
|
||||
"status: done",
|
||||
"task: action.delete operator LOCAL_EXACT slice",
|
||||
"updated: 2026-08-20 America/New_York",
|
||||
"scope: Action Editor delete operation on `object:WebGapDeleteObject`.",
|
||||
"evidence:",
|
||||
"- Blender generator selects frame 3 in all three location channels and executes `bpy.ops.action.delete(confirm=False)` in a real Action Editor context; each channel retains frames 1 and 5.",
|
||||
"- WASM/Main reads the same three channels with matching `[1, 5]` keyframes; save/reopen is exact."
|
||||
]
|
||||
},
|
||||
"budgets": {
|
||||
"queueBytes": 4096,
|
||||
"taskBytes": 1769,
|
||||
"parentManifestBytes": 24576,
|
||||
"parentStatusBytes": 6144,
|
||||
"evidenceFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextTokens": 3500,
|
||||
"taskLines": 38,
|
||||
"taskTokens": 443
|
||||
},
|
||||
"size": {
|
||||
"documents": [
|
||||
{
|
||||
"path": "docs/EXECUTION_QUEUE.md",
|
||||
"bytes": 2168,
|
||||
"lines": 45,
|
||||
"tokens": 542
|
||||
},
|
||||
{
|
||||
"path": "docs/tasks/M16-GAP-00118.md",
|
||||
"bytes": 1769,
|
||||
"lines": 38,
|
||||
"tokens": 443
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00117/manifest.json",
|
||||
"bytes": 2032,
|
||||
"lines": 25,
|
||||
"tokens": 508
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00117.md",
|
||||
"bytes": 862,
|
||||
"lines": 19,
|
||||
"tokens": 216
|
||||
}
|
||||
],
|
||||
"sourceTokens": 1709,
|
||||
"evidenceFiles": 1,
|
||||
"evidenceBytes": 2227,
|
||||
"evidenceTokens": 557,
|
||||
"totalTokens": 2266,
|
||||
"withinBudget": true
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
{
|
||||
"action": {
|
||||
"channels": [
|
||||
{
|
||||
"frames": [
|
||||
1.0,
|
||||
3.0,
|
||||
5.0
|
||||
],
|
||||
"index": 0,
|
||||
"path": "location",
|
||||
"selected": [
|
||||
false,
|
||||
false,
|
||||
true
|
||||
]
|
||||
},
|
||||
{
|
||||
"frames": [
|
||||
1.0,
|
||||
3.0,
|
||||
5.0
|
||||
],
|
||||
"index": 1,
|
||||
"path": "location",
|
||||
"selected": [
|
||||
false,
|
||||
false,
|
||||
true
|
||||
]
|
||||
},
|
||||
{
|
||||
"frames": [
|
||||
1.0,
|
||||
3.0,
|
||||
5.0
|
||||
],
|
||||
"index": 2,
|
||||
"path": "location",
|
||||
"selected": [
|
||||
false,
|
||||
false,
|
||||
true
|
||||
]
|
||||
}
|
||||
],
|
||||
"name": "WebGapDuplicateMoveObjectAction"
|
||||
},
|
||||
"blenderVersion": "5.2.0 LTS",
|
||||
"duplicatedFrame": 3.0,
|
||||
"fixture": "/home/mes123456/workinf_Blender_Wasm/tests/files/web/generated/M16-GAP-00119-operator-action.duplicate_move.blend",
|
||||
"fixtureSha256": "1a40c2e579708731f99bd4f25d255acb3be51431c86fe19d89f741043e4dc085",
|
||||
"operation": "ACTION_DUPLICATE_MOVE_DESKTOP",
|
||||
"saveReopen": "EXACT",
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00119",
|
||||
"timeOffset": 2.0
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00119",
|
||||
"operation": "ACTION_DUPLICATE_MOVE_LOCAL_EXACT",
|
||||
"fixture": {
|
||||
"path": "tests/files/web/generated/M16-GAP-00119-operator-action.duplicate_move.blend",
|
||||
"sha256": "1a40c2e579708731f99bd4f25d255acb3be51431c86fe19d89f741043e4dc085"
|
||||
},
|
||||
"desktop": {
|
||||
"status": "EXACT",
|
||||
"report": "tests/golden/M16-GAP-00119/action-duplicate-move-desktop-report.json",
|
||||
"saveReopen": "EXACT"
|
||||
},
|
||||
"wasm": {
|
||||
"status": "EXACT",
|
||||
"actionId": "action:WebGapDuplicateMoveObjectAction:object:WebGapDuplicateMoveObject",
|
||||
"sourceFrame": 3,
|
||||
"movedFrame": 5,
|
||||
"timeOffset": 2,
|
||||
"selectedFrames": [
|
||||
[
|
||||
5
|
||||
],
|
||||
[
|
||||
5
|
||||
],
|
||||
[
|
||||
5
|
||||
]
|
||||
]
|
||||
},
|
||||
"saveReopen": "EXACT",
|
||||
"negative": {
|
||||
"malformedBlend": "REJECTED_WITHOUT_MAIN_MUTATION"
|
||||
},
|
||||
"nextTask": "M16-GAP-00120"
|
||||
}
|
||||
24
tests/golden/M16-GAP-00119/manifest.json
Normal file
24
tests/golden/M16-GAP-00119/manifest.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00119",
|
||||
"parentTask": "M16-GAP-00118",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": true,
|
||||
"runtime": "BLENDER_5_2_LOCAL_EXACT",
|
||||
"operation": "ACTION_DUPLICATE_MOVE_LOCAL_EXACT",
|
||||
"status": "done",
|
||||
"artifacts": {
|
||||
"parentManifest": {"path": "tests/golden/M16-GAP-00118/manifest.json", "sha256": "63e6ecd36ef8c608d7c136ad5a2d62163d05802408f61264da99c3db50782b65"},
|
||||
"fixture": {"path": "tests/files/web/generated/M16-GAP-00119-operator-action.duplicate_move.blend", "sha256": "1a40c2e579708731f99bd4f25d255acb3be51431c86fe19d89f741043e4dc085"},
|
||||
"generator": {"path": "tools/web/generated/M16-GAP-00119.py", "sha256": "2db8ee3d18c634ae2f28d1dd2a3ced2bf9490be578795b59a1ca9e96eb1992af"},
|
||||
"desktopChecker": {"path": "tools/web/check-action-duplicate-move-desktop.py", "sha256": "7738a3a07f4971ed3f564d3cd6d09243853a602ac1253056ac5bdaa9522c91a5"},
|
||||
"webChecker": {"path": "tools/web/check-generated-gap.mjs", "sha256": "5593cb70b853d6f259644efd7f513d97ba4119a9e00004c0a8b5da764be3942c"},
|
||||
"reader": {"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp", "sha256": "89ceabc2ee3fa085a9edfaf66320c88bf91880b7af46530a894af2e7846dc300"},
|
||||
"wasm": {"path": "web/app/src/vendor/blender/web_engine.wasm", "sha256": "857caf1d9976a1e12c55c39dcba35f985ea2841c18e8c0af58000583de4a4e37"},
|
||||
"wasmPublic": {"path": "web/app/public/vendor/blender/web_engine.wasm", "sha256": "857caf1d9976a1e12c55c39dcba35f985ea2841c18e8c0af58000583de4a4e37"},
|
||||
"wasmJs": {"path": "web/app/src/vendor/blender/web_engine.js", "sha256": "9c831d0351ac9d0714cce3b1da748cba416ced3086e3c59595cf24ac4da459ed"},
|
||||
"desktopReport": {"path": "tests/golden/M16-GAP-00119/action-duplicate-move-desktop-report.json", "sha256": "f1ba7739899913c3478ce9f2e1bfb92b7a73ccebe3176e98d2e9c57072ab7d97"},
|
||||
"webReport": {"path": "tests/golden/M16-GAP-00119/action-duplicate-move-local-exact-report.json", "sha256": "47d8a5de2a50807b33695b011ba1774883c3c8823a6326a3bfc537fab4a2ef52"}
|
||||
},
|
||||
"nextTask": "M16-GAP-00120"
|
||||
}
|
||||
181
tests/golden/M16-GAP-00119/task-context.json
Normal file
181
tests/golden/M16-GAP-00119/task-context.json
Normal file
@@ -0,0 +1,181 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00119",
|
||||
"parentTask": "M16-GAP-00118",
|
||||
"status": "in_progress",
|
||||
"goal": "Make the same minimal fixture produce observable operator:action.duplicate_move 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": "operator:action.duplicate_move",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"implementationClass": "LOCAL_EXACT"
|
||||
},
|
||||
"commands": [
|
||||
"build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00119.py -- tests/files/web/generated/M16-GAP-00119-operator-action.duplicate_move.blend",
|
||||
"npm --prefix web run test:generated-gap -- --task M16-GAP-00119",
|
||||
"node tools/web/check-generated-gap.mjs --task M16-GAP-00119"
|
||||
],
|
||||
"inputPaths": [
|
||||
"tools/web/generated/M16-GAP-00119.py"
|
||||
],
|
||||
"inputSelection": {
|
||||
"schemaVersion": 1,
|
||||
"limits": {
|
||||
"maxFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextRemainingBytes": 7151,
|
||||
"contextRemainingTokens": 1787
|
||||
},
|
||||
"source": {
|
||||
"bytes": 6849,
|
||||
"tokens": 1713
|
||||
},
|
||||
"selected": [
|
||||
{
|
||||
"path": "tools/web/generated/M16-GAP-00119.py",
|
||||
"bytes": 2357,
|
||||
"tokens": 590
|
||||
}
|
||||
],
|
||||
"excluded": [
|
||||
{
|
||||
"path": "tests/files/web/generated/M16-GAP-00119-operator-action.duplicate_move.blend",
|
||||
"bytes": 86906,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp",
|
||||
"bytes": 222085,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tools/web/check-generated-gap.mjs",
|
||||
"bytes": 168908,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00119/",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00119.md",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00119/manifest.json",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"files": 1,
|
||||
"bytes": 2357,
|
||||
"tokens": 590
|
||||
}
|
||||
},
|
||||
"exitCriteria": [
|
||||
"desktop fixture evidence exists",
|
||||
"WASM uses the same fixture",
|
||||
"comparator passes",
|
||||
"save/reopen preserves Main",
|
||||
"manifest hashes all artifacts"
|
||||
],
|
||||
"nextTask": "M16-GAP-00120",
|
||||
"sourceDocuments": {
|
||||
"queue": "docs/EXECUTION_QUEUE.md",
|
||||
"taskCard": "docs/tasks/M16-GAP-00119.md",
|
||||
"taskIndex": "tests/golden/M15-03A/task-index.json",
|
||||
"parentManifest": "tests/golden/M16-GAP-00118/manifest.json",
|
||||
"parentStatus": "docs/status/M16-GAP-00118.md"
|
||||
},
|
||||
"readPolicy": {
|
||||
"required": [
|
||||
"docs/EXECUTION_QUEUE.md",
|
||||
"docs/tasks/M16-GAP-00119.md",
|
||||
"tests/golden/M16-GAP-00118/manifest.json",
|
||||
"docs/status/M16-GAP-00118.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-00118",
|
||||
"parentTask": "M16-GAP-00117",
|
||||
"status": "done",
|
||||
"nextTask": "M16-GAP-00119",
|
||||
"artifactCount": 11
|
||||
},
|
||||
"statusSummary": [
|
||||
"# M16-GAP-00118 Status",
|
||||
"status: done",
|
||||
"task: action.duplicate operator LOCAL_EXACT slice",
|
||||
"updated: 2026-08-20 America/New_York",
|
||||
"scope: Action Editor duplicate operation on `object:WebGapDuplicateObject`.",
|
||||
"evidence:",
|
||||
"- Blender generator selects frame 3 in all three location channels and executes `bpy.ops.action.duplicate`; each channel becomes `[1, 3, 3, 5]` with the duplicated key selected.",
|
||||
"- WASM/Main reads the same duplicate keyframes and selected metadata; save/reopen is exact."
|
||||
]
|
||||
},
|
||||
"budgets": {
|
||||
"queueBytes": 4096,
|
||||
"taskBytes": 1794,
|
||||
"parentManifestBytes": 24576,
|
||||
"parentStatusBytes": 6144,
|
||||
"evidenceFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextTokens": 3500,
|
||||
"taskLines": 38,
|
||||
"taskTokens": 449
|
||||
},
|
||||
"size": {
|
||||
"documents": [
|
||||
{
|
||||
"path": "docs/EXECUTION_QUEUE.md",
|
||||
"bytes": 2168,
|
||||
"lines": 45,
|
||||
"tokens": 542
|
||||
},
|
||||
{
|
||||
"path": "docs/tasks/M16-GAP-00119.md",
|
||||
"bytes": 1794,
|
||||
"lines": 38,
|
||||
"tokens": 449
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00118/manifest.json",
|
||||
"bytes": 2047,
|
||||
"lines": 25,
|
||||
"tokens": 512
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00118.md",
|
||||
"bytes": 840,
|
||||
"lines": 19,
|
||||
"tokens": 210
|
||||
}
|
||||
],
|
||||
"sourceTokens": 1713,
|
||||
"evidenceFiles": 1,
|
||||
"evidenceBytes": 2357,
|
||||
"evidenceTokens": 590,
|
||||
"totalTokens": 2303,
|
||||
"withinBudget": true
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,72 @@
|
||||
{
|
||||
"action": {
|
||||
"channels": [
|
||||
{
|
||||
"easing": [
|
||||
"AUTO",
|
||||
"EASE_IN_OUT",
|
||||
"AUTO"
|
||||
],
|
||||
"frames": [
|
||||
1.0,
|
||||
3.0,
|
||||
5.0
|
||||
],
|
||||
"index": 0,
|
||||
"path": "location",
|
||||
"selected": [
|
||||
false,
|
||||
true,
|
||||
false
|
||||
]
|
||||
},
|
||||
{
|
||||
"easing": [
|
||||
"AUTO",
|
||||
"EASE_IN_OUT",
|
||||
"AUTO"
|
||||
],
|
||||
"frames": [
|
||||
1.0,
|
||||
3.0,
|
||||
5.0
|
||||
],
|
||||
"index": 1,
|
||||
"path": "location",
|
||||
"selected": [
|
||||
false,
|
||||
true,
|
||||
false
|
||||
]
|
||||
},
|
||||
{
|
||||
"easing": [
|
||||
"AUTO",
|
||||
"EASE_IN_OUT",
|
||||
"AUTO"
|
||||
],
|
||||
"frames": [
|
||||
1.0,
|
||||
3.0,
|
||||
5.0
|
||||
],
|
||||
"index": 2,
|
||||
"path": "location",
|
||||
"selected": [
|
||||
false,
|
||||
true,
|
||||
false
|
||||
]
|
||||
}
|
||||
],
|
||||
"name": "WebGapEasingTypeObjectAction"
|
||||
},
|
||||
"blenderVersion": "5.2.0 LTS",
|
||||
"easingType": "EASE_IN_OUT",
|
||||
"fixture": "/home/mes123456/workinf_Blender_Wasm/tests/files/web/generated/M16-GAP-00120-operator-action.easing_type.blend",
|
||||
"fixtureSha256": "828206cdfd525388464e7ec281a9968c96a7add8cca8db275641031e14627caa",
|
||||
"operation": "ACTION_EASING_TYPE_DESKTOP",
|
||||
"saveReopen": "EXACT",
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00120"
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00120",
|
||||
"operation": "ACTION_EASING_TYPE_LOCAL_EXACT",
|
||||
"fixture": {
|
||||
"path": "tests/files/web/generated/M16-GAP-00120-operator-action.easing_type.blend",
|
||||
"sha256": "828206cdfd525388464e7ec281a9968c96a7add8cca8db275641031e14627caa"
|
||||
},
|
||||
"desktop": {
|
||||
"status": "EXACT",
|
||||
"report": "tests/golden/M16-GAP-00120/action-easing-type-desktop-report.json",
|
||||
"saveReopen": "EXACT"
|
||||
},
|
||||
"wasm": {
|
||||
"status": "EXACT",
|
||||
"actionId": "action:WebGapEasingTypeObjectAction:object:WebGapEasingTypeObject",
|
||||
"easingType": "EASE_IN_OUT",
|
||||
"easingPerChannel": [
|
||||
[
|
||||
"AUTO",
|
||||
"EASE_IN_OUT",
|
||||
"AUTO"
|
||||
],
|
||||
[
|
||||
"AUTO",
|
||||
"EASE_IN_OUT",
|
||||
"AUTO"
|
||||
],
|
||||
[
|
||||
"AUTO",
|
||||
"EASE_IN_OUT",
|
||||
"AUTO"
|
||||
]
|
||||
]
|
||||
},
|
||||
"saveReopen": "EXACT",
|
||||
"negative": {
|
||||
"malformedBlend": "REJECTED_WITHOUT_MAIN_MUTATION"
|
||||
},
|
||||
"nextTask": "M16-GAP-00121"
|
||||
}
|
||||
24
tests/golden/M16-GAP-00120/manifest.json
Normal file
24
tests/golden/M16-GAP-00120/manifest.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00120",
|
||||
"parentTask": "M16-GAP-00119",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": true,
|
||||
"runtime": "BLENDER_5_2_LOCAL_EXACT",
|
||||
"operation": "ACTION_EASING_TYPE_LOCAL_EXACT",
|
||||
"status": "done",
|
||||
"artifacts": {
|
||||
"parentManifest": {"path": "tests/golden/M16-GAP-00119/manifest.json", "sha256": "960935bcb27b8a77d43b5ebc78f9ab851df84089a90d3dcf1958990cb1243086"},
|
||||
"fixture": {"path": "tests/files/web/generated/M16-GAP-00120-operator-action.easing_type.blend", "sha256": "828206cdfd525388464e7ec281a9968c96a7add8cca8db275641031e14627caa"},
|
||||
"generator": {"path": "tools/web/generated/M16-GAP-00120.py", "sha256": "0db649027d8772539a011bf5b5eb021efbd95728f9af706b4b42a361e88f8c3d"},
|
||||
"desktopChecker": {"path": "tools/web/check-action-easing-type-desktop.py", "sha256": "37233be661cbcf08ece72e5293de7016c4408d3708256902380ba608c7985abf"},
|
||||
"webChecker": {"path": "tools/web/check-generated-gap.mjs", "sha256": "d0a1e69983f066034a01e73275976cf4c42b0d38228148d1335244f3bc5b9e08"},
|
||||
"reader": {"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp", "sha256": "05fcd64096b857b1f80fc829676f5822dd08ac8bd04828059ad9f92c353ba483"},
|
||||
"wasm": {"path": "web/app/src/vendor/blender/web_engine.wasm", "sha256": "31d7f2b4373dd21011446696f71333829f9603c0e3baddab50988023e098b59f"},
|
||||
"wasmPublic": {"path": "web/app/public/vendor/blender/web_engine.wasm", "sha256": "31d7f2b4373dd21011446696f71333829f9603c0e3baddab50988023e098b59f"},
|
||||
"wasmJs": {"path": "web/app/src/vendor/blender/web_engine.js", "sha256": "9c831d0351ac9d0714cce3b1da748cba416ced3086e3c59595cf24ac4da459ed"},
|
||||
"desktopReport": {"path": "tests/golden/M16-GAP-00120/action-easing-type-desktop-report.json", "sha256": "e34d9007483d2913166486f7fe736adae145ca27b1b90240ce36e62c4b8f1bbc"},
|
||||
"webReport": {"path": "tests/golden/M16-GAP-00120/action-easing-type-local-exact-report.json", "sha256": "9ce9af87fc9f42682de1fa7b02f3f320a64965dad5e3a34f808dbb072481896c"}
|
||||
},
|
||||
"nextTask": "M16-GAP-00121"
|
||||
}
|
||||
181
tests/golden/M16-GAP-00120/task-context.json
Normal file
181
tests/golden/M16-GAP-00120/task-context.json
Normal file
@@ -0,0 +1,181 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00120",
|
||||
"parentTask": "M16-GAP-00119",
|
||||
"status": "in_progress",
|
||||
"goal": "Make the same minimal fixture produce observable operator:action.easing_type 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": "operator:action.easing_type",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"implementationClass": "LOCAL_EXACT"
|
||||
},
|
||||
"commands": [
|
||||
"build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00120.py -- tests/files/web/generated/M16-GAP-00120-operator-action.easing_type.blend",
|
||||
"npm --prefix web run test:generated-gap -- --task M16-GAP-00120",
|
||||
"node tools/web/check-generated-gap.mjs --task M16-GAP-00120"
|
||||
],
|
||||
"inputPaths": [
|
||||
"tools/web/generated/M16-GAP-00120.py"
|
||||
],
|
||||
"inputSelection": {
|
||||
"schemaVersion": 1,
|
||||
"limits": {
|
||||
"maxFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextRemainingBytes": 7120,
|
||||
"contextRemainingTokens": 1779
|
||||
},
|
||||
"source": {
|
||||
"bytes": 6880,
|
||||
"tokens": 1721
|
||||
},
|
||||
"selected": [
|
||||
{
|
||||
"path": "tools/web/generated/M16-GAP-00120.py",
|
||||
"bytes": 2243,
|
||||
"tokens": 561
|
||||
}
|
||||
],
|
||||
"excluded": [
|
||||
{
|
||||
"path": "tests/files/web/generated/M16-GAP-00120-operator-action.easing_type.blend",
|
||||
"bytes": 86877,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp",
|
||||
"bytes": 222478,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tools/web/check-generated-gap.mjs",
|
||||
"bytes": 172519,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00120/",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00120.md",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00120/manifest.json",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"files": 1,
|
||||
"bytes": 2243,
|
||||
"tokens": 561
|
||||
}
|
||||
},
|
||||
"exitCriteria": [
|
||||
"desktop fixture evidence exists",
|
||||
"WASM uses the same fixture",
|
||||
"comparator passes",
|
||||
"save/reopen preserves Main",
|
||||
"manifest hashes all artifacts"
|
||||
],
|
||||
"nextTask": "M16-GAP-00121",
|
||||
"sourceDocuments": {
|
||||
"queue": "docs/EXECUTION_QUEUE.md",
|
||||
"taskCard": "docs/tasks/M16-GAP-00120.md",
|
||||
"taskIndex": "tests/golden/M15-03A/task-index.json",
|
||||
"parentManifest": "tests/golden/M16-GAP-00119/manifest.json",
|
||||
"parentStatus": "docs/status/M16-GAP-00119.md"
|
||||
},
|
||||
"readPolicy": {
|
||||
"required": [
|
||||
"docs/EXECUTION_QUEUE.md",
|
||||
"docs/tasks/M16-GAP-00120.md",
|
||||
"tests/golden/M16-GAP-00119/manifest.json",
|
||||
"docs/status/M16-GAP-00119.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-00119",
|
||||
"parentTask": "M16-GAP-00118",
|
||||
"status": "done",
|
||||
"nextTask": "M16-GAP-00120",
|
||||
"artifactCount": 11
|
||||
},
|
||||
"statusSummary": [
|
||||
"# M16-GAP-00119 Status",
|
||||
"status: done",
|
||||
"task: action.duplicate_move operator LOCAL_EXACT slice",
|
||||
"updated: 2026-08-20 America/New_York",
|
||||
"scope: Action Editor duplicate-move operation on `object:WebGapDuplicateMoveObject`.",
|
||||
"evidence:",
|
||||
"- Blender generator selects frame 3 and executes `bpy.ops.action.duplicate_move` with a time translation of +2; the duplicate lands at frame 5 and is selected in all three channels.",
|
||||
"- WASM/Main reads the same `[1, 3, 5]` channels with frame 5 selected; save/reopen is exact."
|
||||
]
|
||||
},
|
||||
"budgets": {
|
||||
"queueBytes": 4096,
|
||||
"taskBytes": 1779,
|
||||
"parentManifestBytes": 24576,
|
||||
"parentStatusBytes": 6144,
|
||||
"evidenceFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextTokens": 3500,
|
||||
"taskLines": 38,
|
||||
"taskTokens": 445
|
||||
},
|
||||
"size": {
|
||||
"documents": [
|
||||
{
|
||||
"path": "docs/EXECUTION_QUEUE.md",
|
||||
"bytes": 2168,
|
||||
"lines": 45,
|
||||
"tokens": 542
|
||||
},
|
||||
{
|
||||
"path": "docs/tasks/M16-GAP-00120.md",
|
||||
"bytes": 1779,
|
||||
"lines": 38,
|
||||
"tokens": 445
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00119/manifest.json",
|
||||
"bytes": 2072,
|
||||
"lines": 25,
|
||||
"tokens": 518
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00119.md",
|
||||
"bytes": 861,
|
||||
"lines": 19,
|
||||
"tokens": 216
|
||||
}
|
||||
],
|
||||
"sourceTokens": 1721,
|
||||
"evidenceFiles": 1,
|
||||
"evidenceBytes": 2243,
|
||||
"evidenceTokens": 561,
|
||||
"totalTokens": 2282,
|
||||
"withinBudget": true
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"action": {
|
||||
"channels": [
|
||||
{
|
||||
"extrapolation": "LINEAR",
|
||||
"frames": [
|
||||
1.0,
|
||||
3.0,
|
||||
5.0
|
||||
],
|
||||
"index": 0,
|
||||
"path": "location"
|
||||
},
|
||||
{
|
||||
"extrapolation": "LINEAR",
|
||||
"frames": [
|
||||
1.0,
|
||||
3.0,
|
||||
5.0
|
||||
],
|
||||
"index": 1,
|
||||
"path": "location"
|
||||
},
|
||||
{
|
||||
"extrapolation": "LINEAR",
|
||||
"frames": [
|
||||
1.0,
|
||||
3.0,
|
||||
5.0
|
||||
],
|
||||
"index": 2,
|
||||
"path": "location"
|
||||
}
|
||||
],
|
||||
"name": "WebGapExtrapolationTypeObjectAction"
|
||||
},
|
||||
"blenderVersion": "5.2.0 LTS",
|
||||
"extrapolationType": "LINEAR",
|
||||
"fixture": "/home/mes123456/workinf_Blender_Wasm/tests/files/web/generated/M16-GAP-00121-operator-action.extrapolation_type.blend",
|
||||
"fixtureSha256": "39c4559926b71ed7b364b6f618c6b19c215d23031b994460d0180537879ff10f",
|
||||
"operation": "ACTION_EXTRAPOLATION_TYPE_DESKTOP",
|
||||
"saveReopen": "EXACT",
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00121"
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00121",
|
||||
"operation": "ACTION_EXTRAPOLATION_TYPE_LOCAL_EXACT",
|
||||
"fixture": {
|
||||
"path": "tests/files/web/generated/M16-GAP-00121-operator-action.extrapolation_type.blend",
|
||||
"sha256": "39c4559926b71ed7b364b6f618c6b19c215d23031b994460d0180537879ff10f"
|
||||
},
|
||||
"desktop": {
|
||||
"status": "EXACT",
|
||||
"report": "tests/golden/M16-GAP-00121/action-extrapolation-type-desktop-report.json",
|
||||
"saveReopen": "EXACT"
|
||||
},
|
||||
"wasm": {
|
||||
"status": "EXACT",
|
||||
"actionId": "action:WebGapExtrapolationTypeObjectAction:object:WebGapExtrapolationTypeObject",
|
||||
"extrapolationType": "LINEAR",
|
||||
"extrapolationPerChannel": [
|
||||
"LINEAR",
|
||||
"LINEAR",
|
||||
"LINEAR"
|
||||
]
|
||||
},
|
||||
"saveReopen": "EXACT",
|
||||
"negative": {
|
||||
"malformedBlend": "REJECTED_WITHOUT_MAIN_MUTATION"
|
||||
},
|
||||
"nextTask": "M16-GAP-00122"
|
||||
}
|
||||
24
tests/golden/M16-GAP-00121/manifest.json
Normal file
24
tests/golden/M16-GAP-00121/manifest.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00121",
|
||||
"parentTask": "M16-GAP-00120",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": true,
|
||||
"runtime": "BLENDER_5_2_LOCAL_EXACT",
|
||||
"operation": "ACTION_EXTRAPOLATION_TYPE_LOCAL_EXACT",
|
||||
"status": "done",
|
||||
"artifacts": {
|
||||
"parentManifest": {"path": "tests/golden/M16-GAP-00120/manifest.json", "sha256": "a517d68211696c3dc4110b07497eba5d07223d90e6f6a42ecf0aa9b01f8ea68f"},
|
||||
"fixture": {"path": "tests/files/web/generated/M16-GAP-00121-operator-action.extrapolation_type.blend", "sha256": "39c4559926b71ed7b364b6f618c6b19c215d23031b994460d0180537879ff10f"},
|
||||
"generator": {"path": "tools/web/generated/M16-GAP-00121.py", "sha256": "09a7f42b438f7fb6b14eab1fd8fc436ee938ec62af8f11d62b24a46215d7a05a"},
|
||||
"desktopChecker": {"path": "tools/web/check-action-extrapolation-type-desktop.py", "sha256": "8abb11eb1c484b008cc6157d0a5d9c786ebad25b196d117ea5fb015770f70abc"},
|
||||
"webChecker": {"path": "tools/web/check-generated-gap.mjs", "sha256": "32ba19733b1f83f0d7190ebd0b4611cb93c3950358cb4c1cd0101ad124c735b4"},
|
||||
"reader": {"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp", "sha256": "4cc9629a903d638d7cc2d807e4f0ca4d8d5a9b0093747ea031d3c5ce9a6608c2"},
|
||||
"wasm": {"path": "web/app/src/vendor/blender/web_engine.wasm", "sha256": "3cd4771fe3250f3c6433b2110cac0da8d872c879c09acbbb6fb698962d45fcac"},
|
||||
"wasmPublic": {"path": "web/app/public/vendor/blender/web_engine.wasm", "sha256": "3cd4771fe3250f3c6433b2110cac0da8d872c879c09acbbb6fb698962d45fcac"},
|
||||
"wasmJs": {"path": "web/app/src/vendor/blender/web_engine.js", "sha256": "9c831d0351ac9d0714cce3b1da748cba416ced3086e3c59595cf24ac4da459ed"},
|
||||
"desktopReport": {"path": "tests/golden/M16-GAP-00121/action-extrapolation-type-desktop-report.json", "sha256": "d9c594e10b0196fb9a906cbd6ed31f26196c8ee1ede6a23c50d3a6ac9de0012d"},
|
||||
"webReport": {"path": "tests/golden/M16-GAP-00121/action-extrapolation-type-local-exact-report.json", "sha256": "c898764e6629bfa752e6375c1944c579a02c62cb25059792fd9e582042a8a3ab"}
|
||||
},
|
||||
"nextTask": "M16-GAP-00122"
|
||||
}
|
||||
181
tests/golden/M16-GAP-00121/task-context.json
Normal file
181
tests/golden/M16-GAP-00121/task-context.json
Normal file
@@ -0,0 +1,181 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00121",
|
||||
"parentTask": "M16-GAP-00120",
|
||||
"status": "in_progress",
|
||||
"goal": "Make the same minimal fixture produce observable operator:action.extrapolation_type 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": "operator:action.extrapolation_type",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"implementationClass": "LOCAL_EXACT"
|
||||
},
|
||||
"commands": [
|
||||
"build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00121.py -- tests/files/web/generated/M16-GAP-00121-operator-action.extrapolation_type.blend",
|
||||
"npm --prefix web run test:generated-gap -- --task M16-GAP-00121",
|
||||
"node tools/web/check-generated-gap.mjs --task M16-GAP-00121"
|
||||
],
|
||||
"inputPaths": [
|
||||
"tools/web/generated/M16-GAP-00121.py"
|
||||
],
|
||||
"inputSelection": {
|
||||
"schemaVersion": 1,
|
||||
"limits": {
|
||||
"maxFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextRemainingBytes": 7149,
|
||||
"contextRemainingTokens": 1786
|
||||
},
|
||||
"source": {
|
||||
"bytes": 6851,
|
||||
"tokens": 1714
|
||||
},
|
||||
"selected": [
|
||||
{
|
||||
"path": "tools/web/generated/M16-GAP-00121.py",
|
||||
"bytes": 2267,
|
||||
"tokens": 567
|
||||
}
|
||||
],
|
||||
"excluded": [
|
||||
{
|
||||
"path": "tests/files/web/generated/M16-GAP-00121-operator-action.extrapolation_type.blend",
|
||||
"bytes": 86924,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp",
|
||||
"bytes": 222719,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tools/web/check-generated-gap.mjs",
|
||||
"bytes": 175864,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00121/",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00121.md",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00121/manifest.json",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"files": 1,
|
||||
"bytes": 2267,
|
||||
"tokens": 567
|
||||
}
|
||||
},
|
||||
"exitCriteria": [
|
||||
"desktop fixture evidence exists",
|
||||
"WASM uses the same fixture",
|
||||
"comparator passes",
|
||||
"save/reopen preserves Main",
|
||||
"manifest hashes all artifacts"
|
||||
],
|
||||
"nextTask": "M16-GAP-00122",
|
||||
"sourceDocuments": {
|
||||
"queue": "docs/EXECUTION_QUEUE.md",
|
||||
"taskCard": "docs/tasks/M16-GAP-00121.md",
|
||||
"taskIndex": "tests/golden/M15-03A/task-index.json",
|
||||
"parentManifest": "tests/golden/M16-GAP-00120/manifest.json",
|
||||
"parentStatus": "docs/status/M16-GAP-00120.md"
|
||||
},
|
||||
"readPolicy": {
|
||||
"required": [
|
||||
"docs/EXECUTION_QUEUE.md",
|
||||
"docs/tasks/M16-GAP-00121.md",
|
||||
"tests/golden/M16-GAP-00120/manifest.json",
|
||||
"docs/status/M16-GAP-00120.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-00120",
|
||||
"parentTask": "M16-GAP-00119",
|
||||
"status": "done",
|
||||
"nextTask": "M16-GAP-00121",
|
||||
"artifactCount": 11
|
||||
},
|
||||
"statusSummary": [
|
||||
"# M16-GAP-00120 Status",
|
||||
"status: done",
|
||||
"task: action.easing_type operator LOCAL_EXACT slice",
|
||||
"updated: 2026-08-20 America/New_York",
|
||||
"scope: Action Editor easing-type operation on `object:WebGapEasingTypeObject`.",
|
||||
"evidence:",
|
||||
"- Blender generator selects frame 3 and executes `bpy.ops.action.easing_type(type=\"EASE_IN_OUT\")`; all three location curves report `AUTO, EASE_IN_OUT, AUTO`.",
|
||||
"- WASM/Main now exports keyframe easing metadata and matches desktop; save/reopen is exact."
|
||||
]
|
||||
},
|
||||
"budgets": {
|
||||
"queueBytes": 4096,
|
||||
"taskBytes": 1814,
|
||||
"parentManifestBytes": 24576,
|
||||
"parentStatusBytes": 6144,
|
||||
"evidenceFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextTokens": 3500,
|
||||
"taskLines": 38,
|
||||
"taskTokens": 454
|
||||
},
|
||||
"size": {
|
||||
"documents": [
|
||||
{
|
||||
"path": "docs/EXECUTION_QUEUE.md",
|
||||
"bytes": 2168,
|
||||
"lines": 45,
|
||||
"tokens": 542
|
||||
},
|
||||
{
|
||||
"path": "docs/tasks/M16-GAP-00121.md",
|
||||
"bytes": 1814,
|
||||
"lines": 38,
|
||||
"tokens": 454
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00120/manifest.json",
|
||||
"bytes": 2057,
|
||||
"lines": 25,
|
||||
"tokens": 515
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00120.md",
|
||||
"bytes": 812,
|
||||
"lines": 19,
|
||||
"tokens": 203
|
||||
}
|
||||
],
|
||||
"sourceTokens": 1714,
|
||||
"evidenceFiles": 1,
|
||||
"evidenceBytes": 2267,
|
||||
"evidenceTokens": 567,
|
||||
"totalTokens": 2281,
|
||||
"withinBudget": true
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
{
|
||||
"action": {
|
||||
"channels": [
|
||||
{
|
||||
"frames": [
|
||||
1.0,
|
||||
3.0,
|
||||
5.0
|
||||
],
|
||||
"index": 0,
|
||||
"path": "location",
|
||||
"selected": [
|
||||
false,
|
||||
false,
|
||||
true
|
||||
]
|
||||
},
|
||||
{
|
||||
"frames": [
|
||||
1.0,
|
||||
3.0,
|
||||
5.0
|
||||
],
|
||||
"index": 1,
|
||||
"path": "location",
|
||||
"selected": [
|
||||
false,
|
||||
false,
|
||||
true
|
||||
]
|
||||
},
|
||||
{
|
||||
"frames": [
|
||||
1.0,
|
||||
3.0,
|
||||
5.0
|
||||
],
|
||||
"index": 2,
|
||||
"path": "location",
|
||||
"selected": [
|
||||
false,
|
||||
false,
|
||||
true
|
||||
]
|
||||
}
|
||||
],
|
||||
"name": "WebGapFrameJumpObjectAction"
|
||||
},
|
||||
"blenderVersion": "5.2.0 LTS",
|
||||
"fixture": "/home/mes123456/workinf_Blender_Wasm/tests/files/web/generated/M16-GAP-00122-operator-action.frame_jump.blend",
|
||||
"fixtureSha256": "332f117de8b826abb0d044715daa2d01a203b03080c61aaed7671ef67fa2da44",
|
||||
"jumpedToFrame": 5,
|
||||
"operation": "ACTION_FRAME_JUMP_DESKTOP",
|
||||
"saveReopen": "EXACT",
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00122"
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user