{ "schemaVersion": 4, "source": "docs/status/parity-ledger.json", "sourceSha256": "1e16518a25c6b6bed4ab7f605ea1ad5babe529f2842c858b20ae6daae30bd478", "generatedAt": "2026-08-15T05:37:25.215Z", "families": [ { "id": "N-015", "name": "Non-mesh geometry", "parityStatus": "BLOCKED", "releaseClass": "LOCAL_BOUNDED", "releaseStatus": "READY", "v1RequiredSlices": [ "C3-roundtrip", "D2-nanovdb-bounded-webgpu-integration", "E2-vdb-network-worker-quota-tamper-rollback-faults" ], "v1ExcludedSlices": [ "C2-new-external-font-import", "D2-nanovdb-production-viewport-automatic-page-fault-depth-composition", "C3-volume-combined-asset-viewport-reopen", "E1-volume-glb-usd-loss-desktop-chromium-golden", "E2-vdb-large-stream-device-loss-oom" ], "roadmapStatus": "in_progress", "completedSlices": [ "A1", "A2-malformed-binary-partial", "A2-integer-overflow-fixtures", "A2-multichunk-attribute-completeness", "B2", "B3-metadata", "B3-vdb-conversion-request-boundary", "B3-nanovdb-manifest-range-hash-protocol", "B3-nanovdb-serial-range-streamer", "B3-vdb-stage-capability-gates", "B3-vdb-real-resource-license-hash-catalog", "B3-desktop-openvdb13-nanovdb32-converter", "B3-native-conversion-determinism-malformed-input", "B3-vdb-server-job-isolation-cancel-timeout", "B3-vdb-desktop-server-hash-equality", "B3-nanovdb-http-retry-if-range-body-resume", "C1-topology-partial", "C1-handle-points-partial", "C1-handle-preview-raycast-partial", "C1-handle-identity-gizmo-main-roundtrip", "C1-multi-handle-selection-highlight-bounded-commit", "C1-gizmo-revision-delta-transaction-boundary", "C1-continuous-handle-gizmo-preview-single-commit", "C1-handle-local-origin-orientation-gizmo", "C1-rename-partial", "C1-create-delete-poly-partial", "C1-poly-bezier-nurbs-1d-conversion", "C1-multispline-create-delete-bulk-handle-cyclic-transaction", "C1-surface-2d-topology-transaction", "C2-font-geometry-partial", "C2-font-layout-partial", "C2-font-character-style-textbox-roundtrip", "C2-existing-packed-vfont-style-links", "C2-builtin-font-evaluation-exact", "C3-roundtrip", "C3-volume-main-properties-save-reopen", "C3-nanovdb-opfs-binding-worker-reopen", "D1-raycast-partial", "D1-offscreen-vert-edge-partial", "D1-selection-history-partial", "D1-cross-object-history-range-patch", "D1-handle-identity-axis-gizmo", "D2-partial", "D2-nanovdb-float32-cpu-wgsl-sampling", "D2-nanovdb-bounded-webgpu-integration", "D2-webgpu-device-loss-session-recovery", "D2-nanovdb-grid-material-mapping", "D2-nanovdb-explicit-resident-page-lru-recovery", "E1-partial", "E1-desktop-geometry-golden", "E1-true-2d-surface-desktop-golden", "E1-glb-evaluated-nonmesh-roundtrip-partial", "E1-glb-curve-line-surface-mesh-evaluated", "E1-usda-four-object-desktop-roundtrip", "E1-pointcloud-curves-hair-glb-usd-loss-fixture", "E2-1M-chromium", "E2-chromium-worker-recovery", "E2-opfs-quota-chromium", "E2-vdb-network-worker-quota-tamper-rollback-faults" ], "blockedSlices": [ "C2-new-external-font-import", "D2-nanovdb-production-viewport-automatic-page-fault-depth-composition", "C3-volume-combined-asset-viewport-reopen", "E1-volume-glb-usd-loss-desktop-chromium-golden", "E2-vdb-large-stream-device-loss-oom" ], "excludedSlices": [], "acceptance": [ "web:test:nonmesh-roundtrip", "web:test:nonmesh-desktop-golden", "web:test:nonmesh-glb-blender-roundtrip", "web:test:nonmesh-usd-serialization", "web:test:nonmesh-usd-blender-roundtrip", "web:test:nonmesh-binary", "web:test:selection-history", "web:test:nonmesh-interaction", "web:test:vdb", "web:test:vdb-availability", "web:test:vdb-native", "web:test:vdb-server", "web:test:vdb-opfs", "web:test:vdb-webgpu", "web:test:vdb-viewport", "web:test:vdb-faults", "web:e2e:N-015|non-mesh", "web:e2e:real OPFS quota" ], "dependencies": [] }, { "id": "N-016", "name": "Grease Pencil", "parityStatus": "BLOCKED", "releaseClass": "LOCAL_BOUNDED", "releaseStatus": "READY", "v1RequiredSlices": [ "D-worker-restart-save-reopen" ], "v1ExcludedSlices": [ "C-material-modifier-full-semantics", "D-full-2d-canvas-marquee-dope-editor", "E-desktop-browser-golden-export-opfs" ], "roadmapStatus": "planned", "completedSlices": [ "A-schema-budget", "A-main-reader", "B-layer-frame-stroke-transaction-partial", "C-point-radius-opacity-color-cyclic-material-partial", "C-bounded-previous-next-onion-preview", "D-current-frame-stroke-preview-main-offscreen-chromium", "D-editor-layer-frame-selection-context-partial", "D-editor-main-layer-frame-panel-partial", "D-single-point-revision-bound-main-translation", "D-viewport-point-raycast-multipoint-gizmo-transaction", "D-continuous-point-preview-single-main-commit", "D-bounded-drawing-frame-dope-navigation", "D-worker-restart-save-reopen" ], "blockedSlices": [ "C-material-modifier-full-semantics", "D-full-2d-canvas-marquee-dope-editor", "E-desktop-browser-golden-export-opfs" ], "acceptance": [ "web:test:grease-pencil", "web:test:grease-pencil-editor", "web:e2e:N-016 Grease Pencil" ], "dependencies": [ "N-015" ] }, { "id": "N-017", "name": "Paint and weights", "parityStatus": "BLOCKED", "releaseClass": "LOCAL_BOUNDED", "releaseStatus": "READY", "v1RequiredSlices": [ "B-blender52-vertex-group-summary-save-reopen", "C-udim-memory-range-patch-hash-boundary" ], "v1ExcludedSlices": [ "A-real-pbvh-depth-occlusion-desktop-falloff", "B-clean-mirror-desktop-brush", "C-blender-packed-udim-dirty-atomic-save", "D-E-face-mask-gpu-quota-desktop-golden" ], "roadmapStatus": "planned", "completedSlices": [ "A-stroke-hit-weight-schema-budget-partial", "A-three-raycast-source-face-barycentric-uv", "A-bounded-cpu-candidate-falloff", "A-uniform-grid-candidate-depth-visibility-gate", "A-selection-mask-identity-gated-brush-patch", "B-main-vertex-color-partial", "B-main-vertex-weight-normalize-partial", "B-selected-vertex-color-weight-ui-transaction-partial", "B-selection-masked-color-weight-main-transaction", "B-blender52-vertex-group-summary-save-reopen", "C-udim-memory-range-patch-hash-boundary" ], "blockedSlices": [ "A-real-pbvh-depth-occlusion-desktop-falloff", "B-clean-mirror-desktop-brush", "C-blender-packed-udim-dirty-atomic-save", "D-E-face-mask-gpu-quota-desktop-golden" ], "acceptance": [ "web:test:paint-roundtrip", "web:e2e:N-017 paint" ], "dependencies": [ "N-016" ] }, { "id": "N-018", "name": "Physics and simulation", "parityStatus": "BLOCKED", "releaseClass": "LOCAL_BOUNDED", "releaseStatus": "READY", "v1RequiredSlices": [ "C-browser-transform-storage-restart-playback" ], "v1ExcludedSlices": [ "A-B-full-family-settings-effectors-cache-binding", "C-desktop-bake-decoder-playback-100-frame-golden", "D-wasm-solvers", "E-bake-server-recovery-progress-ui" ], "roadmapStatus": "planned", "completedSlices": [ "A-family-capability-inventory", "A-authoritative-main-physics-reader-partial", "B-settings-dependency-cache-manifest-partial", "B-cloth-softbody-collision-settings-sha256-save-reopen", "C-exact-frame-selection-gate", "C-content-addressed-frame-range-read-hash-gate", "C-browser-transform-frame-binary-decoder", "C-browser-transform-sceneir-preview", "C-browser-transform-cancellable-playback-session", "C-browser-transform-storage-restart-playback" ], "blockedSlices": [ "A-B-full-family-settings-effectors-cache-binding", "C-desktop-bake-decoder-playback-100-frame-golden", "D-wasm-solvers", "E-bake-server-recovery-progress-ui" ], "acceptance": [ "web:e2e:N-018 physics", "web:test:simulation-cache", "web:test:physics-main-reader" ], "dependencies": [ "N-017" ] }, { "id": "N-019", "name": "Lighting and render", "parityStatus": "BLOCKED", "releaseClass": "LOCAL_BOUNDED", "releaseStatus": "READY", "v1RequiredSlices": [ "B-world-scene-render-delta-roundtrip", "B-C-nanovdb-float32-wgsl-bounded-ray-integration" ], "v1ExcludedSlices": [ "A", "B", "C", "D", "E", "B-C-nanovdb-production-viewport-paging-advanced-material", "E-volume-desktop-chromium-pixel-golden" ], "roadmapStatus": "planned", "completedSlices": [ "A-camera-light-world-scene-reader-partial", "A-main-camera-dof-properties-partial", "A-main-light-world-properties-partial", "A-white-balance-integrity-gate", "B-three-exposure-shadow-mapping-partial", "B-bounded-kelvin-linear-light-color", "B-world-scene-render-delta-roundtrip", "B-volume-material-manifest-boundary", "B-C-nanovdb-float32-wgsl-bounded-ray-integration" ], "blockedSlices": [ "A", "B", "C", "D", "E", "B-C-nanovdb-production-viewport-paging-advanced-material", "E-volume-desktop-chromium-pixel-golden" ], "acceptance": [ "web:test:lighting-roundtrip", "web:e2e:N-019 Scene exposure" ], "dependencies": [ "N-018" ] }, { "id": "N-020", "name": "Compositor", "parityStatus": "BLOCKED", "releaseClass": "LOCAL_BOUNDED", "releaseStatus": "READY", "v1RequiredSlices": [ "B-real-main-exposure-invert-cpu-chain", "D-unsupported-node-preservation-gate" ], "v1ExcludedSlices": [ "A", "B", "C", "D", "E" ], "roadmapStatus": "planned", "completedSlices": [ "A-graph-resource-cycle-schema", "A-main-graph-structure-reader-partial", "A-main-exposure-default-invert-parameter-reader", "B-bounded-cpu-executor-partial", "B-real-main-exposure-invert-cpu-chain", "C-image-operation-budget-cancel-partial", "C-content-addressed-frame-lru-cache", "D-unsupported-node-preservation-gate" ], "blockedSlices": [ "A", "B", "C", "D", "E" ], "acceptance": [ "web:test:compositor-main-reader", "web:e2e:N-020 CPU compositor" ], "dependencies": [ "N-019" ] }, { "id": "N-021", "name": "Sequencer and audio", "parityStatus": "BLOCKED", "releaseClass": "LOCAL_BOUNDED", "releaseStatus": "READY", "v1RequiredSlices": [ "B-real-main-cross-still-frame-resolution", "C-runtime-codec-probe-gate" ], "v1ExcludedSlices": [ "A", "B", "C", "D", "E" ], "roadmapStatus": "planned", "completedSlices": [ "A-strip-resource-schema", "A-main-strip-timeline-reader-partial", "B-deterministic-move-trim-split-partial", "B-source-frame-seek", "B-active-frame-dependency-resolution", "B-cross-transition-progress-input-resolution", "B-real-main-cross-still-frame-resolution", "C-runtime-codec-probe-gate" ], "blockedSlices": [ "A", "B", "C", "D", "E" ], "acceptance": [ "web:test:sequencer-main-reader", "web:e2e:N-021 sequencer" ], "dependencies": [ "N-020" ] }, { "id": "N-022", "name": "Tracking and masks", "parityStatus": "BLOCKED", "releaseClass": "LOCAL_BOUNDED", "releaseStatus": "READY", "v1RequiredSlices": [ "C-browser-probe-solve-gate", "D-real-main-locked-editable-raycast-marquee" ], "v1ExcludedSlices": [ "A", "B", "C", "D", "E" ], "roadmapStatus": "planned", "completedSlices": [ "A-clip-track-plane-mask-schema", "A-main-mask-layer-spline-point-reader", "B-revision-marker-mask-edit-partial", "B-source-hash-binding-validation", "C-browser-probe-solve-gate", "D-mask-bezier-stable-identity-raycast", "D-mask-stable-identity-marquee-selection", "D-real-main-locked-editable-raycast-marquee" ], "blockedSlices": [ "A", "B", "C", "D", "E" ], "acceptance": [ "web:test:mask-main-reader", "web:e2e:N-022 tracking" ], "dependencies": [ "N-021" ] }, { "id": "N-023", "name": "Assets, libraries and IO", "parityStatus": "BLOCKED", "releaseClass": "LOCAL_BOUNDED", "releaseStatus": "READY", "v1RequiredSlices": [ "C-glb-export-usd-analysis-gates", "E-archive-path-conflict-compressed-budget-range-plan", "E-nanovdb-opfs-tamper-rollback-quota-recovery" ], "v1ExcludedSlices": [ "A", "B", "C", "D", "E", "E-nanovdb-large-bundle-performance" ], "roadmapStatus": "planned", "completedSlices": [ "A-catalog-asset-license-source-schema", "A-content-addressed-opfs-capability", "A-preview-content-signature-dimension-verification", "A-vdb-external-resource-license-sha-catalog", "B-library-dependency-order-partial", "B-main-library-inventory-reader", "C-glb-export-usd-analysis-gates", "E-archive-path-ratio-budget", "E-archive-path-conflict-compressed-budget-range-plan", "E-nanovdb-http206-range-hash-streaming-boundary", "E-nanovdb-http-retry-if-range-body-resume", "E-nanovdb-opfs-atomic-binding-worker-reopen-bundle-lru", "E-nanovdb-opfs-tamper-rollback-quota-recovery", "E-nanovdb-gpu-resident-page-lru" ], "blockedSlices": [ "A", "B", "C", "D", "E", "E-nanovdb-large-bundle-performance" ], "acceptance": [ "web:test:library-main-reader", "web:test:vdb-faults", "web:e2e:N-023 asset" ], "dependencies": [ "N-022" ] }, { "id": "N-024", "name": "Editors and workflow", "parityStatus": "BLOCKED", "releaseClass": "LOCAL_BOUNDED", "releaseStatus": "READY", "v1RequiredSlices": [ "C-executable-context-filtered-operator-search", "D-context-scoped-keymap-resolution" ], "v1ExcludedSlices": [ "A", "B", "C", "D", "E" ], "roadmapStatus": "planned", "completedSlices": [ "A-unified-area-region-context", "B-read-only-editor-manifest-partial", "B-main-workspace-area-region-reader", "C-selection-sync-revision-partial", "C-executable-context-filtered-operator-search", "D-keymap-layout-budget-gates", "D-normalized-key-chord-conflict-resolution", "D-context-scoped-keymap-resolution" ], "blockedSlices": [ "A", "B", "C", "D", "E" ], "acceptance": [ "web:test:editor-main-reader", "web:e2e:N-024 editor" ], "dependencies": [ "N-023" ] }, { "id": "N-025", "name": "Scripting and platform", "parityStatus": "BLOCKED", "releaseClass": "EXCLUDED", "releaseStatus": "READY", "v1RequiredSlices": [ "A-default-deny-script-policy", "B-approved-key-still-sandbox-blocked-audit", "D-platform-capability-report" ], "v1ExcludedSlices": [ "A", "B", "C", "D", "E" ], "roadmapStatus": "planned", "completedSlices": [ "A-default-deny-script-policy", "A-main-text-source-inventory-reader", "B-signed-manifest-permission-budget", "B-approved-key-still-sandbox-blocked-audit", "B-request-decision-audit-receipt", "C-server-source-hash-job-gate", "D-platform-capability-report", "E-bounded-replay-resistant-audit-hash-chain" ], "blockedSlices": [ "A", "B", "C", "D", "E" ], "acceptance": [ "web:test:script-main-reader", "web:test:scripting-isolation", "web:e2e:N-025 script" ], "dependencies": [ "N-024" ] }, { "id": "N-026", "name": "Release gate", "parityStatus": "BLOCKED", "releaseClass": "LOCAL_EXACT", "releaseStatus": "READY", "v1RequiredSlices": [ "B-v1-p0-user-loop" ], "v1ExcludedSlices": [ "A", "B", "C", "D", "E", "C-vdb-server-webgpu-save-reopen-golden-evidence" ], "roadmapStatus": "planned", "completedSlices": [ "A-machine-readable-parity-manifest", "A-dependency-status-validation", "A-command-hash-evidence-binding", "A-known-enabled-field-artifact-binding", "B-chromium-runtime-evidence-gate", "B-chromium-full-suite-evidence", "B-v1-p0-user-loop", "C-performance-fault-provenance-gate", "C-performance-1M-malicious-input-partial", "C-performance-4k-texture-upload-render", "C-performance-8k-texture-upload-render", "C-simulation-cache-opfs-playback-performance", "C-network-interruption-main-save-reopen", "C-main-thread-webgl-device-loss-recovery", "C-zip-bomb-ratio-rejection", "C-vdb-resource-converter-provenance-partial", "C-vdb-network-opfs-quota-tamper-device-loss-partial", "C-release-package-notices-partial", "C-spdx-2.3-lockfile-sbom", "D-deterministic-manifest-serialization", "D-offline-reproducible-source-archive-partial" ], "blockedSlices": [ "A", "B", "C", "D", "E", "C-vdb-server-webgpu-save-reopen-golden-evidence" ], "acceptance": [ "web:e2e:N-026 release", "web:test:v1-user-loop", "web:test:release-evidence", "web:test:browser", "web:test:release-package", "web:release:offline", "web:test:release-performance", "web:test:malicious-blends" ], "dependencies": [ "N-015", "N-016", "N-017", "N-018", "N-019", "N-020", "N-021", "N-022", "N-023", "N-024", "N-025" ] } ], "evidence": { "browser": { "chromium": true }, "runtime": { "offline": true, "workerRestart": true, "opfsRecovery": true }, "performance": { "geometry1M": true, "geometry10M": true, "texture4K": true, "texture8K": true, "longMedia": true, "simulationCache": true }, "faults": { "oom": true, "deviceLoss": true, "networkInterrupt": true, "malformedBlend": true, "zipBomb": true }, "provenance": { "license": true, "sbom": true, "sourceOffer": true, "deterministicPackage": true }, "records": [ { "id": "sbom", "fields": [ "provenance.license", "provenance.sbom" ], "command": "npm --prefix web run release:sbom", "exitCode": 0, "durationMs": 343, "output": "> blender-web-editor@0.1.0 release:sbom\n> node ../tools/web/generate-sbom.mjs\n\nsbom-ok packages=150 sha256=aa50a5b98ebb51c98c6eced2ec32dff96b8df6d90e10cc101ce9e8eb44695060", "artifactSha256": [ "aa50a5b98ebb51c98c6eced2ec32dff96b8df6d90e10cc101ce9e8eb44695060", "d5ec6e6ec9e1e0a50fe4455513a2938838609d3809224eaf26a2ebfac474f0ae", "e7b16da68885fe43f32ab7b3eeb2c037b4fd8bf54fe6d5e77049aa51e294b1fb" ] }, { "id": "vdb-boundary", "fields": [], "command": "npm --prefix web run test:vdb-availability && npm --prefix web run test:vdb-native && npm --prefix web run test:vdb", "exitCode": 0, "durationMs": 5619, "output": "> blender-web-editor@0.1.0 test:vdb-availability\n> node ../tools/web/check-vdb-availability.mjs\n\nvdb-availability-ok core=READY release=BLOCKED browser-openvdb=disabled desktop=ready server=ready opfs=ready webgpu-core=ready main-roundtrip=ready viewport=blocked advanced-material=blocked resources=9\n\n> blender-web-editor@0.1.0 test:vdb-native\n> node ../tools/web/check-vdb-native-pipeline.mjs\n\nvdb-native-pipeline-ok resources=14 converter=openvdb13-nanovdb32 conversion-deterministic=1 semantic-deterministic=1 official-deterministic=1 malformed=blocked browser-openvdb=off\n\n> blender-web-editor@0.1.0 test:vdb\n> playwright test --config playwright.config.ts -g \"VDB conversion boundary\"\n\n\nRunning 1 test using 1 worker\n\n ✓ 1 tests/e2e/smoke.spec.ts:1156:1 › validates the VDB conversion boundary and NanoVDB streaming contract (1.5s)\n\n 1 passed (3.2s)\n\n[WebServer] (node:2314584) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.\n[WebServer] (Use `node --trace-warnings ...` to show where the warning was created)\n[WebServer] (node:2314596) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.\n[WebServer] (Use `node --trace-warnings ...` to show where the warning was created)", "artifactSha256": [ "885edcc156f87abdbddb0e70fde5566130acfc2770a0b6764d66d12c344973a6", "7b2d576a613dff314f4b40177f10efa3c01e160b7aeb10bf95a69f6553f8f73b", "a4c57345a4ea7302b9e2a7e0f8b0ed48f8f27c3ac70d41e02f6d92475a751298", "179868fde557873b4c74c48e2f0d3199784efb6309ed00dd17310b494b975483", "379dcc11dc7de0dfec4745763bddf3cc415a5f5dbe48500fefae2f7508095bb5" ] }, { "id": "chromium", "fields": [ "browser.chromium", "runtime.offline", "runtime.workerRestart", "runtime.opfsRecovery" ], "command": "npm --prefix web run test:e2e -- --workers=1 && npm --prefix web run test:browser", "exitCode": 0, "durationMs": 366958, "output": "udgets without double counting LOD (1.0s)\n ✓ 107 tests/e2e/smoke.spec.ts:2874:1 › round-trips LOD geometry through the local binary mesh cache container (993ms)\n ✓ 108 tests/e2e/smoke.spec.ts:2898:1 › blocks ImageIR paths outside the project asset sandbox (1.3s)\n ✓ 109 tests/e2e/smoke.spec.ts:2941:1 › extracts Blender packed image bytes through the local asset request API (1.3s)\n ✓ 110 tests/e2e/smoke.spec.ts:2986:1 › matches Blender Depsgraph deformation golden within the declared error budget (1.4s)\n ✓ 111 tests/e2e/smoke.spec.ts:3025:1 › evaluates the full Blender Depsgraph or reports its safe capability gate (1.3s)\n ✓ 112 tests/e2e/smoke.spec.ts:3085:1 › exports layered Action keyframes through SceneIR (1.3s)\n ✓ 113 tests/e2e/smoke.spec.ts:3126:1 › patches changed mesh buffer ranges without replacing stable topology (1.0s)\n ✓ 114 tests/e2e/smoke.spec.ts:3150:1 › renders through the capability-gated OffscreenCanvas worker (1.3s)\n ✓ 115 tests/e2e/smoke.spec.ts:3163:1 › coalesces linked mesh objects into a raycastable instance group (1.8s)\n ✓ 116 tests/e2e/smoke.spec.ts:3171:1 › returns structured gates for the undeclared capability protocols (1.1s)\n ✓ 117 tests/e2e/smoke.spec.ts:3230:1 › exposes PBR-007 to PBR-012 renderer security gates (1.0s)\n ✓ 118 tests/e2e/smoke.spec.ts:3264:1 › transfers packed raster assets into the PBR viewport with an explicit status (1.6s)\n ✓ 119 tests/e2e/smoke.spec.ts:3273:1 › uses the same packed texture payload in the OffscreenCanvas renderer (1.3s)\ntexture-4k-performance {\"width\":4096,\"height\":4096,\"status\":{\"loaded\":1,\"rejected\":0,\"bytes\":254670,\"errors\":[],\"errorCodes\":[]},\"byteLength\":254670,\"estimatedPeakGpuBytes\":67108864,\"released\":true,\"recoveryVisible\":true,\"colored\":4096,\"elapsedMs\":705}\n ✓ 120 tests/e2e/texture-4k-performance.spec.ts:3:1 › decodes, uploads and renders a validated 4K texture in Chromium (1.8s)\ntexture-8k-performance {\"supported\":true,\"maxTextureSize\":8192,\"width\":8192,\"height\":8192,\"status\":{\"loaded\":1,\"rejected\":0,\"bytes\":972714,\"errors\":[],\"errorCodes\":[]},\"byteLength\":972714,\"estimatedPeakGpuBytes\":268435456,\"released\":true,\"recoveryVisible\":true,\"colored\":4096,\"elapsedMs\":2650}\n ✓ 121 tests/e2e/texture-8k-performance.spec.ts:3:1 › decodes, uploads and renders a validated 8K texture in Chromium (4.0s)\n ✓ 122 tests/e2e/v1-user-loop.spec.ts:6:1 › completes the V1 import-edit-save-restart-reopen-GLB loop (2.3s)\n\n Slow test file: tests/e2e/smoke.spec.ts (5.5m)\n Consider running tests from slow files in parallel. See: https://playwright.dev/docs/test-parallel\n 122 passed (6.0m)\n\n> blender-web-editor@0.1.0 test:browser\n> playwright test --config playwright.release.config.ts\n\n\nRunning 3 tests using 1 worker\n\n ✓ 1 [chromium] › tests/e2e/cross-browser.spec.ts:6:1 › boots the offline engine, renders SceneIR and performs a Main edit (2.7s)\n ✓ 2 [chromium] › tests/e2e/cross-browser.spec.ts:32:1 › keeps content-addressed asset recovery available in Chromium (1.1s)\n ✓ 3 [chromium] › tests/e2e/cross-browser.spec.ts:51:1 › keeps the committed project after quota failure and Worker restart in Chromium (1.1s)\n\n 3 passed (6.5s)\n\n[WebServer] (node:2315163) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.\n[WebServer] (Use `node --trace-warnings ...` to show where the warning was created)\n[WebServer] (node:2315175) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.\n[WebServer] (Use `node --trace-warnings ...` to show where the warning was created)\n(node:2315221) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.\n(Use `node --trace-warnings ...` to show where the warning was created)\n[WebServer] (node:2321103) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.\n[WebServer] (Use `node --trace-warnings ...` to show where the warning was created)\n[WebServer] (node:2321115) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.\n[WebServer] (Use `node --trace-warnings ...` to show where the warning was created)", "artifactSha256": [ "5d87a9ea57bd7a1888f16a5f4306e1c6d3a1bdfcf832c9485fe8518aac528fd8" ] }, { "id": "geometry-1m", "fields": [ "performance.geometry1M" ], "command": "npm --prefix web run test:release-performance", "exitCode": 0, "durationMs": 84015, "output": "> blender-web-editor@0.1.0 test:release-performance\n> node ../tools/web/check-release-performance.mjs\n\nrelease-performance-ok [{\"target\":100000,\"ratio\":0.9,\"inputTriangles\":100000,\"outputTriangles\":89999,\"elapsedMs\":82975,\"peakHeapBytes\":67108864,\"releasedPointerCount\":10,\"recoveryAllocation\":true},{\"target\":1000000,\"ratio\":1,\"inputTriangles\":1000000,\"outputTriangles\":1000000,\"elapsedMs\":518,\"peakHeapBytes\":346554368,\"releasedPointerCount\":10,\"recoveryAllocation\":true}]\n\nHeap resize call from 67108864 to 80543744 took 0.18726400000741705 msecs. Success: true\nHeap resize call from 80543744 to 96665600 took 0.08590900000126567 msecs. Success: true\nHeap resize call from 96665600 to 115998720 took 0.04599199999938719 msecs. Success: true\nHeap resize call from 115998720 to 139198464 took 0.059525000004214235 msecs. Success: true\nHeap resize call from 139198464 to 167051264 took 1.4840919999987818 msecs. Success: true\nHeap resize call from 167051264 to 200474624 took 1.4312449999997625 msecs. Success: true\nHeap resize call from 200474624 to 240582656 took 1.4865769999887561 msecs. Success: true\nHeap resize call from 240582656 to 288751616 took 1.4735839999921154 msecs. Success: true\nHeap resize call from 288751616 to 346554368 took 1.4832890000107 msecs. Success: true", "artifactSha256": [ "5d87a9ea57bd7a1888f16a5f4306e1c6d3a1bdfcf832c9485fe8518aac528fd8" ] }, { "id": "geometry-10m", "fields": [ "performance.geometry10M" ], "command": "npm --prefix web run test:geometry-10m-performance", "exitCode": 0, "durationMs": 5565, "output": "> blender-web-editor@0.1.0 test:geometry-10m-performance\n> playwright test --config playwright.config.ts tests/e2e/geometry-10m-performance.spec.ts\n\n\nRunning 1 test using 1 worker\n\ngeometry-10m-performance {\"triangleCount\":10000000,\"chunkCount\":40,\"transferredBytes\":180492000,\"peakWorkingSetBytes\":4512300,\"manifestSha256\":\"224738e0c3aa28ae42167bf8974455a3d0f940f59f19eb51c5768f435c66b24f\",\"firstInteractiveMs\":1002,\"chunksAtFirstInteractive\":18,\"estimatedGpuBytes\":1124880,\"wasmAllocatedBytes\":0,\"baselineHeapBytes\":40421007,\"peakHeapBytes\":128051538,\"afterHeapBytes\":99970221,\"cacheDeleted\":true,\"recoveryVisible\":2372,\"cancelLatencyMs\":51,\"elapsedMs\":1681}\n ✓ 1 tests/e2e/geometry-10m-performance.spec.ts:3:1 › streams ten-million-triangle SceneIR ranges into a bounded interactive LOD (3.2s)\n\n 1 passed (4.7s)\n\n[WebServer] (node:2321602) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.\n[WebServer] (Use `node --trace-warnings ...` to show where the warning was created)\n[WebServer] (node:2321614) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.\n[WebServer] (Use `node --trace-warnings ...` to show where the warning was created)\n(node:2321660) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.\n(Use `node --trace-warnings ...` to show where the warning was created)", "artifactSha256": [ "6f2708499d59a5e0e90e4581359d6131428c22da0da1543bb4aa0fc38e5e6b29", "04743733e385f33efbb144b0c6cd831a21840dad9b6e0715e8a73791d8a95e33", "969bda967852622b78bd5c0a56b0c0832bf1e46b19fa09b6b26316f2c367fdaf", "f7501e2b4ad6f8df11167197b0d10f77f16b9b385459937011ab486d6b145157" ] }, { "id": "long-media", "fields": [ "performance.longMedia" ], "command": "npm --prefix web run test:long-media-performance", "exitCode": 0, "durationMs": 4707, "output": "> blender-web-editor@0.1.0 test:long-media-performance\n> playwright test --config playwright.config.ts tests/e2e/long-media-performance.spec.ts\n\n\nRunning 1 test using 1 worker\n\nlong-media-performance {\"frameCount\":1000000,\"stripCount\":10001,\"referenceCount\":11914,\"indexBuildMs\":207,\"coldSeekMs\":1,\"hotSeekMs\":0,\"randomSeekMs\":6,\"cacheBytes\":16305,\"evictions\":71,\"releasedCacheBytes\":16305,\"cacheBytesAfterDispose\":0,\"restartedReleasedCacheBytes\":16305,\"restartedCacheBytesAfterDispose\":0,\"workerRestartRecovered\":true,\"manifestSha256\":\"d2e7e3c5ed9ae4fda6fe358cebb474f5774f1d2037dff3df9b6dfde9e0bebd2d\",\"elapsedMs\":861}\n ✓ 1 tests/e2e/long-media-performance.spec.ts:8:1 › indexes, seeks, cancels and reopens a bounded one-million-frame media timeline (2.3s)\n\n 1 passed (3.9s)\n\n[WebServer] (node:2321890) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.\n[WebServer] (Use `node --trace-warnings ...` to show where the warning was created)\n[WebServer] (node:2321902) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.\n[WebServer] (Use `node --trace-warnings ...` to show where the warning was created)\n(node:2321948) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.\n(Use `node --trace-warnings ...` to show where the warning was created)", "artifactSha256": [ "3427a057e564c9e1b16d464d06e65cde90ae8557f4f51cb98ad43774658e8dca", "70faaf13e2a55af6ff40951ef29a27f7b391ed6dd55310cb2283678cc9b8a993", "42be8d81cb0fc170986fcf187666e8bd8b93fb5992d7e13d1d569ba1a30da1f3", "295b083db2299ab904947eb39c17173de70c211882b0d855537d8f3cc27698ed", "56d4af65701c26df20bd4021eda95b6e830348ce3a746086079fe89285548dc9" ] }, { "id": "simulation-cache", "fields": [ "performance.simulationCache" ], "command": "npm --prefix web run test:simulation-cache-performance", "exitCode": 0, "durationMs": 7118, "output": "> blender-web-editor@0.1.0 test:simulation-cache-performance\n> playwright test --config playwright.config.ts tests/e2e/simulation-cache-performance.spec.ts\n\n\nRunning 1 test using 1 worker\n\nsimulation-cache-performance {\"backend\":\"opfs\",\"frameCount\":600,\"byteLength\":52800,\"status\":\"COMPLETED\",\"appliedFrames\":600,\"lastFrame\":600,\"publishedFrames\":600,\"lastTranslation\":60,\"storeMs\":78,\"playbackMs\":3171,\"elapsedMs\":3249,\"peakCacheBytes\":52800,\"pendingRequestsAfterTerminate\":0,\"workerRestartRecovered\":true}\n ✓ 1 tests/e2e/simulation-cache-performance.spec.ts:3:1 › meets the Chromium OPFS Simulation cache playback performance gate (4.7s)\n\n 1 passed (6.3s)\n\n[WebServer] (node:2322188) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.\n[WebServer] (Use `node --trace-warnings ...` to show where the warning was created)\n[WebServer] (node:2322200) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.\n[WebServer] (Use `node --trace-warnings ...` to show where the warning was created)\n(node:2322246) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.\n(Use `node --trace-warnings ...` to show where the warning was created)", "artifactSha256": [ "c8074425a4556c8d08c2382dc9fd7be8aa6078d11a45640c4b19bf6ef45aa590", "331d5c6a59dc80a12cc7105abbd60d25a64a113809eae9ad3d4061d81ec5f59f", "535285f629b981e63e423f16df47d90afea4f5f17fca2bef36d0f6a8236697b2" ] }, { "id": "malformed-blend", "fields": [ "faults.malformedBlend" ], "command": "npm --prefix web run test:malicious-blends", "exitCode": 0, "durationMs": 510, "output": "> blender-web-editor@0.1.0 test:malicious-blends\n> node ../tools/web/check-malicious-blends.mjs\n\nmalicious-blends-ok rejected=5", "artifactSha256": [ "6fcc55bda74da8c95da96ba068b60339bf60ca44147ff8000fbb95d296db2a73" ] }, { "id": "network-interruption", "fields": [ "faults.networkInterrupt" ], "command": "npm --prefix web run test:network-interruption", "exitCode": 0, "durationMs": 5448, "output": "> blender-web-editor@0.1.0 test:network-interruption\n> playwright test --config playwright.config.ts tests/e2e/network-interruption.spec.ts\n\n\nRunning 1 test using 1 worker\n\n ✓ 1 tests/e2e/network-interruption.spec.ts:6:1 › keeps Main edit and save-reopen available during a Chromium network interruption (3.0s)\n\n 1 passed (4.6s)\n\n[WebServer] (node:2322506) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.\n[WebServer] (Use `node --trace-warnings ...` to show where the warning was created)\n[WebServer] (node:2322518) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.\n[WebServer] (Use `node --trace-warnings ...` to show where the warning was created)", "artifactSha256": [ "b1c03863f44026d44691042536ff1d1095617a35c8d767cc70372e5cbdc70db5", "5d87a9ea57bd7a1888f16a5f4306e1c6d3a1bdfcf832c9485fe8518aac528fd8" ] }, { "id": "device-loss", "fields": [ "faults.deviceLoss" ], "command": "npm --prefix web run test:device-loss", "exitCode": 0, "durationMs": 4948, "output": "> blender-web-editor@0.1.0 test:device-loss\n> playwright test --config playwright.config.ts tests/e2e/device-loss.spec.ts\n\n\nRunning 1 test using 1 worker\n\n ✓ 1 tests/e2e/device-loss.spec.ts:6:1 › recovers the main-thread Chromium viewport after a real WebGL context loss (2.5s)\n\n 1 passed (4.1s)\n\n[WebServer] (node:2322781) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.\n[WebServer] (Use `node --trace-warnings ...` to show where the warning was created)\n[WebServer] (node:2322793) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.\n[WebServer] (Use `node --trace-warnings ...` to show where the warning was created)", "artifactSha256": [ "3878ce0f4d25cfef35eefe90070df56e06e2d597cd1bdf3655aed707450590e9", "76d781c0f8508ee68fde09b1bb0d3f7db963e3e2be7d10d60708af2a6a582c24" ] }, { "id": "oom-recovery", "fields": [ "faults.oom" ], "command": "npm --prefix web run test:oom-recovery", "exitCode": 0, "durationMs": 4897, "output": "> blender-web-editor@0.1.0 test:oom-recovery\n> playwright test --config playwright.config.ts tests/e2e/oom-recovery.spec.ts\n\n\nRunning 1 test using 1 worker\n\noom-recovery [{\"scenario\":\"WASM_MAIN\",\"errors\":[\"WASM_OUT_OF_MEMORY@WASM_OPEN_INPUT\",\"WASM_OUT_OF_MEMORY@MAIN_EDIT_COMMAND\",\"WASM_OUT_OF_MEMORY@WASM_SAVE_RESULT\"],\"revision\":[2,2],\"hashStable\":true,\"releasedBytes\":205638,\"temporaryResourcesAfter\":0,\"recovered\":true},{\"scenario\":\"OPFS_STAGING\",\"errors\":[\"STORAGE_QUOTA@OPFS_STAGING_WRITE\"],\"revision\":[7,7],\"hashStable\":true,\"releasedBytes\":47804,\"temporaryResourcesAfter\":0,\"recovered\":true},{\"scenario\":\"GPU_RESOURCES\",\"errors\":[\"GPU_TEXTURE_BUDGET_EXCEEDED@GPU_TEXTURE_UPLOAD\"],\"revision\":[0,0],\"hashStable\":true,\"releasedBytes\":36,\"temporaryResourcesAfter\":0,\"recovered\":true},{\"scenario\":\"NANOVDB_RESIDENT\",\"errors\":[\"NANOVDB_GPU_BUDGET_EXCEEDED@NANOVDB_PAGE_TABLE\"],\"revision\":[0,0],\"hashStable\":true,\"releasedBytes\":65536,\"temporaryResourcesAfter\":0,\"recovered\":true}]\n ✓ 1 tests/e2e/oom-recovery.spec.ts:7:1 › recovers deterministically from WASM, OPFS, GPU and NanoVDB allocation faults (2.5s)\n\n 1 passed (4.0s)\n\n[WebServer] (node:2323065) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.\n[WebServer] (Use `node --trace-warnings ...` to show where the warning was created)\n[WebServer] (node:2323077) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.\n[WebServer] (Use `node --trace-warnings ...` to show where the warning was created)\n(node:2323123) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.\n(Use `node --trace-warnings ...` to show where the warning was created)", "artifactSha256": [ "d5fe9184c693eb5b5d3ede8797cb09859669f43d9a82b55b9591cabb2a2c4a56", "50fa383e7c7b3cf7a87eb652671dd9c180e30c86b99a8b129726d8af2f76a5a0", "e6cec43ffa61b97cadf0926cd6468257cd47a38b05a121c4ea4a252fe257e585", "3d0b7d7b98d1c9ffeda1b4c4ea43c4ced400e36814d5a819f7d26df2bd25d873", "aac12afe4c92684dc74d546701d3f9e56f305f5ceb83fc4699bf8a06e6abed1b", "ce2a44329068e6e9aafbb37259e8a47c1d9e306e563cae8b957d0b2f6b2b61cb", "5d87a9ea57bd7a1888f16a5f4306e1c6d3a1bdfcf832c9485fe8518aac528fd8" ] }, { "id": "texture-4k", "fields": [ "performance.texture4K" ], "command": "npm --prefix web run test:texture-4k-performance", "exitCode": 0, "durationMs": 4670, "output": "> blender-web-editor@0.1.0 test:texture-4k-performance\n> playwright test --config playwright.config.ts tests/e2e/texture-4k-performance.spec.ts\n\n\nRunning 1 test using 1 worker\n\ntexture-4k-performance {\"width\":4096,\"height\":4096,\"status\":{\"loaded\":1,\"rejected\":0,\"bytes\":254670,\"errors\":[],\"errorCodes\":[]},\"byteLength\":254670,\"estimatedPeakGpuBytes\":67108864,\"released\":true,\"recoveryVisible\":true,\"colored\":4096,\"elapsedMs\":668}\n ✓ 1 tests/e2e/texture-4k-performance.spec.ts:3:1 › decodes, uploads and renders a validated 4K texture in Chromium (2.3s)\n\n 1 passed (3.8s)\n\n[WebServer] (node:2323343) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.\n[WebServer] (Use `node --trace-warnings ...` to show where the warning was created)\n[WebServer] (node:2323355) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.\n[WebServer] (Use `node --trace-warnings ...` to show where the warning was created)\n(node:2323401) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.\n(Use `node --trace-warnings ...` to show where the warning was created)", "artifactSha256": [ "093588bcdf08f8b5a5aa8baceddbd7b499c43e5acda7f793b34ac54c79782490", "75f2f33753a160f60acc56ad850bc149cef7fa2b54a42d5e75cf22402c9ac91d" ] }, { "id": "texture-8k", "fields": [ "performance.texture8K" ], "command": "npm --prefix web run test:texture-8k-performance", "exitCode": 0, "durationMs": 6818, "output": "> blender-web-editor@0.1.0 test:texture-8k-performance\n> playwright test --config playwright.config.ts tests/e2e/texture-8k-performance.spec.ts\n\n\nRunning 1 test using 1 worker\n\ntexture-8k-performance {\"supported\":true,\"maxTextureSize\":8192,\"width\":8192,\"height\":8192,\"status\":{\"loaded\":1,\"rejected\":0,\"bytes\":972714,\"errors\":[],\"errorCodes\":[]},\"byteLength\":972714,\"estimatedPeakGpuBytes\":268435456,\"released\":true,\"recoveryVisible\":true,\"colored\":4096,\"elapsedMs\":2579}\n ✓ 1 tests/e2e/texture-8k-performance.spec.ts:3:1 › decodes, uploads and renders a validated 8K texture in Chromium (4.4s)\n\n 1 passed (6.0s)\n\n[WebServer] (node:2323628) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.\n[WebServer] (Use `node --trace-warnings ...` to show where the warning was created)\n[WebServer] (node:2323640) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.\n[WebServer] (Use `node --trace-warnings ...` to show where the warning was created)\n(node:2323686) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.\n(Use `node --trace-warnings ...` to show where the warning was created)", "artifactSha256": [ "093588bcdf08f8b5a5aa8baceddbd7b499c43e5acda7f793b34ac54c79782490", "75f2f33753a160f60acc56ad850bc149cef7fa2b54a42d5e75cf22402c9ac91d" ] }, { "id": "zip-bomb", "fields": [ "faults.zipBomb" ], "command": "WEB_TEST_PORT=5323 npm --prefix web run test:asset-library", "exitCode": 0, "durationMs": 4136, "output": "> blender-web-editor@0.1.0 test:asset-library\n> playwright test --config playwright.config.ts -g \"N-023 asset\"\n\n\nRunning 1 test using 1 worker\n\n ✓ 1 tests/e2e/smoke.spec.ts:969:1 › validates N-023 asset catalogs, library graphs, archive budgets and IO gates (1.5s)\n\n 1 passed (3.3s)\n\n[WebServer] (node:2323896) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.\n[WebServer] (Use `node --trace-warnings ...` to show where the warning was created)\n[WebServer] (node:2323908) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.\n[WebServer] (Use `node --trace-warnings ...` to show where the warning was created)", "artifactSha256": [ "5c62539db3833a2113007dfbdfd12ca06704d86e0cf0e57ad97f7fbf6acda7f4" ] }, { "id": "release-package", "fields": [], "command": "npm --prefix web run test:release-package", "exitCode": 0, "durationMs": 5339, "output": "> blender-web-editor@0.1.0 test:release-package\n> npm run build && npm run release:sbom && node ../tools/web/check-release-package.mjs\n\n\n> blender-web-editor@0.1.0 build\n> tsc -p tsconfig.json && vite build --config app/vite.config.ts\n\nvite v8.2.0 building client environment for production...\n\u001b[2K\rtransforming...✓ 54 modules transformed.\nrendering chunks...\ncomputing gzip size...\ndist/index.html 0.46 kB │ gzip: 0.30 kB\ndist/assets/storage.worker-COUVNftM.js 36.81 kB\ndist/assets/web-engine.worker-CWkf48pG.js 245.76 kB\ndist/assets/viewport-render.worker-DZmZ4IRD.js 601.32 kB\ndist/assets/web_engine-CvVHxFlQ.wasm 15,048.04 kB │ gzip: 3,562.32 kB\ndist/assets/index-QI0bg0OR.css 11.41 kB │ gzip: 3.18 kB\ndist/assets/index-Cv6ZsBTp.js 973.17 kB │ gzip: 263.15 kB\n\n✓ built in 562ms\n\n> blender-web-editor@0.1.0 release:sbom\n> node ../tools/web/generate-sbom.mjs\n\nsbom-ok packages=150 sha256=aa50a5b98ebb51c98c6eced2ec32dff96b8df6d90e10cc101ce9e8eb44695060\nrelease-package-ok files=10 bytes=32096983\n\n[plugin rolldown:vite-resolve] Module \"module\" has been externalized for browser compatibility, imported by \"/home/mes123456/workinf_Blender_Wasm/web/app/src/vendor/blender/web_engine.js\". See https://vite.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.\n[plugin builtin:vite-reporter] \n(!) Some chunks are larger than 500 kB after minification. Consider:\n- Using dynamic import() to code-split the application\n- Use build.rolldownOptions.output.codeSplitting to improve chunking: https://rolldown.rs/reference/OutputOptions.codeSplitting\n- Adjust chunk size limit for this warning via build.chunkSizeWarningLimit.", "artifactSha256": [ "aa50a5b98ebb51c98c6eced2ec32dff96b8df6d90e10cc101ce9e8eb44695060", "5d87a9ea57bd7a1888f16a5f4306e1c6d3a1bdfcf832c9485fe8518aac528fd8" ] }, { "id": "offline-reproducibility", "fields": [ "provenance.sourceOffer", "provenance.deterministicPackage" ], "command": "npm --prefix web run release:offline", "exitCode": 0, "durationMs": 36970, "output": "> blender-web-editor@0.1.0 release:offline\n> npm run build && node ../tools/web/check-offline-reproducibility.mjs\n\n\n> blender-web-editor@0.1.0 build\n> tsc -p tsconfig.json && vite build --config app/vite.config.ts\n\nvite v8.2.0 building client environment for production...\n\u001b[2K\rtransforming...✓ 54 modules transformed.\nrendering chunks...\ncomputing gzip size...\ndist/index.html 0.46 kB │ gzip: 0.30 kB\ndist/assets/storage.worker-COUVNftM.js 36.81 kB\ndist/assets/web-engine.worker-CWkf48pG.js 245.76 kB\ndist/assets/viewport-render.worker-DZmZ4IRD.js 601.32 kB\ndist/assets/web_engine-CvVHxFlQ.wasm 15,048.04 kB │ gzip: 3,562.32 kB\ndist/assets/index-QI0bg0OR.css 11.41 kB │ gzip: 3.18 kB\ndist/assets/index-Cv6ZsBTp.js 973.17 kB │ gzip: 263.15 kB\n\n✓ built in 581ms\nsbom-ok packages=150 sha256=aa50a5b98ebb51c98c6eced2ec32dff96b8df6d90e10cc101ce9e8eb44695060\noffline-release-ok binary=7585557 source=205827673 sha256=f2903a75026a0a28615aeb5f4834a3859af83022c82bc50e28437dcbed68e549\nsbom-ok packages=150 sha256=aa50a5b98ebb51c98c6eced2ec32dff96b8df6d90e10cc101ce9e8eb44695060\noffline-release-ok binary=7585557 source=205827673 sha256=f2903a75026a0a28615aeb5f4834a3859af83022c82bc50e28437dcbed68e549\noffline-reproducibility-ok binary=f2903a75026a0a28615aeb5f4834a3859af83022c82bc50e28437dcbed68e549 source=9a9c1b505c68a618de842be7c248f628b104b11b80e8a40d111f62540fcba327\n\n[plugin rolldown:vite-resolve] Module \"module\" has been externalized for browser compatibility, imported by \"/home/mes123456/workinf_Blender_Wasm/web/app/src/vendor/blender/web_engine.js\". See https://vite.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.\n[plugin builtin:vite-reporter] \n(!) Some chunks are larger than 500 kB after minification. Consider:\n- Using dynamic import() to code-split the application\n- Use build.rolldownOptions.output.codeSplitting to improve chunking: https://rolldown.rs/reference/OutputOptions.codeSplitting\n- Adjust chunk size limit for this warning via build.chunkSizeWarningLimit.", "artifactSha256": [ "f2903a75026a0a28615aeb5f4834a3859af83022c82bc50e28437dcbed68e549", "9a9c1b505c68a618de842be7c248f628b104b11b80e8a40d111f62540fcba327", "288b0bb969e670b458059adf8897f87bafc76a87a479c8aa0a305905accf2de9" ] }, { "id": "v1-user-loop", "fields": [], "command": "npm --prefix web run test:v1-user-loop && npm --prefix web run test:v1-acceptance-evidence", "exitCode": 0, "durationMs": 5516, "output": "> blender-web-editor@0.1.0 test:v1-user-loop\n> playwright test --config playwright.config.ts tests/e2e/v1-user-loop.spec.ts\n\n\nRunning 1 test using 1 worker\n\n ✓ 1 tests/e2e/v1-user-loop.spec.ts:6:1 › completes the V1 import-edit-save-restart-reopen-GLB loop (2.8s)\n\n 1 passed (4.4s)\n\n> blender-web-editor@0.1.0 test:v1-acceptance-evidence\n> node ../tools/web/check-v1-acceptance-evidence.mjs\n\nv1-acceptance-evidence-ok families=12 declarations=50 unique=49 sha256=d5fb0a7b2df92b076f8b05ccd68903d60e3352b9423b0c1404065f6cbcbdd45c\n\n[WebServer] (node:2396656) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.\n[WebServer] (Use `node --trace-warnings ...` to show where the warning was created)\n[WebServer] (node:2396668) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.\n[WebServer] (Use `node --trace-warnings ...` to show where the warning was created)", "artifactSha256": [ "3defbaa426195254fcaefaddabf9b128002a94def03aa255513c33eaf4ac0926", "5d87a9ea57bd7a1888f16a5f4306e1c6d3a1bdfcf832c9485fe8518aac528fd8", "d5fb0a7b2df92b076f8b05ccd68903d60e3352b9423b0c1404065f6cbcbdd45c" ] } ] } }