Capture M16 gap execution artifacts
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -136,5 +136,39 @@
|
||||
"operator:action.select_by_type",
|
||||
"operator:action.select_circle",
|
||||
"operator:action.select_column",
|
||||
"operator:action.select_lasso"
|
||||
"operator:action.select_lasso",
|
||||
"operator:action.select_leftright",
|
||||
"operator:action.select_less",
|
||||
"operator:action.select_linked",
|
||||
"operator:action.select_more",
|
||||
"operator:action.snap",
|
||||
"operator:action.stash",
|
||||
"operator:action.stash_and_create",
|
||||
"operator:action.unlink",
|
||||
"operator:action.view_all",
|
||||
"operator:action.view_frame",
|
||||
"operator:action.view_selected",
|
||||
"operator:anim.change_frame",
|
||||
"operator:anim.channel_select_keys",
|
||||
"operator:anim.channel_view_pick",
|
||||
"operator:anim.channels_bake",
|
||||
"operator:anim.channels_clean_empty",
|
||||
"operator:anim.channels_click",
|
||||
"operator:anim.channels_collapse",
|
||||
"operator:anim.channels_delete",
|
||||
"operator:anim.channels_editable_toggle",
|
||||
"operator:anim.channels_expand",
|
||||
"operator:anim.channels_fcurves_enable",
|
||||
"operator:anim.channels_group",
|
||||
"operator:anim.channels_move",
|
||||
"operator:anim.channels_rename",
|
||||
"operator:anim.channels_select_all",
|
||||
"operator:anim.channels_select_box",
|
||||
"operator:anim.channels_select_filter",
|
||||
"operator:anim.channels_setting_disable",
|
||||
"operator:anim.channels_setting_enable",
|
||||
"operator:anim.channels_setting_toggle",
|
||||
"operator:anim.channels_ungroup",
|
||||
"operator:anim.channels_view_selected",
|
||||
"operator:anim.clear_useless_actions"
|
||||
]
|
||||
|
||||
@@ -13,14 +13,14 @@
|
||||
},
|
||||
"completions": {
|
||||
"path": "tests/golden/M15-03A/completed-gap-tasks.json",
|
||||
"sha256": "bb40f03bb78882f60f31025dbc7b903bc90978fd5a916cc45c2147cd755a3631"
|
||||
"sha256": "f725118ea1118cd9cedcc5170a45674579ef7931b6a11594cf593646ca6fda9b"
|
||||
}
|
||||
},
|
||||
"summary": {
|
||||
"taskCount": 6900,
|
||||
"active": 1,
|
||||
"pending": 6761,
|
||||
"completed": 138,
|
||||
"pending": 6727,
|
||||
"completed": 172,
|
||||
"blocked": 0,
|
||||
"byWave": {
|
||||
"M16": 2667,
|
||||
@@ -3212,7 +3212,7 @@
|
||||
"gapId": "operator:action.select_leftright",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"sourceTask": "M15-01B",
|
||||
"state": "active",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -3235,7 +3235,7 @@
|
||||
"gapId": "operator:action.select_less",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"sourceTask": "M15-01B",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -3258,7 +3258,7 @@
|
||||
"gapId": "operator:action.select_linked",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"sourceTask": "M15-01B",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -3281,7 +3281,7 @@
|
||||
"gapId": "operator:action.select_more",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"sourceTask": "M15-01B",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -3304,7 +3304,7 @@
|
||||
"gapId": "operator:action.snap",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"sourceTask": "M15-01B",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -3327,7 +3327,7 @@
|
||||
"gapId": "operator:action.stash",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"sourceTask": "M15-01B",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -3350,7 +3350,7 @@
|
||||
"gapId": "operator:action.stash_and_create",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"sourceTask": "M15-01B",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -3373,7 +3373,7 @@
|
||||
"gapId": "operator:action.unlink",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"sourceTask": "M15-01B",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -3396,7 +3396,7 @@
|
||||
"gapId": "operator:action.view_all",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"sourceTask": "M15-01B",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -3419,7 +3419,7 @@
|
||||
"gapId": "operator:action.view_frame",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"sourceTask": "M15-01B",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -3442,7 +3442,7 @@
|
||||
"gapId": "operator:action.view_selected",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"sourceTask": "M15-01B",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -3465,7 +3465,7 @@
|
||||
"gapId": "operator:anim.change_frame",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"sourceTask": "M15-01B",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -3488,7 +3488,7 @@
|
||||
"gapId": "operator:anim.channel_select_keys",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"sourceTask": "M15-01B",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -3511,7 +3511,7 @@
|
||||
"gapId": "operator:anim.channel_view_pick",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"sourceTask": "M15-01B",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -3534,7 +3534,7 @@
|
||||
"gapId": "operator:anim.channels_bake",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"sourceTask": "M15-01B",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -3557,7 +3557,7 @@
|
||||
"gapId": "operator:anim.channels_clean_empty",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"sourceTask": "M15-01B",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -3580,7 +3580,7 @@
|
||||
"gapId": "operator:anim.channels_click",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"sourceTask": "M15-01B",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -3603,7 +3603,7 @@
|
||||
"gapId": "operator:anim.channels_collapse",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"sourceTask": "M15-01B",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -3626,7 +3626,7 @@
|
||||
"gapId": "operator:anim.channels_delete",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"sourceTask": "M15-01B",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -3649,7 +3649,7 @@
|
||||
"gapId": "operator:anim.channels_editable_toggle",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"sourceTask": "M15-01B",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -3672,7 +3672,7 @@
|
||||
"gapId": "operator:anim.channels_expand",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"sourceTask": "M15-01B",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -3695,7 +3695,7 @@
|
||||
"gapId": "operator:anim.channels_fcurves_enable",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"sourceTask": "M15-01B",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -3718,7 +3718,7 @@
|
||||
"gapId": "operator:anim.channels_group",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"sourceTask": "M15-01B",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -3741,7 +3741,7 @@
|
||||
"gapId": "operator:anim.channels_move",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"sourceTask": "M15-01B",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -3764,7 +3764,7 @@
|
||||
"gapId": "operator:anim.channels_rename",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"sourceTask": "M15-01B",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -3787,7 +3787,7 @@
|
||||
"gapId": "operator:anim.channels_select_all",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"sourceTask": "M15-01B",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -3810,7 +3810,7 @@
|
||||
"gapId": "operator:anim.channels_select_box",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"sourceTask": "M15-01B",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -3833,7 +3833,7 @@
|
||||
"gapId": "operator:anim.channels_select_filter",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"sourceTask": "M15-01B",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -3856,7 +3856,7 @@
|
||||
"gapId": "operator:anim.channels_setting_disable",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"sourceTask": "M15-01B",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -3879,7 +3879,7 @@
|
||||
"gapId": "operator:anim.channels_setting_enable",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"sourceTask": "M15-01B",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -3902,7 +3902,7 @@
|
||||
"gapId": "operator:anim.channels_setting_toggle",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"sourceTask": "M15-01B",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -3925,7 +3925,7 @@
|
||||
"gapId": "operator:anim.channels_ungroup",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"sourceTask": "M15-01B",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -3948,7 +3948,7 @@
|
||||
"gapId": "operator:anim.channels_view_selected",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"sourceTask": "M15-01B",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -3971,7 +3971,7 @@
|
||||
"gapId": "operator:anim.clear_useless_actions",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"sourceTask": "M15-01B",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -3994,7 +3994,7 @@
|
||||
"gapId": "operator:anim.copy_driver_button",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"sourceTask": "M15-01B",
|
||||
"state": "pending",
|
||||
"state": "completed",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -4017,7 +4017,7 @@
|
||||
"gapId": "operator:anim.driver_button_add",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"sourceTask": "M15-01B",
|
||||
"state": "pending",
|
||||
"state": "active",
|
||||
"dependencies": [],
|
||||
"targetImplementationClass": "LOCAL_EXACT",
|
||||
"fixture": {
|
||||
@@ -158734,7 +158734,7 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"firstTask": "M16-GAP-00139",
|
||||
"firstTask": "M16-GAP-00174",
|
||||
"closureGate": "M15-03E",
|
||||
"nextTask": "M15-03B"
|
||||
}
|
||||
|
||||
@@ -136,42 +136,42 @@
|
||||
{"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":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00138","gapId":"operator:action.select_lasso","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00139","gapId":"operator:action.select_leftright","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"active","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00140","gapId":"operator:action.select_less","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00141","gapId":"operator:action.select_linked","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00142","gapId":"operator:action.select_more","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00143","gapId":"operator:action.snap","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00144","gapId":"operator:action.stash","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00145","gapId":"operator:action.stash_and_create","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00146","gapId":"operator:action.unlink","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00147","gapId":"operator:action.view_all","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00148","gapId":"operator:action.view_frame","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00149","gapId":"operator:action.view_selected","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00150","gapId":"operator:anim.change_frame","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00151","gapId":"operator:anim.channel_select_keys","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00152","gapId":"operator:anim.channel_view_pick","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00153","gapId":"operator:anim.channels_bake","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00154","gapId":"operator:anim.channels_clean_empty","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00155","gapId":"operator:anim.channels_click","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00156","gapId":"operator:anim.channels_collapse","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00157","gapId":"operator:anim.channels_delete","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00158","gapId":"operator:anim.channels_editable_toggle","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00159","gapId":"operator:anim.channels_expand","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00160","gapId":"operator:anim.channels_fcurves_enable","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00161","gapId":"operator:anim.channels_group","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00162","gapId":"operator:anim.channels_move","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00163","gapId":"operator:anim.channels_rename","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00164","gapId":"operator:anim.channels_select_all","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00165","gapId":"operator:anim.channels_select_box","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00166","gapId":"operator:anim.channels_select_filter","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00167","gapId":"operator:anim.channels_setting_disable","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00168","gapId":"operator:anim.channels_setting_enable","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00169","gapId":"operator:anim.channels_setting_toggle","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00170","gapId":"operator:anim.channels_ungroup","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00171","gapId":"operator:anim.channels_view_selected","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00172","gapId":"operator:anim.clear_useless_actions","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00173","gapId":"operator:anim.copy_driver_button","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00174","gapId":"operator:anim.driver_button_add","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":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00140","gapId":"operator:action.select_less","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00141","gapId":"operator:action.select_linked","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00142","gapId":"operator:action.select_more","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00143","gapId":"operator:action.snap","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00144","gapId":"operator:action.stash","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00145","gapId":"operator:action.stash_and_create","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00146","gapId":"operator:action.unlink","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00147","gapId":"operator:action.view_all","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00148","gapId":"operator:action.view_frame","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00149","gapId":"operator:action.view_selected","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00150","gapId":"operator:anim.change_frame","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00151","gapId":"operator:anim.channel_select_keys","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00152","gapId":"operator:anim.channel_view_pick","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00153","gapId":"operator:anim.channels_bake","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00154","gapId":"operator:anim.channels_clean_empty","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00155","gapId":"operator:anim.channels_click","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00156","gapId":"operator:anim.channels_collapse","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00157","gapId":"operator:anim.channels_delete","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00158","gapId":"operator:anim.channels_editable_toggle","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00159","gapId":"operator:anim.channels_expand","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00160","gapId":"operator:anim.channels_fcurves_enable","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00161","gapId":"operator:anim.channels_group","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00162","gapId":"operator:anim.channels_move","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00163","gapId":"operator:anim.channels_rename","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00164","gapId":"operator:anim.channels_select_all","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00165","gapId":"operator:anim.channels_select_box","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00166","gapId":"operator:anim.channels_select_filter","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00167","gapId":"operator:anim.channels_setting_disable","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00168","gapId":"operator:anim.channels_setting_enable","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00169","gapId":"operator:anim.channels_setting_toggle","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00170","gapId":"operator:anim.channels_ungroup","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00171","gapId":"operator:anim.channels_view_selected","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00172","gapId":"operator:anim.clear_useless_actions","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00173","gapId":"operator:anim.copy_driver_button","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"completed","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00174","gapId":"operator:anim.driver_button_add","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"active","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00175","gapId":"operator:anim.driver_button_edit","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00176","gapId":"operator:anim.driver_button_remove","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
{"id":"M16-GAP-00177","gapId":"operator:anim.end_frame_set","ownerFamily":"OPERATOR","sourceTask":"M15-01B","state":"pending","targetImplementationClass":"LOCAL_EXACT"}
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,61 @@
|
||||
{
|
||||
"action": {
|
||||
"channels": [
|
||||
{
|
||||
"frames": [
|
||||
1.0,
|
||||
3.0,
|
||||
5.0
|
||||
],
|
||||
"index": 0,
|
||||
"path": "location",
|
||||
"selected": [
|
||||
true,
|
||||
true,
|
||||
false
|
||||
]
|
||||
},
|
||||
{
|
||||
"frames": [
|
||||
1.0,
|
||||
3.0,
|
||||
5.0
|
||||
],
|
||||
"index": 1,
|
||||
"path": "location",
|
||||
"selected": [
|
||||
true,
|
||||
true,
|
||||
false
|
||||
]
|
||||
},
|
||||
{
|
||||
"frames": [
|
||||
1.0,
|
||||
3.0,
|
||||
5.0
|
||||
],
|
||||
"index": 2,
|
||||
"path": "location",
|
||||
"selected": [
|
||||
true,
|
||||
true,
|
||||
false
|
||||
]
|
||||
}
|
||||
],
|
||||
"name": "WebGapSelectLeftRightObjectAction"
|
||||
},
|
||||
"blenderVersion": "5.2.0 LTS",
|
||||
"fixture": "/home/mes123456/workinf_Blender_Wasm/tests/files/web/generated/M16-GAP-00139-operator-action.select_leftright.blend",
|
||||
"fixtureSha256": "ed6f8c69f70b5dcef868fffc9381395c7884401bbe24fdd8d9984557284e66c9",
|
||||
"mode": "LEFT",
|
||||
"operation": "ACTION_SELECT_LEFTRIGHT_DESKTOP",
|
||||
"saveReopen": "EXACT",
|
||||
"schemaVersion": 1,
|
||||
"selectedFrames": [
|
||||
1,
|
||||
3
|
||||
],
|
||||
"task": "M16-GAP-00139"
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00139",
|
||||
"operation": "ACTION_SELECT_LEFTRIGHT_LOCAL_EXACT",
|
||||
"fixture": {
|
||||
"path": "tests/files/web/generated/M16-GAP-00139-operator-action.select_leftright.blend",
|
||||
"sha256": "ed6f8c69f70b5dcef868fffc9381395c7884401bbe24fdd8d9984557284e66c9"
|
||||
},
|
||||
"desktop": {
|
||||
"status": "EXACT",
|
||||
"report": "tests/golden/M16-GAP-00139/action-select-leftright-desktop-report.json",
|
||||
"saveReopen": "EXACT"
|
||||
},
|
||||
"wasm": {
|
||||
"status": "EXACT",
|
||||
"actionId": "action:WebGapSelectLeftRightObjectAction:object:WebGapSelectLeftRightObject",
|
||||
"mode": "LEFT",
|
||||
"selectedFrames": [
|
||||
1,
|
||||
3
|
||||
],
|
||||
"selectedPerChannel": [
|
||||
[
|
||||
1,
|
||||
3
|
||||
],
|
||||
[
|
||||
1,
|
||||
3
|
||||
],
|
||||
[
|
||||
1,
|
||||
3
|
||||
]
|
||||
]
|
||||
},
|
||||
"saveReopen": "EXACT",
|
||||
"negative": {
|
||||
"malformedBlend": "REJECTED_WITHOUT_MAIN_MUTATION"
|
||||
},
|
||||
"nextTask": "M16-GAP-00140"
|
||||
}
|
||||
25
tests/golden/M16-GAP-00139/manifest.json
Normal file
25
tests/golden/M16-GAP-00139/manifest.json
Normal file
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00139",
|
||||
"parentTask": "M16-GAP-00138",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": true,
|
||||
"runtime": "BLENDER_5_2_LOCAL_EXACT",
|
||||
"operation": "ACTION_SELECT_LEFTRIGHT_LOCAL_EXACT",
|
||||
"status": "done",
|
||||
"artifacts": {
|
||||
"parentManifest": {"path": "tests/golden/M16-GAP-00138/manifest.json", "sha256": "164d1020de2e126f1e0736b508a18bf261c7610b375fe02dbfccb3422e27ff13"},
|
||||
"fixture": {"path": "tests/files/web/generated/M16-GAP-00139-operator-action.select_leftright.blend", "sha256": "ed6f8c69f70b5dcef868fffc9381395c7884401bbe24fdd8d9984557284e66c9"},
|
||||
"generator": {"path": "tools/web/generated/M16-GAP-00139.py", "sha256": "d1175acf47e8ec1c4998582e22d9434a4eea921f551b6c99f9b85b7f5a6727be"},
|
||||
"desktopChecker": {"path": "tools/web/check-action-select-leftright-desktop.py", "sha256": "bf20b5d05883481b1b455d0eaab9951f9c4abc73406f3a499f1a03c49b044832"},
|
||||
"webChecker": {"path": "tools/web/check-generated-gap.mjs", "sha256": "ae898c2ff5ff3d622f348ba21d83ff91e10d4d26809207966fef8895f81b09f1"},
|
||||
"reader": {"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp", "sha256": "bd0c21440ef1af91dbb861687f8b8637a58656a4965e59cc67fc16b495cf437e"},
|
||||
"wasm": {"path": "web/app/src/vendor/blender/web_engine.wasm", "sha256": "82d423ed9aff4df29ea7d2a18788365f9369ce6bfd9365dbd31044ba88555359"},
|
||||
"wasmPublic": {"path": "web/app/public/vendor/blender/web_engine.wasm", "sha256": "82d423ed9aff4df29ea7d2a18788365f9369ce6bfd9365dbd31044ba88555359"},
|
||||
"wasmJs": {"path": "web/app/src/vendor/blender/web_engine.js", "sha256": "9c831d0351ac9d0714cce3b1da748cba416ced3086e3c59595cf24ac4da459ed"},
|
||||
"desktopReport": {"path": "tests/golden/M16-GAP-00139/action-select-leftright-desktop-report.json", "sha256": "7caa17c7eb256a4bea4e95d03edd3e2b3a31286fd30581188915fca174a89f56"},
|
||||
"webReport": {"path": "tests/golden/M16-GAP-00139/action-select-leftright-local-exact-report.json", "sha256": "70476940cd710d7ac0305d1caa428e9b0ac7f71a8e7f55900139c94be7433ee2"},
|
||||
"taskContext": {"path": "tests/golden/M16-GAP-00139/task-context.json", "sha256": "70af07e854ffebad8dcf9403c3485732c25b7100062b49a0bf1f16fb9b730bbb"}
|
||||
},
|
||||
"nextTask": "M16-GAP-00140"
|
||||
}
|
||||
185
tests/golden/M16-GAP-00139/task-context.json
Normal file
185
tests/golden/M16-GAP-00139/task-context.json
Normal file
@@ -0,0 +1,185 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00139",
|
||||
"parentTask": "M16-GAP-00138",
|
||||
"status": "in_progress",
|
||||
"goal": "Make the same minimal fixture produce observable operator:action.select_leftright 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.select_leftright",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"implementationClass": "LOCAL_EXACT"
|
||||
},
|
||||
"commands": [
|
||||
"build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00139.py -- tests/files/web/generated/M16-GAP-00139-operator-action.select_leftright.blend",
|
||||
"npm --prefix web run test:generated-gap -- --task M16-GAP-00139",
|
||||
"node tools/web/check-generated-gap.mjs --task M16-GAP-00139"
|
||||
],
|
||||
"inputPaths": [
|
||||
"tools/web/generated/M16-GAP-00139.py"
|
||||
],
|
||||
"inputSelection": {
|
||||
"schemaVersion": 1,
|
||||
"limits": {
|
||||
"maxFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextRemainingBytes": 3176,
|
||||
"contextRemainingTokens": 793
|
||||
},
|
||||
"source": {
|
||||
"bytes": 6728,
|
||||
"tokens": 1683
|
||||
},
|
||||
"selected": [
|
||||
{
|
||||
"path": "tools/web/generated/M16-GAP-00139.py",
|
||||
"bytes": 2305,
|
||||
"tokens": 577
|
||||
}
|
||||
],
|
||||
"excluded": [
|
||||
{
|
||||
"path": "tests/files/web/generated/M16-GAP-00139-operator-action.select_leftright.blend",
|
||||
"bytes": 86867,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp",
|
||||
"bytes": 224767,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tools/web/check-generated-gap.mjs",
|
||||
"bytes": 237188,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00139/",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00139.md",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00139/manifest.json",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"files": 1,
|
||||
"bytes": 2305,
|
||||
"tokens": 577
|
||||
}
|
||||
},
|
||||
"exitCriteria": [
|
||||
"desktop fixture evidence exists",
|
||||
"WASM uses the same fixture",
|
||||
"comparator passes",
|
||||
"save/reopen preserves Main",
|
||||
"manifest hashes all artifacts"
|
||||
],
|
||||
"nextTask": "M16-GAP-00140",
|
||||
"sourceDocuments": {
|
||||
"queue": "docs/EXECUTION_QUEUE.md",
|
||||
"taskCard": "docs/tasks/M16-GAP-00139.md",
|
||||
"taskIndex": "tests/golden/M15-03A/task-index.json",
|
||||
"parentManifest": "tests/golden/M16-GAP-00138/manifest.json",
|
||||
"parentStatus": "docs/status/M16-GAP-00138.md"
|
||||
},
|
||||
"readPolicy": {
|
||||
"required": [
|
||||
"docs/EXECUTION_QUEUE.md",
|
||||
"docs/tasks/M16-GAP-00139.md",
|
||||
"tests/golden/M16-GAP-00138/manifest.json",
|
||||
"docs/status/M16-GAP-00138.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-00138",
|
||||
"parentTask": "M16-GAP-00137",
|
||||
"status": "done",
|
||||
"nextTask": "M16-GAP-00139",
|
||||
"artifactCount": 12
|
||||
},
|
||||
"statusSummary": [
|
||||
"# M16-GAP-00138 Status",
|
||||
"status: done",
|
||||
"task: action.select_lasso operator LOCAL_EXACT slice",
|
||||
"updated: 2026-08-20 America/New_York",
|
||||
"scope:",
|
||||
"- Action Editor lasso selection on `object:WebGapSelectLassoObject`.",
|
||||
"evidence:",
|
||||
"- Blender desktop and WASM/Main expose matching three location channels with frame 3 selected."
|
||||
]
|
||||
},
|
||||
"budgets": {
|
||||
"queueBytes": 4096,
|
||||
"taskBytes": 1804,
|
||||
"parentManifestBytes": 24576,
|
||||
"parentStatusBytes": 6144,
|
||||
"evidenceFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextTokens": 3500,
|
||||
"contextEnvelopeTokens": 1024,
|
||||
"taskLines": 38,
|
||||
"taskTokens": 451
|
||||
},
|
||||
"size": {
|
||||
"documents": [
|
||||
{
|
||||
"path": "docs/EXECUTION_QUEUE.md",
|
||||
"bytes": 2168,
|
||||
"lines": 45,
|
||||
"tokens": 542
|
||||
},
|
||||
{
|
||||
"path": "docs/tasks/M16-GAP-00139.md",
|
||||
"bytes": 1804,
|
||||
"lines": 38,
|
||||
"tokens": 451
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00138/manifest.json",
|
||||
"bytes": 2217,
|
||||
"lines": 26,
|
||||
"tokens": 555
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00138.md",
|
||||
"bytes": 539,
|
||||
"lines": 18,
|
||||
"tokens": 135
|
||||
}
|
||||
],
|
||||
"sourceTokens": 1683,
|
||||
"evidenceFiles": 1,
|
||||
"evidenceBytes": 2305,
|
||||
"evidenceTokens": 577,
|
||||
"totalTokens": 2260,
|
||||
"reservedEnvelopeTokens": 1024,
|
||||
"estimatedContextTokens": 3284,
|
||||
"serializedContextTokens": 756,
|
||||
"withinBudget": true
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
{
|
||||
"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": "WebGapSelectLessObjectAction"
|
||||
},
|
||||
"blenderVersion": "5.2.0 LTS",
|
||||
"fixture": "/home/mes123456/workinf_Blender_Wasm/tests/files/web/generated/M16-GAP-00140-operator-action.select_less.blend",
|
||||
"fixtureSha256": "3acc7908b362f9c224e825c5429b59d549a77dab4e2b45b285221e5c54fa0c2b",
|
||||
"operation": "ACTION_SELECT_LESS_DESKTOP",
|
||||
"saveReopen": "EXACT",
|
||||
"schemaVersion": 1,
|
||||
"selectedFrame": 3,
|
||||
"task": "M16-GAP-00140"
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00140",
|
||||
"operation": "ACTION_SELECT_LESS_LOCAL_EXACT",
|
||||
"fixture": {
|
||||
"path": "tests/files/web/generated/M16-GAP-00140-operator-action.select_less.blend",
|
||||
"sha256": "3acc7908b362f9c224e825c5429b59d549a77dab4e2b45b285221e5c54fa0c2b"
|
||||
},
|
||||
"desktop": {
|
||||
"status": "EXACT",
|
||||
"report": "tests/golden/M16-GAP-00140/action-select-less-desktop-report.json",
|
||||
"saveReopen": "EXACT"
|
||||
},
|
||||
"wasm": {
|
||||
"status": "EXACT",
|
||||
"actionId": "action:WebGapSelectLessObjectAction:object:WebGapSelectLessObject",
|
||||
"selectedFrame": 3,
|
||||
"selectedPerChannel": [
|
||||
[
|
||||
3
|
||||
],
|
||||
[
|
||||
3
|
||||
],
|
||||
[
|
||||
3
|
||||
]
|
||||
]
|
||||
},
|
||||
"saveReopen": "EXACT",
|
||||
"negative": {
|
||||
"malformedBlend": "REJECTED_WITHOUT_MAIN_MUTATION"
|
||||
},
|
||||
"nextTask": "M16-GAP-00141"
|
||||
}
|
||||
25
tests/golden/M16-GAP-00140/manifest.json
Normal file
25
tests/golden/M16-GAP-00140/manifest.json
Normal file
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00140",
|
||||
"parentTask": "M16-GAP-00139",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": true,
|
||||
"runtime": "BLENDER_5_2_LOCAL_EXACT",
|
||||
"operation": "ACTION_SELECT_LESS_LOCAL_EXACT",
|
||||
"status": "done",
|
||||
"artifacts": {
|
||||
"parentManifest": {"path": "tests/golden/M16-GAP-00139/manifest.json", "sha256": "f534007c6619c059eaeb7aec81215d560b37009f89938823cd73370803919fab"},
|
||||
"fixture": {"path": "tests/files/web/generated/M16-GAP-00140-operator-action.select_less.blend", "sha256": "3acc7908b362f9c224e825c5429b59d549a77dab4e2b45b285221e5c54fa0c2b"},
|
||||
"generator": {"path": "tools/web/generated/M16-GAP-00140.py", "sha256": "62fe22db41e856439c50c542d0a62b6db4fbfc80facedf625ba58291d3b4a928"},
|
||||
"desktopChecker": {"path": "tools/web/check-action-select-less-desktop.py", "sha256": "52a4f3d5f5232f5843612286b35db8fb19050b8610c573a1bdcbbdae627d261f"},
|
||||
"webChecker": {"path": "tools/web/check-generated-gap.mjs", "sha256": "45d5b93b987792feb203d53dccaf2ac81b858d503ac5ed4716e160650ead512b"},
|
||||
"reader": {"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp", "sha256": "bd0c21440ef1af91dbb861687f8b8637a58656a4965e59cc67fc16b495cf437e"},
|
||||
"wasm": {"path": "web/app/src/vendor/blender/web_engine.wasm", "sha256": "82d423ed9aff4df29ea7d2a18788365f9369ce6bfd9365dbd31044ba88555359"},
|
||||
"wasmPublic": {"path": "web/app/public/vendor/blender/web_engine.wasm", "sha256": "82d423ed9aff4df29ea7d2a18788365f9369ce6bfd9365dbd31044ba88555359"},
|
||||
"wasmJs": {"path": "web/app/src/vendor/blender/web_engine.js", "sha256": "9c831d0351ac9d0714cce3b1da748cba416ced3086e3c59595cf24ac4da459ed"},
|
||||
"desktopReport": {"path": "tests/golden/M16-GAP-00140/action-select-less-desktop-report.json", "sha256": "f8527dd5d6d953fbda5b86bb1f42d6257b244a50296ceeb074c57a7b007a3aef"},
|
||||
"webReport": {"path": "tests/golden/M16-GAP-00140/action-select-less-local-exact-report.json", "sha256": "243dedadaa9776d7195883a99689e4cb8ee07599bf6c9786aaf8ee5910135e17"},
|
||||
"taskContext": {"path": "tests/golden/M16-GAP-00140/task-context.json", "sha256": "fc860324c53484ebaa1b1266cf51530abf10645c7e4546db5a495a25778ed03d"}
|
||||
},
|
||||
"nextTask": "M16-GAP-00141"
|
||||
}
|
||||
185
tests/golden/M16-GAP-00140/task-context.json
Normal file
185
tests/golden/M16-GAP-00140/task-context.json
Normal file
@@ -0,0 +1,185 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00140",
|
||||
"parentTask": "M16-GAP-00139",
|
||||
"status": "in_progress",
|
||||
"goal": "Make the same minimal fixture produce observable operator:action.select_less 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.select_less",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"implementationClass": "LOCAL_EXACT"
|
||||
},
|
||||
"commands": [
|
||||
"build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00140.py -- tests/files/web/generated/M16-GAP-00140-operator-action.select_less.blend",
|
||||
"npm --prefix web run test:generated-gap -- --task M16-GAP-00140",
|
||||
"node tools/web/check-generated-gap.mjs --task M16-GAP-00140"
|
||||
],
|
||||
"inputPaths": [
|
||||
"tools/web/generated/M16-GAP-00140.py"
|
||||
],
|
||||
"inputSelection": {
|
||||
"schemaVersion": 1,
|
||||
"limits": {
|
||||
"maxFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextRemainingBytes": 3132,
|
||||
"contextRemainingTokens": 782
|
||||
},
|
||||
"source": {
|
||||
"bytes": 6772,
|
||||
"tokens": 1694
|
||||
},
|
||||
"selected": [
|
||||
{
|
||||
"path": "tools/web/generated/M16-GAP-00140.py",
|
||||
"bytes": 2195,
|
||||
"tokens": 549
|
||||
}
|
||||
],
|
||||
"excluded": [
|
||||
{
|
||||
"path": "tests/files/web/generated/M16-GAP-00140-operator-action.select_less.blend",
|
||||
"bytes": 86865,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp",
|
||||
"bytes": 224767,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tools/web/check-generated-gap.mjs",
|
||||
"bytes": 240756,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00140/",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00140.md",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00140/manifest.json",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"files": 1,
|
||||
"bytes": 2195,
|
||||
"tokens": 549
|
||||
}
|
||||
},
|
||||
"exitCriteria": [
|
||||
"desktop fixture evidence exists",
|
||||
"WASM uses the same fixture",
|
||||
"comparator passes",
|
||||
"save/reopen preserves Main",
|
||||
"manifest hashes all artifacts"
|
||||
],
|
||||
"nextTask": "M16-GAP-00141",
|
||||
"sourceDocuments": {
|
||||
"queue": "docs/EXECUTION_QUEUE.md",
|
||||
"taskCard": "docs/tasks/M16-GAP-00140.md",
|
||||
"taskIndex": "tests/golden/M15-03A/task-index.json",
|
||||
"parentManifest": "tests/golden/M16-GAP-00139/manifest.json",
|
||||
"parentStatus": "docs/status/M16-GAP-00139.md"
|
||||
},
|
||||
"readPolicy": {
|
||||
"required": [
|
||||
"docs/EXECUTION_QUEUE.md",
|
||||
"docs/tasks/M16-GAP-00140.md",
|
||||
"tests/golden/M16-GAP-00139/manifest.json",
|
||||
"docs/status/M16-GAP-00139.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-00139",
|
||||
"parentTask": "M16-GAP-00138",
|
||||
"status": "done",
|
||||
"nextTask": "M16-GAP-00140",
|
||||
"artifactCount": 12
|
||||
},
|
||||
"statusSummary": [
|
||||
"# M16-GAP-00139 Status",
|
||||
"status: done",
|
||||
"task: action.select_leftright operator LOCAL_EXACT slice",
|
||||
"updated: 2026-08-20 America/New_York",
|
||||
"scope:",
|
||||
"- Action Editor left-side selection on `object:WebGapSelectLeftRightObject`, using `mode=LEFT` at frame 3.",
|
||||
"evidence:",
|
||||
"- Blender desktop and WASM/Main expose matching three location channels with frames 1 and 3 selected."
|
||||
]
|
||||
},
|
||||
"budgets": {
|
||||
"queueBytes": 4096,
|
||||
"taskBytes": 1779,
|
||||
"parentManifestBytes": 24576,
|
||||
"parentStatusBytes": 6144,
|
||||
"evidenceFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextTokens": 3500,
|
||||
"contextEnvelopeTokens": 1024,
|
||||
"taskLines": 38,
|
||||
"taskTokens": 445
|
||||
},
|
||||
"size": {
|
||||
"documents": [
|
||||
{
|
||||
"path": "docs/EXECUTION_QUEUE.md",
|
||||
"bytes": 2168,
|
||||
"lines": 45,
|
||||
"tokens": 542
|
||||
},
|
||||
{
|
||||
"path": "docs/tasks/M16-GAP-00140.md",
|
||||
"bytes": 1779,
|
||||
"lines": 38,
|
||||
"tokens": 445
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00139/manifest.json",
|
||||
"bytes": 2237,
|
||||
"lines": 26,
|
||||
"tokens": 560
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00139.md",
|
||||
"bytes": 588,
|
||||
"lines": 18,
|
||||
"tokens": 147
|
||||
}
|
||||
],
|
||||
"sourceTokens": 1694,
|
||||
"evidenceFiles": 1,
|
||||
"evidenceBytes": 2195,
|
||||
"evidenceTokens": 549,
|
||||
"totalTokens": 2243,
|
||||
"reservedEnvelopeTokens": 1024,
|
||||
"estimatedContextTokens": 3267,
|
||||
"serializedContextTokens": 753,
|
||||
"withinBudget": true
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
{
|
||||
"action": {
|
||||
"channels": [
|
||||
{
|
||||
"frames": [
|
||||
1.0,
|
||||
3.0,
|
||||
5.0
|
||||
],
|
||||
"index": 0,
|
||||
"path": "location",
|
||||
"selected": [
|
||||
true,
|
||||
true,
|
||||
true
|
||||
]
|
||||
},
|
||||
{
|
||||
"frames": [
|
||||
1.0,
|
||||
3.0,
|
||||
5.0
|
||||
],
|
||||
"index": 1,
|
||||
"path": "location",
|
||||
"selected": [
|
||||
true,
|
||||
true,
|
||||
true
|
||||
]
|
||||
},
|
||||
{
|
||||
"frames": [
|
||||
1.0,
|
||||
3.0,
|
||||
5.0
|
||||
],
|
||||
"index": 2,
|
||||
"path": "location",
|
||||
"selected": [
|
||||
true,
|
||||
true,
|
||||
true
|
||||
]
|
||||
}
|
||||
],
|
||||
"name": "WebGapSelectLinkedObjectAction"
|
||||
},
|
||||
"blenderVersion": "5.2.0 LTS",
|
||||
"fixture": "/home/mes123456/workinf_Blender_Wasm/tests/files/web/generated/M16-GAP-00141-operator-action.select_linked.blend",
|
||||
"fixtureSha256": "62ddf7e0141f7bf5b0bfbf85b8faa0cb0ae602681f70e2c5e979db033b14056f",
|
||||
"operation": "ACTION_SELECT_LINKED_DESKTOP",
|
||||
"saveReopen": "EXACT",
|
||||
"schemaVersion": 1,
|
||||
"selectedChannel": "location[0]",
|
||||
"selectedFrames": [
|
||||
1,
|
||||
3,
|
||||
5
|
||||
],
|
||||
"task": "M16-GAP-00141"
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00141",
|
||||
"operation": "ACTION_SELECT_LINKED_LOCAL_EXACT",
|
||||
"fixture": {
|
||||
"path": "tests/files/web/generated/M16-GAP-00141-operator-action.select_linked.blend",
|
||||
"sha256": "62ddf7e0141f7bf5b0bfbf85b8faa0cb0ae602681f70e2c5e979db033b14056f"
|
||||
},
|
||||
"desktop": {
|
||||
"status": "EXACT",
|
||||
"report": "tests/golden/M16-GAP-00141/action-select-linked-desktop-report.json",
|
||||
"saveReopen": "EXACT"
|
||||
},
|
||||
"wasm": {
|
||||
"status": "EXACT",
|
||||
"actionId": "action:WebGapSelectLinkedObjectAction:object:WebGapSelectLinkedObject",
|
||||
"selectedChannel": "location[0]",
|
||||
"selectedFrames": [
|
||||
1,
|
||||
3,
|
||||
5
|
||||
],
|
||||
"selectedPerChannel": [
|
||||
[
|
||||
1,
|
||||
3,
|
||||
5
|
||||
],
|
||||
[
|
||||
1,
|
||||
3,
|
||||
5
|
||||
],
|
||||
[
|
||||
1,
|
||||
3,
|
||||
5
|
||||
]
|
||||
]
|
||||
},
|
||||
"saveReopen": "EXACT",
|
||||
"negative": {
|
||||
"malformedBlend": "REJECTED_WITHOUT_MAIN_MUTATION"
|
||||
},
|
||||
"nextTask": "M16-GAP-00142"
|
||||
}
|
||||
25
tests/golden/M16-GAP-00141/manifest.json
Normal file
25
tests/golden/M16-GAP-00141/manifest.json
Normal file
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00141",
|
||||
"parentTask": "M16-GAP-00140",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": true,
|
||||
"runtime": "BLENDER_5_2_LOCAL_EXACT",
|
||||
"operation": "ACTION_SELECT_LINKED_LOCAL_EXACT",
|
||||
"status": "done",
|
||||
"artifacts": {
|
||||
"parentManifest": {"path": "tests/golden/M16-GAP-00140/manifest.json", "sha256": "218516d7a1a3b9f28799dea042f41861cae9c1343e8e6bfae4939b6bdb169935"},
|
||||
"fixture": {"path": "tests/files/web/generated/M16-GAP-00141-operator-action.select_linked.blend", "sha256": "62ddf7e0141f7bf5b0bfbf85b8faa0cb0ae602681f70e2c5e979db033b14056f"},
|
||||
"generator": {"path": "tools/web/generated/M16-GAP-00141.py", "sha256": "3e27b0fffe763b6526e4e32fa9b40aae72f229038e846237b90e72312aa1a8eb"},
|
||||
"desktopChecker": {"path": "tools/web/check-action-select-linked-desktop.py", "sha256": "4a1baae0c4add326934d50647d014248b43acf8e7ad90360921e1a487c25b150"},
|
||||
"webChecker": {"path": "tools/web/check-generated-gap.mjs", "sha256": "1775105b3fe1650933326d6d49290edd3d0a15b8542a15ac202346260a49c10d"},
|
||||
"reader": {"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp", "sha256": "bd0c21440ef1af91dbb861687f8b8637a58656a4965e59cc67fc16b495cf437e"},
|
||||
"wasm": {"path": "web/app/src/vendor/blender/web_engine.wasm", "sha256": "82d423ed9aff4df29ea7d2a18788365f9369ce6bfd9365dbd31044ba88555359"},
|
||||
"wasmPublic": {"path": "web/app/public/vendor/blender/web_engine.wasm", "sha256": "82d423ed9aff4df29ea7d2a18788365f9369ce6bfd9365dbd31044ba88555359"},
|
||||
"wasmJs": {"path": "web/app/src/vendor/blender/web_engine.js", "sha256": "9c831d0351ac9d0714cce3b1da748cba416ced3086e3c59595cf24ac4da459ed"},
|
||||
"desktopReport": {"path": "tests/golden/M16-GAP-00141/action-select-linked-desktop-report.json", "sha256": "7072809e5ceef8161b75594deaaf809e31ea01a67ef6261ac2d9e9fabbb5e296"},
|
||||
"webReport": {"path": "tests/golden/M16-GAP-00141/action-select-linked-local-exact-report.json", "sha256": "261490656ea23b3c1800ca523a9d00911347b7f46e40b7b1d16e693470ddc8d4"},
|
||||
"taskContext": {"path": "tests/golden/M16-GAP-00141/task-context.json", "sha256": "cf032562d9fc471a6a72b2e8dc50021e383ddc0fd628fca14e971647b64c5ad6"}
|
||||
},
|
||||
"nextTask": "M16-GAP-00142"
|
||||
}
|
||||
185
tests/golden/M16-GAP-00141/task-context.json
Normal file
185
tests/golden/M16-GAP-00141/task-context.json
Normal file
@@ -0,0 +1,185 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00141",
|
||||
"parentTask": "M16-GAP-00140",
|
||||
"status": "in_progress",
|
||||
"goal": "Make the same minimal fixture produce observable operator:action.select_linked 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.select_linked",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"implementationClass": "LOCAL_EXACT"
|
||||
},
|
||||
"commands": [
|
||||
"build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00141.py -- tests/files/web/generated/M16-GAP-00141-operator-action.select_linked.blend",
|
||||
"npm --prefix web run test:generated-gap -- --task M16-GAP-00141",
|
||||
"node tools/web/check-generated-gap.mjs --task M16-GAP-00141"
|
||||
],
|
||||
"inputPaths": [
|
||||
"tools/web/generated/M16-GAP-00141.py"
|
||||
],
|
||||
"inputSelection": {
|
||||
"schemaVersion": 1,
|
||||
"limits": {
|
||||
"maxFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextRemainingBytes": 3162,
|
||||
"contextRemainingTokens": 789
|
||||
},
|
||||
"source": {
|
||||
"bytes": 6742,
|
||||
"tokens": 1687
|
||||
},
|
||||
"selected": [
|
||||
{
|
||||
"path": "tools/web/generated/M16-GAP-00141.py",
|
||||
"bytes": 2274,
|
||||
"tokens": 569
|
||||
}
|
||||
],
|
||||
"excluded": [
|
||||
{
|
||||
"path": "tests/files/web/generated/M16-GAP-00141-operator-action.select_linked.blend",
|
||||
"bytes": 86861,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp",
|
||||
"bytes": 224767,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tools/web/check-generated-gap.mjs",
|
||||
"bytes": 244499,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00141/",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00141.md",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00141/manifest.json",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"files": 1,
|
||||
"bytes": 2274,
|
||||
"tokens": 569
|
||||
}
|
||||
},
|
||||
"exitCriteria": [
|
||||
"desktop fixture evidence exists",
|
||||
"WASM uses the same fixture",
|
||||
"comparator passes",
|
||||
"save/reopen preserves Main",
|
||||
"manifest hashes all artifacts"
|
||||
],
|
||||
"nextTask": "M16-GAP-00142",
|
||||
"sourceDocuments": {
|
||||
"queue": "docs/EXECUTION_QUEUE.md",
|
||||
"taskCard": "docs/tasks/M16-GAP-00141.md",
|
||||
"taskIndex": "tests/golden/M15-03A/task-index.json",
|
||||
"parentManifest": "tests/golden/M16-GAP-00140/manifest.json",
|
||||
"parentStatus": "docs/status/M16-GAP-00140.md"
|
||||
},
|
||||
"readPolicy": {
|
||||
"required": [
|
||||
"docs/EXECUTION_QUEUE.md",
|
||||
"docs/tasks/M16-GAP-00141.md",
|
||||
"tests/golden/M16-GAP-00140/manifest.json",
|
||||
"docs/status/M16-GAP-00140.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-00140",
|
||||
"parentTask": "M16-GAP-00139",
|
||||
"status": "done",
|
||||
"nextTask": "M16-GAP-00141",
|
||||
"artifactCount": 12
|
||||
},
|
||||
"statusSummary": [
|
||||
"# M16-GAP-00140 Status",
|
||||
"status: done",
|
||||
"task: action.select_less operator LOCAL_EXACT slice",
|
||||
"updated: 2026-08-20 America/New_York",
|
||||
"scope:",
|
||||
"- Action Editor selection-island shrinking on `object:WebGapSelectLessObject`.",
|
||||
"evidence:",
|
||||
"- Blender desktop and WASM/Main expose matching three location channels with only frame 3 selected after `select_less`."
|
||||
]
|
||||
},
|
||||
"budgets": {
|
||||
"queueBytes": 4096,
|
||||
"taskBytes": 1789,
|
||||
"parentManifestBytes": 24576,
|
||||
"parentStatusBytes": 6144,
|
||||
"evidenceFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextTokens": 3500,
|
||||
"contextEnvelopeTokens": 1024,
|
||||
"taskLines": 38,
|
||||
"taskTokens": 448
|
||||
},
|
||||
"size": {
|
||||
"documents": [
|
||||
{
|
||||
"path": "docs/EXECUTION_QUEUE.md",
|
||||
"bytes": 2168,
|
||||
"lines": 45,
|
||||
"tokens": 542
|
||||
},
|
||||
{
|
||||
"path": "docs/tasks/M16-GAP-00141.md",
|
||||
"bytes": 1789,
|
||||
"lines": 38,
|
||||
"tokens": 448
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00140/manifest.json",
|
||||
"bytes": 2212,
|
||||
"lines": 26,
|
||||
"tokens": 553
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00140.md",
|
||||
"bytes": 573,
|
||||
"lines": 18,
|
||||
"tokens": 144
|
||||
}
|
||||
],
|
||||
"sourceTokens": 1687,
|
||||
"evidenceFiles": 1,
|
||||
"evidenceBytes": 2274,
|
||||
"evidenceTokens": 569,
|
||||
"totalTokens": 2256,
|
||||
"reservedEnvelopeTokens": 1024,
|
||||
"estimatedContextTokens": 3280,
|
||||
"serializedContextTokens": 754,
|
||||
"withinBudget": true
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
{
|
||||
"action": {
|
||||
"channels": [
|
||||
{
|
||||
"frames": [
|
||||
1.0,
|
||||
3.0,
|
||||
5.0
|
||||
],
|
||||
"index": 0,
|
||||
"path": "location",
|
||||
"selected": [
|
||||
true,
|
||||
true,
|
||||
true
|
||||
]
|
||||
},
|
||||
{
|
||||
"frames": [
|
||||
1.0,
|
||||
3.0,
|
||||
5.0
|
||||
],
|
||||
"index": 1,
|
||||
"path": "location",
|
||||
"selected": [
|
||||
true,
|
||||
true,
|
||||
true
|
||||
]
|
||||
},
|
||||
{
|
||||
"frames": [
|
||||
1.0,
|
||||
3.0,
|
||||
5.0
|
||||
],
|
||||
"index": 2,
|
||||
"path": "location",
|
||||
"selected": [
|
||||
true,
|
||||
true,
|
||||
true
|
||||
]
|
||||
}
|
||||
],
|
||||
"name": "WebGapSelectMoreObjectAction"
|
||||
},
|
||||
"blenderVersion": "5.2.0 LTS",
|
||||
"fixture": "/home/mes123456/workinf_Blender_Wasm/tests/files/web/generated/M16-GAP-00142-operator-action.select_more.blend",
|
||||
"fixtureSha256": "9f0a3fad228c1a7200cd9ac76af24fb8a853dd261f49ef2186491690713ec726",
|
||||
"operation": "ACTION_SELECT_MORE_DESKTOP",
|
||||
"saveReopen": "EXACT",
|
||||
"schemaVersion": 1,
|
||||
"selectedChannel": "location[0]",
|
||||
"selectedPerChannel": [
|
||||
[
|
||||
1,
|
||||
3,
|
||||
5
|
||||
],
|
||||
[
|
||||
1,
|
||||
3,
|
||||
5
|
||||
],
|
||||
[
|
||||
1,
|
||||
3,
|
||||
5
|
||||
]
|
||||
],
|
||||
"task": "M16-GAP-00142"
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00142",
|
||||
"operation": "ACTION_SELECT_MORE_LOCAL_EXACT",
|
||||
"fixture": {
|
||||
"path": "tests/files/web/generated/M16-GAP-00142-operator-action.select_more.blend",
|
||||
"sha256": "9f0a3fad228c1a7200cd9ac76af24fb8a853dd261f49ef2186491690713ec726"
|
||||
},
|
||||
"desktop": {
|
||||
"status": "EXACT",
|
||||
"report": "tests/golden/M16-GAP-00142/action-select-more-desktop-report.json",
|
||||
"saveReopen": "EXACT"
|
||||
},
|
||||
"wasm": {
|
||||
"status": "EXACT",
|
||||
"actionId": "action:WebGapSelectMoreObjectAction:object:WebGapSelectMoreObject",
|
||||
"selectedChannel": "location[0]",
|
||||
"selectedPerChannel": [
|
||||
[
|
||||
1,
|
||||
3,
|
||||
5
|
||||
],
|
||||
[
|
||||
1,
|
||||
3,
|
||||
5
|
||||
],
|
||||
[
|
||||
1,
|
||||
3,
|
||||
5
|
||||
]
|
||||
]
|
||||
},
|
||||
"saveReopen": "EXACT",
|
||||
"negative": {
|
||||
"malformedBlend": "REJECTED_WITHOUT_MAIN_MUTATION"
|
||||
},
|
||||
"nextTask": "M16-GAP-00143"
|
||||
}
|
||||
25
tests/golden/M16-GAP-00142/manifest.json
Normal file
25
tests/golden/M16-GAP-00142/manifest.json
Normal file
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00142",
|
||||
"parentTask": "M16-GAP-00141",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": true,
|
||||
"runtime": "BLENDER_5_2_LOCAL_EXACT",
|
||||
"operation": "ACTION_SELECT_MORE_LOCAL_EXACT",
|
||||
"status": "done",
|
||||
"artifacts": {
|
||||
"parentManifest": {"path": "tests/golden/M16-GAP-00141/manifest.json", "sha256": "96756fb16e9731f2b7f217993ad6c2126d58fd5fd17bd71d1df55c0b463f4ddb"},
|
||||
"fixture": {"path": "tests/files/web/generated/M16-GAP-00142-operator-action.select_more.blend", "sha256": "9f0a3fad228c1a7200cd9ac76af24fb8a853dd261f49ef2186491690713ec726"},
|
||||
"generator": {"path": "tools/web/generated/M16-GAP-00142.py", "sha256": "36dc0cf95dae703e72f8071625b94617e8d13a1845dc148835b5584625281d16"},
|
||||
"desktopChecker": {"path": "tools/web/check-action-select-more-desktop.py", "sha256": "7bfff8a2113d7933e76c0339232810c8cd43d1a633eee7832acb4c4069790f5b"},
|
||||
"webChecker": {"path": "tools/web/check-generated-gap.mjs", "sha256": "61254d77bac838d4a488a5152e3ba176a66bd49ea9a79e611e2e7de41f0a1bb8"},
|
||||
"reader": {"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp", "sha256": "bd0c21440ef1af91dbb861687f8b8637a58656a4965e59cc67fc16b495cf437e"},
|
||||
"wasm": {"path": "web/app/src/vendor/blender/web_engine.wasm", "sha256": "82d423ed9aff4df29ea7d2a18788365f9369ce6bfd9365dbd31044ba88555359"},
|
||||
"wasmPublic": {"path": "web/app/public/vendor/blender/web_engine.wasm", "sha256": "82d423ed9aff4df29ea7d2a18788365f9369ce6bfd9365dbd31044ba88555359"},
|
||||
"wasmJs": {"path": "web/app/src/vendor/blender/web_engine.js", "sha256": "9c831d0351ac9d0714cce3b1da748cba416ced3086e3c59595cf24ac4da459ed"},
|
||||
"desktopReport": {"path": "tests/golden/M16-GAP-00142/action-select-more-desktop-report.json", "sha256": "56944dfcacb924d7650b8652e52bfc254fb1673b40b04109a57f69ad67e3fe9a"},
|
||||
"webReport": {"path": "tests/golden/M16-GAP-00142/action-select-more-local-exact-report.json", "sha256": "91f1ef2bf23e75b681beea332836b359da9daf1902b8d77cb683b0e1657562a0"},
|
||||
"taskContext": {"path": "tests/golden/M16-GAP-00142/task-context.json", "sha256": "727493f7483e1fc0c42a516da51e469393881b5d15c5c362f04138bcd4c6944e"}
|
||||
},
|
||||
"nextTask": "M16-GAP-00143"
|
||||
}
|
||||
185
tests/golden/M16-GAP-00142/task-context.json
Normal file
185
tests/golden/M16-GAP-00142/task-context.json
Normal file
@@ -0,0 +1,185 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00142",
|
||||
"parentTask": "M16-GAP-00141",
|
||||
"status": "in_progress",
|
||||
"goal": "Make the same minimal fixture produce observable operator:action.select_more 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.select_more",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"implementationClass": "LOCAL_EXACT"
|
||||
},
|
||||
"commands": [
|
||||
"build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00142.py -- tests/files/web/generated/M16-GAP-00142-operator-action.select_more.blend",
|
||||
"npm --prefix web run test:generated-gap -- --task M16-GAP-00142",
|
||||
"node tools/web/check-generated-gap.mjs --task M16-GAP-00142"
|
||||
],
|
||||
"inputPaths": [
|
||||
"tools/web/generated/M16-GAP-00142.py"
|
||||
],
|
||||
"inputSelection": {
|
||||
"schemaVersion": 1,
|
||||
"limits": {
|
||||
"maxFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextRemainingBytes": 3124,
|
||||
"contextRemainingTokens": 780
|
||||
},
|
||||
"source": {
|
||||
"bytes": 6780,
|
||||
"tokens": 1696
|
||||
},
|
||||
"selected": [
|
||||
{
|
||||
"path": "tools/web/generated/M16-GAP-00142.py",
|
||||
"bytes": 2258,
|
||||
"tokens": 565
|
||||
}
|
||||
],
|
||||
"excluded": [
|
||||
{
|
||||
"path": "tests/files/web/generated/M16-GAP-00142-operator-action.select_more.blend",
|
||||
"bytes": 86855,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp",
|
||||
"bytes": 224767,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tools/web/check-generated-gap.mjs",
|
||||
"bytes": 248154,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00142/",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00142.md",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00142/manifest.json",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"files": 1,
|
||||
"bytes": 2258,
|
||||
"tokens": 565
|
||||
}
|
||||
},
|
||||
"exitCriteria": [
|
||||
"desktop fixture evidence exists",
|
||||
"WASM uses the same fixture",
|
||||
"comparator passes",
|
||||
"save/reopen preserves Main",
|
||||
"manifest hashes all artifacts"
|
||||
],
|
||||
"nextTask": "M16-GAP-00143",
|
||||
"sourceDocuments": {
|
||||
"queue": "docs/EXECUTION_QUEUE.md",
|
||||
"taskCard": "docs/tasks/M16-GAP-00142.md",
|
||||
"taskIndex": "tests/golden/M15-03A/task-index.json",
|
||||
"parentManifest": "tests/golden/M16-GAP-00141/manifest.json",
|
||||
"parentStatus": "docs/status/M16-GAP-00141.md"
|
||||
},
|
||||
"readPolicy": {
|
||||
"required": [
|
||||
"docs/EXECUTION_QUEUE.md",
|
||||
"docs/tasks/M16-GAP-00142.md",
|
||||
"tests/golden/M16-GAP-00141/manifest.json",
|
||||
"docs/status/M16-GAP-00141.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-00141",
|
||||
"parentTask": "M16-GAP-00140",
|
||||
"status": "done",
|
||||
"nextTask": "M16-GAP-00142",
|
||||
"artifactCount": 12
|
||||
},
|
||||
"statusSummary": [
|
||||
"# M16-GAP-00141 Status",
|
||||
"status: done",
|
||||
"task: action.select_linked operator LOCAL_EXACT slice",
|
||||
"updated: 2026-08-20 America/New_York",
|
||||
"scope:",
|
||||
"- Action Editor linked selection on `object:WebGapSelectLinkedObject`, starting from `location[0]` frame 3.",
|
||||
"evidence:",
|
||||
"- Blender desktop and WASM/Main expose matching three location channels with frames 1, 3 and 5 selected after `select_linked`."
|
||||
]
|
||||
},
|
||||
"budgets": {
|
||||
"queueBytes": 4096,
|
||||
"taskBytes": 1779,
|
||||
"parentManifestBytes": 24576,
|
||||
"parentStatusBytes": 6144,
|
||||
"evidenceFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextTokens": 3500,
|
||||
"contextEnvelopeTokens": 1024,
|
||||
"taskLines": 38,
|
||||
"taskTokens": 445
|
||||
},
|
||||
"size": {
|
||||
"documents": [
|
||||
{
|
||||
"path": "docs/EXECUTION_QUEUE.md",
|
||||
"bytes": 2168,
|
||||
"lines": 45,
|
||||
"tokens": 542
|
||||
},
|
||||
{
|
||||
"path": "docs/tasks/M16-GAP-00142.md",
|
||||
"bytes": 1779,
|
||||
"lines": 38,
|
||||
"tokens": 445
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00141/manifest.json",
|
||||
"bytes": 2222,
|
||||
"lines": 26,
|
||||
"tokens": 556
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00141.md",
|
||||
"bytes": 611,
|
||||
"lines": 18,
|
||||
"tokens": 153
|
||||
}
|
||||
],
|
||||
"sourceTokens": 1696,
|
||||
"evidenceFiles": 1,
|
||||
"evidenceBytes": 2258,
|
||||
"evidenceTokens": 565,
|
||||
"totalTokens": 2261,
|
||||
"reservedEnvelopeTokens": 1024,
|
||||
"estimatedContextTokens": 3285,
|
||||
"serializedContextTokens": 753,
|
||||
"withinBudget": true
|
||||
}
|
||||
}
|
||||
58
tests/golden/M16-GAP-00143/action-snap-desktop-report.json
Normal file
58
tests/golden/M16-GAP-00143/action-snap-desktop-report.json
Normal file
@@ -0,0 +1,58 @@
|
||||
{
|
||||
"action": {
|
||||
"channels": [
|
||||
{
|
||||
"frames": [
|
||||
1.0,
|
||||
4.0,
|
||||
5.0
|
||||
],
|
||||
"index": 0,
|
||||
"path": "location",
|
||||
"selected": [
|
||||
false,
|
||||
true,
|
||||
false
|
||||
]
|
||||
},
|
||||
{
|
||||
"frames": [
|
||||
1.0,
|
||||
4.0,
|
||||
5.0
|
||||
],
|
||||
"index": 1,
|
||||
"path": "location",
|
||||
"selected": [
|
||||
false,
|
||||
true,
|
||||
false
|
||||
]
|
||||
},
|
||||
{
|
||||
"frames": [
|
||||
1.0,
|
||||
4.0,
|
||||
5.0
|
||||
],
|
||||
"index": 2,
|
||||
"path": "location",
|
||||
"selected": [
|
||||
false,
|
||||
true,
|
||||
false
|
||||
]
|
||||
}
|
||||
],
|
||||
"name": "WebGapSnapObjectAction"
|
||||
},
|
||||
"blenderVersion": "5.2.0 LTS",
|
||||
"currentFrame": 4,
|
||||
"fixture": "/home/mes123456/workinf_Blender_Wasm/tests/files/web/generated/M16-GAP-00143-operator-action.snap.blend",
|
||||
"fixtureSha256": "d12a490f3d76a0b599f4fdffbb2dd65e01d0c637a2de6bbe78a44b887676995a",
|
||||
"operation": "ACTION_SNAP_DESKTOP",
|
||||
"saveReopen": "EXACT",
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00143",
|
||||
"type": "CFRA"
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00143",
|
||||
"operation": "ACTION_SNAP_LOCAL_EXACT",
|
||||
"fixture": {
|
||||
"path": "tests/files/web/generated/M16-GAP-00143-operator-action.snap.blend",
|
||||
"sha256": "d12a490f3d76a0b599f4fdffbb2dd65e01d0c637a2de6bbe78a44b887676995a"
|
||||
},
|
||||
"desktop": {
|
||||
"status": "EXACT",
|
||||
"report": "tests/golden/M16-GAP-00143/action-snap-desktop-report.json",
|
||||
"saveReopen": "EXACT"
|
||||
},
|
||||
"wasm": {
|
||||
"status": "EXACT",
|
||||
"actionId": "action:WebGapSnapObjectAction:object:WebGapSnapObject",
|
||||
"type": "CFRA",
|
||||
"currentFrame": 4,
|
||||
"framesPerChannel": [
|
||||
[
|
||||
1,
|
||||
4,
|
||||
5
|
||||
],
|
||||
[
|
||||
1,
|
||||
4,
|
||||
5
|
||||
],
|
||||
[
|
||||
1,
|
||||
4,
|
||||
5
|
||||
]
|
||||
],
|
||||
"selectedPerChannel": [
|
||||
[
|
||||
4
|
||||
],
|
||||
[
|
||||
4
|
||||
],
|
||||
[
|
||||
4
|
||||
]
|
||||
]
|
||||
},
|
||||
"saveReopen": "EXACT",
|
||||
"negative": {
|
||||
"malformedBlend": "REJECTED_WITHOUT_MAIN_MUTATION"
|
||||
},
|
||||
"nextTask": "M16-GAP-00144"
|
||||
}
|
||||
25
tests/golden/M16-GAP-00143/manifest.json
Normal file
25
tests/golden/M16-GAP-00143/manifest.json
Normal file
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00143",
|
||||
"parentTask": "M16-GAP-00142",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": true,
|
||||
"runtime": "BLENDER_5_2_LOCAL_EXACT",
|
||||
"operation": "ACTION_SNAP_LOCAL_EXACT",
|
||||
"status": "done",
|
||||
"artifacts": {
|
||||
"parentManifest": {"path": "tests/golden/M16-GAP-00142/manifest.json", "sha256": "faece45f1ca92a39c7d1314b1eb325641c4eb4db91b321ca53578e6db6c734a0"},
|
||||
"fixture": {"path": "tests/files/web/generated/M16-GAP-00143-operator-action.snap.blend", "sha256": "d12a490f3d76a0b599f4fdffbb2dd65e01d0c637a2de6bbe78a44b887676995a"},
|
||||
"generator": {"path": "tools/web/generated/M16-GAP-00143.py", "sha256": "fe0b8f6c70b0a2fece59b696e5e83e55cb2f72705bb89db43b8ed4e953a198be"},
|
||||
"desktopChecker": {"path": "tools/web/check-action-snap-desktop.py", "sha256": "01064fe4acd586e99986372a8b39a72340d1a961506c7c189b074ce7928cd568"},
|
||||
"webChecker": {"path": "tools/web/check-generated-gap.mjs", "sha256": "b5cc720937266a6e7dbfbaa96005079f8ce97dc38aaad79742a3eb99ad17fa83"},
|
||||
"reader": {"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp", "sha256": "bd0c21440ef1af91dbb861687f8b8637a58656a4965e59cc67fc16b495cf437e"},
|
||||
"wasm": {"path": "web/app/src/vendor/blender/web_engine.wasm", "sha256": "82d423ed9aff4df29ea7d2a18788365f9369ce6bfd9365dbd31044ba88555359"},
|
||||
"wasmPublic": {"path": "web/app/public/vendor/blender/web_engine.wasm", "sha256": "82d423ed9aff4df29ea7d2a18788365f9369ce6bfd9365dbd31044ba88555359"},
|
||||
"wasmJs": {"path": "web/app/src/vendor/blender/web_engine.js", "sha256": "9c831d0351ac9d0714cce3b1da748cba416ced3086e3c59595cf24ac4da459ed"},
|
||||
"desktopReport": {"path": "tests/golden/M16-GAP-00143/action-snap-desktop-report.json", "sha256": "0da5db63e20db1a97fed02019368de5c6a758e6e34c8b43af52800d33dfa48e0"},
|
||||
"webReport": {"path": "tests/golden/M16-GAP-00143/action-snap-local-exact-report.json", "sha256": "61afb2360dc9814da3b741a133b07728b4a560676e7a436f995d1c07e1a4d17e"},
|
||||
"taskContext": {"path": "tests/golden/M16-GAP-00143/task-context.json", "sha256": "8fbac173dc0bf7f0775d149161c7ea2ddf2cdd489f0f634669f860983806c1f1"}
|
||||
},
|
||||
"nextTask": "M16-GAP-00144"
|
||||
}
|
||||
185
tests/golden/M16-GAP-00143/task-context.json
Normal file
185
tests/golden/M16-GAP-00143/task-context.json
Normal file
@@ -0,0 +1,185 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00143",
|
||||
"parentTask": "M16-GAP-00142",
|
||||
"status": "in_progress",
|
||||
"goal": "Make the same minimal fixture produce observable operator:action.snap 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.snap",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"implementationClass": "LOCAL_EXACT"
|
||||
},
|
||||
"commands": [
|
||||
"build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00143.py -- tests/files/web/generated/M16-GAP-00143-operator-action.snap.blend",
|
||||
"npm --prefix web run test:generated-gap -- --task M16-GAP-00143",
|
||||
"node tools/web/check-generated-gap.mjs --task M16-GAP-00143"
|
||||
],
|
||||
"inputPaths": [
|
||||
"tools/web/generated/M16-GAP-00143.py"
|
||||
],
|
||||
"inputSelection": {
|
||||
"schemaVersion": 1,
|
||||
"limits": {
|
||||
"maxFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextRemainingBytes": 3166,
|
||||
"contextRemainingTokens": 791
|
||||
},
|
||||
"source": {
|
||||
"bytes": 6738,
|
||||
"tokens": 1685
|
||||
},
|
||||
"selected": [
|
||||
{
|
||||
"path": "tools/web/generated/M16-GAP-00143.py",
|
||||
"bytes": 2223,
|
||||
"tokens": 556
|
||||
}
|
||||
],
|
||||
"excluded": [
|
||||
{
|
||||
"path": "tests/files/web/generated/M16-GAP-00143-operator-action.snap.blend",
|
||||
"bytes": 86847,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp",
|
||||
"bytes": 224767,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tools/web/check-generated-gap.mjs",
|
||||
"bytes": 251833,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00143/",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00143.md",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00143/manifest.json",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"files": 1,
|
||||
"bytes": 2223,
|
||||
"tokens": 556
|
||||
}
|
||||
},
|
||||
"exitCriteria": [
|
||||
"desktop fixture evidence exists",
|
||||
"WASM uses the same fixture",
|
||||
"comparator passes",
|
||||
"save/reopen preserves Main",
|
||||
"manifest hashes all artifacts"
|
||||
],
|
||||
"nextTask": "M16-GAP-00144",
|
||||
"sourceDocuments": {
|
||||
"queue": "docs/EXECUTION_QUEUE.md",
|
||||
"taskCard": "docs/tasks/M16-GAP-00143.md",
|
||||
"taskIndex": "tests/golden/M15-03A/task-index.json",
|
||||
"parentManifest": "tests/golden/M16-GAP-00142/manifest.json",
|
||||
"parentStatus": "docs/status/M16-GAP-00142.md"
|
||||
},
|
||||
"readPolicy": {
|
||||
"required": [
|
||||
"docs/EXECUTION_QUEUE.md",
|
||||
"docs/tasks/M16-GAP-00143.md",
|
||||
"tests/golden/M16-GAP-00142/manifest.json",
|
||||
"docs/status/M16-GAP-00142.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-00142",
|
||||
"parentTask": "M16-GAP-00141",
|
||||
"status": "done",
|
||||
"nextTask": "M16-GAP-00143",
|
||||
"artifactCount": 12
|
||||
},
|
||||
"statusSummary": [
|
||||
"# M16-GAP-00142 Status",
|
||||
"status: done",
|
||||
"task: action.select_more operator LOCAL_EXACT slice",
|
||||
"updated: 2026-08-20 America/New_York",
|
||||
"scope:",
|
||||
"- Action Editor neighboring-key selection on `object:WebGapSelectMoreObject`, starting from `location[0]` frame 3.",
|
||||
"evidence:",
|
||||
"- Blender desktop and WASM/Main expose matching three location channels with frames 1, 3 and 5 selected after `select_more`."
|
||||
]
|
||||
},
|
||||
"budgets": {
|
||||
"queueBytes": 4096,
|
||||
"taskBytes": 1744,
|
||||
"parentManifestBytes": 24576,
|
||||
"parentStatusBytes": 6144,
|
||||
"evidenceFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextTokens": 3500,
|
||||
"contextEnvelopeTokens": 1024,
|
||||
"taskLines": 38,
|
||||
"taskTokens": 436
|
||||
},
|
||||
"size": {
|
||||
"documents": [
|
||||
{
|
||||
"path": "docs/EXECUTION_QUEUE.md",
|
||||
"bytes": 2168,
|
||||
"lines": 45,
|
||||
"tokens": 542
|
||||
},
|
||||
{
|
||||
"path": "docs/tasks/M16-GAP-00143.md",
|
||||
"bytes": 1744,
|
||||
"lines": 38,
|
||||
"tokens": 436
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00142/manifest.json",
|
||||
"bytes": 2212,
|
||||
"lines": 26,
|
||||
"tokens": 553
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00142.md",
|
||||
"bytes": 614,
|
||||
"lines": 18,
|
||||
"tokens": 154
|
||||
}
|
||||
],
|
||||
"sourceTokens": 1685,
|
||||
"evidenceFiles": 1,
|
||||
"evidenceBytes": 2223,
|
||||
"evidenceTokens": 556,
|
||||
"totalTokens": 2241,
|
||||
"reservedEnvelopeTokens": 1024,
|
||||
"estimatedContextTokens": 3265,
|
||||
"serializedContextTokens": 747,
|
||||
"withinBudget": true
|
||||
}
|
||||
}
|
||||
25
tests/golden/M16-GAP-00144/action-stash-desktop-report.json
Normal file
25
tests/golden/M16-GAP-00144/action-stash-desktop-report.json
Normal file
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"blenderVersion": "5.2.0 LTS",
|
||||
"fixture": "/home/mes123456/workinf_Blender_Wasm/tests/files/web/generated/M16-GAP-00144-operator-action.stash.blend",
|
||||
"fixtureSha256": "7d617c7e82a5673eedd2f48178a5991066a276a2c149f7be92c5f5975adc4234",
|
||||
"nla": {
|
||||
"activeAction": null,
|
||||
"tracks": [
|
||||
{
|
||||
"name": "[Action Stash]",
|
||||
"strips": [
|
||||
{
|
||||
"action": "WebGapStashObjectAction",
|
||||
"frameEnd": 5.0,
|
||||
"frameStart": 1.0,
|
||||
"name": "WebGapStashObjectAction"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"operation": "ACTION_STASH_DESKTOP",
|
||||
"saveReopen": "EXACT",
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00144"
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00144",
|
||||
"operation": "ACTION_STASH_LOCAL_EXACT",
|
||||
"fixture": {
|
||||
"path": "tests/files/web/generated/M16-GAP-00144-operator-action.stash.blend",
|
||||
"sha256": "7d617c7e82a5673eedd2f48178a5991066a276a2c149f7be92c5f5975adc4234"
|
||||
},
|
||||
"desktop": {
|
||||
"status": "EXACT",
|
||||
"report": "tests/golden/M16-GAP-00144/action-stash-desktop-report.json",
|
||||
"saveReopen": "EXACT"
|
||||
},
|
||||
"wasm": {
|
||||
"status": "EXACT",
|
||||
"actionId": "action:WebGapStashObjectAction:object:WebGapStashObject",
|
||||
"nlaTracks": [
|
||||
{
|
||||
"id": "nla-track:object:WebGapStashObject:0",
|
||||
"muted": true,
|
||||
"name": "[Action Stash]",
|
||||
"ownerId": "object:WebGapStashObject",
|
||||
"schemaVersion": 1,
|
||||
"selected": true,
|
||||
"solo": false,
|
||||
"strips": [
|
||||
{
|
||||
"actionFrameEnd": 5,
|
||||
"actionFrameStart": 1,
|
||||
"actionId": "action:WebGapStashObjectAction:object:WebGapStashObject",
|
||||
"blendIn": 0,
|
||||
"blendMode": "REPLACE",
|
||||
"blendOut": 0,
|
||||
"extrapolation": "HOLD",
|
||||
"frameEnd": 5,
|
||||
"frameStart": 1,
|
||||
"id": "WebGapStashObjectAction",
|
||||
"influence": 0,
|
||||
"muted": false,
|
||||
"repeat": 1,
|
||||
"reverse": false,
|
||||
"scale": 1,
|
||||
"selected": false,
|
||||
"stripType": "CLIP",
|
||||
"useTimeWarp": false
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"saveReopen": "EXACT",
|
||||
"negative": {
|
||||
"malformedBlend": "REJECTED_WITHOUT_MAIN_MUTATION"
|
||||
},
|
||||
"nextTask": "M16-GAP-00145"
|
||||
}
|
||||
25
tests/golden/M16-GAP-00144/manifest.json
Normal file
25
tests/golden/M16-GAP-00144/manifest.json
Normal file
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00144",
|
||||
"parentTask": "M16-GAP-00143",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": true,
|
||||
"runtime": "BLENDER_5_2_LOCAL_EXACT",
|
||||
"operation": "ACTION_STASH_LOCAL_EXACT",
|
||||
"status": "done",
|
||||
"artifacts": {
|
||||
"parentManifest": {"path": "tests/golden/M16-GAP-00143/manifest.json", "sha256": "3a9c08d6b0e17899165f7597919854e8c528028ba7879a25e4d33d659475ce34"},
|
||||
"fixture": {"path": "tests/files/web/generated/M16-GAP-00144-operator-action.stash.blend", "sha256": "7d617c7e82a5673eedd2f48178a5991066a276a2c149f7be92c5f5975adc4234"},
|
||||
"generator": {"path": "tools/web/generated/M16-GAP-00144.py", "sha256": "66275fb985c801c659e063f2379d9154093550cb7d5916013332b88aa25dfbec"},
|
||||
"desktopChecker": {"path": "tools/web/check-action-stash-desktop.py", "sha256": "dca0ae7cc8914f9598a0638ff19d0c8a490efd794b9a6fde331d8e45306c97df"},
|
||||
"webChecker": {"path": "tools/web/check-generated-gap.mjs", "sha256": "714be20b276ad1d4476e6e18f9533f75cdc730a0aade382ebf58ac5b912c6244"},
|
||||
"reader": {"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp", "sha256": "bd0c21440ef1af91dbb861687f8b8637a58656a4965e59cc67fc16b495cf437e"},
|
||||
"wasm": {"path": "web/app/src/vendor/blender/web_engine.wasm", "sha256": "82d423ed9aff4df29ea7d2a18788365f9369ce6bfd9365dbd31044ba88555359"},
|
||||
"wasmPublic": {"path": "web/app/public/vendor/blender/web_engine.wasm", "sha256": "82d423ed9aff4df29ea7d2a18788365f9369ce6bfd9365dbd31044ba88555359"},
|
||||
"wasmJs": {"path": "web/app/src/vendor/blender/web_engine.js", "sha256": "9c831d0351ac9d0714cce3b1da748cba416ced3086e3c59595cf24ac4da459ed"},
|
||||
"desktopReport": {"path": "tests/golden/M16-GAP-00144/action-stash-desktop-report.json", "sha256": "c7b38407179b23e212f2fff6d34424b3c9f21e024f8ce936cae8f4a6746c4904"},
|
||||
"webReport": {"path": "tests/golden/M16-GAP-00144/action-stash-local-exact-report.json", "sha256": "0dd4d10207503d6ea41c2d630b137471587961ceaa26870132936c8c91a72752"},
|
||||
"taskContext": {"path": "tests/golden/M16-GAP-00144/task-context.json", "sha256": "45bc5f26682956126524444937f5af263c238b91d66f23f295a4bf37e49d42a2"}
|
||||
},
|
||||
"nextTask": "M16-GAP-00145"
|
||||
}
|
||||
185
tests/golden/M16-GAP-00144/task-context.json
Normal file
185
tests/golden/M16-GAP-00144/task-context.json
Normal file
@@ -0,0 +1,185 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00144",
|
||||
"parentTask": "M16-GAP-00143",
|
||||
"status": "in_progress",
|
||||
"goal": "Make the same minimal fixture produce observable operator:action.stash 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.stash",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"implementationClass": "LOCAL_EXACT"
|
||||
},
|
||||
"commands": [
|
||||
"build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00144.py -- tests/files/web/generated/M16-GAP-00144-operator-action.stash.blend",
|
||||
"npm --prefix web run test:generated-gap -- --task M16-GAP-00144",
|
||||
"node tools/web/check-generated-gap.mjs --task M16-GAP-00144"
|
||||
],
|
||||
"inputPaths": [
|
||||
"tools/web/generated/M16-GAP-00144.py"
|
||||
],
|
||||
"inputSelection": {
|
||||
"schemaVersion": 1,
|
||||
"limits": {
|
||||
"maxFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextRemainingBytes": 3231,
|
||||
"contextRemainingTokens": 806
|
||||
},
|
||||
"source": {
|
||||
"bytes": 6673,
|
||||
"tokens": 1670
|
||||
},
|
||||
"selected": [
|
||||
{
|
||||
"path": "tools/web/generated/M16-GAP-00144.py",
|
||||
"bytes": 1848,
|
||||
"tokens": 462
|
||||
}
|
||||
],
|
||||
"excluded": [
|
||||
{
|
||||
"path": "tests/files/web/generated/M16-GAP-00144-operator-action.stash.blend",
|
||||
"bytes": 86955,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp",
|
||||
"bytes": 224767,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tools/web/check-generated-gap.mjs",
|
||||
"bytes": 255063,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00144/",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00144.md",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00144/manifest.json",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"files": 1,
|
||||
"bytes": 1848,
|
||||
"tokens": 462
|
||||
}
|
||||
},
|
||||
"exitCriteria": [
|
||||
"desktop fixture evidence exists",
|
||||
"WASM uses the same fixture",
|
||||
"comparator passes",
|
||||
"save/reopen preserves Main",
|
||||
"manifest hashes all artifacts"
|
||||
],
|
||||
"nextTask": "M16-GAP-00145",
|
||||
"sourceDocuments": {
|
||||
"queue": "docs/EXECUTION_QUEUE.md",
|
||||
"taskCard": "docs/tasks/M16-GAP-00144.md",
|
||||
"taskIndex": "tests/golden/M15-03A/task-index.json",
|
||||
"parentManifest": "tests/golden/M16-GAP-00143/manifest.json",
|
||||
"parentStatus": "docs/status/M16-GAP-00143.md"
|
||||
},
|
||||
"readPolicy": {
|
||||
"required": [
|
||||
"docs/EXECUTION_QUEUE.md",
|
||||
"docs/tasks/M16-GAP-00144.md",
|
||||
"tests/golden/M16-GAP-00143/manifest.json",
|
||||
"docs/status/M16-GAP-00143.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-00143",
|
||||
"parentTask": "M16-GAP-00142",
|
||||
"status": "done",
|
||||
"nextTask": "M16-GAP-00144",
|
||||
"artifactCount": 12
|
||||
},
|
||||
"statusSummary": [
|
||||
"# M16-GAP-00143 Status",
|
||||
"status: done",
|
||||
"task: action.snap operator LOCAL_EXACT slice",
|
||||
"updated: 2026-08-20 America/New_York",
|
||||
"scope:",
|
||||
"- Action Editor current-frame snapping on `object:WebGapSnapObject`, using `type=CFRA` at frame 4.",
|
||||
"evidence:",
|
||||
"- Blender desktop and WASM/Main expose matching location channels with keyframes `[1,4,5]` and frame 4 selected."
|
||||
]
|
||||
},
|
||||
"budgets": {
|
||||
"queueBytes": 4096,
|
||||
"taskBytes": 1749,
|
||||
"parentManifestBytes": 24576,
|
||||
"parentStatusBytes": 6144,
|
||||
"evidenceFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextTokens": 3500,
|
||||
"contextEnvelopeTokens": 1024,
|
||||
"taskLines": 38,
|
||||
"taskTokens": 438
|
||||
},
|
||||
"size": {
|
||||
"documents": [
|
||||
{
|
||||
"path": "docs/EXECUTION_QUEUE.md",
|
||||
"bytes": 2168,
|
||||
"lines": 45,
|
||||
"tokens": 542
|
||||
},
|
||||
{
|
||||
"path": "docs/tasks/M16-GAP-00144.md",
|
||||
"bytes": 1749,
|
||||
"lines": 38,
|
||||
"tokens": 438
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00143/manifest.json",
|
||||
"bytes": 2177,
|
||||
"lines": 26,
|
||||
"tokens": 545
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00143.md",
|
||||
"bytes": 579,
|
||||
"lines": 18,
|
||||
"tokens": 145
|
||||
}
|
||||
],
|
||||
"sourceTokens": 1670,
|
||||
"evidenceFiles": 1,
|
||||
"evidenceBytes": 1848,
|
||||
"evidenceTokens": 462,
|
||||
"totalTokens": 2132,
|
||||
"reservedEnvelopeTokens": 1024,
|
||||
"estimatedContextTokens": 3156,
|
||||
"serializedContextTokens": 748,
|
||||
"withinBudget": true
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"blenderVersion": "5.2.0 LTS",
|
||||
"fixture": "/home/mes123456/workinf_Blender_Wasm/tests/files/web/generated/M16-GAP-00145-operator-action.stash_and_create.blend",
|
||||
"fixtureSha256": "f7b2dc080c9aa23cc45b9a2c59114f23ce3f1369f00618c9ef51569516692f38",
|
||||
"nla": {
|
||||
"activeAction": "Action",
|
||||
"tracks": [
|
||||
{
|
||||
"name": "[Action Stash]",
|
||||
"strips": [
|
||||
{
|
||||
"action": "WebGapStashCreateObjectAction",
|
||||
"frameEnd": 5.0,
|
||||
"frameStart": 1.0,
|
||||
"name": "WebGapStashCreateObjectAction"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"operation": "ACTION_STASH_AND_CREATE_DESKTOP",
|
||||
"saveReopen": "EXACT",
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00145"
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00145",
|
||||
"operation": "ACTION_STASH_AND_CREATE_LOCAL_EXACT",
|
||||
"fixture": {
|
||||
"path": "tests/files/web/generated/M16-GAP-00145-operator-action.stash_and_create.blend",
|
||||
"sha256": "f7b2dc080c9aa23cc45b9a2c59114f23ce3f1369f00618c9ef51569516692f38"
|
||||
},
|
||||
"desktop": {
|
||||
"status": "EXACT",
|
||||
"report": "tests/golden/M16-GAP-00145/action-stash-and-create-desktop-report.json",
|
||||
"saveReopen": "EXACT"
|
||||
},
|
||||
"wasm": {
|
||||
"status": "EXACT",
|
||||
"activeActionId": null,
|
||||
"stashedActionId": "action:WebGapStashCreateObjectAction:object:WebGapStashCreateObject",
|
||||
"nlaTracks": [
|
||||
{
|
||||
"id": "nla-track:object:WebGapStashCreateObject:0",
|
||||
"muted": true,
|
||||
"name": "[Action Stash]",
|
||||
"ownerId": "object:WebGapStashCreateObject",
|
||||
"schemaVersion": 1,
|
||||
"selected": true,
|
||||
"solo": false,
|
||||
"strips": [
|
||||
{
|
||||
"actionFrameEnd": 5,
|
||||
"actionFrameStart": 1,
|
||||
"actionId": "action:WebGapStashCreateObjectAction:object:WebGapStashCreateObject",
|
||||
"blendIn": 0,
|
||||
"blendMode": "REPLACE",
|
||||
"blendOut": 0,
|
||||
"extrapolation": "HOLD",
|
||||
"frameEnd": 5,
|
||||
"frameStart": 1,
|
||||
"id": "WebGapStashCreateObjectAction",
|
||||
"influence": 0,
|
||||
"muted": false,
|
||||
"repeat": 1,
|
||||
"reverse": false,
|
||||
"scale": 1,
|
||||
"selected": false,
|
||||
"stripType": "CLIP",
|
||||
"useTimeWarp": false
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"saveReopen": "EXACT",
|
||||
"negative": {
|
||||
"malformedBlend": "REJECTED_WITHOUT_MAIN_MUTATION"
|
||||
},
|
||||
"nextTask": "M16-GAP-00146"
|
||||
}
|
||||
25
tests/golden/M16-GAP-00145/manifest.json
Normal file
25
tests/golden/M16-GAP-00145/manifest.json
Normal file
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00145",
|
||||
"parentTask": "M16-GAP-00144",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": true,
|
||||
"runtime": "BLENDER_5_2_LOCAL_EXACT",
|
||||
"operation": "ACTION_STASH_AND_CREATE_LOCAL_EXACT",
|
||||
"status": "done",
|
||||
"artifacts": {
|
||||
"parentManifest": {"path": "tests/golden/M16-GAP-00144/manifest.json", "sha256": "4727b5807db7269de9353110d51bc5d6e594202cc5cb72a91697cee3589e539b"},
|
||||
"fixture": {"path": "tests/files/web/generated/M16-GAP-00145-operator-action.stash_and_create.blend", "sha256": "f7b2dc080c9aa23cc45b9a2c59114f23ce3f1369f00618c9ef51569516692f38"},
|
||||
"generator": {"path": "tools/web/generated/M16-GAP-00145.py", "sha256": "cbbc5b2e3e84ec8442c4acb065be91a6818ff7c1d2d92e7a0e13253696b8389d"},
|
||||
"desktopChecker": {"path": "tools/web/check-action-stash-and-create-desktop.py", "sha256": "5bb7d73a5be061df3d95ce46357a5b0f48e863be217a4677f25f33d31d960cd5"},
|
||||
"webChecker": {"path": "tools/web/check-generated-gap.mjs", "sha256": "e9ef46b4772f94a6b4bba3d3c3c7142e162355846cd75239f9324a4cebbb5c3d"},
|
||||
"reader": {"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp", "sha256": "bd0c21440ef1af91dbb861687f8b8637a58656a4965e59cc67fc16b495cf437e"},
|
||||
"wasm": {"path": "web/app/src/vendor/blender/web_engine.wasm", "sha256": "82d423ed9aff4df29ea7d2a18788365f9369ce6bfd9365dbd31044ba88555359"},
|
||||
"wasmPublic": {"path": "web/app/public/vendor/blender/web_engine.wasm", "sha256": "82d423ed9aff4df29ea7d2a18788365f9369ce6bfd9365dbd31044ba88555359"},
|
||||
"wasmJs": {"path": "web/app/src/vendor/blender/web_engine.js", "sha256": "9c831d0351ac9d0714cce3b1da748cba416ced3086e3c59595cf24ac4da459ed"},
|
||||
"desktopReport": {"path": "tests/golden/M16-GAP-00145/action-stash-and-create-desktop-report.json", "sha256": "05f9f233a10822b8de85e9b2070863d6f584e60123b4fc91e4d147a93e120df7"},
|
||||
"webReport": {"path": "tests/golden/M16-GAP-00145/action-stash-and-create-local-exact-report.json", "sha256": "2820c70ab69ad674d6bee5424fceb98062fc33b0e309de98d0fe092515f0f4ea"},
|
||||
"taskContext": {"path": "tests/golden/M16-GAP-00145/task-context.json", "sha256": "d785cecfb165f45ec6fcefe072c7cbed452e0ccb0ef6fba5fbf22b1b85224596"}
|
||||
},
|
||||
"nextTask": "M16-GAP-00146"
|
||||
}
|
||||
185
tests/golden/M16-GAP-00145/task-context.json
Normal file
185
tests/golden/M16-GAP-00145/task-context.json
Normal file
@@ -0,0 +1,185 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00145",
|
||||
"parentTask": "M16-GAP-00144",
|
||||
"status": "in_progress",
|
||||
"goal": "Make the same minimal fixture produce observable operator:action.stash_and_create 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.stash_and_create",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"implementationClass": "LOCAL_EXACT"
|
||||
},
|
||||
"commands": [
|
||||
"build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00145.py -- tests/files/web/generated/M16-GAP-00145-operator-action.stash_and_create.blend",
|
||||
"npm --prefix web run test:generated-gap -- --task M16-GAP-00145",
|
||||
"node tools/web/check-generated-gap.mjs --task M16-GAP-00145"
|
||||
],
|
||||
"inputPaths": [
|
||||
"tools/web/generated/M16-GAP-00145.py"
|
||||
],
|
||||
"inputSelection": {
|
||||
"schemaVersion": 1,
|
||||
"limits": {
|
||||
"maxFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextRemainingBytes": 3199,
|
||||
"contextRemainingTokens": 799
|
||||
},
|
||||
"source": {
|
||||
"bytes": 6705,
|
||||
"tokens": 1677
|
||||
},
|
||||
"selected": [
|
||||
{
|
||||
"path": "tools/web/generated/M16-GAP-00145.py",
|
||||
"bytes": 1926,
|
||||
"tokens": 482
|
||||
}
|
||||
],
|
||||
"excluded": [
|
||||
{
|
||||
"path": "tests/files/web/generated/M16-GAP-00145-operator-action.stash_and_create.blend",
|
||||
"bytes": 87002,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp",
|
||||
"bytes": 224767,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tools/web/check-generated-gap.mjs",
|
||||
"bytes": 258363,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00145/",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00145.md",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00145/manifest.json",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"files": 1,
|
||||
"bytes": 1926,
|
||||
"tokens": 482
|
||||
}
|
||||
},
|
||||
"exitCriteria": [
|
||||
"desktop fixture evidence exists",
|
||||
"WASM uses the same fixture",
|
||||
"comparator passes",
|
||||
"save/reopen preserves Main",
|
||||
"manifest hashes all artifacts"
|
||||
],
|
||||
"nextTask": "M16-GAP-00146",
|
||||
"sourceDocuments": {
|
||||
"queue": "docs/EXECUTION_QUEUE.md",
|
||||
"taskCard": "docs/tasks/M16-GAP-00145.md",
|
||||
"taskIndex": "tests/golden/M15-03A/task-index.json",
|
||||
"parentManifest": "tests/golden/M16-GAP-00144/manifest.json",
|
||||
"parentStatus": "docs/status/M16-GAP-00144.md"
|
||||
},
|
||||
"readPolicy": {
|
||||
"required": [
|
||||
"docs/EXECUTION_QUEUE.md",
|
||||
"docs/tasks/M16-GAP-00145.md",
|
||||
"tests/golden/M16-GAP-00144/manifest.json",
|
||||
"docs/status/M16-GAP-00144.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-00144",
|
||||
"parentTask": "M16-GAP-00143",
|
||||
"status": "done",
|
||||
"nextTask": "M16-GAP-00145",
|
||||
"artifactCount": 12
|
||||
},
|
||||
"statusSummary": [
|
||||
"# M16-GAP-00144 Status",
|
||||
"status: done",
|
||||
"task: action.stash operator LOCAL_EXACT slice",
|
||||
"updated: 2026-08-20 America/New_York",
|
||||
"scope:",
|
||||
"- Action Editor Action stashing on `object:WebGapStashObject`.",
|
||||
"evidence:",
|
||||
"- Blender desktop and WASM/Main expose no active Action plus one NLA track containing one strip for the stashed Action."
|
||||
]
|
||||
},
|
||||
"budgets": {
|
||||
"queueBytes": 4096,
|
||||
"taskBytes": 1804,
|
||||
"parentManifestBytes": 24576,
|
||||
"parentStatusBytes": 6144,
|
||||
"evidenceFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextTokens": 3500,
|
||||
"contextEnvelopeTokens": 1024,
|
||||
"taskLines": 38,
|
||||
"taskTokens": 451
|
||||
},
|
||||
"size": {
|
||||
"documents": [
|
||||
{
|
||||
"path": "docs/EXECUTION_QUEUE.md",
|
||||
"bytes": 2168,
|
||||
"lines": 45,
|
||||
"tokens": 542
|
||||
},
|
||||
{
|
||||
"path": "docs/tasks/M16-GAP-00145.md",
|
||||
"bytes": 1804,
|
||||
"lines": 38,
|
||||
"tokens": 451
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00144/manifest.json",
|
||||
"bytes": 2182,
|
||||
"lines": 26,
|
||||
"tokens": 546
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00144.md",
|
||||
"bytes": 551,
|
||||
"lines": 18,
|
||||
"tokens": 138
|
||||
}
|
||||
],
|
||||
"sourceTokens": 1677,
|
||||
"evidenceFiles": 1,
|
||||
"evidenceBytes": 1926,
|
||||
"evidenceTokens": 482,
|
||||
"totalTokens": 2159,
|
||||
"reservedEnvelopeTokens": 1024,
|
||||
"estimatedContextTokens": 3183,
|
||||
"serializedContextTokens": 756,
|
||||
"withinBudget": true
|
||||
}
|
||||
}
|
||||
46
tests/golden/M16-GAP-00146/action-unlink-desktop-report.json
Normal file
46
tests/golden/M16-GAP-00146/action-unlink-desktop-report.json
Normal file
@@ -0,0 +1,46 @@
|
||||
{
|
||||
"action": {
|
||||
"activeAction": null,
|
||||
"unlinkedAction": {
|
||||
"channels": [
|
||||
{
|
||||
"frames": [
|
||||
1.0,
|
||||
3.0,
|
||||
5.0
|
||||
],
|
||||
"index": 0,
|
||||
"path": "location"
|
||||
},
|
||||
{
|
||||
"frames": [
|
||||
1.0,
|
||||
3.0,
|
||||
5.0
|
||||
],
|
||||
"index": 1,
|
||||
"path": "location"
|
||||
},
|
||||
{
|
||||
"frames": [
|
||||
1.0,
|
||||
3.0,
|
||||
5.0
|
||||
],
|
||||
"index": 2,
|
||||
"path": "location"
|
||||
}
|
||||
],
|
||||
"name": "WebGapActionUnlinkObjectAction",
|
||||
"useFakeUser": true,
|
||||
"users": 1
|
||||
}
|
||||
},
|
||||
"blenderVersion": "5.2.0 LTS",
|
||||
"fixture": "/home/mes123456/workinf_Blender_Wasm/tests/files/web/generated/M16-GAP-00146-operator-action.unlink.blend",
|
||||
"fixtureSha256": "80d5a85825c441b1835e82af730df148dd664fbae988aabb9aab6e74ac605f11",
|
||||
"operation": "ACTION_UNLINK_DESKTOP",
|
||||
"saveReopen": "EXACT",
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00146"
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00146",
|
||||
"operation": "ACTION_UNLINK_LOCAL_EXACT",
|
||||
"fixture": {
|
||||
"path": "tests/files/web/generated/M16-GAP-00146-operator-action.unlink.blend",
|
||||
"sha256": "80d5a85825c441b1835e82af730df148dd664fbae988aabb9aab6e74ac605f11"
|
||||
},
|
||||
"desktop": {
|
||||
"status": "EXACT",
|
||||
"report": "tests/golden/M16-GAP-00146/action-unlink-desktop-report.json",
|
||||
"saveReopen": "EXACT"
|
||||
},
|
||||
"wasm": {
|
||||
"status": "EXACT",
|
||||
"actionId": "action:WebGapActionUnlinkObjectAction:unlinked",
|
||||
"targetId": "unlinked",
|
||||
"unlinked": true,
|
||||
"keyframesPerChannel": [
|
||||
3,
|
||||
3,
|
||||
3
|
||||
]
|
||||
},
|
||||
"saveReopen": "EXACT",
|
||||
"negative": {
|
||||
"malformedBlend": "REJECTED_WITHOUT_MAIN_MUTATION"
|
||||
},
|
||||
"nextTask": "M16-GAP-00147"
|
||||
}
|
||||
25
tests/golden/M16-GAP-00146/manifest.json
Normal file
25
tests/golden/M16-GAP-00146/manifest.json
Normal file
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00146",
|
||||
"parentTask": "M16-GAP-00145",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": true,
|
||||
"runtime": "BLENDER_5_2_LOCAL_EXACT",
|
||||
"operation": "ACTION_UNLINK_LOCAL_EXACT",
|
||||
"status": "done",
|
||||
"artifacts": {
|
||||
"parentManifest": {"path": "tests/golden/M16-GAP-00145/manifest.json", "sha256": "4fc29aed9ce6ef07732304b80483e2c4c7c0036e692b4705b6f0cb952fe04829"},
|
||||
"fixture": {"path": "tests/files/web/generated/M16-GAP-00146-operator-action.unlink.blend", "sha256": "80d5a85825c441b1835e82af730df148dd664fbae988aabb9aab6e74ac605f11"},
|
||||
"generator": {"path": "tools/web/generated/M16-GAP-00146.py", "sha256": "ab4682dbd1e828f8f18d2bb0cc17ff6a795d364fefe5f0dadb88b74f55220638"},
|
||||
"desktopChecker": {"path": "tools/web/check-action-unlink-desktop.py", "sha256": "e0f244be5712faa8caaa094efdfefc69c5ffaa9cb4e7e1185414f3da35e239ae"},
|
||||
"webChecker": {"path": "tools/web/check-generated-gap.mjs", "sha256": "4eb56bd2bd37d9c0fe5d9a82aa74a521cb8f958d04d108dcf81d1ab3947b306c"},
|
||||
"reader": {"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp", "sha256": "7682a90dc52034a663309705922bdefbc617644b9756f3e66228b442b7c75aa8"},
|
||||
"wasm": {"path": "web/app/src/vendor/blender/web_engine.wasm", "sha256": "37784bb62b9da62f7db7a66d1dc009aa82a9123a2d07f0c26f524989395c907f"},
|
||||
"wasmPublic": {"path": "web/app/public/vendor/blender/web_engine.wasm", "sha256": "37784bb62b9da62f7db7a66d1dc009aa82a9123a2d07f0c26f524989395c907f"},
|
||||
"wasmJs": {"path": "web/app/src/vendor/blender/web_engine.js", "sha256": "9c831d0351ac9d0714cce3b1da748cba416ced3086e3c59595cf24ac4da459ed"},
|
||||
"desktopReport": {"path": "tests/golden/M16-GAP-00146/action-unlink-desktop-report.json", "sha256": "a328397950846c7ee22fc7d0ab5788eb5174a8296f79c70763f007274977f5b6"},
|
||||
"webReport": {"path": "tests/golden/M16-GAP-00146/action-unlink-local-exact-report.json", "sha256": "2190f23628b0b4ecb68a8c5aafb096e412c7fe5f654bad094686b0700c8e388c"},
|
||||
"taskContext": {"path": "tests/golden/M16-GAP-00146/task-context.json", "sha256": "5fe6424cd98d78ea065bb1fb0cd34bae92552171592698a48182d08b943a4c08"}
|
||||
},
|
||||
"nextTask": "M16-GAP-00147"
|
||||
}
|
||||
185
tests/golden/M16-GAP-00146/task-context.json
Normal file
185
tests/golden/M16-GAP-00146/task-context.json
Normal file
@@ -0,0 +1,185 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00146",
|
||||
"parentTask": "M16-GAP-00145",
|
||||
"status": "in_progress",
|
||||
"goal": "Make the same minimal fixture produce observable operator:action.unlink 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.unlink",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"implementationClass": "LOCAL_EXACT"
|
||||
},
|
||||
"commands": [
|
||||
"build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00146.py -- tests/files/web/generated/M16-GAP-00146-operator-action.unlink.blend",
|
||||
"npm --prefix web run test:generated-gap -- --task M16-GAP-00146",
|
||||
"node tools/web/check-generated-gap.mjs --task M16-GAP-00146"
|
||||
],
|
||||
"inputPaths": [
|
||||
"tools/web/generated/M16-GAP-00146.py"
|
||||
],
|
||||
"inputSelection": {
|
||||
"schemaVersion": 1,
|
||||
"limits": {
|
||||
"maxFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextRemainingBytes": 3177,
|
||||
"contextRemainingTokens": 793
|
||||
},
|
||||
"source": {
|
||||
"bytes": 6727,
|
||||
"tokens": 1683
|
||||
},
|
||||
"selected": [
|
||||
{
|
||||
"path": "tools/web/generated/M16-GAP-00146.py",
|
||||
"bytes": 2007,
|
||||
"tokens": 502
|
||||
}
|
||||
],
|
||||
"excluded": [
|
||||
{
|
||||
"path": "tests/files/web/generated/M16-GAP-00146-operator-action.unlink.blend",
|
||||
"bytes": 86881,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp",
|
||||
"bytes": 225529,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tools/web/check-generated-gap.mjs",
|
||||
"bytes": 261657,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00146/",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00146.md",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00146/manifest.json",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"files": 1,
|
||||
"bytes": 2007,
|
||||
"tokens": 502
|
||||
}
|
||||
},
|
||||
"exitCriteria": [
|
||||
"desktop fixture evidence exists",
|
||||
"WASM uses the same fixture",
|
||||
"comparator passes",
|
||||
"save/reopen preserves Main",
|
||||
"manifest hashes all artifacts"
|
||||
],
|
||||
"nextTask": "M16-GAP-00147",
|
||||
"sourceDocuments": {
|
||||
"queue": "docs/EXECUTION_QUEUE.md",
|
||||
"taskCard": "docs/tasks/M16-GAP-00146.md",
|
||||
"taskIndex": "tests/golden/M15-03A/task-index.json",
|
||||
"parentManifest": "tests/golden/M16-GAP-00145/manifest.json",
|
||||
"parentStatus": "docs/status/M16-GAP-00145.md"
|
||||
},
|
||||
"readPolicy": {
|
||||
"required": [
|
||||
"docs/EXECUTION_QUEUE.md",
|
||||
"docs/tasks/M16-GAP-00146.md",
|
||||
"tests/golden/M16-GAP-00145/manifest.json",
|
||||
"docs/status/M16-GAP-00145.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-00145",
|
||||
"parentTask": "M16-GAP-00144",
|
||||
"status": "done",
|
||||
"nextTask": "M16-GAP-00146",
|
||||
"artifactCount": 12
|
||||
},
|
||||
"statusSummary": [
|
||||
"# M16-GAP-00145 Status",
|
||||
"status: done",
|
||||
"task: action.stash_and_create operator LOCAL_EXACT slice",
|
||||
"updated: 2026-08-20 America/New_York",
|
||||
"scope:",
|
||||
"- Action Editor stash-and-create on `object:WebGapStashCreateObject`.",
|
||||
"evidence:",
|
||||
"- Blender desktop and WASM/Main expose one NLA track/strip containing the stashed Action while active Action is empty."
|
||||
]
|
||||
},
|
||||
"budgets": {
|
||||
"queueBytes": 4096,
|
||||
"taskBytes": 1754,
|
||||
"parentManifestBytes": 24576,
|
||||
"parentStatusBytes": 6144,
|
||||
"evidenceFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextTokens": 3500,
|
||||
"contextEnvelopeTokens": 1024,
|
||||
"taskLines": 38,
|
||||
"taskTokens": 439
|
||||
},
|
||||
"size": {
|
||||
"documents": [
|
||||
{
|
||||
"path": "docs/EXECUTION_QUEUE.md",
|
||||
"bytes": 2168,
|
||||
"lines": 45,
|
||||
"tokens": 542
|
||||
},
|
||||
{
|
||||
"path": "docs/tasks/M16-GAP-00146.md",
|
||||
"bytes": 1754,
|
||||
"lines": 38,
|
||||
"tokens": 439
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00145/manifest.json",
|
||||
"bytes": 2237,
|
||||
"lines": 26,
|
||||
"tokens": 560
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00145.md",
|
||||
"bytes": 568,
|
||||
"lines": 18,
|
||||
"tokens": 142
|
||||
}
|
||||
],
|
||||
"sourceTokens": 1683,
|
||||
"evidenceFiles": 1,
|
||||
"evidenceBytes": 2007,
|
||||
"evidenceTokens": 502,
|
||||
"totalTokens": 2185,
|
||||
"reservedEnvelopeTokens": 1024,
|
||||
"estimatedContextTokens": 3209,
|
||||
"serializedContextTokens": 749,
|
||||
"withinBudget": true
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"action": {
|
||||
"areaType": "DOPESHEET_EDITOR",
|
||||
"uiMode": "ACTION",
|
||||
"view2d": {
|
||||
"cur": {
|
||||
"xmax": 5.0,
|
||||
"xmin": 1.0,
|
||||
"ymax": 0.0,
|
||||
"ymin": -380.0
|
||||
},
|
||||
"mask": {
|
||||
"xmax": 1153,
|
||||
"xmin": 0,
|
||||
"ymax": 380,
|
||||
"ymin": 0
|
||||
}
|
||||
}
|
||||
},
|
||||
"blenderVersion": "5.2.0 LTS",
|
||||
"fixture": "/home/mes123456/workinf_Blender_Wasm/tests/files/web/generated/M16-GAP-00147-operator-action.view_all.blend",
|
||||
"fixtureSha256": "ef2a4fd9a28a6a97d40b258beb11f8e00899c4715e0ba6e0703a25aecd678ec5",
|
||||
"operation": "ACTION_VIEW_ALL_DESKTOP",
|
||||
"saveReopen": "EXACT",
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00147"
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00147",
|
||||
"operation": "ACTION_VIEW_ALL_LOCAL_EXACT",
|
||||
"fixture": {
|
||||
"path": "tests/files/web/generated/M16-GAP-00147-operator-action.view_all.blend",
|
||||
"sha256": "ef2a4fd9a28a6a97d40b258beb11f8e00899c4715e0ba6e0703a25aecd678ec5"
|
||||
},
|
||||
"desktop": {
|
||||
"status": "EXACT",
|
||||
"report": "tests/golden/M16-GAP-00147/action-view-all-desktop-report.json",
|
||||
"saveReopen": "EXACT"
|
||||
},
|
||||
"wasm": {
|
||||
"status": "EXACT",
|
||||
"editor": "DOPE_SHEET",
|
||||
"regionKind": "MAIN",
|
||||
"view2d": {
|
||||
"cur": {
|
||||
"xmax": 5,
|
||||
"xmin": 1,
|
||||
"ymax": 0,
|
||||
"ymin": -380
|
||||
},
|
||||
"mask": {
|
||||
"xmax": 1153,
|
||||
"xmin": 0,
|
||||
"ymax": 380,
|
||||
"ymin": 0
|
||||
}
|
||||
}
|
||||
},
|
||||
"saveReopen": "EXACT",
|
||||
"negative": {
|
||||
"malformedBlend": "REJECTED_WITHOUT_MAIN_MUTATION"
|
||||
},
|
||||
"nextTask": "M16-GAP-00148"
|
||||
}
|
||||
25
tests/golden/M16-GAP-00147/manifest.json
Normal file
25
tests/golden/M16-GAP-00147/manifest.json
Normal file
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00147",
|
||||
"parentTask": "M16-GAP-00146",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": true,
|
||||
"runtime": "BLENDER_5_2_LOCAL_EXACT",
|
||||
"operation": "ACTION_VIEW_ALL_LOCAL_EXACT",
|
||||
"status": "done",
|
||||
"artifacts": {
|
||||
"parentManifest": {"path": "tests/golden/M16-GAP-00146/manifest.json", "sha256": "cfe6d9e8aeeeddbd080f6ee3dad941424c8434e7c6a09af2c84b634e9440a849"},
|
||||
"fixture": {"path": "tests/files/web/generated/M16-GAP-00147-operator-action.view_all.blend", "sha256": "ef2a4fd9a28a6a97d40b258beb11f8e00899c4715e0ba6e0703a25aecd678ec5"},
|
||||
"generator": {"path": "tools/web/generated/M16-GAP-00147.py", "sha256": "738d70668b71d9be03b8aab088c9a71e82f102f97cc0435c58a19c6838566ca0"},
|
||||
"desktopChecker": {"path": "tools/web/check-action-view-all-desktop.py", "sha256": "67a1a212702db13b924daa567cabad7c117ea9627d43b07a7bd70243379b76eb"},
|
||||
"webChecker": {"path": "tools/web/check-generated-gap.mjs", "sha256": "2d7cc16b93d3ac3ce786e4640ad66ca5ccbb22eb0b5bdd92dee60eb9b350f60f"},
|
||||
"reader": {"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp", "sha256": "4a1733632ae8418f0bc835c3b4a14b9d69985cb85b74faaca314fa48ec18fd0e"},
|
||||
"wasm": {"path": "web/app/src/vendor/blender/web_engine.wasm", "sha256": "d040c839999e125ab7693907fa69245105abde641b5d0839ee9990af4c5f0e21"},
|
||||
"wasmPublic": {"path": "web/app/public/vendor/blender/web_engine.wasm", "sha256": "d040c839999e125ab7693907fa69245105abde641b5d0839ee9990af4c5f0e21"},
|
||||
"wasmJs": {"path": "web/app/src/vendor/blender/web_engine.js", "sha256": "9c831d0351ac9d0714cce3b1da748cba416ced3086e3c59595cf24ac4da459ed"},
|
||||
"desktopReport": {"path": "tests/golden/M16-GAP-00147/action-view-all-desktop-report.json", "sha256": "d1eb6d018b05f2f00d16498dea4d34d49f07ed4489f2ee0dabcf9409dd76deaf"},
|
||||
"webReport": {"path": "tests/golden/M16-GAP-00147/action-view-all-local-exact-report.json", "sha256": "f23dd5aae9e4f649c6f29ae6cc971d7e358386bc4cbdd3466e7a075f065f362c"},
|
||||
"taskContext": {"path": "tests/golden/M16-GAP-00147/task-context.json", "sha256": "f03fa466b214f882119db539bbd7e6f79da5b16624e61f067d217dfc2480ac33"}
|
||||
},
|
||||
"nextTask": "M16-GAP-00148"
|
||||
}
|
||||
185
tests/golden/M16-GAP-00147/task-context.json
Normal file
185
tests/golden/M16-GAP-00147/task-context.json
Normal file
@@ -0,0 +1,185 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00147",
|
||||
"parentTask": "M16-GAP-00146",
|
||||
"status": "in_progress",
|
||||
"goal": "Make the same minimal fixture produce observable operator:action.view_all 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.view_all",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"implementationClass": "LOCAL_EXACT"
|
||||
},
|
||||
"commands": [
|
||||
"build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00147.py -- tests/files/web/generated/M16-GAP-00147-operator-action.view_all.blend",
|
||||
"npm --prefix web run test:generated-gap -- --task M16-GAP-00147",
|
||||
"node tools/web/check-generated-gap.mjs --task M16-GAP-00147"
|
||||
],
|
||||
"inputPaths": [
|
||||
"tools/web/generated/M16-GAP-00147.py"
|
||||
],
|
||||
"inputSelection": {
|
||||
"schemaVersion": 1,
|
||||
"limits": {
|
||||
"maxFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextRemainingBytes": 3111,
|
||||
"contextRemainingTokens": 777
|
||||
},
|
||||
"source": {
|
||||
"bytes": 6793,
|
||||
"tokens": 1699
|
||||
},
|
||||
"selected": [
|
||||
{
|
||||
"path": "tools/web/generated/M16-GAP-00147.py",
|
||||
"bytes": 2197,
|
||||
"tokens": 550
|
||||
}
|
||||
],
|
||||
"excluded": [
|
||||
{
|
||||
"path": "tests/files/web/generated/M16-GAP-00147-operator-action.view_all.blend",
|
||||
"bytes": 86846,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp",
|
||||
"bytes": 227216,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tools/web/check-generated-gap.mjs",
|
||||
"bytes": 265282,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00147/",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00147.md",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00147/manifest.json",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"files": 1,
|
||||
"bytes": 2197,
|
||||
"tokens": 550
|
||||
}
|
||||
},
|
||||
"exitCriteria": [
|
||||
"desktop fixture evidence exists",
|
||||
"WASM uses the same fixture",
|
||||
"comparator passes",
|
||||
"save/reopen preserves Main",
|
||||
"manifest hashes all artifacts"
|
||||
],
|
||||
"nextTask": "M16-GAP-00148",
|
||||
"sourceDocuments": {
|
||||
"queue": "docs/EXECUTION_QUEUE.md",
|
||||
"taskCard": "docs/tasks/M16-GAP-00147.md",
|
||||
"taskIndex": "tests/golden/M15-03A/task-index.json",
|
||||
"parentManifest": "tests/golden/M16-GAP-00146/manifest.json",
|
||||
"parentStatus": "docs/status/M16-GAP-00146.md"
|
||||
},
|
||||
"readPolicy": {
|
||||
"required": [
|
||||
"docs/EXECUTION_QUEUE.md",
|
||||
"docs/tasks/M16-GAP-00147.md",
|
||||
"tests/golden/M16-GAP-00146/manifest.json",
|
||||
"docs/status/M16-GAP-00146.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-00146",
|
||||
"parentTask": "M16-GAP-00145",
|
||||
"status": "done",
|
||||
"nextTask": "M16-GAP-00147",
|
||||
"artifactCount": 12
|
||||
},
|
||||
"statusSummary": [
|
||||
"# M16-GAP-00146 Status",
|
||||
"status: done",
|
||||
"task: action.unlink operator LOCAL_EXACT slice",
|
||||
"updated: 2026-08-21 America/New_York",
|
||||
"scope:",
|
||||
"- Action Editor unlink on `WebGapActionUnlinkObject`.",
|
||||
"evidence:",
|
||||
"- Blender desktop reports no active Action while retaining the fake-user `WebGapActionUnlinkObjectAction` with three location channels."
|
||||
]
|
||||
},
|
||||
"budgets": {
|
||||
"queueBytes": 4096,
|
||||
"taskBytes": 1764,
|
||||
"parentManifestBytes": 24576,
|
||||
"parentStatusBytes": 6144,
|
||||
"evidenceFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextTokens": 3500,
|
||||
"contextEnvelopeTokens": 1024,
|
||||
"taskLines": 38,
|
||||
"taskTokens": 441
|
||||
},
|
||||
"size": {
|
||||
"documents": [
|
||||
{
|
||||
"path": "docs/EXECUTION_QUEUE.md",
|
||||
"bytes": 2168,
|
||||
"lines": 45,
|
||||
"tokens": 542
|
||||
},
|
||||
{
|
||||
"path": "docs/tasks/M16-GAP-00147.md",
|
||||
"bytes": 1764,
|
||||
"lines": 38,
|
||||
"tokens": 441
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00146/manifest.json",
|
||||
"bytes": 2187,
|
||||
"lines": 26,
|
||||
"tokens": 547
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00146.md",
|
||||
"bytes": 674,
|
||||
"lines": 19,
|
||||
"tokens": 169
|
||||
}
|
||||
],
|
||||
"sourceTokens": 1699,
|
||||
"evidenceFiles": 1,
|
||||
"evidenceBytes": 2197,
|
||||
"evidenceTokens": 550,
|
||||
"totalTokens": 2249,
|
||||
"reservedEnvelopeTokens": 1024,
|
||||
"estimatedContextTokens": 3273,
|
||||
"serializedContextTokens": 750,
|
||||
"withinBudget": true
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"action": {
|
||||
"areaType": "DOPESHEET_EDITOR",
|
||||
"currentFrame": 3,
|
||||
"uiMode": "ACTION",
|
||||
"view2d": {
|
||||
"cur": {
|
||||
"xmax": 15.0,
|
||||
"xmin": -9.0,
|
||||
"ymax": 0.0,
|
||||
"ymin": -956.0
|
||||
},
|
||||
"mask": {
|
||||
"xmax": 1577,
|
||||
"xmin": 0,
|
||||
"ymax": 955,
|
||||
"ymin": 0
|
||||
}
|
||||
}
|
||||
},
|
||||
"blenderVersion": "5.2.0 LTS",
|
||||
"fixture": "/home/mes123456/workinf_Blender_Wasm/tests/files/web/generated/M16-GAP-00148-operator-action.view_frame.blend",
|
||||
"fixtureSha256": "142f7036c4c1a196ae0affc43fd62d6a196576898ee969f9aa83655917e0960c",
|
||||
"operation": "ACTION_VIEW_FRAME_DESKTOP",
|
||||
"saveReopen": "EXACT",
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00148"
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00148",
|
||||
"operation": "ACTION_VIEW_FRAME_LOCAL_EXACT",
|
||||
"fixture": {
|
||||
"path": "tests/files/web/generated/M16-GAP-00148-operator-action.view_frame.blend",
|
||||
"sha256": "142f7036c4c1a196ae0affc43fd62d6a196576898ee969f9aa83655917e0960c"
|
||||
},
|
||||
"desktop": {
|
||||
"status": "EXACT",
|
||||
"report": "tests/golden/M16-GAP-00148/action-view-frame-desktop-report.json",
|
||||
"saveReopen": "EXACT"
|
||||
},
|
||||
"wasm": {
|
||||
"status": "EXACT",
|
||||
"editor": "DOPE_SHEET",
|
||||
"regionKind": "MAIN",
|
||||
"currentFrame": 3,
|
||||
"view2d": {
|
||||
"cur": {
|
||||
"xmax": 15,
|
||||
"xmin": -9,
|
||||
"ymax": 0,
|
||||
"ymin": -956
|
||||
},
|
||||
"mask": {
|
||||
"xmax": 1577,
|
||||
"xmin": 0,
|
||||
"ymax": 955,
|
||||
"ymin": 0
|
||||
}
|
||||
}
|
||||
},
|
||||
"saveReopen": "EXACT",
|
||||
"negative": {
|
||||
"malformedBlend": "REJECTED_WITHOUT_MAIN_MUTATION"
|
||||
},
|
||||
"nextTask": "M16-GAP-00149"
|
||||
}
|
||||
25
tests/golden/M16-GAP-00148/manifest.json
Normal file
25
tests/golden/M16-GAP-00148/manifest.json
Normal file
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00148",
|
||||
"parentTask": "M16-GAP-00147",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": true,
|
||||
"runtime": "BLENDER_5_2_LOCAL_EXACT",
|
||||
"operation": "ACTION_VIEW_FRAME_LOCAL_EXACT",
|
||||
"status": "done",
|
||||
"artifacts": {
|
||||
"parentManifest": {"path": "tests/golden/M16-GAP-00147/manifest.json", "sha256": "451f1612a0addd34c1d8c3b074e0f72640f6e63105f158d89288db12ae714127"},
|
||||
"fixture": {"path": "tests/files/web/generated/M16-GAP-00148-operator-action.view_frame.blend", "sha256": "142f7036c4c1a196ae0affc43fd62d6a196576898ee969f9aa83655917e0960c"},
|
||||
"generator": {"path": "tools/web/generated/M16-GAP-00148.py", "sha256": "7c21cdadfb8d08c2f44ba2e58d53f9c879773b488a53135bc3a9ad4ae96aa3d5"},
|
||||
"desktopChecker": {"path": "tools/web/check-action-view-frame-desktop.py", "sha256": "11a2b6c2d6d1bb5670a161a0db02a7f0b65392cc820d263bd21df15196d9a4cd"},
|
||||
"webChecker": {"path": "tools/web/check-generated-gap.mjs", "sha256": "62bfd759d28ff59ec2ba4218ab11dcc910f1bdb13dfb400ff80a07639ec7c03e"},
|
||||
"reader": {"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp", "sha256": "4a1733632ae8418f0bc835c3b4a14b9d69985cb85b74faaca314fa48ec18fd0e"},
|
||||
"wasm": {"path": "web/app/src/vendor/blender/web_engine.wasm", "sha256": "d040c839999e125ab7693907fa69245105abde641b5d0839ee9990af4c5f0e21"},
|
||||
"wasmPublic": {"path": "web/app/public/vendor/blender/web_engine.wasm", "sha256": "d040c839999e125ab7693907fa69245105abde641b5d0839ee9990af4c5f0e21"},
|
||||
"wasmJs": {"path": "web/app/src/vendor/blender/web_engine.js", "sha256": "9c831d0351ac9d0714cce3b1da748cba416ced3086e3c59595cf24ac4da459ed"},
|
||||
"desktopReport": {"path": "tests/golden/M16-GAP-00148/action-view-frame-desktop-report.json", "sha256": "1895f562b9d1a67164256dd47b40a9a0280f5c45f0f153184cde5d54afca2d63"},
|
||||
"webReport": {"path": "tests/golden/M16-GAP-00148/action-view-frame-local-exact-report.json", "sha256": "a5b4db975c15055bf295f72f5a52aeb66bfa5d81959dba303e89472ce92ff83a"},
|
||||
"taskContext": {"path": "tests/golden/M16-GAP-00148/task-context.json", "sha256": "52781cdba0dae2569088c7d80e4c5028cf1fefb5beb187dbd8f767d4b5122b32"}
|
||||
},
|
||||
"nextTask": "M16-GAP-00149"
|
||||
}
|
||||
185
tests/golden/M16-GAP-00148/task-context.json
Normal file
185
tests/golden/M16-GAP-00148/task-context.json
Normal file
@@ -0,0 +1,185 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00148",
|
||||
"parentTask": "M16-GAP-00147",
|
||||
"status": "in_progress",
|
||||
"goal": "Make the same minimal fixture produce observable operator:action.view_frame 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.view_frame",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"implementationClass": "LOCAL_EXACT"
|
||||
},
|
||||
"commands": [
|
||||
"build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00148.py -- tests/files/web/generated/M16-GAP-00148-operator-action.view_frame.blend",
|
||||
"npm --prefix web run test:generated-gap -- --task M16-GAP-00148",
|
||||
"node tools/web/check-generated-gap.mjs --task M16-GAP-00148"
|
||||
],
|
||||
"inputPaths": [
|
||||
"tools/web/generated/M16-GAP-00148.py"
|
||||
],
|
||||
"inputSelection": {
|
||||
"schemaVersion": 1,
|
||||
"limits": {
|
||||
"maxFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextRemainingBytes": 3201,
|
||||
"contextRemainingTokens": 799
|
||||
},
|
||||
"source": {
|
||||
"bytes": 6703,
|
||||
"tokens": 1677
|
||||
},
|
||||
"selected": [
|
||||
{
|
||||
"path": "tools/web/generated/M16-GAP-00148.py",
|
||||
"bytes": 2184,
|
||||
"tokens": 546
|
||||
}
|
||||
],
|
||||
"excluded": [
|
||||
{
|
||||
"path": "tests/files/web/generated/M16-GAP-00148-operator-action.view_frame.blend",
|
||||
"bytes": 87098,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp",
|
||||
"bytes": 227216,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tools/web/check-generated-gap.mjs",
|
||||
"bytes": 268979,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00148/",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00148.md",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00148/manifest.json",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"files": 1,
|
||||
"bytes": 2184,
|
||||
"tokens": 546
|
||||
}
|
||||
},
|
||||
"exitCriteria": [
|
||||
"desktop fixture evidence exists",
|
||||
"WASM uses the same fixture",
|
||||
"comparator passes",
|
||||
"save/reopen preserves Main",
|
||||
"manifest hashes all artifacts"
|
||||
],
|
||||
"nextTask": "M16-GAP-00149",
|
||||
"sourceDocuments": {
|
||||
"queue": "docs/EXECUTION_QUEUE.md",
|
||||
"taskCard": "docs/tasks/M16-GAP-00148.md",
|
||||
"taskIndex": "tests/golden/M15-03A/task-index.json",
|
||||
"parentManifest": "tests/golden/M16-GAP-00147/manifest.json",
|
||||
"parentStatus": "docs/status/M16-GAP-00147.md"
|
||||
},
|
||||
"readPolicy": {
|
||||
"required": [
|
||||
"docs/EXECUTION_QUEUE.md",
|
||||
"docs/tasks/M16-GAP-00148.md",
|
||||
"tests/golden/M16-GAP-00147/manifest.json",
|
||||
"docs/status/M16-GAP-00147.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-00147",
|
||||
"parentTask": "M16-GAP-00146",
|
||||
"status": "done",
|
||||
"nextTask": "M16-GAP-00148",
|
||||
"artifactCount": 12
|
||||
},
|
||||
"statusSummary": [
|
||||
"# M16-GAP-00147 Status",
|
||||
"status: done",
|
||||
"task: action.view_all operator LOCAL_EXACT slice",
|
||||
"updated: 2026-08-21 America/New_York",
|
||||
"scope:",
|
||||
"- Action Editor `action.view_all` view state on the Animation workspace main region.",
|
||||
"evidence:",
|
||||
"- Blender desktop and WASM/Main expose the same Action Editor `view2d.cur` and mask after `action.view_all`."
|
||||
]
|
||||
},
|
||||
"budgets": {
|
||||
"queueBytes": 4096,
|
||||
"taskBytes": 1774,
|
||||
"parentManifestBytes": 24576,
|
||||
"parentStatusBytes": 6144,
|
||||
"evidenceFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextTokens": 3500,
|
||||
"contextEnvelopeTokens": 1024,
|
||||
"taskLines": 38,
|
||||
"taskTokens": 444
|
||||
},
|
||||
"size": {
|
||||
"documents": [
|
||||
{
|
||||
"path": "docs/EXECUTION_QUEUE.md",
|
||||
"bytes": 2168,
|
||||
"lines": 45,
|
||||
"tokens": 542
|
||||
},
|
||||
{
|
||||
"path": "docs/tasks/M16-GAP-00148.md",
|
||||
"bytes": 1774,
|
||||
"lines": 38,
|
||||
"tokens": 444
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00147/manifest.json",
|
||||
"bytes": 2197,
|
||||
"lines": 26,
|
||||
"tokens": 550
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00147.md",
|
||||
"bytes": 564,
|
||||
"lines": 18,
|
||||
"tokens": 141
|
||||
}
|
||||
],
|
||||
"sourceTokens": 1677,
|
||||
"evidenceFiles": 1,
|
||||
"evidenceBytes": 2184,
|
||||
"evidenceTokens": 546,
|
||||
"totalTokens": 2223,
|
||||
"reservedEnvelopeTokens": 1024,
|
||||
"estimatedContextTokens": 3247,
|
||||
"serializedContextTokens": 752,
|
||||
"withinBudget": true
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
{
|
||||
"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": "WebGapActionViewSelectedObjectAction"
|
||||
},
|
||||
"blenderVersion": "5.2.0 LTS",
|
||||
"fixture": "/home/mes123456/workinf_Blender_Wasm/tests/files/web/generated/M16-GAP-00149-operator-action.view_selected.blend",
|
||||
"fixtureSha256": "108a69ae276722c4d9396deb51f7f1909799d48ce310d82675305a59b1196fc7",
|
||||
"operation": "ACTION_VIEW_SELECTED_DESKTOP",
|
||||
"saveReopen": "EXACT",
|
||||
"schemaVersion": 1,
|
||||
"selectedFrame": 3,
|
||||
"task": "M16-GAP-00149",
|
||||
"view2d": {
|
||||
"cur": {
|
||||
"xmax": 5.0,
|
||||
"xmin": 1.0,
|
||||
"ymax": 0.0,
|
||||
"ymin": -956.0
|
||||
},
|
||||
"mask": {
|
||||
"xmax": 1577,
|
||||
"xmin": 0,
|
||||
"ymax": 955,
|
||||
"ymin": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00149",
|
||||
"operation": "ACTION_VIEW_SELECTED_LOCAL_EXACT",
|
||||
"fixture": {
|
||||
"path": "tests/files/web/generated/M16-GAP-00149-operator-action.view_selected.blend",
|
||||
"sha256": "108a69ae276722c4d9396deb51f7f1909799d48ce310d82675305a59b1196fc7"
|
||||
},
|
||||
"desktop": {
|
||||
"status": "EXACT",
|
||||
"report": "tests/golden/M16-GAP-00149/action-view-selected-desktop-report.json",
|
||||
"saveReopen": "EXACT"
|
||||
},
|
||||
"wasm": {
|
||||
"status": "EXACT",
|
||||
"actionId": "action:WebGapActionViewSelectedObjectAction:object:WebGapActionViewSelectedObject",
|
||||
"selectedFrame": 3,
|
||||
"selectedPerChannel": [
|
||||
[
|
||||
3
|
||||
],
|
||||
[
|
||||
3
|
||||
],
|
||||
[
|
||||
3
|
||||
]
|
||||
],
|
||||
"view2d": {
|
||||
"cur": {
|
||||
"xmax": 5,
|
||||
"xmin": 1,
|
||||
"ymax": 0,
|
||||
"ymin": -956
|
||||
},
|
||||
"mask": {
|
||||
"xmax": 1577,
|
||||
"xmin": 0,
|
||||
"ymax": 955,
|
||||
"ymin": 0
|
||||
}
|
||||
}
|
||||
},
|
||||
"saveReopen": "EXACT",
|
||||
"negative": {
|
||||
"malformedBlend": "REJECTED_WITHOUT_MAIN_MUTATION"
|
||||
},
|
||||
"nextTask": "M16-GAP-00150"
|
||||
}
|
||||
25
tests/golden/M16-GAP-00149/manifest.json
Normal file
25
tests/golden/M16-GAP-00149/manifest.json
Normal file
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00149",
|
||||
"parentTask": "M16-GAP-00148",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": true,
|
||||
"runtime": "BLENDER_5_2_LOCAL_EXACT",
|
||||
"operation": "ACTION_VIEW_SELECTED_LOCAL_EXACT",
|
||||
"status": "done",
|
||||
"artifacts": {
|
||||
"parentManifest": {"path": "tests/golden/M16-GAP-00148/manifest.json", "sha256": "fd9d80e817a424f0d37e88f182597a8b94a3b858c934def0ffa116047cc907df"},
|
||||
"fixture": {"path": "tests/files/web/generated/M16-GAP-00149-operator-action.view_selected.blend", "sha256": "108a69ae276722c4d9396deb51f7f1909799d48ce310d82675305a59b1196fc7"},
|
||||
"generator": {"path": "tools/web/generated/M16-GAP-00149.py", "sha256": "9d7d4a10fb148fe40a1f624886491d64c9dde1bf86cdf21a97c86ec167f7cb92"},
|
||||
"desktopChecker": {"path": "tools/web/check-action-view-selected-desktop.py", "sha256": "fa74311b3ca77b04212ed894c0511fcab7489cff781fc934177ce4e40a139647"},
|
||||
"webChecker": {"path": "tools/web/check-generated-gap.mjs", "sha256": "a614499ad09c9dc94a751141733e91613a5dc070edae2ad76f2c9fb37220f0db"},
|
||||
"reader": {"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp", "sha256": "4a1733632ae8418f0bc835c3b4a14b9d69985cb85b74faaca314fa48ec18fd0e"},
|
||||
"wasm": {"path": "web/app/src/vendor/blender/web_engine.wasm", "sha256": "d040c839999e125ab7693907fa69245105abde641b5d0839ee9990af4c5f0e21"},
|
||||
"wasmPublic": {"path": "web/app/public/vendor/blender/web_engine.wasm", "sha256": "d040c839999e125ab7693907fa69245105abde641b5d0839ee9990af4c5f0e21"},
|
||||
"wasmJs": {"path": "web/app/src/vendor/blender/web_engine.js", "sha256": "9c831d0351ac9d0714cce3b1da748cba416ced3086e3c59595cf24ac4da459ed"},
|
||||
"desktopReport": {"path": "tests/golden/M16-GAP-00149/action-view-selected-desktop-report.json", "sha256": "002328f69d528d49570dda4976ea7ae0bb9229fa84f8a3bb1b5b6e3cc061a188"},
|
||||
"webReport": {"path": "tests/golden/M16-GAP-00149/action-view-selected-local-exact-report.json", "sha256": "6d2e450cece242a95b9b861292d74654ec7a8e3f191364a64c2c9b809a7e0bb4"},
|
||||
"taskContext": {"path": "tests/golden/M16-GAP-00149/task-context.json", "sha256": "da34e2c587ec836b745ae0d69dc27b75c77ce17a73d18c223ac817e9365e29c7"}
|
||||
},
|
||||
"nextTask": "M16-GAP-00150"
|
||||
}
|
||||
185
tests/golden/M16-GAP-00149/task-context.json
Normal file
185
tests/golden/M16-GAP-00149/task-context.json
Normal file
@@ -0,0 +1,185 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00149",
|
||||
"parentTask": "M16-GAP-00148",
|
||||
"status": "in_progress",
|
||||
"goal": "Make the same minimal fixture produce observable operator:action.view_selected 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.view_selected",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"implementationClass": "LOCAL_EXACT"
|
||||
},
|
||||
"commands": [
|
||||
"build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00149.py -- tests/files/web/generated/M16-GAP-00149-operator-action.view_selected.blend",
|
||||
"npm --prefix web run test:generated-gap -- --task M16-GAP-00149",
|
||||
"node tools/web/check-generated-gap.mjs --task M16-GAP-00149"
|
||||
],
|
||||
"inputPaths": [
|
||||
"tools/web/generated/M16-GAP-00149.py"
|
||||
],
|
||||
"inputSelection": {
|
||||
"schemaVersion": 1,
|
||||
"limits": {
|
||||
"maxFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextRemainingBytes": 3172,
|
||||
"contextRemainingTokens": 792
|
||||
},
|
||||
"source": {
|
||||
"bytes": 6732,
|
||||
"tokens": 1684
|
||||
},
|
||||
"selected": [
|
||||
{
|
||||
"path": "tools/web/generated/M16-GAP-00149.py",
|
||||
"bytes": 2517,
|
||||
"tokens": 630
|
||||
}
|
||||
],
|
||||
"excluded": [
|
||||
{
|
||||
"path": "tests/files/web/generated/M16-GAP-00149-operator-action.view_selected.blend",
|
||||
"bytes": 87111,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp",
|
||||
"bytes": 227216,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tools/web/check-generated-gap.mjs",
|
||||
"bytes": 273145,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00149/",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00149.md",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00149/manifest.json",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"files": 1,
|
||||
"bytes": 2517,
|
||||
"tokens": 630
|
||||
}
|
||||
},
|
||||
"exitCriteria": [
|
||||
"desktop fixture evidence exists",
|
||||
"WASM uses the same fixture",
|
||||
"comparator passes",
|
||||
"save/reopen preserves Main",
|
||||
"manifest hashes all artifacts"
|
||||
],
|
||||
"nextTask": "M16-GAP-00150",
|
||||
"sourceDocuments": {
|
||||
"queue": "docs/EXECUTION_QUEUE.md",
|
||||
"taskCard": "docs/tasks/M16-GAP-00149.md",
|
||||
"taskIndex": "tests/golden/M15-03A/task-index.json",
|
||||
"parentManifest": "tests/golden/M16-GAP-00148/manifest.json",
|
||||
"parentStatus": "docs/status/M16-GAP-00148.md"
|
||||
},
|
||||
"readPolicy": {
|
||||
"required": [
|
||||
"docs/EXECUTION_QUEUE.md",
|
||||
"docs/tasks/M16-GAP-00149.md",
|
||||
"tests/golden/M16-GAP-00148/manifest.json",
|
||||
"docs/status/M16-GAP-00148.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-00148",
|
||||
"parentTask": "M16-GAP-00147",
|
||||
"status": "done",
|
||||
"nextTask": "M16-GAP-00149",
|
||||
"artifactCount": 12
|
||||
},
|
||||
"statusSummary": [
|
||||
"# M16-GAP-00148 Status",
|
||||
"status: done",
|
||||
"task: action.view_frame operator LOCAL_EXACT slice",
|
||||
"updated: 2026-08-21 America/New_York",
|
||||
"scope:",
|
||||
"- Action Editor `action.view_frame` centering around current frame 3.",
|
||||
"evidence:",
|
||||
"- Blender desktop and WASM/Main expose the same Action Editor `view2d.cur` and mask around current frame 3."
|
||||
]
|
||||
},
|
||||
"budgets": {
|
||||
"queueBytes": 4096,
|
||||
"taskBytes": 1789,
|
||||
"parentManifestBytes": 24576,
|
||||
"parentStatusBytes": 6144,
|
||||
"evidenceFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextTokens": 3500,
|
||||
"contextEnvelopeTokens": 1024,
|
||||
"taskLines": 38,
|
||||
"taskTokens": 448
|
||||
},
|
||||
"size": {
|
||||
"documents": [
|
||||
{
|
||||
"path": "docs/EXECUTION_QUEUE.md",
|
||||
"bytes": 2168,
|
||||
"lines": 45,
|
||||
"tokens": 542
|
||||
},
|
||||
{
|
||||
"path": "docs/tasks/M16-GAP-00149.md",
|
||||
"bytes": 1789,
|
||||
"lines": 38,
|
||||
"tokens": 448
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00148/manifest.json",
|
||||
"bytes": 2207,
|
||||
"lines": 26,
|
||||
"tokens": 552
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00148.md",
|
||||
"bytes": 568,
|
||||
"lines": 18,
|
||||
"tokens": 142
|
||||
}
|
||||
],
|
||||
"sourceTokens": 1684,
|
||||
"evidenceFiles": 1,
|
||||
"evidenceBytes": 2517,
|
||||
"evidenceTokens": 630,
|
||||
"totalTokens": 2314,
|
||||
"reservedEnvelopeTokens": 1024,
|
||||
"estimatedContextTokens": 3338,
|
||||
"serializedContextTokens": 754,
|
||||
"withinBudget": true
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
{
|
||||
"action": {
|
||||
"channels": [
|
||||
{
|
||||
"frames": [
|
||||
1.0,
|
||||
3.0,
|
||||
5.0
|
||||
],
|
||||
"index": 0,
|
||||
"path": "location",
|
||||
"selected": [
|
||||
true,
|
||||
true,
|
||||
true
|
||||
]
|
||||
},
|
||||
{
|
||||
"frames": [
|
||||
1.0,
|
||||
3.0,
|
||||
5.0
|
||||
],
|
||||
"index": 1,
|
||||
"path": "location",
|
||||
"selected": [
|
||||
true,
|
||||
true,
|
||||
true
|
||||
]
|
||||
},
|
||||
{
|
||||
"frames": [
|
||||
1.0,
|
||||
3.0,
|
||||
5.0
|
||||
],
|
||||
"index": 2,
|
||||
"path": "location",
|
||||
"selected": [
|
||||
true,
|
||||
true,
|
||||
true
|
||||
]
|
||||
}
|
||||
],
|
||||
"name": "WebGapAnimChangeFrameObjectAction"
|
||||
},
|
||||
"blenderVersion": "5.2.0 LTS",
|
||||
"changedToFrame": 4,
|
||||
"currentFrame": 4,
|
||||
"fixture": "/home/mes123456/workinf_Blender_Wasm/tests/files/web/generated/M16-GAP-00150-operator-anim.change_frame.blend",
|
||||
"fixtureSha256": "04ba48b6b81449b47cd8c038a012518f773dbfbe542ec29861686cf9a1a0cedb",
|
||||
"operation": "ANIM_CHANGE_FRAME_DESKTOP",
|
||||
"saveReopen": "EXACT",
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00150"
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00150",
|
||||
"operation": "ANIM_CHANGE_FRAME_LOCAL_EXACT",
|
||||
"fixture": {
|
||||
"path": "tests/files/web/generated/M16-GAP-00150-operator-anim.change_frame.blend",
|
||||
"sha256": "04ba48b6b81449b47cd8c038a012518f773dbfbe542ec29861686cf9a1a0cedb"
|
||||
},
|
||||
"desktop": {
|
||||
"status": "EXACT",
|
||||
"report": "tests/golden/M16-GAP-00150/anim-change-frame-desktop-report.json",
|
||||
"saveReopen": "EXACT"
|
||||
},
|
||||
"wasm": {
|
||||
"status": "EXACT",
|
||||
"actionId": "action:WebGapAnimChangeFrameObjectAction:object:WebGapAnimChangeFrameObject",
|
||||
"changedToFrame": 4,
|
||||
"framesPerChannel": [
|
||||
[
|
||||
1,
|
||||
3,
|
||||
5
|
||||
],
|
||||
[
|
||||
1,
|
||||
3,
|
||||
5
|
||||
],
|
||||
[
|
||||
1,
|
||||
3,
|
||||
5
|
||||
]
|
||||
]
|
||||
},
|
||||
"saveReopen": "EXACT",
|
||||
"negative": {
|
||||
"malformedBlend": "REJECTED_WITHOUT_MAIN_MUTATION"
|
||||
},
|
||||
"nextTask": "M16-GAP-00151"
|
||||
}
|
||||
25
tests/golden/M16-GAP-00150/manifest.json
Normal file
25
tests/golden/M16-GAP-00150/manifest.json
Normal file
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00150",
|
||||
"parentTask": "M16-GAP-00149",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": true,
|
||||
"runtime": "BLENDER_5_2_LOCAL_EXACT",
|
||||
"operation": "ANIM_CHANGE_FRAME_LOCAL_EXACT",
|
||||
"status": "done",
|
||||
"artifacts": {
|
||||
"parentManifest": {"path": "tests/golden/M16-GAP-00149/manifest.json", "sha256": "b39fe0194d94b7cb54e8ca62b51d0d58fc7f82c1ab06122ab8ab74ca79ce6f8d"},
|
||||
"fixture": {"path": "tests/files/web/generated/M16-GAP-00150-operator-anim.change_frame.blend", "sha256": "04ba48b6b81449b47cd8c038a012518f773dbfbe542ec29861686cf9a1a0cedb"},
|
||||
"generator": {"path": "tools/web/generated/M16-GAP-00150.py", "sha256": "582a5e470a2b47095762ddd6df93ff8ffe8a67ea45aa2b483f87528a9ca7180c"},
|
||||
"desktopChecker": {"path": "tools/web/check-action-change-frame-desktop.py", "sha256": "18fcc3ea0f0cf7a503651791d283852b4ae0b219339258880351837a59726327"},
|
||||
"webChecker": {"path": "tools/web/check-generated-gap.mjs", "sha256": "b738ecac1c2402e1b60c681d395e7ad6a9769c1151c91a8d720daaf63891099b"},
|
||||
"reader": {"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp", "sha256": "4a1733632ae8418f0bc835c3b4a14b9d69985cb85b74faaca314fa48ec18fd0e"},
|
||||
"wasm": {"path": "web/app/src/vendor/blender/web_engine.wasm", "sha256": "d040c839999e125ab7693907fa69245105abde641b5d0839ee9990af4c5f0e21"},
|
||||
"wasmPublic": {"path": "web/app/public/vendor/blender/web_engine.wasm", "sha256": "d040c839999e125ab7693907fa69245105abde641b5d0839ee9990af4c5f0e21"},
|
||||
"wasmJs": {"path": "web/app/src/vendor/blender/web_engine.js", "sha256": "9c831d0351ac9d0714cce3b1da748cba416ced3086e3c59595cf24ac4da459ed"},
|
||||
"desktopReport": {"path": "tests/golden/M16-GAP-00150/anim-change-frame-desktop-report.json", "sha256": "b0367cd339a51049f1eb511875c0beee269439694f99c2ee69513d71a5cd5453"},
|
||||
"webReport": {"path": "tests/golden/M16-GAP-00150/anim-change-frame-local-exact-report.json", "sha256": "358a97f75cf727ba385434f4e42c9e2857d046131fa15d1460f60eba68c72288"},
|
||||
"taskContext": {"path": "tests/golden/M16-GAP-00150/task-context.json", "sha256": "f3e8a8d194110019633496b55623589f1d13c8c3f062ec1c03aac023276a50c3"}
|
||||
},
|
||||
"nextTask": "M16-GAP-00151"
|
||||
}
|
||||
185
tests/golden/M16-GAP-00150/task-context.json
Normal file
185
tests/golden/M16-GAP-00150/task-context.json
Normal file
@@ -0,0 +1,185 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00150",
|
||||
"parentTask": "M16-GAP-00149",
|
||||
"status": "in_progress",
|
||||
"goal": "Make the same minimal fixture produce observable operator:anim.change_frame 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:anim.change_frame",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"implementationClass": "LOCAL_EXACT"
|
||||
},
|
||||
"commands": [
|
||||
"build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00150.py -- tests/files/web/generated/M16-GAP-00150-operator-anim.change_frame.blend",
|
||||
"npm --prefix web run test:generated-gap -- --task M16-GAP-00150",
|
||||
"node tools/web/check-generated-gap.mjs --task M16-GAP-00150"
|
||||
],
|
||||
"inputPaths": [
|
||||
"tools/web/generated/M16-GAP-00150.py"
|
||||
],
|
||||
"inputSelection": {
|
||||
"schemaVersion": 1,
|
||||
"limits": {
|
||||
"maxFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextRemainingBytes": 3140,
|
||||
"contextRemainingTokens": 784
|
||||
},
|
||||
"source": {
|
||||
"bytes": 6764,
|
||||
"tokens": 1692
|
||||
},
|
||||
"selected": [
|
||||
{
|
||||
"path": "tools/web/generated/M16-GAP-00150.py",
|
||||
"bytes": 2130,
|
||||
"tokens": 533
|
||||
}
|
||||
],
|
||||
"excluded": [
|
||||
{
|
||||
"path": "tests/files/web/generated/M16-GAP-00150-operator-anim.change_frame.blend",
|
||||
"bytes": 87111,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp",
|
||||
"bytes": 227216,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tools/web/check-generated-gap.mjs",
|
||||
"bytes": 276688,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00150/",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00150.md",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00150/manifest.json",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"files": 1,
|
||||
"bytes": 2130,
|
||||
"tokens": 533
|
||||
}
|
||||
},
|
||||
"exitCriteria": [
|
||||
"desktop fixture evidence exists",
|
||||
"WASM uses the same fixture",
|
||||
"comparator passes",
|
||||
"save/reopen preserves Main",
|
||||
"manifest hashes all artifacts"
|
||||
],
|
||||
"nextTask": "M16-GAP-00151",
|
||||
"sourceDocuments": {
|
||||
"queue": "docs/EXECUTION_QUEUE.md",
|
||||
"taskCard": "docs/tasks/M16-GAP-00150.md",
|
||||
"taskIndex": "tests/golden/M15-03A/task-index.json",
|
||||
"parentManifest": "tests/golden/M16-GAP-00149/manifest.json",
|
||||
"parentStatus": "docs/status/M16-GAP-00149.md"
|
||||
},
|
||||
"readPolicy": {
|
||||
"required": [
|
||||
"docs/EXECUTION_QUEUE.md",
|
||||
"docs/tasks/M16-GAP-00150.md",
|
||||
"tests/golden/M16-GAP-00149/manifest.json",
|
||||
"docs/status/M16-GAP-00149.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-00149",
|
||||
"parentTask": "M16-GAP-00148",
|
||||
"status": "done",
|
||||
"nextTask": "M16-GAP-00150",
|
||||
"artifactCount": 12
|
||||
},
|
||||
"statusSummary": [
|
||||
"# M16-GAP-00149 Status",
|
||||
"status: done",
|
||||
"task: action.view_selected operator LOCAL_EXACT slice",
|
||||
"updated: 2026-08-21 America/New_York",
|
||||
"scope:",
|
||||
"- Action Editor `action.view_selected` selection and view state around selected frame 3.",
|
||||
"evidence:",
|
||||
"- Blender desktop and WASM/Main expose the same Action Editor selection on frame 3 for all three location channels and the same `view2d.cur` and mask."
|
||||
]
|
||||
},
|
||||
"budgets": {
|
||||
"queueBytes": 4096,
|
||||
"taskBytes": 1774,
|
||||
"parentManifestBytes": 24576,
|
||||
"parentStatusBytes": 6144,
|
||||
"evidenceFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextTokens": 3500,
|
||||
"contextEnvelopeTokens": 1024,
|
||||
"taskLines": 38,
|
||||
"taskTokens": 444
|
||||
},
|
||||
"size": {
|
||||
"documents": [
|
||||
{
|
||||
"path": "docs/EXECUTION_QUEUE.md",
|
||||
"bytes": 2168,
|
||||
"lines": 45,
|
||||
"tokens": 542
|
||||
},
|
||||
{
|
||||
"path": "docs/tasks/M16-GAP-00150.md",
|
||||
"bytes": 1774,
|
||||
"lines": 38,
|
||||
"tokens": 444
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00149/manifest.json",
|
||||
"bytes": 2222,
|
||||
"lines": 26,
|
||||
"tokens": 556
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00149.md",
|
||||
"bytes": 600,
|
||||
"lines": 18,
|
||||
"tokens": 150
|
||||
}
|
||||
],
|
||||
"sourceTokens": 1692,
|
||||
"evidenceFiles": 1,
|
||||
"evidenceBytes": 2130,
|
||||
"evidenceTokens": 533,
|
||||
"totalTokens": 2225,
|
||||
"reservedEnvelopeTokens": 1024,
|
||||
"estimatedContextTokens": 3249,
|
||||
"serializedContextTokens": 752,
|
||||
"withinBudget": true
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
{
|
||||
"action": {
|
||||
"channels": [
|
||||
{
|
||||
"frames": [
|
||||
1.0,
|
||||
3.0,
|
||||
5.0
|
||||
],
|
||||
"index": 0,
|
||||
"path": "location",
|
||||
"selected": [
|
||||
true,
|
||||
true,
|
||||
true
|
||||
]
|
||||
},
|
||||
{
|
||||
"frames": [
|
||||
1.0,
|
||||
3.0,
|
||||
5.0
|
||||
],
|
||||
"index": 1,
|
||||
"path": "location",
|
||||
"selected": [
|
||||
false,
|
||||
false,
|
||||
false
|
||||
]
|
||||
},
|
||||
{
|
||||
"frames": [
|
||||
1.0,
|
||||
3.0,
|
||||
5.0
|
||||
],
|
||||
"index": 2,
|
||||
"path": "location",
|
||||
"selected": [
|
||||
false,
|
||||
false,
|
||||
false
|
||||
]
|
||||
}
|
||||
],
|
||||
"name": "WebGapAnimChannelSelectKeysObjectAction"
|
||||
},
|
||||
"blenderVersion": "5.2.0 LTS",
|
||||
"fixture": "/home/mes123456/workinf_Blender_Wasm/tests/files/web/generated/M16-GAP-00151-operator-anim.channel_select_keys.blend",
|
||||
"fixtureSha256": "f8ed4706c765c28e850c752bf4fc367b815c298b574cbed741997a5770826b43",
|
||||
"operation": "ANIM_CHANNEL_SELECT_KEYS_DESKTOP",
|
||||
"saveReopen": "EXACT",
|
||||
"schemaVersion": 1,
|
||||
"selectedChannel": {
|
||||
"index": 0,
|
||||
"path": "location"
|
||||
},
|
||||
"task": "M16-GAP-00151"
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00151",
|
||||
"operation": "ANIM_CHANNEL_SELECT_KEYS_LOCAL_EXACT",
|
||||
"fixture": {
|
||||
"path": "tests/files/web/generated/M16-GAP-00151-operator-anim.channel_select_keys.blend",
|
||||
"sha256": "f8ed4706c765c28e850c752bf4fc367b815c298b574cbed741997a5770826b43"
|
||||
},
|
||||
"desktop": {
|
||||
"status": "EXACT",
|
||||
"report": "tests/golden/M16-GAP-00151/anim-channel-select-keys-desktop-report.json",
|
||||
"saveReopen": "EXACT"
|
||||
},
|
||||
"wasm": {
|
||||
"status": "EXACT",
|
||||
"actionId": "action:WebGapAnimChannelSelectKeysObjectAction:object:WebGapAnimChannelSelectKeysObject",
|
||||
"selectedChannel": {
|
||||
"path": "location",
|
||||
"index": 0
|
||||
},
|
||||
"selectedPerChannel": [
|
||||
[
|
||||
1,
|
||||
3,
|
||||
5
|
||||
],
|
||||
[],
|
||||
[]
|
||||
]
|
||||
},
|
||||
"saveReopen": "EXACT",
|
||||
"negative": {
|
||||
"malformedBlend": "REJECTED_WITHOUT_MAIN_MUTATION"
|
||||
},
|
||||
"nextTask": "M16-GAP-00152"
|
||||
}
|
||||
25
tests/golden/M16-GAP-00151/manifest.json
Normal file
25
tests/golden/M16-GAP-00151/manifest.json
Normal file
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00151",
|
||||
"parentTask": "M16-GAP-00150",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": true,
|
||||
"runtime": "BLENDER_5_2_LOCAL_EXACT",
|
||||
"operation": "ANIM_CHANNEL_SELECT_KEYS_LOCAL_EXACT",
|
||||
"status": "done",
|
||||
"artifacts": {
|
||||
"parentManifest": {"path": "tests/golden/M16-GAP-00150/manifest.json", "sha256": "a60ed9301159ae403d345cf7d97e30fc3a0edca948022d3961f0a40c1fb015ef"},
|
||||
"fixture": {"path": "tests/files/web/generated/M16-GAP-00151-operator-anim.channel_select_keys.blend", "sha256": "f8ed4706c765c28e850c752bf4fc367b815c298b574cbed741997a5770826b43"},
|
||||
"generator": {"path": "tools/web/generated/M16-GAP-00151.py", "sha256": "6ac3acd4031a4dc3967d1f49546148fb45854ca1caa3c0569b7246d996cf06a1"},
|
||||
"desktopChecker": {"path": "tools/web/check-action-channel-select-keys-desktop.py", "sha256": "5d09b95946aa6f7a754cfcd60259e14d388ecc98f4aca0fcb651bc99fabf292f"},
|
||||
"webChecker": {"path": "tools/web/check-generated-gap.mjs", "sha256": "24a2928dca8a3397d40caa22d74bac94dc63e365aa140babc1b183f658a7603c"},
|
||||
"reader": {"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp", "sha256": "4a1733632ae8418f0bc835c3b4a14b9d69985cb85b74faaca314fa48ec18fd0e"},
|
||||
"wasm": {"path": "web/app/src/vendor/blender/web_engine.wasm", "sha256": "d040c839999e125ab7693907fa69245105abde641b5d0839ee9990af4c5f0e21"},
|
||||
"wasmPublic": {"path": "web/app/public/vendor/blender/web_engine.wasm", "sha256": "d040c839999e125ab7693907fa69245105abde641b5d0839ee9990af4c5f0e21"},
|
||||
"wasmJs": {"path": "web/app/src/vendor/blender/web_engine.js", "sha256": "9c831d0351ac9d0714cce3b1da748cba416ced3086e3c59595cf24ac4da459ed"},
|
||||
"desktopReport": {"path": "tests/golden/M16-GAP-00151/anim-channel-select-keys-desktop-report.json", "sha256": "f71376397c83a380252e3e69a4f295153f2e46a7be0bf1de4871605bf0bec16f"},
|
||||
"webReport": {"path": "tests/golden/M16-GAP-00151/anim-channel-select-keys-local-exact-report.json", "sha256": "225fa87a2cfe47daee71149a1a2122ff9d9f80a602b48ff64bd11b0edf4dcc51"},
|
||||
"taskContext": {"path": "tests/golden/M16-GAP-00151/task-context.json", "sha256": "73e8f89962ce32d7446fe7a61cdaab43105628ca0661b840e93db8236b8691b6"}
|
||||
},
|
||||
"nextTask": "M16-GAP-00152"
|
||||
}
|
||||
185
tests/golden/M16-GAP-00151/task-context.json
Normal file
185
tests/golden/M16-GAP-00151/task-context.json
Normal file
@@ -0,0 +1,185 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00151",
|
||||
"parentTask": "M16-GAP-00150",
|
||||
"status": "in_progress",
|
||||
"goal": "Make the same minimal fixture produce observable operator:anim.channel_select_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:anim.channel_select_keys",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"implementationClass": "LOCAL_EXACT"
|
||||
},
|
||||
"commands": [
|
||||
"build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00151.py -- tests/files/web/generated/M16-GAP-00151-operator-anim.channel_select_keys.blend",
|
||||
"npm --prefix web run test:generated-gap -- --task M16-GAP-00151",
|
||||
"node tools/web/check-generated-gap.mjs --task M16-GAP-00151"
|
||||
],
|
||||
"inputPaths": [
|
||||
"tools/web/generated/M16-GAP-00151.py"
|
||||
],
|
||||
"inputSelection": {
|
||||
"schemaVersion": 1,
|
||||
"limits": {
|
||||
"maxFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextRemainingBytes": 3147,
|
||||
"contextRemainingTokens": 785
|
||||
},
|
||||
"source": {
|
||||
"bytes": 6757,
|
||||
"tokens": 1691
|
||||
},
|
||||
"selected": [
|
||||
{
|
||||
"path": "tools/web/generated/M16-GAP-00151.py",
|
||||
"bytes": 2883,
|
||||
"tokens": 721
|
||||
}
|
||||
],
|
||||
"excluded": [
|
||||
{
|
||||
"path": "tests/files/web/generated/M16-GAP-00151-operator-anim.channel_select_keys.blend",
|
||||
"bytes": 87099,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp",
|
||||
"bytes": 227216,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tools/web/check-generated-gap.mjs",
|
||||
"bytes": 280147,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00151/",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00151.md",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00151/manifest.json",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"files": 1,
|
||||
"bytes": 2883,
|
||||
"tokens": 721
|
||||
}
|
||||
},
|
||||
"exitCriteria": [
|
||||
"desktop fixture evidence exists",
|
||||
"WASM uses the same fixture",
|
||||
"comparator passes",
|
||||
"save/reopen preserves Main",
|
||||
"manifest hashes all artifacts"
|
||||
],
|
||||
"nextTask": "M16-GAP-00152",
|
||||
"sourceDocuments": {
|
||||
"queue": "docs/EXECUTION_QUEUE.md",
|
||||
"taskCard": "docs/tasks/M16-GAP-00151.md",
|
||||
"taskIndex": "tests/golden/M15-03A/task-index.json",
|
||||
"parentManifest": "tests/golden/M16-GAP-00150/manifest.json",
|
||||
"parentStatus": "docs/status/M16-GAP-00150.md"
|
||||
},
|
||||
"readPolicy": {
|
||||
"required": [
|
||||
"docs/EXECUTION_QUEUE.md",
|
||||
"docs/tasks/M16-GAP-00151.md",
|
||||
"tests/golden/M16-GAP-00150/manifest.json",
|
||||
"docs/status/M16-GAP-00150.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-00150",
|
||||
"parentTask": "M16-GAP-00149",
|
||||
"status": "done",
|
||||
"nextTask": "M16-GAP-00151",
|
||||
"artifactCount": 12
|
||||
},
|
||||
"statusSummary": [
|
||||
"# M16-GAP-00150 Status",
|
||||
"status: done",
|
||||
"task: anim.change_frame operator LOCAL_EXACT slice",
|
||||
"updated: 2026-08-21 America/New_York",
|
||||
"scope:",
|
||||
"- Animation Editor `anim.change_frame` moves the current frame to 4 for a minimal animated object.",
|
||||
"evidence:",
|
||||
"- Blender desktop and WASM/Main expose the same current frame 4 and three Action channels with frames 1, 3, and 5."
|
||||
]
|
||||
},
|
||||
"budgets": {
|
||||
"queueBytes": 4096,
|
||||
"taskBytes": 1809,
|
||||
"parentManifestBytes": 24576,
|
||||
"parentStatusBytes": 6144,
|
||||
"evidenceFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextTokens": 3500,
|
||||
"contextEnvelopeTokens": 1024,
|
||||
"taskLines": 38,
|
||||
"taskTokens": 453
|
||||
},
|
||||
"size": {
|
||||
"documents": [
|
||||
{
|
||||
"path": "docs/EXECUTION_QUEUE.md",
|
||||
"bytes": 2168,
|
||||
"lines": 45,
|
||||
"tokens": 542
|
||||
},
|
||||
{
|
||||
"path": "docs/tasks/M16-GAP-00151.md",
|
||||
"bytes": 1809,
|
||||
"lines": 38,
|
||||
"tokens": 453
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00150/manifest.json",
|
||||
"bytes": 2209,
|
||||
"lines": 26,
|
||||
"tokens": 553
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00150.md",
|
||||
"bytes": 571,
|
||||
"lines": 18,
|
||||
"tokens": 143
|
||||
}
|
||||
],
|
||||
"sourceTokens": 1691,
|
||||
"evidenceFiles": 1,
|
||||
"evidenceBytes": 2883,
|
||||
"evidenceTokens": 721,
|
||||
"totalTokens": 2412,
|
||||
"reservedEnvelopeTokens": 1024,
|
||||
"estimatedContextTokens": 3436,
|
||||
"serializedContextTokens": 757,
|
||||
"withinBudget": true
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
{
|
||||
"action": {
|
||||
"channels": [
|
||||
{
|
||||
"frames": [
|
||||
1.0,
|
||||
3.0,
|
||||
5.0
|
||||
],
|
||||
"index": 0,
|
||||
"path": "location"
|
||||
},
|
||||
{
|
||||
"frames": [
|
||||
1.0,
|
||||
3.0,
|
||||
5.0
|
||||
],
|
||||
"index": 1,
|
||||
"path": "location"
|
||||
},
|
||||
{
|
||||
"frames": [
|
||||
1.0,
|
||||
3.0,
|
||||
5.0
|
||||
],
|
||||
"index": 2,
|
||||
"path": "location"
|
||||
}
|
||||
],
|
||||
"name": "WebGapAnimChannelViewPickObjectAction"
|
||||
},
|
||||
"blenderVersion": "5.2.0 LTS",
|
||||
"fixture": "/home/mes123456/workinf_Blender_Wasm/tests/files/web/generated/M16-GAP-00152-operator-anim.channel_view_pick.blend",
|
||||
"fixtureSha256": "e3a0c3158f43b96f05006d54b451614754d0fca9a07fbcc3b1c9cc3a4e076d29",
|
||||
"operation": "ANIM_CHANNEL_VIEW_PICK_DESKTOP",
|
||||
"saveReopen": "EXACT",
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00152",
|
||||
"view2d": {
|
||||
"cur": {
|
||||
"xmax": 5.0,
|
||||
"xmin": 1.0,
|
||||
"ymax": 0.0,
|
||||
"ymin": -955.0
|
||||
},
|
||||
"mask": {
|
||||
"xmax": 1577,
|
||||
"xmin": 0,
|
||||
"ymax": 955,
|
||||
"ymin": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00152",
|
||||
"operation": "ANIM_CHANNEL_VIEW_PICK_LOCAL_EXACT",
|
||||
"fixture": {
|
||||
"path": "tests/files/web/generated/M16-GAP-00152-operator-anim.channel_view_pick.blend",
|
||||
"sha256": "e3a0c3158f43b96f05006d54b451614754d0fca9a07fbcc3b1c9cc3a4e076d29"
|
||||
},
|
||||
"desktop": {
|
||||
"status": "EXACT",
|
||||
"report": "tests/golden/M16-GAP-00152/anim-channel-view-pick-desktop-report.json",
|
||||
"saveReopen": "EXACT"
|
||||
},
|
||||
"wasm": {
|
||||
"status": "EXACT",
|
||||
"actionId": "action:WebGapAnimChannelViewPickObjectAction:object:WebGapAnimChannelViewPickObject",
|
||||
"editor": "DOPE_SHEET",
|
||||
"regionKind": "MAIN",
|
||||
"view2d": {
|
||||
"cur": {
|
||||
"xmax": 5,
|
||||
"xmin": 1,
|
||||
"ymax": 0,
|
||||
"ymin": -955
|
||||
},
|
||||
"mask": {
|
||||
"xmax": 1577,
|
||||
"xmin": 0,
|
||||
"ymax": 955,
|
||||
"ymin": 0
|
||||
}
|
||||
}
|
||||
},
|
||||
"saveReopen": "EXACT",
|
||||
"negative": {
|
||||
"malformedBlend": "REJECTED_WITHOUT_MAIN_MUTATION"
|
||||
},
|
||||
"nextTask": "M16-GAP-00153"
|
||||
}
|
||||
25
tests/golden/M16-GAP-00152/manifest.json
Normal file
25
tests/golden/M16-GAP-00152/manifest.json
Normal file
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00152",
|
||||
"parentTask": "M16-GAP-00151",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": true,
|
||||
"runtime": "BLENDER_5_2_LOCAL_EXACT",
|
||||
"operation": "ANIM_CHANNEL_VIEW_PICK_LOCAL_EXACT",
|
||||
"status": "done",
|
||||
"artifacts": {
|
||||
"parentManifest": {"path": "tests/golden/M16-GAP-00151/manifest.json", "sha256": "6607d5f2f8af37d9f9228ea416889bec0d3d8d6c04cc3bb46999858dac018f2e"},
|
||||
"fixture": {"path": "tests/files/web/generated/M16-GAP-00152-operator-anim.channel_view_pick.blend", "sha256": "e3a0c3158f43b96f05006d54b451614754d0fca9a07fbcc3b1c9cc3a4e076d29"},
|
||||
"generator": {"path": "tools/web/generated/M16-GAP-00152.py", "sha256": "dc920602484d5b9d90b714de6044c5687f9001fd601170de87019ed194941284"},
|
||||
"desktopChecker": {"path": "tools/web/check-action-channel-view-pick-desktop.py", "sha256": "2b2c904295211cdcf7689cdda060eed9856338c4295a84e0d74da862bee719a9"},
|
||||
"webChecker": {"path": "tools/web/check-generated-gap.mjs", "sha256": "beeca4b0a0cac130fb2a054be95dad2d6bbf5d7fdcc228e7ba98f080c9c44686"},
|
||||
"reader": {"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp", "sha256": "4a1733632ae8418f0bc835c3b4a14b9d69985cb85b74faaca314fa48ec18fd0e"},
|
||||
"wasm": {"path": "web/app/src/vendor/blender/web_engine.wasm", "sha256": "d040c839999e125ab7693907fa69245105abde641b5d0839ee9990af4c5f0e21"},
|
||||
"wasmPublic": {"path": "web/app/public/vendor/blender/web_engine.wasm", "sha256": "d040c839999e125ab7693907fa69245105abde641b5d0839ee9990af4c5f0e21"},
|
||||
"wasmJs": {"path": "web/app/src/vendor/blender/web_engine.js", "sha256": "9c831d0351ac9d0714cce3b1da748cba416ced3086e3c59595cf24ac4da459ed"},
|
||||
"desktopReport": {"path": "tests/golden/M16-GAP-00152/anim-channel-view-pick-desktop-report.json", "sha256": "e8ddb6bb82386a4c93fb2525ac8c76b965034f827d28c0caa7c2df349833dc7c"},
|
||||
"webReport": {"path": "tests/golden/M16-GAP-00152/anim-channel-view-pick-local-exact-report.json", "sha256": "813990cb73567d995b784e23f47b7493f6bd3da83278ba86e4161044bfb98b8b"},
|
||||
"taskContext": {"path": "tests/golden/M16-GAP-00152/task-context.json", "sha256": "c2f0b3acf3ac531ec577583e204e75d15a41f12f3c00b5d7326fe85da4e68547"}
|
||||
},
|
||||
"nextTask": "M16-GAP-00153"
|
||||
}
|
||||
185
tests/golden/M16-GAP-00152/task-context.json
Normal file
185
tests/golden/M16-GAP-00152/task-context.json
Normal file
@@ -0,0 +1,185 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00152",
|
||||
"parentTask": "M16-GAP-00151",
|
||||
"status": "in_progress",
|
||||
"goal": "Make the same minimal fixture produce observable operator:anim.channel_view_pick 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:anim.channel_view_pick",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"implementationClass": "LOCAL_EXACT"
|
||||
},
|
||||
"commands": [
|
||||
"build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00152.py -- tests/files/web/generated/M16-GAP-00152-operator-anim.channel_view_pick.blend",
|
||||
"npm --prefix web run test:generated-gap -- --task M16-GAP-00152",
|
||||
"node tools/web/check-generated-gap.mjs --task M16-GAP-00152"
|
||||
],
|
||||
"inputPaths": [
|
||||
"tools/web/generated/M16-GAP-00152.py"
|
||||
],
|
||||
"inputSelection": {
|
||||
"schemaVersion": 1,
|
||||
"limits": {
|
||||
"maxFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextRemainingBytes": 3101,
|
||||
"contextRemainingTokens": 775
|
||||
},
|
||||
"source": {
|
||||
"bytes": 6803,
|
||||
"tokens": 1701
|
||||
},
|
||||
"selected": [
|
||||
{
|
||||
"path": "tools/web/generated/M16-GAP-00152.py",
|
||||
"bytes": 2474,
|
||||
"tokens": 619
|
||||
}
|
||||
],
|
||||
"excluded": [
|
||||
{
|
||||
"path": "tests/files/web/generated/M16-GAP-00152-operator-anim.channel_view_pick.blend",
|
||||
"bytes": 87117,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp",
|
||||
"bytes": 227216,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tools/web/check-generated-gap.mjs",
|
||||
"bytes": 283973,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00152/",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00152.md",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00152/manifest.json",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"files": 1,
|
||||
"bytes": 2474,
|
||||
"tokens": 619
|
||||
}
|
||||
},
|
||||
"exitCriteria": [
|
||||
"desktop fixture evidence exists",
|
||||
"WASM uses the same fixture",
|
||||
"comparator passes",
|
||||
"save/reopen preserves Main",
|
||||
"manifest hashes all artifacts"
|
||||
],
|
||||
"nextTask": "M16-GAP-00153",
|
||||
"sourceDocuments": {
|
||||
"queue": "docs/EXECUTION_QUEUE.md",
|
||||
"taskCard": "docs/tasks/M16-GAP-00152.md",
|
||||
"taskIndex": "tests/golden/M15-03A/task-index.json",
|
||||
"parentManifest": "tests/golden/M16-GAP-00151/manifest.json",
|
||||
"parentStatus": "docs/status/M16-GAP-00151.md"
|
||||
},
|
||||
"readPolicy": {
|
||||
"required": [
|
||||
"docs/EXECUTION_QUEUE.md",
|
||||
"docs/tasks/M16-GAP-00152.md",
|
||||
"tests/golden/M16-GAP-00151/manifest.json",
|
||||
"docs/status/M16-GAP-00151.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-00151",
|
||||
"parentTask": "M16-GAP-00150",
|
||||
"status": "done",
|
||||
"nextTask": "M16-GAP-00152",
|
||||
"artifactCount": 12
|
||||
},
|
||||
"statusSummary": [
|
||||
"# M16-GAP-00151 Status",
|
||||
"status: done",
|
||||
"task: anim.channel_select_keys operator LOCAL_EXACT slice",
|
||||
"updated: 2026-08-21 America/New_York",
|
||||
"scope:",
|
||||
"- Action Editor `anim.channel_select_keys` selects all keys on the first location channel.",
|
||||
"evidence:",
|
||||
"- Blender desktop and WASM/Main expose the same selection: location index 0 at frames 1, 3, and 5; the other channels remain unselected."
|
||||
]
|
||||
},
|
||||
"budgets": {
|
||||
"queueBytes": 4096,
|
||||
"taskBytes": 1799,
|
||||
"parentManifestBytes": 24576,
|
||||
"parentStatusBytes": 6144,
|
||||
"evidenceFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextTokens": 3500,
|
||||
"contextEnvelopeTokens": 1024,
|
||||
"taskLines": 38,
|
||||
"taskTokens": 450
|
||||
},
|
||||
"size": {
|
||||
"documents": [
|
||||
{
|
||||
"path": "docs/EXECUTION_QUEUE.md",
|
||||
"bytes": 2168,
|
||||
"lines": 45,
|
||||
"tokens": 542
|
||||
},
|
||||
{
|
||||
"path": "docs/tasks/M16-GAP-00152.md",
|
||||
"bytes": 1799,
|
||||
"lines": 38,
|
||||
"tokens": 450
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00151/manifest.json",
|
||||
"bytes": 2244,
|
||||
"lines": 26,
|
||||
"tokens": 561
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00151.md",
|
||||
"bytes": 592,
|
||||
"lines": 18,
|
||||
"tokens": 148
|
||||
}
|
||||
],
|
||||
"sourceTokens": 1701,
|
||||
"evidenceFiles": 1,
|
||||
"evidenceBytes": 2474,
|
||||
"evidenceTokens": 619,
|
||||
"totalTokens": 2320,
|
||||
"reservedEnvelopeTokens": 1024,
|
||||
"estimatedContextTokens": 3344,
|
||||
"serializedContextTokens": 756,
|
||||
"withinBudget": true
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
{
|
||||
"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": "WebGapAnimChannelsBakeObjectAction"
|
||||
},
|
||||
"bakeRange": [
|
||||
1,
|
||||
5
|
||||
],
|
||||
"blenderVersion": "5.2.0 LTS",
|
||||
"fixture": "/home/mes123456/workinf_Blender_Wasm/tests/files/web/generated/M16-GAP-00153-operator-anim.channels_bake.blend",
|
||||
"fixtureSha256": "1818a2a90d3eea5b38ad4d6e3cb1bd0394022ca62a8384734cefc36305d884eb",
|
||||
"operation": "ANIM_CHANNELS_BAKE_DESKTOP",
|
||||
"saveReopen": "EXACT",
|
||||
"schemaVersion": 1,
|
||||
"step": 1.0,
|
||||
"task": "M16-GAP-00153"
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00153",
|
||||
"operation": "ANIM_CHANNELS_BAKE_LOCAL_EXACT",
|
||||
"fixture": {
|
||||
"path": "tests/files/web/generated/M16-GAP-00153-operator-anim.channels_bake.blend",
|
||||
"sha256": "1818a2a90d3eea5b38ad4d6e3cb1bd0394022ca62a8384734cefc36305d884eb"
|
||||
},
|
||||
"desktop": {
|
||||
"status": "EXACT",
|
||||
"report": "tests/golden/M16-GAP-00153/anim-channels-bake-desktop-report.json",
|
||||
"saveReopen": "EXACT"
|
||||
},
|
||||
"wasm": {
|
||||
"status": "EXACT",
|
||||
"actionId": "action:WebGapAnimChannelsBakeObjectAction:object:WebGapAnimChannelsBakeObject",
|
||||
"bakeRange": [
|
||||
1,
|
||||
5
|
||||
],
|
||||
"step": 1,
|
||||
"framesPerChannel": [
|
||||
[
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4,
|
||||
5
|
||||
],
|
||||
[
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4,
|
||||
5
|
||||
],
|
||||
[
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4,
|
||||
5
|
||||
]
|
||||
]
|
||||
},
|
||||
"saveReopen": "EXACT",
|
||||
"negative": {
|
||||
"malformedBlend": "REJECTED_WITHOUT_MAIN_MUTATION"
|
||||
},
|
||||
"nextTask": "M16-GAP-00154"
|
||||
}
|
||||
25
tests/golden/M16-GAP-00153/manifest.json
Normal file
25
tests/golden/M16-GAP-00153/manifest.json
Normal file
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00153",
|
||||
"parentTask": "M16-GAP-00152",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": true,
|
||||
"runtime": "BLENDER_5_2_LOCAL_EXACT",
|
||||
"operation": "ANIM_CHANNELS_BAKE_LOCAL_EXACT",
|
||||
"status": "done",
|
||||
"artifacts": {
|
||||
"parentManifest": {"path": "tests/golden/M16-GAP-00152/manifest.json", "sha256": "8f13a4a4da0827dece7e371690d9c451203a6de4b909665c1a113a15b7ee68d2"},
|
||||
"fixture": {"path": "tests/files/web/generated/M16-GAP-00153-operator-anim.channels_bake.blend", "sha256": "1818a2a90d3eea5b38ad4d6e3cb1bd0394022ca62a8384734cefc36305d884eb"},
|
||||
"generator": {"path": "tools/web/generated/M16-GAP-00153.py", "sha256": "a1dba3b7bd0b5011eb2867f12428b89b9d76b103ebe6109e78c9711dfc0596de"},
|
||||
"desktopChecker": {"path": "tools/web/check-action-channels-bake-desktop.py", "sha256": "87eccc9a6dd652d94cbe49e771937c39d223765ca7658e239e99017356613a2c"},
|
||||
"webChecker": {"path": "tools/web/check-generated-gap.mjs", "sha256": "1aeef2ac3cfcf702f568886265840aff4b528a8082cd81a95de3870bd4944c4f"},
|
||||
"reader": {"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp", "sha256": "4a1733632ae8418f0bc835c3b4a14b9d69985cb85b74faaca314fa48ec18fd0e"},
|
||||
"wasm": {"path": "web/app/src/vendor/blender/web_engine.wasm", "sha256": "d040c839999e125ab7693907fa69245105abde641b5d0839ee9990af4c5f0e21"},
|
||||
"wasmPublic": {"path": "web/app/public/vendor/blender/web_engine.wasm", "sha256": "d040c839999e125ab7693907fa69245105abde641b5d0839ee9990af4c5f0e21"},
|
||||
"wasmJs": {"path": "web/app/src/vendor/blender/web_engine.js", "sha256": "9c831d0351ac9d0714cce3b1da748cba416ced3086e3c59595cf24ac4da459ed"},
|
||||
"desktopReport": {"path": "tests/golden/M16-GAP-00153/anim-channels-bake-desktop-report.json", "sha256": "bcc459445eb7da0b2898302b72b726cd128572a25c23012dc7dfee9b03d945a6"},
|
||||
"webReport": {"path": "tests/golden/M16-GAP-00153/anim-channels-bake-local-exact-report.json", "sha256": "517f2a16e4a3a46e52709c58987e940d1c07235adc8c4c9d6401363173c7d09b"},
|
||||
"taskContext": {"path": "tests/golden/M16-GAP-00153/task-context.json", "sha256": "076fcdce0aaede9f992ce804e4e2cabbc2bbc69a0316038bba6880704933d26d"}
|
||||
},
|
||||
"nextTask": "M16-GAP-00154"
|
||||
}
|
||||
185
tests/golden/M16-GAP-00153/task-context.json
Normal file
185
tests/golden/M16-GAP-00153/task-context.json
Normal file
@@ -0,0 +1,185 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M16-GAP-00153",
|
||||
"parentTask": "M16-GAP-00152",
|
||||
"status": "in_progress",
|
||||
"goal": "Make the same minimal fixture produce observable operator:anim.channels_bake 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:anim.channels_bake",
|
||||
"ownerFamily": "OPERATOR",
|
||||
"implementationClass": "LOCAL_EXACT"
|
||||
},
|
||||
"commands": [
|
||||
"build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00153.py -- tests/files/web/generated/M16-GAP-00153-operator-anim.channels_bake.blend",
|
||||
"npm --prefix web run test:generated-gap -- --task M16-GAP-00153",
|
||||
"node tools/web/check-generated-gap.mjs --task M16-GAP-00153"
|
||||
],
|
||||
"inputPaths": [
|
||||
"tools/web/generated/M16-GAP-00153.py"
|
||||
],
|
||||
"inputSelection": {
|
||||
"schemaVersion": 1,
|
||||
"limits": {
|
||||
"maxFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextRemainingBytes": 3167,
|
||||
"contextRemainingTokens": 791
|
||||
},
|
||||
"source": {
|
||||
"bytes": 6737,
|
||||
"tokens": 1685
|
||||
},
|
||||
"selected": [
|
||||
{
|
||||
"path": "tools/web/generated/M16-GAP-00153.py",
|
||||
"bytes": 2235,
|
||||
"tokens": 559
|
||||
}
|
||||
],
|
||||
"excluded": [
|
||||
{
|
||||
"path": "tests/files/web/generated/M16-GAP-00153-operator-anim.channels_bake.blend",
|
||||
"bytes": 87182,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp",
|
||||
"bytes": 227216,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tools/web/check-generated-gap.mjs",
|
||||
"bytes": 287254,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00153/",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00153.md",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00153/manifest.json",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"files": 1,
|
||||
"bytes": 2235,
|
||||
"tokens": 559
|
||||
}
|
||||
},
|
||||
"exitCriteria": [
|
||||
"desktop fixture evidence exists",
|
||||
"WASM uses the same fixture",
|
||||
"comparator passes",
|
||||
"save/reopen preserves Main",
|
||||
"manifest hashes all artifacts"
|
||||
],
|
||||
"nextTask": "M16-GAP-00154",
|
||||
"sourceDocuments": {
|
||||
"queue": "docs/EXECUTION_QUEUE.md",
|
||||
"taskCard": "docs/tasks/M16-GAP-00153.md",
|
||||
"taskIndex": "tests/golden/M15-03A/task-index.json",
|
||||
"parentManifest": "tests/golden/M16-GAP-00152/manifest.json",
|
||||
"parentStatus": "docs/status/M16-GAP-00152.md"
|
||||
},
|
||||
"readPolicy": {
|
||||
"required": [
|
||||
"docs/EXECUTION_QUEUE.md",
|
||||
"docs/tasks/M16-GAP-00153.md",
|
||||
"tests/golden/M16-GAP-00152/manifest.json",
|
||||
"docs/status/M16-GAP-00152.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-00152",
|
||||
"parentTask": "M16-GAP-00151",
|
||||
"status": "done",
|
||||
"nextTask": "M16-GAP-00153",
|
||||
"artifactCount": 12
|
||||
},
|
||||
"statusSummary": [
|
||||
"# M16-GAP-00152 Status",
|
||||
"status: done",
|
||||
"task: anim.channel_view_pick operator LOCAL_EXACT slice",
|
||||
"updated: 2026-08-21 America/New_York",
|
||||
"scope:",
|
||||
"- Action Editor `anim.channel_view_pick` frames the shared location-channel range.",
|
||||
"evidence:",
|
||||
"- Blender desktop and WASM/Main expose the same Action Editor `view2d.cur` and mask around frames 1 through 5."
|
||||
]
|
||||
},
|
||||
"budgets": {
|
||||
"queueBytes": 4096,
|
||||
"taskBytes": 1779,
|
||||
"parentManifestBytes": 24576,
|
||||
"parentStatusBytes": 6144,
|
||||
"evidenceFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextTokens": 3500,
|
||||
"contextEnvelopeTokens": 1024,
|
||||
"taskLines": 38,
|
||||
"taskTokens": 445
|
||||
},
|
||||
"size": {
|
||||
"documents": [
|
||||
{
|
||||
"path": "docs/EXECUTION_QUEUE.md",
|
||||
"bytes": 2168,
|
||||
"lines": 45,
|
||||
"tokens": 542
|
||||
},
|
||||
{
|
||||
"path": "docs/tasks/M16-GAP-00153.md",
|
||||
"bytes": 1779,
|
||||
"lines": 38,
|
||||
"tokens": 445
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/M16-GAP-00152/manifest.json",
|
||||
"bytes": 2234,
|
||||
"lines": 26,
|
||||
"tokens": 559
|
||||
},
|
||||
{
|
||||
"path": "docs/status/M16-GAP-00152.md",
|
||||
"bytes": 556,
|
||||
"lines": 18,
|
||||
"tokens": 139
|
||||
}
|
||||
],
|
||||
"sourceTokens": 1685,
|
||||
"evidenceFiles": 1,
|
||||
"evidenceBytes": 2235,
|
||||
"evidenceTokens": 559,
|
||||
"totalTokens": 2244,
|
||||
"reservedEnvelopeTokens": 1024,
|
||||
"estimatedContextTokens": 3268,
|
||||
"serializedContextTokens": 753,
|
||||
"withinBudget": true
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user