2.8 KiB
M12-03D Status
status: done task: append one dependency closure through WASM Main in one transaction updated: 2026-08-17 America/New_York enablingTask: false parityStateChange: false
Scope
The browser Worker validates a source-hash-bound APPEND binding and sends one Object closure to the authoritative Blender Main. Blender's native link/append context recursively imports the Object, Mesh, Material, and packed Image, verifies that every resulting ID is local and writable, and publishes one SceneIR revision. The existing Main history transaction is used for rollback and undo/redo; the source is never treated as a linked read-only snapshot.
Evidence
EM_CACHE=/home/mes123456/workinf_Blender_Wasm/.emcache cmake --build build_web_blender6 --target web_engine -- -j2passed; the generated module exports_web_engine_append_library_object.npm --prefix web run typecheckpassed.WEB_TEST_PORT=5194 npm --prefix web run test:library-main-appendpassed in Chromium.- The test opens a clean
.blend, appends the desktop fixture closure throughWebEngineClient, verifiestransactionCount=1, fourLOCAL_MAINmappings, stable Object/Mesh/Material/Image IDs, the material-to-image dependency, and a single revision increment. - A stale base revision returns
REVISION_CONFLICT; a second append colliding with the local IDs returnsASSET_MANIFEST_INVALIDwithout changing the revision. Undo removes the closure, redo restores it, and a saved buffer reopens with the same local image and Object dependency. - The Worker closure check accepts both the reader's
material.imageIdsrepresentation and the Blender node-levelimageIdrepresentation; it does not infer ownership from a preview.
Artifact hashes
- test:
7130453cbc81f22eb1bcf598ff3745672ac8177dccb11cef667f5b68b43e87c6 - worker:
e3bb430e401144bf17cdcbd0de13cde0a4f904f1f9ff9d5b10a73d90f0d4c648 - protocol:
bfd98561cbe797d7b8f07c92c53a25460c839a64ab7222b7795cf58d54dff8d7 - source
.blend:5b60d02926efd588a6ca300ba31414cdf37dbc48786c17b383a70319057c0606 - clean target
.blend:9b1ecbcc3d7f8079ee5469de64193ffcaa0a7b01e0f2ac340bbb18aa88734a63 - WASM JS:
9c831d0351ac9d0714cce3b1da748cba416ced3086e3c59595cf24ac4da459ed - WASM binary:
7821f408687e455c6f4e185fc3741c199c1c60d409836a2fe1b32f521d81e0ea - Main append API:
5a71260c542fa559f73c6b82e23e72d39bd2844f5ebe12c6edc809a49d79791b - Main append implementation:
d0c484ab62e6ec051c8c2f67c49d750a456578aaccc2aa4f461026307af0db95
Next task
M12-03E: append undo/redo/save/reopen and the desktop canonical report must agree.
Rollback
Remove the M12-03D Worker/e2e test, package command, WASM append export and Main append entrypoint,
restore the material closure check, and move the machine queue back to M12-03D. No V1 release
ledger rollback is required.