Advance Blender 5.2 web parity through M12-03D
This commit is contained in:
52
docs/status/M12-03D.md
Normal file
52
docs/status/M12-03D.md
Normal file
@@ -0,0 +1,52 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user