Advance bounded editor and cache workflows

This commit is contained in:
mes123456
2026-08-12 19:31:41 -04:00
parent d54d5dd913
commit 3da1dfc804
19 changed files with 563 additions and 50 deletions

View File

@@ -24,12 +24,16 @@
point selection 和 revision拒绝 stale/重复/超 1M selectionProperties 面板已连接真实 Main
layer create/remove、当前 frame insert/remove 和整帧 clear transaction。完整 2D stroke/point
画布选择和 dope sheet integration 仍阻断。
7. N-016-D点编辑部分Properties 面板可在当前 layer/frame 选择实际 stroke/point执行
有界 X 轴平移;协议先校验 point identity、revision、有限坐标和 1M 点预算,再保留 radius、
opacity、vertex color、cyclic、material index 并合并为一个 `setGreasePencilStrokes` Main
transaction。它是点级整帧原子写回不等同于完整 2D 画布选择或连续 gizmo。
## 仍然阻断
- N-016-Cmaterial datablock 事务、onion fade/range 完整语义和完整 Grease Pencil modifier reader。
- N-016-D2D editor、stroke/point selection、timeline/dope integration、gizmo 和 worker restart
3D current-frame stroke viewport 已完成。
- N-016-D2D 画布 raycast/marquee、多点可视选择、timeline/dope integration、连续 gizmo 和
worker restart3D current-frame stroke viewport 与 Properties 单点原子平移已完成。
- N-016-Edesktop drawing hash、Chromium 像素 golden、GLB/USD loss report 和 OPFS。
## 验收

View File

@@ -21,13 +21,18 @@
7. Properties paint 面板消费 viewport 的真实 VERT selection可向选中顶点提交 `POINT`
`WebPaintColor` 和 vertex group weight每次操作只发一个既有 Main transaction继续使用
revision、undo/redo、save/reopen 边界。它不是 PBVH brush 或 texture paint。
8. N-017-A/C协议边界有界 CPU brush 对候选顶点执行 smoothstep falloff、遮挡标记过滤和
front-face 法线门;它不宣称 PBVH 加速或桌面 brush 等价。`UdimTilePatchIR` 约束 1001-1999
tile、RGBA8、色彩空间、尺寸/256 MiB 预算、revision、base/result SHA-256并在内存中验证
原子 range patch尚未绑定 Blender packed image/UDIM Main 写回与保存。
## 仍然阻断
- N-017-APBVH 加速结构、遮挡/背面选择和 brush falloff 桌面语义的对应;基础 Mesh/UV
raycast hit 已完成。
- N-017-A真实 PBVH 加速结构、由深度缓冲生成的遮挡标记,以及 brush falloff 桌面语义的
golden 对照;基础 Mesh/UV raycast hit 和有界 CPU 候选 falloff 已完成。
- N-017-Blimit/clean、已验证拓扑映射上的 mirror、桌面 brush/falloff 对照。
- N-017-Cpacked/UDIM tile transaction、色彩空间、dirty tile 和原子保存
- N-017-CBlender packed/UDIM tile Main transaction、dirty tile、色彩转换和原子保存;当前
只有内容哈希绑定的浏览器内存 patch 边界。
- N-017-D/Earmature golden、seam bleed、mask/selection、GPU dispose、quota、坏图和 UI。
## 验收

View File

@@ -20,11 +20,16 @@ cache playback、WASM solver 和 bake job 未实现)
Particle/Hair 数据;只输出实际存在的 system绑定 owner stable ID、有界 settings、collision
dependency 和浏览器可复算 SHA-256。当前 fixture 实证覆盖禁用 Cloth、Soft Body 和 Collision
依赖save/reopen 保持一致;未用合成 system 填充其余 family。
7. N-018-C浏览器格式边界版本化 `BTF1` 二进制帧可解码有界 object transform校验
frame、对象 stable ID、精确字节长度、有限 translation、单位 quaternion、非零 scale 和重复
ID。该格式仅是浏览器自有的 cache playback primitive不是 Blender desktop bake family
payload因此 capability inventory 的 `cachePlayback` 仍为 `BLOCKED`
## 仍然阻断
- N-018-A/B从真实 Main 提取完整 family settings、collection/effector/collision 依赖。
- N-018-Cdesktop bake payload 的 family decoder、depsgraph frame playback 和 100 帧 golden。
- N-018-Cdesktop bake payload 的 family decoder、depsgraph/viewport 的 frame playback
连接和 100 帧 golden浏览器自有 transform frame decoder 已完成但不替代 Blender bake。
- N-018-D逐 family WASM solver 初始化、线程、内存和确定性验证。
- N-018-Ebake start/cancel/commit、服务端 job、故障恢复、进度与 UI。

