Complete V1 RC deployment capability gates

This commit is contained in:
mes123456
2026-08-15 01:01:23 -04:00
parent a3f3071c03
commit 17ab961485
37 changed files with 2031 additions and 184 deletions

View File

@@ -2,7 +2,7 @@
"schemaVersion": 4,
"source": "docs/status/parity-ledger.json",
"sourceSha256": "1e16518a25c6b6bed4ab7f605ea1ad5babe529f2842c858b20ae6daae30bd478",
"generatedAt": "2026-08-15T02:29:05.407Z",
"generatedAt": "2026-08-15T04:43:09.832Z",
"families": [
{
"id": "N-015",
@@ -676,12 +676,12 @@
],
"command": "npm --prefix web run release:sbom",
"exitCode": 0,
"durationMs": 372,
"output": "> blender-web-editor@0.1.0 release:sbom\n> node ../tools/web/generate-sbom.mjs\n\nsbom-ok packages=150 sha256=8b04215a993f62ba64e0adcb1ba36ac830191f8215bf8cf2681fdf7bbb63da30",
"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": [
"8b04215a993f62ba64e0adcb1ba36ac830191f8215bf8cf2681fdf7bbb63da30",
"aa50a5b98ebb51c98c6eced2ec32dff96b8df6d90e10cc101ce9e8eb44695060",
"d5ec6e6ec9e1e0a50fe4455513a2938838609d3809224eaf26a2ebfac474f0ae",
"3c65ff96cc15c9072d2517555484ccfd0009a2814d96faadcc5bd7b2e3458503"
"e7b16da68885fe43f32ab7b3eeb2c037b4fd8bf54fe6d5e77049aa51e294b1fb"
]
},
{
@@ -689,14 +689,27 @@
"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": 5823,
"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.3s)\n\n[WebServer] (node:1987436) 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:1987453) 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)",
"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",
"a13cf2747dacfbf4c0e6b50dd341db3adac32c7c3c9c07814349a90aa4436a3b"
"379dcc11dc7de0dfec4745763bddf3cc415a5f5dbe48500fefae2f7508095bb5"
]
},
{
"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": 5366,
"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.7s)\n\n 1 passed (4.2s)\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=74c01764987c3dce0601a20cdf494f8076102f6d54262a1d13df953abee96160\n\n[WebServer] (node:2314858) 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:2314870) 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",
"74c01764987c3dce0601a20cdf494f8076102f6d54262a1d13df953abee96160"
]
},
{
@@ -709,8 +722,8 @@
],
"command": "npm --prefix web run test:e2e -- --workers=1 && npm --prefix web run test:browser",
"exitCode": 0,
"durationMs": 219085,
"output": " (1.4s)\n ✓ 95 tests/e2e/smoke.spec.ts:2607:1 reports GLB export blockers before any binary export (1.1s)\n ✓ 96 tests/e2e/smoke.spec.ts:2619:1 blocks Shader graphs that cannot be mapped to glTF PBR (1.0s)\n ✓ 97 tests/e2e/smoke.spec.ts:2646:1 maps bounded RGB and Value Shader constants to glTF PBR factors (1.0s)\n ✓ 98 tests/e2e/smoke.spec.ts:2679:1 exports a local SceneIR mesh as a standards-shaped GLB (1.0s)\n ✓ 99 tests/e2e/smoke.spec.ts:2712:1 keeps per-vertex UV and color attributes in GLB output (1.1s)\n ✓ 100 tests/e2e/smoke.spec.ts:2739:1 evaluates modifier dependency order and blocks unevaluated or cyclic stacks (1.1s)\n ✓ 101 tests/e2e/smoke.spec.ts:2754:1 embeds local textures and exports glTF skin and animation records (1.1s)\n ✓ 102 tests/e2e/smoke.spec.ts:2804:1 reports lightweight budget violations without altering usage (1.1s)\n ✓ 103 tests/e2e/smoke.spec.ts:2822:1 aggregates project, collection, object and LOD budgets without double counting LOD (1.0s)\n ✓ 104 tests/e2e/smoke.spec.ts:2848:1 round-trips LOD geometry through the local binary mesh cache container (1.0s)\n ✓ 105 tests/e2e/smoke.spec.ts:2872:1 blocks ImageIR paths outside the project asset sandbox (1.3s)\n ✓ 106 tests/e2e/smoke.spec.ts:2915:1 extracts Blender packed image bytes through the local asset request API (1.4s)\n ✓ 107 tests/e2e/smoke.spec.ts:2960:1 matches Blender Depsgraph deformation golden within the declared error budget (1.4s)\n ✓ 108 tests/e2e/smoke.spec.ts:2999:1 evaluates the full Blender Depsgraph or reports its safe capability gate (1.4s)\n ✓ 109 tests/e2e/smoke.spec.ts:3059:1 exports layered Action keyframes through SceneIR (1.3s)\n ✓ 110 tests/e2e/smoke.spec.ts:3100:1 patches changed mesh buffer ranges without replacing stable topology (1.1s)\n ✓ 111 tests/e2e/smoke.spec.ts:3124:1 renders through the capability-gated OffscreenCanvas worker (1.4s)\n ✓ 112 tests/e2e/smoke.spec.ts:3137:1 coalesces linked mesh objects into a raycastable instance group (1.9s)\n ✓ 113 tests/e2e/smoke.spec.ts:3145:1 returns structured gates for the undeclared capability protocols (1.2s)\n ✓ 114 tests/e2e/smoke.spec.ts:3204:1 exposes PBR-007 to PBR-012 renderer security gates (1.1s)\n ✓ 115 tests/e2e/smoke.spec.ts:3238:1 transfers packed raster assets into the PBR viewport with an explicit status (1.7s)\n ✓ 116 tests/e2e/smoke.spec.ts:3247:1 uses the same packed texture payload in the OffscreenCanvas renderer (1.8s)\n ✓ 117 tests/e2e/texture-4k-performance.spec.ts:3:1 decodes, uploads and renders a validated 4K texture in Chromium (1.8s)\n ✓ 118 tests/e2e/texture-8k-performance.spec.ts:3:1 decodes, uploads and renders a validated 8K texture in Chromium (4.2s)\n\n 118 passed (3.5m)\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.8s)\n ✓ 2 [chromium] tests/e2e/cross-browser.spec.ts:32:1 keeps content-addressed asset recovery available in Chromium (1.0s)\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.6s)\n\n[WebServer] (node:1987737) 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:1987749) 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:1993877) 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:1993889) 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)",
"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"
]
@@ -722,12 +735,45 @@
],
"command": "npm --prefix web run test:release-performance",
"exitCode": 0,
"durationMs": 93399,
"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,\"outputTriangles\":89999,\"elapsedMs\":92308,\"heapBytes\":67108864},{\"target\":1000000,\"ratio\":1,\"outputTriangles\":1000000,\"elapsedMs\":540,\"heapBytes\":346554368}]\n\nHeap resize call from 67108864 to 80543744 took 0.22668800000974443 msecs. Success: true\nHeap resize call from 80543744 to 96665600 took 0.08722699999634642 msecs. Success: true\nHeap resize call from 96665600 to 115998720 took 0.04216300000553019 msecs. Success: true\nHeap resize call from 115998720 to 139198464 took 1.3969159999978729 msecs. Success: true\nHeap resize call from 139198464 to 167051264 took 1.700714999999036 msecs. Success: true\nHeap resize call from 167051264 to 200474624 took 1.4438179999997374 msecs. Success: true\nHeap resize call from 200474624 to 240582656 took 1.4305880000028992 msecs. Success: true\nHeap resize call from 240582656 to 288751616 took 1.5049569999973755 msecs. Success: true\nHeap resize call from 288751616 to 346554368 took 1.4472269999969285 msecs. Success: true",
"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": [
@@ -735,8 +781,8 @@
],
"command": "npm --prefix web run test:simulation-cache-performance",
"exitCode": 0,
"durationMs": 7549,
"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\n ✓ 1 tests/e2e/simulation-cache-performance.spec.ts:3:1 meets the Chromium OPFS Simulation cache playback performance gate (5.1s)\n\n 1 passed (6.7s)\n\n[WebServer] (node:1994548) 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:1994560) 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)",
"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",
@@ -750,7 +796,7 @@
],
"command": "npm --prefix web run test:malicious-blends",
"exitCode": 0,
"durationMs": 541,
"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"
@@ -763,8 +809,8 @@
],
"command": "npm --prefix web run test:network-interruption",
"exitCode": 0,
"durationMs": 5632,
"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.1s)\n\n 1 passed (4.7s)\n\n[WebServer] (node:1994872) 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:1994884) 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)",
"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"
@@ -777,13 +823,32 @@
],
"command": "npm --prefix web run test:device-loss",
"exitCode": 0,
"durationMs": 5138,
"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.6s)\n\n 1 passed (4.2s)\n\n[WebServer] (node:1995187) 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:1995199) 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)",
"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": [
"3b18c884f3baed68d4deb72feafbd7fe8b4af7935aaf02206ccc583ea9c527e2",
"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": [
@@ -791,8 +856,8 @@
],
"command": "npm --prefix web run test:texture-4k-performance",
"exitCode": 0,
"durationMs": 4857,
"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\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 (4.0s)\n\n[WebServer] (node:1995463) 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:1995475) 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)",
"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"
@@ -805,8 +870,8 @@
],
"command": "npm --prefix web run test:texture-8k-performance",
"exitCode": 0,
"durationMs": 7112,
"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\n ✓ 1 tests/e2e/texture-8k-performance.spec.ts:3:1 decodes, uploads and renders a validated 8K texture in Chromium (4.6s)\n\n 1 passed (6.2s)\n\n[WebServer] (node:1995736) 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:1995748) 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)",
"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"
@@ -819,8 +884,8 @@
],
"command": "WEB_TEST_PORT=5323 npm --prefix web run test:asset-library",
"exitCode": 0,
"durationMs": 4198,
"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:1996023) 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:1996035) 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)",
"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"
]
@@ -830,10 +895,10 @@
"fields": [],
"command": "npm --prefix web run test:release-package",
"exitCode": 0,
"durationMs": 5619,
"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...✓ 51 modules transformed.\nrendering chunks...\ncomputing gzip size...\ndist/index.html 0.45 kB │ gzip: 0.29 kB\ndist/assets/storage.worker-hjSYzFAQ.js 36.77 kB\ndist/assets/web-engine.worker-CWkf48pG.js 245.76 kB\ndist/assets/viewport-render.worker-DXSzkSWB.js 592.78 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-Ce6I8dqP.js 951.79 kB │ gzip: 256.93 kB\n\n✓ built in 623ms\n\n> blender-web-editor@0.1.0 release:sbom\n> node ../tools/web/generate-sbom.mjs\n\nsbom-ok packages=150 sha256=8b04215a993f62ba64e0adcb1ba36ac830191f8215bf8cf2681fdf7bbb63da30\nrelease-package-ok files=10 bytes=32067024\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.",
"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": [
"8b04215a993f62ba64e0adcb1ba36ac830191f8215bf8cf2681fdf7bbb63da30",
"aa50a5b98ebb51c98c6eced2ec32dff96b8df6d90e10cc101ce9e8eb44695060",
"5d87a9ea57bd7a1888f16a5f4306e1c6d3a1bdfcf832c9485fe8518aac528fd8"
]
},
@@ -845,76 +910,12 @@
],
"command": "npm --prefix web run release:offline",
"exitCode": 0,
"durationMs": 41303,
"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...✓ 51 modules transformed.\nrendering chunks...\ncomputing gzip size...\ndist/index.html 0.45 kB │ gzip: 0.29 kB\ndist/assets/storage.worker-hjSYzFAQ.js 36.77 kB\ndist/assets/web-engine.worker-CWkf48pG.js 245.76 kB\ndist/assets/viewport-render.worker-DXSzkSWB.js 592.78 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-Ce6I8dqP.js 951.79 kB │ gzip: 256.93 kB\n\n✓ built in 723ms\nsbom-ok packages=150 sha256=8b04215a993f62ba64e0adcb1ba36ac830191f8215bf8cf2681fdf7bbb63da30\noffline-release-ok binary=7575306 source=205785402 sha256=078f45513ab579800ab3688f7c5e35d31be0d9dc283db5cee1a68d77553bfb34\nsbom-ok packages=150 sha256=8b04215a993f62ba64e0adcb1ba36ac830191f8215bf8cf2681fdf7bbb63da30\noffline-release-ok binary=7575306 source=205785402 sha256=078f45513ab579800ab3688f7c5e35d31be0d9dc283db5cee1a68d77553bfb34\noffline-reproducibility-ok binary=078f45513ab579800ab3688f7c5e35d31be0d9dc283db5cee1a68d77553bfb34 source=ca97bef8cbe7943586e7af1df631775ce6ea041677c8bbb98da2fcc73baa9e1a\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.",
"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": [
"078f45513ab579800ab3688f7c5e35d31be0d9dc283db5cee1a68d77553bfb34",
"ca97bef8cbe7943586e7af1df631775ce6ea041677c8bbb98da2fcc73baa9e1a",
"39c7f9be555f2727519a733237de22e66a33d33ac1b0aecfacd2ae695de10b28"
]
},
{
"id": "v1-user-loop",
"fields": [],
"command": "npm --prefix web run test:v1-user-loop",
"exitCode": 0,
"durationMs": 5240,
"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.9s)\n\n 1 passed (4.4s)\n\n[WebServer] (node:2124514) 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:2124526) 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"
]
},
{
"id": "geometry-10m",
"fields": [
"performance.geometry10M"
],
"command": "npm --prefix web run test:geometry-10m-performance",
"exitCode": 0,
"durationMs": 5954,
"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\":1220,\"chunksAtFirstInteractive\":20,\"estimatedGpuBytes\":1124880,\"wasmAllocatedBytes\":0,\"cancelLatencyMs\":62,\"elapsedMs\":1886}\n ✓ 1 tests/e2e/geometry-10m-performance.spec.ts:3:1 streams ten-million-triangle SceneIR ranges into a bounded interactive LOD (3.4s)\n\n 1 passed (5.0s)\n\n[WebServer] (node:2142662) 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:2142686) 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:2142761) 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",
"101ba99e9f75617acb7105845c49f500f6f65a5b4ce5be20c4d8c1e0a9d458e2"
]
},
{
"id": "long-media",
"fields": [
"performance.longMedia"
],
"command": "npm --prefix web run test:long-media-performance",
"exitCode": 0,
"durationMs": 5319,
"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\":227,\"coldSeekMs\":1,\"hotSeekMs\":0,\"randomSeekMs\":14,\"cacheBytes\":16305,\"evictions\":71,\"manifestSha256\":\"d2e7e3c5ed9ae4fda6fe358cebb474f5774f1d2037dff3df9b6dfde9e0bebd2d\",\"elapsedMs\":1010}\n ✓ 1 tests/e2e/long-media-performance.spec.ts:8:1 indexes, seeks, cancels and reopens a bounded one-million-frame media timeline (2.6s)\n\n 1 passed (4.4s)\n\n[WebServer] (node:2156644) 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:2156658) 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:2156737) 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",
"a3088cadf92c99377856e403d0c844231e9d96e0479016befbb1b7606d35bf62",
"9b48e65b35a7f5fd6b86568d20255a0446882c3f3281f753af625b9c2fa4995c",
"295b083db2299ab904947eb39c17173de70c211882b0d855537d8f3cc27698ed",
"56d4af65701c26df20bd4021eda95b6e830348ce3a746086079fe89285548dc9"
]
},
{
"id": "oom-recovery",
"fields": [
"faults.oom"
],
"command": "npm --prefix web run test:oom-recovery",
"exitCode": 0,
"durationMs": 4874,
"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.1s)\n\n[WebServer] (node:2169927) 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:2169939) 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:2169985) 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"
"f2903a75026a0a28615aeb5f4834a3859af83022c82bc50e28437dcbed68e549",
"9a9c1b505c68a618de842be7c248f628b104b11b80e8a40d111f62540fcba327",
"288b0bb969e670b458059adf8897f87bafc76a87a479c8aa0a305905accf2de9"
]
}
]

