Files
workinf_Blender_Wasm/tests/golden/WBV2/feature-smoke-plan.json
mes123456 0bc56836c5
Some checks failed
M6 deployable RC / quick (push) Has been cancelled
M6 deployable RC / chromium (push) Has been cancelled
M6 deployable RC / release (push) Has been cancelled
test(web): add one-pass feature smoke plan and record blockers
2026-09-07 06:48:03 +08:00

536 lines
18 KiB
JSON

{
"schemaVersion": 1,
"planId": "WBV2-FEATURE-SMOKE-001",
"operation": "ONE_PASS_FEATURE_SMOKE",
"policy": {
"browser": "chromium-only",
"oneSmokePerFeature": true,
"retryFailedFeature": false,
"failureAction": "stop-after-report-and-create-focused-fix-task",
"scope": "one representative positive/reachability smoke per implemented product feature; negative gates remain assertions of the selected production test",
"excluded": [
"full API matrix",
"performance soak",
"security/fuzz matrix",
"cross-browser",
"repeat of already passed feature"
]
},
"inventory": {
"productFeatures": 34,
"workflowModules": 16,
"sourceUnits": 3745,
"routeCounts": {
"BROWSER_EQUIVALENT": 434,
"SERVER_NATIVE": 1613,
"WEB_MAIN": 1698
},
"behavioralEvidence": {
"status": "PARTIAL",
"verifiedUnits": 1025,
"unverifiedUnits": 2720,
"policy": "route classification does not replace exact behavioral evidence"
},
"wasmModules": [
{
"id": "core-runtime-completed",
"lifecycle": "complete",
"preload": true
},
{
"id": "mesh-editing-completed",
"lifecycle": "complete",
"preload": true
},
{
"id": "reader-capabilities-completed",
"lifecycle": "complete",
"preload": true
},
{
"id": "debug-incremental",
"lifecycle": "debug",
"preload": false
},
{
"id": "debug-incremental-secondary",
"lifecycle": "debug",
"preload": false
}
]
},
"cases": [
{
"ordinal": 1,
"smokeId": "WBV2-SMOKE-WEBUI-NONMESH-ADVANCED",
"featureId": "WEBUI-NONMESH-ADVANCED",
"module": "NONMESH",
"representativeCommand": "deleteNonMeshData",
"route": "WEB_MAIN",
"kind": "playwright",
"testFile": "tests/e2e/wbv2-nonmesh-delete-production.spec.ts",
"testTitle": "WBV2-P1101-000 preserves deleteNonMeshData Main recovery semantics",
"runOnce": true,
"maxAttempts": 1,
"status": "PLANNED"
},
{
"ordinal": 2,
"smokeId": "WBV2-SMOKE-WEBUI-FONT-ASSETS",
"featureId": "WEBUI-FONT-ASSETS",
"module": "NONMESH",
"representativeCommand": "setFontAdvanced",
"route": "WEB_MAIN",
"kind": "playwright",
"testFile": "tests/e2e/wbv2-font-advanced-production.spec.ts",
"testTitle": "WBV2-P1136-001 preserves Font advanced fields and links through Main recovery",
"runOnce": true,
"maxAttempts": 1,
"status": "PLANNED"
},
{
"ordinal": 3,
"smokeId": "WBV2-SMOKE-WEBUI-SCULPT",
"featureId": "WEBUI-SCULPT",
"module": "PAINT",
"representativeCommand": "sculptStroke",
"route": "WEB_MAIN",
"kind": "playwright",
"testFile": "tests/e2e/wbv2-sculpt-stroke-production.spec.ts",
"testTitle": "WBV2-P1121-000 preserves bounded Sculpt stroke Main mutation",
"runOnce": true,
"maxAttempts": 1,
"status": "PLANNED"
},
{
"ordinal": 4,
"smokeId": "WBV2-SMOKE-WEBUI-NLA-STRIP",
"featureId": "WEBUI-NLA-STRIP",
"module": "ANIMATION",
"representativeCommand": "moveNLAStrip",
"route": "WEB_MAIN",
"kind": "playwright",
"testFile": "tests/e2e/wbv2-nla-stack-production.spec.ts",
"testTitle": "WBV2-P1112-000 preserves setNLAStack Main submission and rejects invalid actions",
"runOnce": true,
"maxAttempts": 1,
"status": "PLANNED"
},
{
"ordinal": 5,
"smokeId": "WBV2-SMOKE-NATIVE-OPERATOR-BRIDGE",
"featureId": "NATIVE-OPERATOR-BRIDGE",
"module": "WORKSPACE",
"representativeCommand": "listBlenderOperators",
"route": "WEB_MAIN",
"kind": "playwright",
"testFile": "tests/e2e/wbv2-native-engine-production.spec.ts",
"testTitle": "WBV2-P10-002 reaches the compiled Blender WASM Main through Chromium",
"runOnce": true,
"maxAttempts": 1,
"status": "PLANNED"
},
{
"ordinal": 6,
"smokeId": "WBV2-SMOKE-WEBUI-OPERATOR-PALETTE",
"featureId": "WEBUI-OPERATOR-PALETTE",
"module": "WORKSPACE",
"representativeCommand": "listBlenderOperators",
"route": "WEB_MAIN",
"kind": "playwright",
"testFile": "tests/e2e/smoke.spec.ts",
"testTitle": "operator search executes context-filtered workspace, mode and Main commands",
"runOnce": true,
"maxAttempts": 1,
"status": "PLANNED"
},
{
"ordinal": 7,
"smokeId": "WBV2-SMOKE-MESH-EXTENDED-AUTHORING",
"featureId": "MESH-EXTENDED-AUTHORING",
"module": "MESH",
"representativeCommand": "createPrimitive",
"route": "WEB_MAIN",
"kind": "playwright",
"testFile": "tests/e2e/wbv2-primitive-cube-batch-production.spec.ts",
"testTitle": "native primitive cube batch preserves Main mutation and recovery",
"runOnce": true,
"maxAttempts": 1,
"status": "PLANNED"
},
{
"ordinal": 8,
"smokeId": "WBV2-SMOKE-MODIFIER-STACK-AUTHORING",
"featureId": "MODIFIER-STACK-AUTHORING",
"module": "MODIFIER",
"representativeCommand": "addModifier",
"route": "WEB_MAIN",
"kind": "playwright",
"testFile": "tests/e2e/wbv2-modifier-production.spec.ts",
"testTitle": "WBV2-P9-002 production Chromium Modifier receipt is exact and fail-closed",
"runOnce": true,
"maxAttempts": 1,
"status": "PLANNED"
},
{
"ordinal": 9,
"smokeId": "WBV2-SMOKE-NODE-GRAPH-AUTHORING",
"featureId": "NODE-GRAPH-AUTHORING",
"module": "MODIFIER",
"representativeCommand": "setGeometryNodeGraph",
"route": "WEB_MAIN",
"kind": "playwright",
"testFile": "tests/e2e/wbv2-geometry-nodes-production.spec.ts",
"testTitle": "WBV2-P13-002 binds Geometry Nodes graph evidence to compiled WASM Main",
"runOnce": true,
"maxAttempts": 1,
"status": "PLANNED"
},
{
"ordinal": 10,
"smokeId": "WBV2-SMOKE-RIG-POSE-AUTHORING",
"featureId": "RIG-POSE-AUTHORING",
"module": "ANIMATION",
"representativeCommand": "setArmatureBones",
"route": "WEB_MAIN",
"kind": "playwright",
"testFile": "tests/e2e/wbv2-rig-pose-production.spec.ts",
"testTitle": "WBV2-P13-003 binds rig pose and skin evidence to compiled WASM Main",
"runOnce": true,
"maxAttempts": 1,
"status": "PLANNED"
},
{
"ordinal": 11,
"smokeId": "WBV2-SMOKE-ACTION-MARKER-AUTHORING",
"featureId": "ACTION-MARKER-AUTHORING",
"module": "ANIMATION",
"representativeCommand": "createAction",
"route": "WEB_MAIN",
"kind": "playwright",
"testFile": "tests/e2e/wbv2-action-pose-markers-production.spec.ts",
"testTitle": "WBV2 Action pose markers are read from Blender Main and survive recovery/reopen",
"runOnce": true,
"maxAttempts": 1,
"status": "PLANNED"
},
{
"ordinal": 12,
"smokeId": "WBV2-SMOKE-SEQUENCER-AUTHORING",
"featureId": "SEQUENCER-AUTHORING",
"module": "MEDIA",
"representativeCommand": "setSequencerStrips",
"route": "WEB_MAIN",
"kind": "playwright",
"testFile": "tests/e2e/sequencer-codec-probe.spec.ts",
"testTitle": "M11-09 probes IMAGE, SOUND and MOVIE bytes at runtime without extension guessing",
"runOnce": true,
"maxAttempts": 1,
"status": "PLANNED"
},
{
"ordinal": 13,
"smokeId": "WBV2-SMOKE-IO-ROUTE-COMPLETION",
"featureId": "IO-ROUTE-COMPLETION",
"module": "ASSET_IO",
"representativeCommand": "importScene",
"route": "WEB_MAIN",
"kind": "playwright",
"testFile": "tests/e2e/io-format-operator-production.spec.ts",
"testTitle": "WBV2-P1109 binds Blender 5.2 IO operators to Chromium format behavior",
"runOnce": true,
"maxAttempts": 1,
"status": "PLANNED"
},
{
"ordinal": 14,
"smokeId": "WBV2-SMOKE-SCULPT-ADVANCED-AUTHORING",
"featureId": "SCULPT-ADVANCED-AUTHORING",
"module": "PAINT",
"representativeCommand": "sculptStroke",
"route": "WEB_MAIN",
"kind": "playwright",
"testFile": "tests/e2e/wbv2-paint-attributes-production.spec.ts",
"testTitle": "WBV2-P16-002 binds paint attributes to compiled WASM Main",
"runOnce": true,
"maxAttempts": 1,
"status": "PLANNED"
},
{
"ordinal": 15,
"smokeId": "WBV2-SMOKE-OBJECT-EDITOR-COVERAGE",
"featureId": "OBJECT-EDITOR-COVERAGE",
"module": "OBJECT",
"representativeCommand": "clearObjectTransform",
"route": "WEB_MAIN",
"kind": "playwright",
"testFile": "tests/e2e/wbv2-object-transform-production.spec.ts",
"testTitle": "WBV2-P23-002 binds applyObjectTransform to compiled WASM Main",
"runOnce": true,
"maxAttempts": 1,
"status": "PLANNED"
},
{
"ordinal": 16,
"smokeId": "WBV2-SMOKE-MESH-EDITOR-COVERAGE",
"featureId": "MESH-EDITOR-COVERAGE",
"module": "MESH",
"representativeCommand": "meshSubdivide",
"route": "WEB_MAIN",
"kind": "playwright",
"testFile": "tests/e2e/wbv2-mesh-production.spec.ts",
"testTitle": "WBV2-P9-001 production Chromium Mesh receipt is exact and fail-closed",
"runOnce": true,
"maxAttempts": 1,
"status": "PLANNED"
},
{
"ordinal": 17,
"smokeId": "WBV2-SMOKE-CURVE-SURFACE-COVERAGE",
"featureId": "CURVE-SURFACE-COVERAGE",
"module": "NONMESH",
"representativeCommand": "setCurveBevel",
"route": "WEB_MAIN",
"kind": "playwright",
"testFile": "tests/e2e/wbv2-surface-topology-production.spec.ts",
"testTitle": "WBV2-P1134-001 preserves Surface topology transactions through Main recovery and reopen",
"runOnce": true,
"maxAttempts": 1,
"status": "PLANNED"
},
{
"ordinal": 18,
"smokeId": "WBV2-SMOKE-ARMATURE-EDITOR-COVERAGE",
"featureId": "ARMATURE-EDITOR-COVERAGE",
"module": "ANIMATION",
"representativeCommand": "armatureEditOperations",
"route": "WEB_MAIN",
"kind": "playwright",
"testFile": "tests/e2e/nla-operator.spec.ts",
"testTitle": "M10-12 moves one NLA strip through Main, undo, redo and save/reopen",
"runOnce": true,
"maxAttempts": 1,
"status": "PLANNED"
},
{
"ordinal": 19,
"smokeId": "WBV2-SMOKE-ANIMATION-FCURVE-DRIVER-COVERAGE",
"featureId": "ANIMATION-FCURVE-DRIVER-COVERAGE",
"module": "ANIMATION",
"representativeCommand": "setFCurveKeyframes",
"route": "WEB_MAIN",
"kind": "playwright",
"testFile": "tests/e2e/wbv2-driver-reader-production.spec.ts",
"testTitle": "WBV2 driver data is read from Blender Main and survives recovery/reopen",
"runOnce": true,
"maxAttempts": 1,
"status": "PLANNED"
},
{
"ordinal": 20,
"smokeId": "WBV2-SMOKE-SEQUENCER-COMPOSITOR-COVERAGE",
"featureId": "SEQUENCER-COMPOSITOR-COVERAGE",
"module": "MEDIA",
"representativeCommand": "setSequencerStripModifiers",
"route": "WEB_MAIN",
"kind": "playwright",
"testFile": "tests/e2e/compositor-main-reader-production.spec.ts",
"testTitle": "WBV2-P1104-000 reads compositor NodeTree and links from Blender Main without JS execution",
"runOnce": true,
"maxAttempts": 1,
"status": "PLANNED"
},
{
"ordinal": 21,
"smokeId": "WBV2-SMOKE-PHYSICS-SIMULATION-COVERAGE",
"featureId": "PHYSICS-SIMULATION-COVERAGE",
"module": "SIMULATION",
"representativeCommand": "setRigidBodySettings",
"route": "WEB_MAIN",
"kind": "playwright",
"testFile": "tests/e2e/wbv2-physics-manifest-production.spec.ts",
"testTitle": "WBV2-P1117-000 preserves Physics manifest Main persistence and validation",
"runOnce": true,
"maxAttempts": 1,
"status": "PLANNED"
},
{
"ordinal": 22,
"smokeId": "WBV2-SMOKE-TRACKING-MASK-COVERAGE",
"featureId": "TRACKING-MASK-COVERAGE",
"module": "ASSET_IO",
"representativeCommand": "setTrackingMarkers",
"route": "WEB_MAIN",
"kind": "playwright",
"testFile": "tests/e2e/tracking-mask-production.spec.ts",
"testTitle": "WBV2-P1127 reads Blender Mask data and selection context in Chromium",
"runOnce": true,
"maxAttempts": 1,
"status": "PLANNED"
},
{
"ordinal": 23,
"smokeId": "WBV2-SMOKE-GREASE-PENCIL-COVERAGE",
"featureId": "GREASE-PENCIL-COVERAGE",
"module": "PAINT",
"representativeCommand": "setGreasePencilDrawing",
"route": "WEB_MAIN",
"kind": "playwright",
"testFile": "tests/e2e/wbv2-grease-pencil-strokes-production.spec.ts",
"testTitle": "WBV2-P1114-000 preserves Grease Pencil stroke edits through recovery and reopen",
"runOnce": true,
"maxAttempts": 1,
"status": "PLANNED"
},
{
"ordinal": 24,
"smokeId": "WBV2-SMOKE-RENDER-CAMERA-LIGHT-COVERAGE",
"featureId": "RENDER-CAMERA-LIGHT-COVERAGE",
"module": "RENDER",
"representativeCommand": "renderFrame",
"route": "SERVER_NATIVE",
"kind": "playwright",
"testFile": "tests/e2e/wbv2-lighting-fields-production.spec.ts",
"testTitle": "WBV2-P15-002 binds camera, light, and world fields to compiled WASM Main",
"runOnce": true,
"maxAttempts": 1,
"status": "PLANNED"
},
{
"ordinal": 25,
"smokeId": "WBV2-SMOKE-ASSET-LIBRARY-COVERAGE",
"featureId": "ASSET-LIBRARY-COVERAGE",
"module": "ASSET_IO",
"representativeCommand": "assetMark",
"route": "WEB_MAIN",
"kind": "playwright",
"testFile": "tests/e2e/wbv2-asset-link-override-production.spec.ts",
"testTitle": "WBV2-P11-003 enforces linked ownership and local append through compiled WASM Main",
"runOnce": true,
"maxAttempts": 1,
"status": "PLANNED"
},
{
"ordinal": 26,
"smokeId": "WBV2-SMOKE-RNA-DATABLOCK-REFLECTION",
"featureId": "RNA-DATABLOCK-REFLECTION",
"module": "RUNTIME",
"representativeCommand": "listRNADataBlocks",
"route": "WEB_MAIN",
"kind": "playwright",
"testFile": "tests/e2e/main-datablocks-reader-production.spec.ts",
"testTitle": "WBV2 source reader exposes Blender Main datablock collections without JS simulation",
"runOnce": true,
"maxAttempts": 1,
"status": "PLANNED"
},
{
"ordinal": 27,
"smokeId": "WBV2-SMOKE-SERVER-OPERATOR-JOB",
"featureId": "SERVER-OPERATOR-JOB",
"module": "RUNTIME",
"representativeCommand": "submitServerOperatorJob",
"route": "SERVER_NATIVE",
"kind": "command",
"command": "node --test web/tests/unit/server-job-result-binding.test.mjs",
"runOnce": true,
"maxAttempts": 1,
"status": "PLANNED"
},
{
"ordinal": 28,
"smokeId": "WBV2-SMOKE-OPERATOR-ROUTE-PALETTE",
"featureId": "OPERATOR-ROUTE-PALETTE",
"module": "WORKSPACE",
"representativeCommand": "listFeatureRoutes",
"route": "WEB_MAIN",
"kind": "playwright",
"testFile": "tests/e2e/io-format-ui-gate.spec.ts",
"testTitle": "M12-05C exposes only matrix-declared file and operator routes",
"runOnce": true,
"maxAttempts": 1,
"status": "PLANNED"
},
{
"ordinal": 29,
"smokeId": "WBV2-SMOKE-OPERATOR-MACRO-COMPOSER",
"featureId": "OPERATOR-MACRO-COMPOSER",
"module": "RUNTIME",
"representativeCommand": "listBlenderMacros",
"route": "WEB_MAIN",
"kind": "command",
"command": "node tools/web/check-web-engine-command-registry.mjs",
"runOnce": true,
"maxAttempts": 1,
"status": "PLANNED"
},
{
"ordinal": 30,
"smokeId": "WBV2-SMOKE-RNA-REFLECTION-EXTENDED",
"featureId": "RNA-REFLECTION-EXTENDED",
"module": "RUNTIME",
"representativeCommand": "readRNAPropertySchema",
"route": "WEB_MAIN",
"kind": "playwright",
"testFile": "tests/e2e/wbv2-scene-settings-expanded-production.spec.ts",
"testTitle": "WBV2-P1129-001 covers the remaining Scene settings Main commands",
"runOnce": true,
"maxAttempts": 1,
"status": "PLANNED"
},
{
"ordinal": 31,
"smokeId": "WBV2-SMOKE-FEATURE-COVERAGE-DASHBOARD",
"featureId": "FEATURE-COVERAGE-DASHBOARD",
"module": "WORKSPACE",
"representativeCommand": "featureRouteCoverage",
"route": "WEB_MAIN",
"kind": "command",
"command": "python3 my-tools/show_blender_web_scheduler.py",
"runOnce": true,
"maxAttempts": 1,
"status": "PLANNED"
},
{
"ordinal": 32,
"smokeId": "WBV2-SMOKE-SERVER-OPERATOR-HTTP-PROVIDER",
"featureId": "SERVER-OPERATOR-HTTP-PROVIDER",
"module": "RUNTIME",
"representativeCommand": "submitServerOperatorJob",
"route": "SERVER_NATIVE",
"kind": "command",
"command": "node --check tools/web/server-operator-job-server.mjs && python3 -m py_compile tools/web/server-operator-job.py",
"runOnce": true,
"maxAttempts": 1,
"status": "PLANNED"
},
{
"ordinal": 33,
"smokeId": "WBV2-SMOKE-SERVER-OPERATOR-SCHEMA-PALETTE",
"featureId": "SERVER-OPERATOR-SCHEMA-PALETTE",
"module": "WORKSPACE",
"representativeCommand": "describeServerOperator",
"route": "SERVER_NATIVE",
"kind": "playwright",
"testFile": "tests/e2e/wbv2-texture-properties-production.spec.ts",
"testTitle": "WBV2-P1139-001 preserves Texture properties through Main recovery and reopen",
"runOnce": true,
"maxAttempts": 1,
"status": "PLANNED"
},
{
"ordinal": 34,
"smokeId": "WBV2-SMOKE-BROWSER-EQUIVALENT-RUNTIME",
"featureId": "BROWSER-EQUIVALENT-RUNTIME",
"module": "WORKSPACE",
"representativeCommand": "invokeBrowserEquivalent",
"route": "BROWSER_EQUIVALENT",
"kind": "command",
"command": "node tools/web/check-blender-feature-route-catalog.mjs",
"runOnce": true,
"maxAttempts": 1,
"status": "PLANNED"
}
]
}