Files
workinf_Blender_Wasm/docs/status/M12-03D.md
mes123456 5a11045ca5
Some checks failed
M6 deployable RC / quick (push) Has been cancelled
M6 deployable RC / chromium (push) Has been cancelled
M6 deployable RC / release (push) Has been cancelled
Advance Blender 5.2 web parity through M12-03D
2026-08-17 17:30:27 -04:00

53 lines
2.8 KiB
Markdown

# 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 -- -j2` passed;
the generated module exports `_web_engine_append_library_object`.
- `npm --prefix web run typecheck` passed.
- `WEB_TEST_PORT=5194 npm --prefix web run test:library-main-append` passed in Chromium.
- The test opens a clean `.blend`, appends the desktop fixture closure through `WebEngineClient`,
verifies `transactionCount=1`, four `LOCAL_MAIN` mappings, 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
returns `ASSET_MANIFEST_INVALID` without 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.imageIds` representation and the
Blender node-level `imageId` representation; 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.