View File

@@ -16,6 +16,9 @@
5. N-025-AMain reader从 Blender `Text`/`TextLine` 重建最多 1 MiB、65,536 行的完整
UTF-8 内嵌来源,记录项目相对外部路径、`use_module` autorun 请求和 SHA-256所有来源均为
只读且 `executionStatus=BLOCKED`autorun 请求按默认拒绝处理,不引入 Python 执行入口。
6. `test:scripting-isolation` 独立验证未批准 key 返回 `SCRIPT_SIGNATURE_INVALID`,批准 key
仍返回 `SCRIPT_SANDBOX_UNAVAILABLE`server job 返回 `SERVER_JOB_UNAVAILABLE`;测试不创建
本地执行器,也不把签名校验误报为 sandbox。
## 仍然阻断
@@ -28,5 +31,6 @@
```bash
npm --prefix web run test:script-main-reader
npm --prefix web run test:scripting-isolation
WEB_TEST_PORT=5325 npm --prefix web run test:e2e -- --grep "N-025 script"
```

View File

@@ -19,8 +19,8 @@
"name": "Grease Pencil",
"status": "BLOCKED",
"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"],
"blockedSlices": ["C-material-modifier-full-semantics", "D-full-2d-stroke-point-editor-dope-gizmo-restart", "E-desktop-browser-golden-export-opfs"],
"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"],
"blockedSlices": ["C-material-modifier-full-semantics", "D-full-2d-canvas-multipoint-dope-gizmo-restart", "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"]
},
@@ -29,8 +29,8 @@
"name": "Paint and weights",
"status": "BLOCKED",
"roadmapStatus": "planned",
"completedSlices": ["A-stroke-hit-weight-schema-budget-partial", "A-three-raycast-source-face-barycentric-uv", "B-main-vertex-color-partial", "B-main-vertex-weight-normalize-partial", "B-selected-vertex-color-weight-ui-transaction-partial"],
"blockedSlices": ["A-pbvh-occlusion-falloff", "B-clean-mirror-desktop-brush", "C-packed-udim-color-dirty-atomic", "D-E-mask-selection-gpu-quota-golden-ui"],
"completedSlices": ["A-stroke-hit-weight-schema-budget-partial", "A-three-raycast-source-face-barycentric-uv", "A-bounded-cpu-candidate-falloff", "B-main-vertex-color-partial", "B-main-vertex-weight-normalize-partial", "B-selected-vertex-color-weight-ui-transaction-partial", "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-mask-selection-gpu-quota-golden-ui"],
"acceptance": ["web:test:paint-roundtrip", "web:e2e:N-017 paint"],
"dependencies": ["N-016"]
},
@@ -39,7 +39,7 @@
"name": "Physics and simulation",
"status": "BLOCKED",
"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"],
"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"],
"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"]
@@ -109,9 +109,9 @@
"name": "Scripting and platform",
"status": "BLOCKED",
"roadmapStatus": "planned",
"completedSlices": ["A-default-deny-script-policy", "A-main-text-source-inventory-reader", "B-signed-manifest-permission-budget", "C-server-source-hash-job-gate", "D-platform-capability-report"],
"completedSlices": ["A-default-deny-script-policy", "A-main-text-source-inventory-reader", "B-signed-manifest-permission-budget", "B-approved-key-still-sandbox-blocked-audit", "C-server-source-hash-job-gate", "D-platform-capability-report"],
"blockedSlices": ["A", "B", "C", "D", "E"],
"acceptance": ["web:test:script-main-reader", "web:e2e:N-025 script"],
"acceptance": ["web:test:script-main-reader", "web:test:scripting-isolation", "web:e2e:N-025 script"],
"dependencies": ["N-024"]
},
{

View File

@@ -1,8 +1,8 @@
{
"schemaVersion": 3,
"source": "docs/status/parity-ledger.json",
"sourceSha256": "086c3882eeabfa9f5bb746aca8da6294bff3415299a91106cc5cb40167907156",
"generatedAt": "2026-08-12T21:11:21.310Z",
"sourceSha256": "bc1de45b23987518f38d629361693bad977a49da69b509ade1bee0aee36e272f",
"generatedAt": "2026-08-12T23:22:09.909Z",
"families": [
{
"id": "N-015",
@@ -86,11 +86,12 @@
"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-editor-main-layer-frame-panel-partial",
"D-single-point-revision-bound-main-translation"
],
"blockedSlices": [
"C-material-modifier-full-semantics",
"D-full-2d-stroke-point-editor-dope-gizmo-restart",
"D-full-2d-canvas-multipoint-dope-gizmo-restart",
"E-desktop-browser-golden-export-opfs"
],
"acceptance": [
@@ -110,14 +111,16 @@
"completedSlices": [
"A-stroke-hit-weight-schema-budget-partial",
"A-three-raycast-source-face-barycentric-uv",
"A-bounded-cpu-candidate-falloff",
"B-main-vertex-color-partial",
"B-main-vertex-weight-normalize-partial",
"B-selected-vertex-color-weight-ui-transaction-partial"
"B-selected-vertex-color-weight-ui-transaction-partial",
"C-udim-memory-range-patch-hash-boundary"
],
"blockedSlices": [
"A-pbvh-occlusion-falloff",
"A-real-pbvh-depth-occlusion-desktop-falloff",
"B-clean-mirror-desktop-brush",
"C-packed-udim-color-dirty-atomic",
"C-blender-packed-udim-dirty-atomic-save",
"D-E-mask-selection-gpu-quota-golden-ui"
],
"acceptance": [
@@ -139,7 +142,8 @@
"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-content-addressed-frame-range-read-hash-gate",
"C-browser-transform-frame-binary-decoder"
],
"blockedSlices": [
"A-B-full-family-settings-effectors-cache-binding",
@@ -328,6 +332,7 @@
"A-default-deny-script-policy",
"A-main-text-source-inventory-reader",
"B-signed-manifest-permission-budget",
"B-approved-key-still-sandbox-blocked-audit",
"C-server-source-hash-job-gate",
"D-platform-capability-report"
],
@@ -340,6 +345,7 @@
],
"acceptance": [
"web:test:script-main-reader",
"web:test:scripting-isolation",
"web:e2e:N-025 script"
],
"dependencies": [
@@ -435,7 +441,7 @@
],
"command": "npm --prefix web run release:sbom",
"exitCode": 0,
"durationMs": 352,
"durationMs": 361,
"output": "> blender-web-editor@0.1.0 release:sbom\n> node ../tools/web/generate-sbom.mjs\n\nsbom-ok packages=150 sha256=8b04215a993f62ba64e0adcb1ba36ac830191f8215bf8cf2681fdf7bbb63da30",
"artifactSha256": [
"8b04215a993f62ba64e0adcb1ba36ac830191f8215bf8cf2681fdf7bbb63da30",
@@ -453,8 +459,8 @@
],
"command": "npm --prefix web run test:e2e -- --workers=1 && npm --prefix web run test:browser",
"exitCode": 0,
"durationMs": 137892,
"output": "D profiles at the protocol boundary (1.0s)\n ✓ 71 tests/e2e/smoke.spec.ts:1826:1 normalizes skin influences and rejects shape-key loss explicitly (1.0s)\n ✓ 72 tests/e2e/smoke.spec.ts:1851:1 remaps skin weights and shape keys through the native Collapse worker path (1.3s)\n ✓ 73 tests/e2e/smoke.spec.ts:1907:1 reports GLB export blockers before any binary export (1.0s)\n ✓ 74 tests/e2e/smoke.spec.ts:1919:1 blocks Shader graphs that cannot be mapped to glTF PBR (978ms)\n ✓ 75 tests/e2e/smoke.spec.ts:1946:1 maps bounded RGB and Value Shader constants to glTF PBR factors (981ms)\n ✓ 76 tests/e2e/smoke.spec.ts:1979:1 exports a local SceneIR mesh as a standards-shaped GLB (992ms)\n ✓ 77 tests/e2e/smoke.spec.ts:2012:1 keeps per-vertex UV and color attributes in GLB output (978ms)\n ✓ 78 tests/e2e/smoke.spec.ts:2039:1 evaluates modifier dependency order and blocks unevaluated or cyclic stacks (1.0s)\n ✓ 79 tests/e2e/smoke.spec.ts:2054:1 embeds local textures and exports glTF skin and animation records (999ms)\n ✓ 80 tests/e2e/smoke.spec.ts:2104:1 reports lightweight budget violations without altering usage (1.0s)\n ✓ 81 tests/e2e/smoke.spec.ts:2122:1 aggregates project, collection, object and LOD budgets without double counting LOD (979ms)\n ✓ 82 tests/e2e/smoke.spec.ts:2148:1 round-trips LOD geometry through the local binary mesh cache container (1.0s)\n ✓ 83 tests/e2e/smoke.spec.ts:2172:1 blocks ImageIR paths outside the project asset sandbox (1.3s)\n ✓ 84 tests/e2e/smoke.spec.ts:2215:1 extracts Blender packed image bytes through the local asset request API (1.3s)\n ✓ 85 tests/e2e/smoke.spec.ts:2260:1 matches Blender Depsgraph deformation golden within the declared error budget (1.3s)\n ✓ 86 tests/e2e/smoke.spec.ts:2299:1 evaluates the full Blender Depsgraph or reports its safe capability gate (1.4s)\n ✓ 87 tests/e2e/smoke.spec.ts:2359:1 exports layered Action keyframes through SceneIR (1.3s)\n ✓ 88 tests/e2e/smoke.spec.ts:2400:1 patches changed mesh buffer ranges without replacing stable topology (1.0s)\n ✓ 89 tests/e2e/smoke.spec.ts:2424:1 renders through the capability-gated OffscreenCanvas worker (1.3s)\n ✓ 90 tests/e2e/smoke.spec.ts:2437:1 coalesces linked mesh objects into a raycastable instance group (1.9s)\n ✓ 91 tests/e2e/smoke.spec.ts:2445:1 returns structured gates for the undeclared capability protocols (1.2s)\n ✓ 92 tests/e2e/smoke.spec.ts:2504:1 exposes PBR-007 to PBR-012 renderer security gates (1.0s)\n ✓ 93 tests/e2e/smoke.spec.ts:2538:1 transfers packed raster assets into the PBR viewport with an explicit status (2.0s)\n ✓ 94 tests/e2e/smoke.spec.ts:2547:1 uses the same packed texture payload in the OffscreenCanvas renderer (1.5s)\n\n 94 passed (2.2m)\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.6s)\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:1291271) 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:1291283) 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:1295654) 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:1295666) 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": 147877,
"output": "and LOD profiles at the protocol boundary (1.1s)\n ✓ 73 tests/e2e/smoke.spec.ts:1866:1 normalizes skin influences and rejects shape-key loss explicitly (1.1s)\n ✓ 74 tests/e2e/smoke.spec.ts:1891:1 remaps skin weights and shape keys through the native Collapse worker path (1.4s)\n ✓ 75 tests/e2e/smoke.spec.ts:1947:1 reports GLB export blockers before any binary export (1.1s)\n ✓ 76 tests/e2e/smoke.spec.ts:1959:1 blocks Shader graphs that cannot be mapped to glTF PBR (1.0s)\n ✓ 77 tests/e2e/smoke.spec.ts:1986:1 maps bounded RGB and Value Shader constants to glTF PBR factors (1.0s)\n ✓ 78 tests/e2e/smoke.spec.ts:2019:1 exports a local SceneIR mesh as a standards-shaped GLB (1.0s)\n ✓ 79 tests/e2e/smoke.spec.ts:2052:1 keeps per-vertex UV and color attributes in GLB output (1.0s)\n ✓ 80 tests/e2e/smoke.spec.ts:2079:1 evaluates modifier dependency order and blocks unevaluated or cyclic stacks (1.1s)\n ✓ 81 tests/e2e/smoke.spec.ts:2094:1 embeds local textures and exports glTF skin and animation records (1.1s)\n ✓ 82 tests/e2e/smoke.spec.ts:2144:1 reports lightweight budget violations without altering usage (1.0s)\n ✓ 83 tests/e2e/smoke.spec.ts:2162:1 aggregates project, collection, object and LOD budgets without double counting LOD (1.0s)\n ✓ 84 tests/e2e/smoke.spec.ts:2188:1 round-trips LOD geometry through the local binary mesh cache container (1.0s)\n ✓ 85 tests/e2e/smoke.spec.ts:2212:1 blocks ImageIR paths outside the project asset sandbox (1.3s)\n ✓ 86 tests/e2e/smoke.spec.ts:2255:1 extracts Blender packed image bytes through the local asset request API (1.3s)\n ✓ 87 tests/e2e/smoke.spec.ts:2300:1 matches Blender Depsgraph deformation golden within the declared error budget (1.4s)\n ✓ 88 tests/e2e/smoke.spec.ts:2339:1 evaluates the full Blender Depsgraph or reports its safe capability gate (1.4s)\n ✓ 89 tests/e2e/smoke.spec.ts:2399:1 exports layered Action keyframes through SceneIR (1.3s)\n ✓ 90 tests/e2e/smoke.spec.ts:2440:1 patches changed mesh buffer ranges without replacing stable topology (1.0s)\n ✓ 91 tests/e2e/smoke.spec.ts:2464:1 renders through the capability-gated OffscreenCanvas worker (1.3s)\n ✓ 92 tests/e2e/smoke.spec.ts:2477:1 coalesces linked mesh objects into a raycastable instance group (1.9s)\n ✓ 93 tests/e2e/smoke.spec.ts:2485:1 returns structured gates for the undeclared capability protocols (1.2s)\n ✓ 94 tests/e2e/smoke.spec.ts:2544:1 exposes PBR-007 to PBR-012 renderer security gates (1.1s)\n ✓ 95 tests/e2e/smoke.spec.ts:2578:1 transfers packed raster assets into the PBR viewport with an explicit status (2.0s)\n ✓ 96 tests/e2e/smoke.spec.ts:2587:1 uses the same packed texture payload in the OffscreenCanvas renderer (1.9s)\n\n 96 passed (2.3m)\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.2s)\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.7s)\n\n[WebServer] (node:1350053) 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:1350065) 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:1355845) 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:1355857) 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": [
"c726ef40a81b39b479a955a1fb1932ceaef4a87cefc6443f9e4c0c96de1b814c"
]
@@ -466,8 +472,8 @@
],
"command": "npm --prefix web run test:release-performance",
"exitCode": 0,
"durationMs": 86656,
"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\":85598,\"heapBytes\":67108864},{\"target\":1000000,\"ratio\":1,\"outputTriangles\":1000000,\"elapsedMs\":519,\"heapBytes\":346554368}]\n\nHeap resize call from 67108864 to 80543744 took 0.2532260000007227 msecs. Success: true\nHeap resize call from 80543744 to 96665600 took 0.07346400000096764 msecs. Success: true\nHeap resize call from 96665600 to 115998720 took 0.06714100000681356 msecs. Success: true\nHeap resize call from 115998720 to 139198464 took 0.033462000006693415 msecs. Success: true\nHeap resize call from 139198464 to 167051264 took 1.5294449999928474 msecs. Success: true\nHeap resize call from 167051264 to 200474624 took 1.4542700000019977 msecs. Success: true\nHeap resize call from 200474624 to 240582656 took 1.41858699999284 msecs. Success: true\nHeap resize call from 240582656 to 288751616 took 1.3971560000063619 msecs. Success: true\nHeap resize call from 288751616 to 346554368 took 1.3646670000016456 msecs. Success: true",
"durationMs": 89206,
"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\":88134,\"heapBytes\":67108864},{\"target\":1000000,\"ratio\":1,\"outputTriangles\":1000000,\"elapsedMs\":535,\"heapBytes\":346554368}]\n\nHeap resize call from 67108864 to 80543744 took 0.2166599999909522 msecs. Success: true\nHeap resize call from 80543744 to 96665600 took 0.10756300001230557 msecs. Success: true\nHeap resize call from 96665600 to 115998720 took 0.04437800000596326 msecs. Success: true\nHeap resize call from 115998720 to 139198464 took 1.4113389999984065 msecs. Success: true\nHeap resize call from 139198464 to 167051264 took 1.4725370000087423 msecs. Success: true\nHeap resize call from 167051264 to 200474624 took 1.4998959999938961 msecs. Success: true\nHeap resize call from 200474624 to 240582656 took 1.49847900000168 msecs. Success: true\nHeap resize call from 240582656 to 288751616 took 1.4405399999959627 msecs. Success: true\nHeap resize call from 288751616 to 346554368 took 1.4891829999978654 msecs. Success: true",
"artifactSha256": [
"c726ef40a81b39b479a955a1fb1932ceaef4a87cefc6443f9e4c0c96de1b814c"
]
@@ -479,7 +485,7 @@
],
"command": "npm --prefix web run test:malicious-blends",
"exitCode": 0,
"durationMs": 509,
"durationMs": 561,
"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"
@@ -492,8 +498,8 @@
],
"command": "WEB_TEST_PORT=5323 npm --prefix web run test:asset-library",
"exitCode": 0,
"durationMs": 3993,
"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:672:1 validates N-023 asset catalogs, library graphs, archive budgets and IO gates (1.5s)\n\n 1 passed (3.2s)\n\n[WebServer] (node:1296131) 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:1296143) 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": 4132,
"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:711: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:1356360) 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:1356372) 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": [
"6169748c5bf78a8e101196e964db67b8a65c2ba95bb3b4a54e052721be01a7bf"
]
@@ -503,8 +509,8 @@
"fields": [],
"command": "npm --prefix web run test:release-package",
"exitCode": 0,
"durationMs": 4738,
"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...✓ 44 modules transformed.\nrendering chunks...\ncomputing gzip size...\ndist/index.html 0.45 kB │ gzip: 0.29 kB\ndist/assets/storage.worker-CnSyBTao.js 35.90 kB\ndist/assets/web-engine.worker-awSIju8U.js 242.93 kB\ndist/assets/viewport-render.worker-B2Y56q7a.js 555.34 kB\ndist/assets/web_engine-sUS61MK9.wasm 15,032.79 kB │ gzip: 3,557.59 kB\ndist/assets/index-C4cauSFG.css 11.20 kB │ gzip: 3.14 kB\ndist/assets/index-CALwrj_3.js 884.99 kB │ gzip: 238.44 kB\n\n✓ built in 598ms\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=31928384\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": 4871,
"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...✓ 45 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-BpNH8d2z.js 243.09 kB\ndist/assets/viewport-render.worker-B2Y56q7a.js 555.34 kB\ndist/assets/web_engine-sUS61MK9.wasm 15,032.79 kB │ gzip: 3,557.59 kB\ndist/assets/index-C4cauSFG.css 11.20 kB │ gzip: 3.14 kB\ndist/assets/index-B3UcZYVN.js 890.91 kB │ gzip: 239.96 kB\n\n✓ built in 561ms\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=31935334\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",
"c726ef40a81b39b479a955a1fb1932ceaef4a87cefc6443f9e4c0c96de1b814c"
@@ -518,12 +524,12 @@
],
"command": "npm --prefix web run release:offline",
"exitCode": 0,
"durationMs": 35842,
"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...✓ 44 modules transformed.\nrendering chunks...\ncomputing gzip size...\ndist/index.html 0.45 kB │ gzip: 0.29 kB\ndist/assets/storage.worker-CnSyBTao.js 35.90 kB\ndist/assets/web-engine.worker-awSIju8U.js 242.93 kB\ndist/assets/viewport-render.worker-B2Y56q7a.js 555.34 kB\ndist/assets/web_engine-sUS61MK9.wasm 15,032.79 kB │ gzip: 3,557.59 kB\ndist/assets/index-C4cauSFG.css 11.20 kB │ gzip: 3.14 kB\ndist/assets/index-CALwrj_3.js 884.99 kB │ gzip: 238.44 kB\n\n✓ built in 582ms\nsbom-ok packages=150 sha256=8b04215a993f62ba64e0adcb1ba36ac830191f8215bf8cf2681fdf7bbb63da30\noffline-release-ok binary=7537432 source=205687508 sha256=b94dbeaf0550339918d24201a68642e7f792607461bd707d7434bbe5feeccdac\nsbom-ok packages=150 sha256=8b04215a993f62ba64e0adcb1ba36ac830191f8215bf8cf2681fdf7bbb63da30\noffline-release-ok binary=7537432 source=205687508 sha256=b94dbeaf0550339918d24201a68642e7f792607461bd707d7434bbe5feeccdac\noffline-reproducibility-ok binary=b94dbeaf0550339918d24201a68642e7f792607461bd707d7434bbe5feeccdac source=8fd6799861efbee5d8dcc1702adc97ff5612f5da646776f727bc97573db13585\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": 36624,
"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...✓ 45 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-BpNH8d2z.js 243.09 kB\ndist/assets/viewport-render.worker-B2Y56q7a.js 555.34 kB\ndist/assets/web_engine-sUS61MK9.wasm 15,032.79 kB │ gzip: 3,557.59 kB\ndist/assets/index-C4cauSFG.css 11.20 kB │ gzip: 3.14 kB\ndist/assets/index-B3UcZYVN.js 890.91 kB │ gzip: 239.96 kB\n\n✓ built in 563ms\nsbom-ok packages=150 sha256=8b04215a993f62ba64e0adcb1ba36ac830191f8215bf8cf2681fdf7bbb63da30\noffline-release-ok binary=7542083 source=205692822 sha256=2669cf265c02d463c5ade98bae4d671dfc443f1973b6a9fb77ee29613923287b\nsbom-ok packages=150 sha256=8b04215a993f62ba64e0adcb1ba36ac830191f8215bf8cf2681fdf7bbb63da30\noffline-release-ok binary=7542083 source=205692822 sha256=2669cf265c02d463c5ade98bae4d671dfc443f1973b6a9fb77ee29613923287b\noffline-reproducibility-ok binary=2669cf265c02d463c5ade98bae4d671dfc443f1973b6a9fb77ee29613923287b source=ee2cbbe62f42abae959bd5e3d1aa4cc5bee491ae23a85fa50b7519dc6a2549b0\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": [
"b94dbeaf0550339918d24201a68642e7f792607461bd707d7434bbe5feeccdac",
"8fd6799861efbee5d8dcc1702adc97ff5612f5da646776f727bc97573db13585",
"46c691c2ec192486527ac5b3b94091f9f0e53c1a2185bf18ec3276001167f948"
"2669cf265c02d463c5ade98bae4d671dfc443f1973b6a9fb77ee29613923287b",
"ee2cbbe62f42abae959bd5e3d1aa4cc5bee491ae23a85fa50b7519dc6a2549b0",
"3d807f874e9703322a69318c856ff493dd7489357f06dc78f3496c7a46a30612"
]
}
]