{ "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" } ] }