View File

@@ -0,0 +1,572 @@
{
"schemaVersion": 1,
"source": "docs/status/parity-ledger.json",
"sourceSha256": "1e16518a25c6b6bed4ab7f605ea1ad5babe529f2842c858b20ae6daae30bd478",
"package": "web/package.json",
"packageSha256": "4259c8c085fe94f5b109416230482d0791e6d9b47559546be42415bb91a4c224",
"toolSourceSha256": {
"tools/web/v1-acceptance-lib.mjs": "48005c8fc9d97955513e104ee1b8950cab2c3520c166eff4358e10bd7318f535",
"tools/web/check-v1-acceptance-coverage.mjs": "6448fcc673fde091cff4a299d77889570d3104bd0cfabe5434f45ba0b46de432",
"tools/web/run-v1-acceptance.mjs": "f12d04f7d74450f1973eb88aa58355a225019c6b9906aedc746c005a1958f1a5",
"tools/web/check-v1-acceptance-evidence.mjs": "af1a3029a1148e8e5d346d66f3a58f7063b73fee8dd95e6e41ed0504ed56dfea"
},
"generatedAt": "2026-08-15T04:33:26.940Z",
"environment": {
"node": "v20.19.2",
"npm": "9.2.0",
"chromium": "Google Chrome 150.0.7871.128",
"blenderBin": "BLENDER_BIN",
"blenderExecutableSha256": "83e8261eace07a5337f71b52d156c1eece1a6ba913403cc6406182ae58bacf27",
"blenderArchiveSha256": "96f6c181a30f4950607839dc84d42a354b250d8a0231b098b59b7bc69c351c48",
"blender": "ACCEPTANCE_BLENDER=5.2.0 LTS;USD=True"
},
"summary": {
"families": 12,
"declarations": 50,
"unique": 49,
"passed": 49,
"failed": 0
},
"results": [
{
"token": "web:test:nonmesh-roundtrip",
"familyIds": [
"N-015"
],
"command": "npm --prefix web run test:nonmesh-roundtrip",
"exitCode": 0,
"durationMs": 1486,
"outputSha256": "f0f98be0be03fab64d04f9e7a3d696161dc3c9fb5729c09a41f34cc401e61822",
"output": "> blender-web-editor@0.1.0 test:nonmesh-roundtrip\n> node ../tools/web/check-nonmesh-roundtrip.mjs\n\nnonmesh-roundtrip-ok types=CURVE,SURFACE,FONT,METABALL,VOLUME multispline-create-delete-bulk-handle-cyclic-surface-2d-topology-font-links-volume-properties=passed undo-redo=passed save-reopen=passed\n\nweb-depsgraph-stage=runtime-init-begin\nweb-depsgraph-stage=runtime-init-end\nweb-depsgraph-stage=blend-read-end\nweb-depsgraph-stage=view-layer-sync-end\nweb-depsgraph-data scene=0xaf0538 master=0xa18618 nodetree=0 world=0 collections=0\nweb-depsgraph-stage=global-main-swap-end\nweb-depsgraph-stage=graph-new-end\nweb-depsgraph-stage=graph-build-end\nweb-depsgraph-stage=frame-change-end\nweb-depsgraph-stage=graph-free-end\nweb-depsgraph-stage=global-main-restore-end\nweb-depsgraph-stage=blend-free-end"
},
{
"token": "web:test:nonmesh-desktop-golden",
"familyIds": [
"N-015"
],
"command": "npm --prefix web run test:nonmesh-desktop-golden",
"exitCode": 0,
"durationMs": 686,
"outputSha256": "e5339560846d774c039f493679a373b37b35ea7bfa68f1dc2a019188ecc91d45",
"output": "> blender-web-editor@0.1.0 test:nonmesh-desktop-golden\n> node ../tools/web/check-nonmesh-desktop-golden.mjs\n\nnonmesh-desktop-golden-ok fixture=nonmesh_scene.blend geometries=4\n\nweb-depsgraph-stage=runtime-init-begin\nweb-depsgraph-stage=runtime-init-end\nweb-depsgraph-stage=blend-read-end\nweb-depsgraph-stage=view-layer-sync-end\nweb-depsgraph-data scene=0xa71220 master=0xacb470 nodetree=0 world=0 collections=0\nweb-depsgraph-stage=global-main-swap-end\nweb-depsgraph-stage=graph-new-end\nweb-depsgraph-stage=graph-build-end\nweb-depsgraph-stage=frame-change-end\nweb-depsgraph-stage=graph-free-end\nweb-depsgraph-stage=global-main-restore-end\nweb-depsgraph-stage=blend-free-end"
},
{
"token": "web:test:nonmesh-glb-blender-roundtrip",
"familyIds": [
"N-015"
],
"command": "npm --prefix web run test:nonmesh-glb-blender-roundtrip",
"exitCode": 0,
"durationMs": 1668,
"outputSha256": "8627de96cfe96c0c7490cfe54fa59a680f787d5d3dcdadacc20e79a2c20f72c7",
"output": "> blender-web-editor@0.1.0 test:nonmesh-glb-blender-roundtrip\n> node ../tools/web/check-nonmesh-glb-blender-roundtrip.mjs\n\nnonmesh-glb-blender-roundtrip-ok bytes=53172 objects=7 points=1 lines=3 triangles=3\n\nweb-depsgraph-stage=runtime-init-begin\nweb-depsgraph-stage=runtime-init-end\nweb-depsgraph-stage=blend-read-end\nweb-depsgraph-stage=view-layer-sync-end\nweb-depsgraph-data scene=0xa71260 master=0xacb460 nodetree=0 world=0 collections=0\nweb-depsgraph-stage=global-main-swap-end\nweb-depsgraph-stage=graph-new-end\nweb-depsgraph-stage=graph-build-end\nweb-depsgraph-stage=frame-change-end\nweb-depsgraph-stage=graph-free-end\nweb-depsgraph-stage=global-main-restore-end\nweb-depsgraph-stage=blend-free-end"
},
{
"token": "web:test:nonmesh-usd-serialization",
"familyIds": [
"N-015"
],
"command": "npm --prefix web run test:nonmesh-usd-serialization",
"exitCode": 0,
"durationMs": 2031,
"outputSha256": "b80732c965d85c19cfb3c3a629777bacfdc1a920abcc384d436831a64f6e3101",
"output": "> blender-web-editor@0.1.0 test:nonmesh-usd-serialization\n> USD_DESKTOP_REQUIRED=0 node ../tools/web/check-nonmesh-usd-blender-roundtrip.mjs\n\nnonmesh-usd-blender-roundtrip-ok bytes=65405 objects=7 points=1 basisCurves=3 meshes=3\n\nweb-depsgraph-stage=runtime-init-begin\nweb-depsgraph-stage=runtime-init-end\nweb-depsgraph-stage=blend-read-end\nweb-depsgraph-stage=view-layer-sync-end\nweb-depsgraph-data scene=0xa71260 master=0xacb460 nodetree=0 world=0 collections=0\nweb-depsgraph-stage=global-main-swap-end\nweb-depsgraph-stage=graph-new-end\nweb-depsgraph-stage=graph-build-end\nweb-depsgraph-stage=frame-change-end\nweb-depsgraph-stage=graph-free-end\nweb-depsgraph-stage=global-main-restore-end\nweb-depsgraph-stage=blend-free-end"
},
{
"token": "web:test:nonmesh-usd-blender-roundtrip",
"familyIds": [
"N-015"
],
"command": "npm --prefix web run test:nonmesh-usd-blender-roundtrip",
"exitCode": 0,
"durationMs": 2033,
"outputSha256": "ce0580b3b5d047a1c3c5d2d1a338c6c001b5d9a69c5d22ed35322bd353fb16af",
"output": "> blender-web-editor@0.1.0 test:nonmesh-usd-blender-roundtrip\n> USD_DESKTOP_REQUIRED=1 node ../tools/web/check-nonmesh-usd-blender-roundtrip.mjs\n\nnonmesh-usd-blender-roundtrip-ok bytes=65405 objects=7 points=1 basisCurves=3 meshes=3\n\nweb-depsgraph-stage=runtime-init-begin\nweb-depsgraph-stage=runtime-init-end\nweb-depsgraph-stage=blend-read-end\nweb-depsgraph-stage=view-layer-sync-end\nweb-depsgraph-data scene=0xa71260 master=0xacb460 nodetree=0 world=0 collections=0\nweb-depsgraph-stage=global-main-swap-end\nweb-depsgraph-stage=graph-new-end\nweb-depsgraph-stage=graph-build-end\nweb-depsgraph-stage=frame-change-end\nweb-depsgraph-stage=graph-free-end\nweb-depsgraph-stage=global-main-restore-end\nweb-depsgraph-stage=blend-free-end"
},
{
"token": "web:test:nonmesh-binary",
"familyIds": [
"N-015"
],
"command": "npm --prefix web run test:nonmesh-binary",
"exitCode": 0,
"durationMs": 4132,
"outputSha256": "0b7d02b2b5ba6c772edf687e2270ae8672b9a16be61e3793f23a2987278413e3",
"output": "> blender-web-editor@0.1.0 test:nonmesh-binary\n> playwright test --config playwright.config.ts -g \"one-million-point binary transfer gate\"\n\n\nRunning 1 test using 1 worker\n\n ✓ 1 tests/e2e/smoke.spec.ts:402:1 enforces the N-015 one-million-point binary transfer gate (1.5s)\n\n 1 passed (3.3s)"
},
{
"token": "web:test:selection-history",
"familyIds": [
"N-015"
],
"command": "npm --prefix web run test:selection-history",
"exitCode": 0,
"durationMs": 4046,
"outputSha256": "b130771034a5d42212e4df33b6738159b73c7353bf985233393c506e8a274cb1",
"output": "> blender-web-editor@0.1.0 test:selection-history\n> playwright test --config playwright.config.ts -g \"N-015 selection history\"\n\n\nRunning 1 test using 1 worker\n\n ✓ 1 tests/e2e/smoke.spec.ts:1060:1 keeps N-015 selection history bounded and rejects stale raycast hits (1.5s)\n\n 1 passed (3.2s)"
},
{
"token": "web:test:nonmesh-interaction",
"familyIds": [
"N-015"
],
"command": "npm --prefix web run test:nonmesh-interaction",
"exitCode": 0,
"durationMs": 4296,
"outputSha256": "7c96e5f69ac5c5a567bb2345fbd8b0793a80d54d8b87ef4a55b7c8cdb223e231",
"output": "> blender-web-editor@0.1.0 test:nonmesh-interaction\n> playwright test --config playwright.config.ts -g \"N-015 curve gizmo interaction\"\n\n\nRunning 1 test using 1 worker\n\n ✓ 1 tests/e2e/smoke.spec.ts:1081:1 validates the N-015 curve gizmo interaction transaction boundary (1.7s)\n\n 1 passed (3.5s)"
},
{
"token": "web:test:vdb",
"familyIds": [
"N-015"
],
"command": "npm --prefix web run test:vdb",
"exitCode": 0,
"durationMs": 4025,
"outputSha256": "1aa70cf5c66b18abf4f2214c67834377c7c50b46a207e84fc50de89dbeb1c1cc",
"output": "> 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)"
},
{
"token": "web:test:vdb-availability",
"familyIds": [
"N-015"
],
"command": "npm --prefix web run test:vdb-availability",
"exitCode": 0,
"durationMs": 389,
"outputSha256": "09d74a026344f6f10405b879be73c1bdf060ef1eb1d11b4aa2c1ab60ff256d49",
"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"
},
{
"token": "web:test:vdb-native",
"familyIds": [
"N-015"
],
"command": "npm --prefix web run test:vdb-native",
"exitCode": 0,
"durationMs": 1259,
"outputSha256": "1a431ee0076697fa70cfc3230f3400b85dd45cf668a645c2a83276f615e241a4",
"output": "> 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"
},
{
"token": "web:test:vdb-server",
"familyIds": [
"N-015"
],
"command": "npm --prefix web run test:vdb-server",
"exitCode": 0,
"durationMs": 648,
"outputSha256": "5ed0afb34328b5da0ec5702504cb1178999da5e11953129caec407d2c81c0d43",
"output": "> blender-web-editor@0.1.0 test:vdb-server\n> node ../tools/web/check-vdb-server-job.mjs\n\nvdb-server-job-ok job=vdb-b59105490496a2fee0dda646 bytes=2563944 idempotent=1 signed=1 isolated=1 cancelled=1 atomic=1 desktop-server-hash=equal"
},
{
"token": "web:test:vdb-opfs",
"familyIds": [
"N-015"
],
"command": "npm --prefix web run test:vdb-opfs",
"exitCode": 0,
"durationMs": 5297,
"outputSha256": "cabf007e624b204168d00a5f292c33fbdc560e8584a609c11f7286d16e26b6e9",
"output": "> blender-web-editor@0.1.0 test:vdb-opfs\n> playwright test --config playwright.config.ts -g \"hash-bound NanoVDB project through OPFS\"\n\n\nRunning 1 test using 1 worker\n\n ✓ 1 tests/e2e/smoke.spec.ts:1206:1 commits and reopens a hash-bound NanoVDB project through OPFS (2.7s)\n\n 1 passed (4.5s)"
},
{
"token": "web:test:vdb-webgpu",
"familyIds": [
"N-015"
],
"command": "npm --prefix web run test:vdb-webgpu",
"exitCode": 0,
"durationMs": 62192,
"outputSha256": "3885ee85fd05995c04f1a790fa134f1bdbf39503dc6a00e471fc99a77dbccf6c",
"output": "> blender-web-editor@0.1.0 test:vdb-webgpu\n> playwright test --config playwright.config.ts -g \"real NanoVDB Float32 tree with WebGPU\"\n\n\nRunning 1 test using 1 worker\n\n ✓ 1 tests/e2e/smoke.spec.ts:1232:1 samples and integrates a real NanoVDB Float32 tree with WebGPU (59.6s)\n\n 1 passed (1.0m)"
},
{
"token": "web:test:vdb-viewport",
"familyIds": [
"N-015"
],
"command": "npm --prefix web run test:vdb-viewport",
"exitCode": 0,
"durationMs": 116435,
"outputSha256": "eb54044817e597de7a1978fe2b8cf9d97324a2aeb0cd4ab1574a4385401f7211",
"output": "> blender-web-editor@0.1.0 test:vdb-viewport\n> playwright test --config playwright.config.ts -g \"both production viewport backends\"\n\n\nRunning 1 test using 1 worker\n\n ✓ 1 tests/e2e/smoke.spec.ts:1264:1 renders a real NanoVDB volume through both production viewport backends (1.9m)\n\n 1 passed (1.9m)"
},
{
"token": "web:test:vdb-faults",
"familyIds": [
"N-015",
"N-023"
],
"command": "npm --prefix web run test:vdb-faults",
"exitCode": 0,
"durationMs": 5724,
"outputSha256": "ba420837572b94192e0dd81660674ef5cc406d77e675ad1322d705749fe785cb",
"output": "> blender-web-editor@0.1.0 test:vdb-faults\n> playwright test --config playwright.config.ts -g \"NanoVDB paging from network, Worker and WebGPU device faults\"\n\n\nRunning 1 test using 1 worker\n\n ✓ 1 tests/e2e/smoke.spec.ts:1344:1 recovers NanoVDB paging from network, Worker and WebGPU device faults (3.2s)\n\n 1 passed (4.9s)"
},
{
"token": "web:e2e:N-015|non-mesh",
"familyIds": [
"N-015"
],
"command": "npm --prefix web run test:e2e -- --workers=1 -g \"N-015|non-mesh\"",
"exitCode": 0,
"durationMs": 17945,
"outputSha256": "dabeaa176c79b4688db7d0c11faac4026ca2ea98994d582ff8006eb76a4a533d",
"output": "> blender-web-editor@0.1.0 test:e2e\n> playwright test --config playwright.config.ts --workers=1 -g N-015|non-mesh\n\n\nRunning 10 tests using 1 worker\n\n ✓ 1 tests/e2e/smoke.spec.ts:295:1 reads bounded non-mesh data blocks and previews supported geometry (2.3s)\n ✓ 2 tests/e2e/smoke.spec.ts:341:1 reports structured N-015 gates for previewable and resource-backed data (1.2s)\n ✓ 3 tests/e2e/smoke.spec.ts:402:1 enforces the N-015 one-million-point binary transfer gate (946ms)\n ✓ 4 tests/e2e/smoke.spec.ts:417:1 rejects malformed N-015 binary chunks, integer overflow and budget overflow (919ms)\n ✓ 5 tests/e2e/smoke.spec.ts:1060:1 keeps N-015 selection history bounded and rejects stale raycast hits (912ms)\n ✓ 6 tests/e2e/smoke.spec.ts:1081:1 validates the N-015 curve gizmo interaction transaction boundary (1.2s)\n ✓ 7 tests/e2e/smoke.spec.ts:1098:40 previews an N-015 Curve handle drag and commits Main once in main-thread Chromium (3.0s)\n ✓ 8 tests/e2e/smoke.spec.ts:1098:40 previews an N-015 Curve handle drag and commits Main once in OffscreenCanvas Chromium (2.2s)\n ✓ 9 tests/e2e/smoke.spec.ts:1435:1 returns real Blender evaluations for legacy non-mesh geometry (1.4s)\n ✓ 10 tests/e2e/smoke.spec.ts:1467:1 keeps N-015 non-mesh previews in the OffscreenCanvas renderer (1.4s)\n\n 10 passed (17.1s)"
},
{
"token": "web:e2e:real OPFS quota",
"familyIds": [
"N-015"
],
"command": "npm --prefix web run test:e2e -- --workers=1 -g \"real OPFS quota\"",
"exitCode": 0,
"durationMs": 4220,
"outputSha256": "3b5bbe03b09487bee7d7d21821833cdd863c7e6ccc77a62329a1c83ea8a69526",
"output": "> blender-web-editor@0.1.0 test:e2e\n> playwright test --config playwright.config.ts --workers=1 -g real OPFS quota\n\n\nRunning 1 test using 1 worker\n\n ✓ 1 tests/e2e/smoke.spec.ts:1595:1 enforces a real OPFS quota without replacing the committed project (1.6s)\n\n 1 passed (3.4s)"
},
{
"token": "web:test:grease-pencil",
"familyIds": [
"N-016"
],
"command": "npm --prefix web run test:grease-pencil",
"exitCode": 0,
"durationMs": 702,
"outputSha256": "54038fad56465ca7ac6826cf69854c227c3812ce375031af549f2771861c9473",
"output": "> blender-web-editor@0.1.0 test:grease-pencil\n> node ../tools/web/check-grease-pencil-roundtrip.mjs\n\ngrease-pencil-roundtrip-ok layer-frame-stroke=passed undo-redo=passed save-reopen=passed"
},
{
"token": "web:test:grease-pencil-editor",
"familyIds": [
"N-016"
],
"command": "npm --prefix web run test:grease-pencil-editor",
"exitCode": 0,
"durationMs": 4097,
"outputSha256": "c4109eb01c634356551cf19e26a3a3859f612e7511adfbeb25f092e9591e77bc",
"output": "> blender-web-editor@0.1.0 test:grease-pencil-editor\n> playwright test --config playwright.config.ts -g \"N-016 Grease Pencil editor context\"\n\n\nRunning 1 test using 1 worker\n\n ✓ 1 tests/e2e/smoke.spec.ts:510:1 validates the N-016 Grease Pencil editor context transaction boundary (1.5s)\n\n 1 passed (3.3s)"
},
{
"token": "web:e2e:N-016 Grease Pencil",
"familyIds": [
"N-016"
],
"command": "npm --prefix web run test:e2e -- --workers=1 -g \"N-016 Grease Pencil\"",
"exitCode": 0,
"durationMs": 19150,
"outputSha256": "613880a4c3506a4671fa7283c37890d85b37b10d899af99a5202625130ccf463",
"output": "> blender-web-editor@0.1.0 test:e2e\n> playwright test --config playwright.config.ts --workers=1 -g N-016 Grease Pencil\n\n\nRunning 12 tests using 1 worker\n\n ✓ 1 tests/e2e/smoke.spec.ts:437:1 enforces the N-016 Grease Pencil layer/frame/drawing/stroke/point schema budget (1.4s)\n ✓ 2 tests/e2e/smoke.spec.ts:453:1 renders a bounded previous/next N-016 Grease Pencil onion-skin preview (872ms)\n ✓ 3 tests/e2e/smoke.spec.ts:485:3 renders the N-016 Grease Pencil current-frame strokes in main-thread Chromium (1.3s)\n ✓ 4 tests/e2e/smoke.spec.ts:485:3 renders the N-016 Grease Pencil current-frame strokes in OffscreenCanvas Chromium (1.2s)\n ✓ 5 tests/e2e/smoke.spec.ts:510:1 validates the N-016 Grease Pencil editor context transaction boundary (917ms)\n ✓ 6 tests/e2e/smoke.spec.ts:526:1 raycasts and highlights N-016 Grease Pencil points with stable drawing identity (1.3s)\n ✓ 7 tests/e2e/smoke.spec.ts:541:40 previews N-016 Grease Pencil points and commits Main once in main-thread Chromium (1.8s)\n ✓ 8 tests/e2e/smoke.spec.ts:541:40 previews N-016 Grease Pencil points and commits Main once in OffscreenCanvas Chromium (1.5s)\n ✓ 9 tests/e2e/smoke.spec.ts:565:1 edits N-016 Grease Pencil layers and frames from the bounded editor panel (1.6s)\n ✓ 10 tests/e2e/smoke.spec.ts:580:1 navigates real N-016 Grease Pencil drawing frames in the bounded Dope Sheet (1.6s)\n ✓ 11 tests/e2e/smoke.spec.ts:595:1 moves an N-016 Grease Pencil point through one revision-bound Main transaction (1.5s)\n ✓ 12 tests/e2e/smoke.spec.ts:606:1 reopens an edited N-016 Grease Pencil drawing after WebEngine Worker restart (1.5s)\n\n 12 passed (18.3s)"
},
{
"token": "web:test:paint-roundtrip",
"familyIds": [
"N-017"
],
"command": "npm --prefix web run test:paint-roundtrip",
"exitCode": 0,
"durationMs": 757,
"outputSha256": "80170948f7a18d6e0fa314c0a3ddc660abb67b1fc018f66a944d080516523fc0",
"output": "> blender-web-editor@0.1.0 test:paint-roundtrip\n> node ../tools/web/check-paint-roundtrip.mjs\n\npaint-roundtrip-ok vertex-color=passed vertex-weight-normalize=passed mirror-gate=passed undo-redo=passed save-reopen=passed"
},
{
"token": "web:e2e:N-017 paint",
"familyIds": [
"N-017"
],
"command": "npm --prefix web run test:e2e -- --workers=1 -g \"N-017 paint\"",
"exitCode": 0,
"durationMs": 4194,
"outputSha256": "b2b4157a480bfa0ddc1d3d5031baec6b784e7917b1b6781072791724d96fe655",
"output": "> blender-web-editor@0.1.0 test:e2e\n> playwright test --config playwright.config.ts --workers=1 -g N-017 paint\n\n\nRunning 1 test using 1 worker\n\n ✓ 1 tests/e2e/smoke.spec.ts:648:1 enforces the N-017 paint stroke, bounded brush and UDIM patch budgets (1.5s)\n\n 1 passed (3.3s)"
},
{
"token": "web:e2e:N-018 physics",
"familyIds": [
"N-018"
],
"command": "npm --prefix web run test:e2e -- --workers=1 -g \"N-018 physics\"",
"exitCode": 0,
"durationMs": 4083,
"outputSha256": "67606d91993447632a709a163b3ca2a39634ffe343d523327f6a2084a5b253d1",
"output": "> blender-web-editor@0.1.0 test:e2e\n> playwright test --config playwright.config.ts --workers=1 -g N-018 physics\n\n\nRunning 1 test using 1 worker\n\n ✓ 1 tests/e2e/smoke.spec.ts:746:1 validates the N-018 physics capability and cache manifests without claiming solvers (1.5s)\n\n 1 passed (3.3s)"
},
{
"token": "web:test:simulation-cache",
"familyIds": [
"N-018"
],
"command": "npm --prefix web run test:simulation-cache",
"exitCode": 0,
"durationMs": 4157,
"outputSha256": "995c1e31bb89e4124999b1e60d7cb0ac09cd5276f07e15f7affb796624a177c6",
"output": "> blender-web-editor@0.1.0 test:simulation-cache\n> playwright test --config playwright.config.ts -g \"Simulation caches\"\n\n\nRunning 1 test using 1 worker\n\n ✓ 1 tests/e2e/smoke.spec.ts:1631:1 persists and revalidates content-addressed Simulation caches across Worker restarts (1.5s)\n\n 1 passed (3.3s)"
},
{
"token": "web:test:physics-main-reader",
"familyIds": [
"N-018"
],
"command": "npm --prefix web run test:physics-main-reader",
"exitCode": 0,
"durationMs": 733,
"outputSha256": "40b88699ab714c717a59461345880235d337e833b614056b13d43594f797fa03",
"output": "> blender-web-editor@0.1.0 test:physics-main-reader\n> node ../tools/web/check-physics-main-reader.mjs\n\nphysics-main-reader-ok families=CLOTH,SOFT_BODY dependencies=COLLISION settings-sha256=passed save-reopen=passed playback=BLOCKED solver=BLOCKED"
},
{
"token": "web:test:lighting-roundtrip",
"familyIds": [
"N-019"
],
"command": "npm --prefix web run test:lighting-roundtrip",
"exitCode": 0,
"durationMs": 717,
"outputSha256": "14be8ff1c568f56cdbdb4fe9b0cd091f2014e024a049d1b11aa6a800d5d76e02",
"output": "> blender-web-editor@0.1.0 test:lighting-roundtrip\n> node ../tools/web/check-lighting-roundtrip.mjs\n\nlighting-roundtrip-ok camera-writer-dof=passed light-shadow-exposure=passed world-mist=passed color-management-reader=passed white-balance-gate=passed undo-redo=passed save-reopen=passed"
},
{
"token": "web:e2e:N-019 Scene exposure",
"familyIds": [
"N-019"
],
"command": "npm --prefix web run test:e2e -- --workers=1 -g \"N-019 Scene exposure\"",
"exitCode": 0,
"durationMs": 4550,
"outputSha256": "55f18e2d99876fafdb02d050c9a712cca9e3d618b90d018160d9387244279420",
"output": "> blender-web-editor@0.1.0 test:e2e\n> playwright test --config playwright.config.ts --workers=1 -g N-019 Scene exposure\n\n\nRunning 1 test using 1 worker\n\n ✓ 1 tests/e2e/smoke.spec.ts:772:1 maps N-019 Scene exposure and light shadow metadata without using legacy World exposure (2.0s)\n\n 1 passed (3.7s)"
},
{
"token": "web:test:compositor-main-reader",
"familyIds": [
"N-020"
],
"command": "npm --prefix web run test:compositor-main-reader",
"exitCode": 0,
"durationMs": 692,
"outputSha256": "abcaddcb533bf00bfd0a0aa151e351e03615c3ed3a8b8e0b8d7a26ca7c0e25d6",
"output": "> blender-web-editor@0.1.0 test:compositor-main-reader\n> node ../tools/web/check-compositor-main-reader.mjs\n\ncompositor-main-reader-ok graph-structure=passed exposure-invert-parameters=passed socket-links=passed unsupported-preserved=passed"
},
{
"token": "web:e2e:N-020 CPU compositor",
"familyIds": [
"N-020"
],
"command": "npm --prefix web run test:e2e -- --workers=1 -g \"N-020 CPU compositor\"",
"exitCode": 0,
"durationMs": 4177,
"outputSha256": "af1cc149bed90ef32bc0c85c705ccecdd96208299fafd90a73b6fa8896f102ef",
"output": "> blender-web-editor@0.1.0 test:e2e\n> playwright test --config playwright.config.ts --workers=1 -g N-020 CPU compositor\n\n\nRunning 1 test using 1 worker\n\n ✓ 1 tests/e2e/smoke.spec.ts:834:1 executes the bounded N-020 CPU compositor and preserves unsupported nodes as gates (1.5s)\n\n 1 passed (3.3s)"
},
{
"token": "web:test:sequencer-main-reader",
"familyIds": [
"N-021"
],
"command": "npm --prefix web run test:sequencer-main-reader",
"exitCode": 0,
"durationMs": 680,
"outputSha256": "5b798b9549d5ab530f123b91fdd8d1347b49277c294725d77ba37421a4b1b739",
"output": "> blender-web-editor@0.1.0 test:sequencer-main-reader\n> node ../tools/web/check-sequencer-main-reader.mjs\n\nsequencer-main-reader-ok media-paths=passed still-image-range=passed fps=passed effect-dependencies=passed"
},
{
"token": "web:e2e:N-021 sequencer",
"familyIds": [
"N-021"
],
"command": "npm --prefix web run test:e2e -- --workers=1 -g \"N-021 sequencer\"",
"exitCode": 0,
"durationMs": 4076,
"outputSha256": "3aa8c2ae171d05a17169afe602dbbf3be7ee541bbe2f24c60e06b21754f779d4",
"output": "> blender-web-editor@0.1.0 test:e2e\n> playwright test --config playwright.config.ts --workers=1 -g N-021 sequencer\n\n\nRunning 1 test using 1 worker\n\n ✓ 1 tests/e2e/smoke.spec.ts:879:1 validates N-021 sequencer strips, deterministic edits, sandbox paths and codec gates (1.4s)\n\n 1 passed (3.2s)"
},
{
"token": "web:test:mask-main-reader",
"familyIds": [
"N-022"
],
"command": "npm --prefix web run test:mask-main-reader",
"exitCode": 0,
"durationMs": 718,
"outputSha256": "ebf3ada68dda29abe2008343900b2ffad6d41e9750a3e9204c7b70674bbee692",
"output": "> blender-web-editor@0.1.0 test:mask-main-reader\n> node ../tools/web/check-mask-main-reader.mjs\n\nmask-main-reader-ok layers-splines=passed handles-feather=passed locked-editable-selection=passed"
},
{
"token": "web:e2e:N-022 tracking",
"familyIds": [
"N-022"
],
"command": "npm --prefix web run test:e2e -- --workers=1 -g \"N-022 tracking\"",
"exitCode": 0,
"durationMs": 4098,
"outputSha256": "1858048af0a5d9c8926a4aea37e8acf62e0ef6988f0c1e6dd4ce0c28ab4a8870",
"output": "> blender-web-editor@0.1.0 test:e2e\n> playwright test --config playwright.config.ts --workers=1 -g N-022 tracking\n\n\nRunning 1 test using 1 worker\n\n ✓ 1 tests/e2e/smoke.spec.ts:922:1 validates N-022 tracking markers, masks, resource bindings and solve gates (1.5s)\n\n 1 passed (3.3s)"
},
{
"token": "web:test:library-main-reader",
"familyIds": [
"N-023"
],
"command": "npm --prefix web run test:library-main-reader",
"exitCode": 0,
"durationMs": 712,
"outputSha256": "fa46d8ff58c3f7d52cc6b4744e47db2c80827462557fdbbec3fe504b67c356cf",
"output": "> blender-web-editor@0.1.0 test:library-main-reader\n> node ../tools/web/check-library-main-reader.mjs\n\nreports | Read library: 'resources/image_resource_library.blend', '//resources/image_resource_library.blend', parent '<direct>'\n | \u001b[2;37msource/blender/blenkernel/intern/report.cc:51 BKE_report_log\u001b[0m\nreports | \u001b[1;33mWARNING\u001b[0m Unable to open 'resources/image_resource_library.blend': No such file or directory\n | \u001b[2;37msource/blender/blenkernel/intern/report.cc:54 BKE_report_log\u001b[0m\nreports | Cannot find lib 'resources/image_resource_library.blend'\n | \u001b[2;37msource/blender/blenkernel/intern/report.cc:51 BKE_report_log\u001b[0m\nlibrary-main-reader-ok relative-path=passed readonly=passed dependency-inventory=passed"
},
{
"token": "web:e2e:N-023 asset",
"familyIds": [
"N-023"
],
"command": "npm --prefix web run test:e2e -- --workers=1 -g \"N-023 asset\"",
"exitCode": 0,
"durationMs": 4172,
"outputSha256": "e8d063ee602df3b253284024afc2dfe18ea7c12de31f0fa902ceffa9036c5f7d",
"output": "> blender-web-editor@0.1.0 test:e2e\n> playwright test --config playwright.config.ts --workers=1 -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)"
},
{
"token": "web:test:editor-main-reader",
"familyIds": [
"N-024"
],
"command": "npm --prefix web run test:editor-main-reader",
"exitCode": 0,
"durationMs": 691,
"outputSha256": "814ab7c0fe0c737a9cbafe6f8fe59564dcb94f9244ac4af1e7b60b9d675e815b",
"output": "> blender-web-editor@0.1.0 test:editor-main-reader\n> node ../tools/web/check-editor-main-reader.mjs\n\neditor-main-reader-ok workspaces=9 areas=36 regions=167"
},
{
"token": "web:e2e:N-024 editor",
"familyIds": [
"N-024"
],
"command": "npm --prefix web run test:e2e -- --workers=1 -g \"N-024 editor\"",
"exitCode": 0,
"durationMs": 4084,
"outputSha256": "f36025cb33bfa95624cd2c0db5aaa948ef13c768a75cbcefbc67f41feaf3e48e",
"output": "> blender-web-editor@0.1.0 test:e2e\n> playwright test --config playwright.config.ts --workers=1 -g N-024 editor\n\n\nRunning 1 test using 1 worker\n\n ✓ 1 tests/e2e/smoke.spec.ts:997:1 validates N-024 editor context, selection sync, layout budgets and workflow gates (1.5s)\n\n 1 passed (3.3s)"
},
{
"token": "web:test:script-main-reader",
"familyIds": [
"N-025"
],
"command": "npm --prefix web run test:script-main-reader",
"exitCode": 0,
"durationMs": 700,
"outputSha256": "5d06bf4178fb048dcfc30fa197812632c84e2c2266e328b325c941290c971581",
"output": "> blender-web-editor@0.1.0 test:script-main-reader\n> node ../tools/web/check-script-main-reader.mjs\n\nscript-main-reader-ok full-source=passed sha256=passed autorun-default-deny=passed"
},
{
"token": "web:test:scripting-isolation",
"familyIds": [
"N-025"
],
"command": "npm --prefix web run test:scripting-isolation",
"exitCode": 0,
"durationMs": 863,
"outputSha256": "d124b300b4531fae73575afdec53baff2e0656207a1b9f96969f8761e277cd25",
"output": "> blender-web-editor@0.1.0 test:scripting-isolation\n> node ../tools/web/check-scripting-isolation.mjs\n\nscripting-isolation-ok status=BLOCKED audit=DENY approved-key=sandbox-unavailable server=unavailable execution=disabled"
},
{
"token": "web:e2e:N-025 script",
"familyIds": [
"N-025"
],
"command": "npm --prefix web run test:e2e -- --workers=1 -g \"N-025 script\"",
"exitCode": 0,
"durationMs": 4072,
"outputSha256": "1d4a3ba828574a63106cceb1b809be66bb60d167a7c9f870c297683021954a5d",
"output": "> blender-web-editor@0.1.0 test:e2e\n> playwright test --config playwright.config.ts --workers=1 -g N-025 script\n\n\nRunning 1 test using 1 worker\n\n ✓ 1 tests/e2e/smoke.spec.ts:1017:1 validates N-025 script policy, signatures, budgets and platform gates (1.5s)\n\n 1 passed (3.3s)"
},
{
"token": "web:e2e:N-026 release",
"familyIds": [
"N-026"
],
"command": "npm --prefix web run test:e2e -- --workers=1 -g \"N-026 release\"",
"exitCode": 0,
"durationMs": 4106,
"outputSha256": "eeffeacdf49d91e2fbaf754723d147796dedbd25721d46a3931684a9ac32fe91",
"output": "> blender-web-editor@0.1.0 test:e2e\n> playwright test --config playwright.config.ts --workers=1 -g N-026 release\n\n\nRunning 1 test using 1 worker\n\n ✓ 1 tests/e2e/smoke.spec.ts:1040:1 keeps N-026 release manifest deterministic and blocks missing evidence (1.5s)\n\n 1 passed (3.3s)"
},
{
"token": "web:test:v1-user-loop",
"familyIds": [
"N-026"
],
"command": "npm --prefix web run test:v1-user-loop",
"exitCode": 0,
"durationMs": 5032,
"outputSha256": "81703418e4a01edfa77fa5ca7251a37d49fe9732e0e98d8a90182162014e3a94",
"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.7s)\n\n 1 passed (4.2s)"
},
{
"token": "web:test:release-evidence",
"familyIds": [
"N-026"
],
"command": "npm --prefix web run test:release-evidence",
"exitCode": 0,
"durationMs": 842,
"outputSha256": "12b1eec0e7653d11ae97fdfbecafeb0a71cab66ea5f343d9992826ce4a4fa9d0",
"output": "> blender-web-editor@0.1.0 test:release-evidence\n> node ../tools/web/check-release-evidence.mjs\n\nrelease-evidence-check-ok records=17 missing=0 status=READY"
},
{
"token": "web:test:browser",
"familyIds": [
"N-026"
],
"command": "npm --prefix web run test:browser",
"exitCode": 0,
"durationMs": 6933,
"outputSha256": "beec8f6ae62d79680a1b3d5a13cc0ed75c13ed2620ce0da2c1b8db4a77a5ad13",
"output": "> 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.6s)\n ✓ 2 [chromium] tests/e2e/cross-browser.spec.ts:32:1 keeps content-addressed asset recovery available in Chromium (973ms)\n ✓ 3 [chromium] tests/e2e/cross-browser.spec.ts:51:1 keeps the committed project after quota failure and Worker restart in Chromium (994ms)\n\n 3 passed (6.1s)"
},
{
"token": "web:test:release-package",
"familyIds": [
"N-026"
],
"command": "npm --prefix web run test:release-package",
"exitCode": 0,
"durationMs": 5691,
"outputSha256": "e44e4a3d2b6698b700be7ed6deda864ecba337e467d341cf7dd6b43aaee8f846",
"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 584ms\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."
},
{
"token": "web:release:offline",
"familyIds": [
"N-026"
],
"command": "npm --prefix web run release:offline",
"exitCode": 0,
"durationMs": 36973,
"outputSha256": "e7202bf7f4d4a7fb171ad29073d92f1846951e5785f91dea2f23ea65121603ae",
"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 584ms\nsbom-ok packages=150 sha256=aa50a5b98ebb51c98c6eced2ec32dff96b8df6d90e10cc101ce9e8eb44695060\noffline-release-ok binary=7585557 source=205827355 sha256=f2903a75026a0a28615aeb5f4834a3859af83022c82bc50e28437dcbed68e549\nsbom-ok packages=150 sha256=aa50a5b98ebb51c98c6eced2ec32dff96b8df6d90e10cc101ce9e8eb44695060\noffline-release-ok binary=7585557 source=205827355 sha256=f2903a75026a0a28615aeb5f4834a3859af83022c82bc50e28437dcbed68e549\noffline-reproducibility-ok binary=f2903a75026a0a28615aeb5f4834a3859af83022c82bc50e28437dcbed68e549 source=8324d6353954ca782d84cbfd26f18a2a03fada17128d4f32c13a29e9c8aa50cc\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."
},
{
"token": "web:test:release-performance",
"familyIds": [
"N-026"
],
"command": "npm --prefix web run test:release-performance",
"exitCode": 0,
"durationMs": 82653,
"outputSha256": "ac3c6ae6138f9434cf9c627d626694f08c24715b903cbfae3f1b5ce58f4faf3e",
"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\":81667,\"peakHeapBytes\":67108864,\"releasedPointerCount\":10,\"recoveryAllocation\":true},{\"target\":1000000,\"ratio\":1,\"inputTriangles\":1000000,\"outputTriangles\":1000000,\"elapsedMs\":507,\"peakHeapBytes\":346554368,\"releasedPointerCount\":10,\"recoveryAllocation\":true}]\n\nHeap resize call from 67108864 to 80543744 took 0.1827109999867389 msecs. Success: true\nHeap resize call from 80543744 to 96665600 took 0.1000789999961853 msecs. Success: true\nHeap resize call from 96665600 to 115998720 took 0.05835200000728946 msecs. Success: true\nHeap resize call from 115998720 to 139198464 took 0.03199099999619648 msecs. Success: true\nHeap resize call from 139198464 to 167051264 took 1.2570010000054026 msecs. Success: true\nHeap resize call from 167051264 to 200474624 took 1.3920889999862993 msecs. Success: true\nHeap resize call from 200474624 to 240582656 took 1.357361000002129 msecs. Success: true\nHeap resize call from 240582656 to 288751616 took 1.3448809999972582 msecs. Success: true\nHeap resize call from 288751616 to 346554368 took 1.3298830000130692 msecs. Success: true"
},
{
"token": "web:test:malicious-blends",
"familyIds": [
"N-026"
],
"command": "npm --prefix web run test:malicious-blends",
"exitCode": 0,
"durationMs": 489,
"outputSha256": "cbac9faec5d96aa047fb40c0e21a3d06cb3eb741d943ddd55ab4188a9cc328c0",
"output": "> blender-web-editor@0.1.0 test:malicious-blends\n> node ../tools/web/check-malicious-blends.mjs\n\nmalicious-blends-ok rejected=5"
}
]
}