55 lines
2.8 KiB
Markdown
55 lines
2.8 KiB
Markdown
# M12-03E Status
|
|
|
|
status: done
|
|
task: append undo/redo/save/reopen and desktop canonical comparison
|
|
updated: 2026-08-17 America/New_York
|
|
enablingTask: false
|
|
parityStateChange: false
|
|
|
|
## Scope
|
|
|
|
The M12-03D WASM Main append path is compared with the M12-03C Blender 5.2 desktop canonical
|
|
report. One append transaction creates the Object/Mesh/Material/packed Image local closure and
|
|
advances exactly one SceneIR revision. Undo removes all four IDs, redo restores the canonical
|
|
graph, and a saved buffer reopens with the same graph and packed image pixels.
|
|
|
|
The image comparison normalizes Blender's bottom-up `Image.pixels` row order versus Canvas
|
|
top-down `ImageData`. Current SceneIR omits `Image.colorSpace`, so a missing field uses the desktop
|
|
canonical sRGB semantic default; an emitted colorspace must match it. All other graph, ID,
|
|
ownership, geometry, UV, material-slot, image metadata, and pixel hash fields remain exact. This
|
|
task does not claim Link, Library Override, or full N-023 IO parity.
|
|
|
|
## Evidence
|
|
|
|
- `node ../tools/web/check-library-main-append.mjs` passed the manifest, artifact hashes, canonical
|
|
desktop report, and required test markers.
|
|
- `WEB_TEST_PORT=5194 npm --prefix web run test:library-main-append` passed the checker and
|
|
Chromium 1/1. The browser test verified one transaction, four writable `LOCAL_MAIN` mappings,
|
|
one revision increment, complete Object -> Mesh -> Material -> Image closure, and exact
|
|
canonical graphs after append, redo, and save/reopen.
|
|
- A stale base revision returned `REVISION_CONFLICT`; a local ID collision returned
|
|
`ASSET_MANIFEST_INVALID` without changing the appended revision. Undo reported no Object, Mesh,
|
|
Material, or Image; redo restored the Object and canonical closure.
|
|
- The canonical packed image remained a 2x2 sRGB RGBA PNG with Float32 pixel SHA-256
|
|
`6f0f8c231d65149e69e6ed12d370bcfa095ef90adc202065492ea8c8ef17e45a`.
|
|
|
|
## Artifact Hashes
|
|
|
|
- checker: `7fba72c5a38c0877f03682b51cbaaaf6d9a5f315f2beddfdef432bc54b2f1cd2`
|
|
- test: `101f67d35c2320da57459f08a59687d769234b910dbd9aaec5a668cee7e0f9f0`
|
|
- package commands: `36a29c5be9bd6163b06cf3511edf77d932388fa0b75c08bdcec397e19c0ef45f`
|
|
- source `.blend`: `5b60d02926efd588a6ca300ba31414cdf37dbc48786c17b383a70319057c0606`
|
|
- clean target `.blend`: `9b1ecbcc3d7f8079ee5469de64193ffcaa0a7b01e0f2ac340bbb18aa88734a63`
|
|
- desktop report: `b1d7b8b9e832d18d69081f63981062800e0f00f0c9aec025b18274510ed76e2a`
|
|
- manifest: `beaa88ea0385225e712f9816072420bd8744c15da3229ddc352462abec407739`
|
|
|
|
## Next Task
|
|
|
|
`M12-03F`: desktop link fixture preserving source library and read-only ownership.
|
|
|
|
## Rollback
|
|
|
|
Remove the M12-03E checker, manifest, extended Chromium test, package command, and this status
|
|
entry. Restore M12-03D to pending and move the machine queue back to `M12-03D`. No parity ledger
|
|
rollback is required.
|