Reorganize Blender Web execution around capabilities
Some checks are pending
M6 deployable RC / quick (push) Waiting to run
M6 deployable RC / chromium (push) Blocked by required conditions
M6 deployable RC / release (push) Blocked by required conditions

This commit is contained in:
mes123456
2026-08-24 18:37:46 -04:00
parent 0b2c3ba0dd
commit a081c68c87
2530 changed files with 763976 additions and 79 deletions

View File

@@ -0,0 +1,212 @@
{
"schemaVersion": 2,
"matrixId": "BLENDER_WASM_CAPABILITY_MATRIX",
"status": "TEMPLATE",
"sourceOfTruth": "corrective capability evidence; legacy M16-GAP records remain immutable",
"queuePolicy": {
"mode": "SHADOW_ONLY",
"writesLegacyQueue": false,
"requiresGate": "G5",
"migrationPlan": "docs/BLENDER_WASM_CORRECTIVE_MIGRATION_PLAN.md"
},
"allowedParityLevels": ["L0", "L1", "L2", "L3", "L4", "L5"],
"allowedCompletionClasses": [
"FEATURE_PARITY",
"READ_COMPATIBILITY",
"NEGATIVE_BOUNDARY",
"METADATA_ONLY",
"UNSUPPORTED_DECLARED",
"BLOCKED",
"PLANNED"
],
"allowedLifecycleStatuses": ["planned", "in_progress", "blocked", "done"],
"allowedEvidenceStatuses": ["PASS", "FAIL", "BLOCKED", "NOT_RUN"],
"allowedProvenanceStates": ["VERIFIED", "DRIFT", "MISSING", "RESTORED", "BLOCKED_SOURCE_LOST"],
"fieldContracts": {
"capabilityId": "^CAP-[A-Z0-9]+(?:-[A-Z0-9]+)*$",
"family": "stable capability family, not a legacy task name",
"parityLevel": "highest level fully proven by the evidence, never the target level",
"targetParityLevel": "planned level; never used as completion evidence",
"completionClass": "must agree with evidence and lifecycleStatus",
"sourceGaps": "zero or more immutable M16-GAP IDs; references only",
"productionEntrypoints": "files that changed or were explicitly checked",
"evidence": "all required receipts, reports, hashes, and focused commands",
"provenanceState": "artifact provenance; observed hash never replaces original hash",
"migration": "shadow mapping; no queue write before C6-003"
},
"requiredFields": [
"capabilityId",
"lifecycleStatus",
"family",
"primaryBehavior",
"parityLevel",
"targetParityLevel",
"completionClass",
"sourceGaps",
"desktopOracle",
"wasmCommand",
"productionEntrypoints",
"positiveCases",
"negativeCases",
"persistenceCases",
"undoRedoCases",
"resourceCases",
"owner",
"dependencies",
"gate"
,"evidence"
,"expectedMutation"
,"migration"
],
"entryTemplate": {
"capabilityId": "CAP-REPLACE-ME",
"lifecycleStatus": "planned",
"family": "REPLACE_ME",
"primaryBehavior": "REPLACE_ME",
"parityLevel": "L0",
"targetParityLevel": "L2",
"completionClass": "PLANNED",
"sourceGaps": [],
"desktopOracle": {
"fixture": "tests/files/web/corrective/REPLACE_ME.blend",
"command": "REPLACE_ME",
"positiveRequired": false,
"negativeRequired": ["malformed", "invalid_context"]
},
"wasmCommand": {
"type": "REPLACE_ME",
"schemaVersion": 1,
"status": "PLANNED",
"requires": ["baseRevision", "context"]
},
"productionEntrypoints": [],
"positiveCases": [],
"negativeCases": [],
"persistenceCases": [],
"undoRedoCases": [],
"resourceCases": [],
"expectedMutation": {
"positiveStatus": "FINISHED",
"mainMutation": "CHANGED",
"revisionDelta": 1,
"failureRevisionDelta": 0
},
"evidence": {
"status": "NOT_RUN",
"provenanceState": "MISSING",
"required": ["desktopReport", "wasmReport", "focusedCommands", "artifactHashes"],
"desktopReport": null,
"wasmReport": null,
"focusedCommands": [],
"artifactHashes": [],
"chromiumTest": null
},
"migration": {
"state": "UNMAPPED",
"primaryLegacyGaps": [],
"coverageCases": [],
"supersedes": [],
"legacyCompletionPreserved": true,
"reviewRequired": true
},
"owner": "REPLACE_ME",
"dependencies": [],
"gate": "G1"
},
"entries": [
{
"capabilityId": "CAP-ASSET-CATALOG-MUTATION",
"lifecycleStatus": "planned",
"family": "ASSET_CATALOG",
"primaryBehavior": "create_or_update_catalog_and_save",
"parityLevel": "L0",
"targetParityLevel": "L4",
"completionClass": "PLANNED",
"sourceGaps": [
"operator:asset.catalog_new",
"operator:asset.catalog_delete",
"operator:asset.catalogs_save",
"operator:asset.catalog_undo",
"operator:asset.catalog_redo"
],
"desktopOracle": {
"operatorIds": [
"ASSET_OT_catalog_new",
"ASSET_OT_catalog_delete",
"ASSET_OT_catalogs_save"
],
"positiveRequired": true,
"negativeRequired": ["no_context", "read_only_library", "missing_resource"]
},
"wasmCommand": {
"type": "assetCatalogMutation",
"status": "PLANNED",
"requires": ["activeAssetLibrary", "baseRevision", "resourceProvider"]
},
"productionEntrypoints": [
"blender-5.2.0/source/blender/web_engine/web_engine_api.cpp",
"blender-5.2.0/source/blender/web_engine/web_engine_api.h",
"web/engine/web_engine_main_state.cpp"
],
"positiveCases": ["create", "rename", "delete", "save"],
"negativeCases": ["malformed", "unsupported", "revision_conflict"],
"persistenceCases": ["save_reopen_catalog_and_main"],
"undoRedoCases": ["catalog_undo", "catalog_redo"],
"resourceCases": ["external_required", "packed", "path_rejection"],
"owner": "WEB_ENGINE_AND_ASSET_WORKFLOW",
"dependencies": ["C2-001", "C2-002", "C2-003"],
"gate": "G3"
,"expectedMutation": {"positiveStatus": "FINISHED", "mainMutation": "CHANGED", "revisionDelta": 1, "failureRevisionDelta": 0}
,"evidence": {"status": "NOT_RUN", "provenanceState": "MISSING", "required": ["desktopReport", "wasmReport", "focusedCommands", "artifactHashes", "chromiumTest"], "desktopReport": null, "wasmReport": null, "focusedCommands": [], "artifactHashes": [], "chromiumTest": null}
,"migration": {"state": "UNMAPPED", "primaryLegacyGaps": ["operator:asset.catalog_new", "operator:asset.catalog_delete", "operator:asset.catalogs_save", "operator:asset.catalog_undo", "operator:asset.catalog_redo"], "coverageCases": [], "supersedes": [], "legacyCompletionPreserved": true, "reviewRequired": true}
},
{
"capabilityId": "CAP-MODIFIER-STATE-MUTATION",
"lifecycleStatus": "planned",
"family": "MODIFIER",
"primaryBehavior": "toggle_modifier_state_and_persist",
"parityLevel": "L0",
"targetParityLevel": "L3",
"completionClass": "PLANNED",
"sourceGaps": ["modifier:state", "operator:object.modifier_toggle"],
"desktopOracle": {"positiveRequired": true, "negativeRequired": ["missing_modifier", "invalid_context"]},
"wasmCommand": {"type": "setModifierEnabled", "status": "EXISTING", "requires": ["meshId", "modifierUuid", "baseRevision"]},
"productionEntrypoints": ["blender-5.2.0/source/blender/web_engine/web_engine_api.cpp", "blender-5.2.0/source/blender/web_engine/web_engine_main_state.cpp"],
"positiveCases": ["enable", "disable", "save_reopen"],
"negativeCases": ["invalid_uuid", "revision_conflict", "malformed"],
"persistenceCases": ["save_reopen_modifier_state"],
"undoRedoCases": ["undo", "redo"],
"resourceCases": [],
"owner": "WEB_ENGINE_MAIN",
"dependencies": ["C2-001", "C2-002", "C2-003"],
"gate": "G4"
,"expectedMutation": {"positiveStatus": "FINISHED", "mainMutation": "CHANGED", "revisionDelta": 1, "failureRevisionDelta": 0}
,"evidence": {"status": "NOT_RUN", "provenanceState": "MISSING", "required": ["desktopReport", "wasmReport", "focusedCommands", "artifactHashes", "chromiumTest"], "desktopReport": null, "wasmReport": null, "focusedCommands": [], "artifactHashes": [], "chromiumTest": null}
,"migration": {"state": "UNMAPPED", "primaryLegacyGaps": ["modifier:state", "operator:object.modifier_toggle"], "coverageCases": [], "supersedes": [], "legacyCompletionPreserved": true, "reviewRequired": true}
},
{
"capabilityId": "CAP-MESH-POSITIVE-EDIT",
"lifecycleStatus": "planned",
"family": "MESH",
"primaryBehavior": "perform_one_atomic_mesh_edit",
"parityLevel": "L0",
"targetParityLevel": "L3",
"completionClass": "PLANNED",
"sourceGaps": ["mesh:edit", "operator:mesh.edit"],
"desktopOracle": {"positiveRequired": true, "negativeRequired": ["invalid_selection", "unsupported_topology"]},
"wasmCommand": {"type": "meshEdit", "status": "PLANNED", "requires": ["meshId", "baseRevision", "selection"]},
"productionEntrypoints": ["blender-5.2.0/source/blender/web_engine/web_engine_api.cpp", "web/engine/web_engine_main_state.cpp"],
"positiveCases": ["edit", "delta", "save_reopen"],
"negativeCases": ["invalid_selection", "revision_conflict", "malformed"],
"persistenceCases": ["save_reopen_geometry"],
"undoRedoCases": ["undo", "redo"],
"resourceCases": [],
"owner": "WEB_ENGINE_MAIN",
"dependencies": ["C2-001", "C2-002", "C2-003"],
"gate": "G4"
,"expectedMutation": {"positiveStatus": "FINISHED", "mainMutation": "CHANGED", "revisionDelta": 1, "failureRevisionDelta": 0}
,"evidence": {"status": "NOT_RUN", "provenanceState": "MISSING", "required": ["desktopReport", "wasmReport", "focusedCommands", "artifactHashes", "chromiumTest"], "desktopReport": null, "wasmReport": null, "focusedCommands": [], "artifactHashes": [], "chromiumTest": null}
,"migration": {"state": "UNMAPPED", "primaryLegacyGaps": ["mesh:edit", "operator:mesh.edit"], "coverageCases": [], "supersedes": [], "legacyCompletionPreserved": true, "reviewRequired": true}
}
]
}