Files
workinf_Blender_Wasm/docs/status/M12-07C.md
mes123456 380cbed4ff
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
Checkpoint web parity through Chromium input tasks
2026-08-19 10:39:03 -04:00

56 lines
3.1 KiB
Markdown

# M12-07C Status
status: done
task: Web-to-desktop OBJ round-trip and loss report
updated: 2026-08-18 America/New_York
enablingTask: false
parityStateChange: false
## Scope
The bounded TypeScript OBJ protocol parses positive and negative indices, position/UV/normal streams,
objects/groups/faces, MTL `map_Kd`, and stable budgets; it serializes a deterministic Web OBJ/MTL pair
and emits a machine loss report for unbound texture origins. A Chromium Worker consumes the M12-07B
double-object fixture, then a new pinned Blender 5.2 process imports the Web output with split groups.
## Evidence
- `node --test web/tests/unit/obj-import.test.mjs` passed 3/3 for negative-index resolution,
deterministic serialization, bound/unbound texture loss, malformed face arity, and index range.
- `CHROME_PATH=/usr/bin/google-chrome-stable WEB_TEST_PORT=5460 node_modules/.bin/playwright test
--config playwright.config.ts --workers=1 tests/e2e/obj-web-roundtrip.spec.ts` passed 1/1 in Chrome
150. Browser output has 2 objects, 6 positions/UVs, 2 normals, 2 faces, 2 materials; bound texture
loss is zero and missing texture loss contains two `OBJ_TEXTURE_ORIGIN_UNRESOLVED` warnings.
- The test writes the browser OBJ/MTL and texture to an isolated directory, invokes pinned Blender
`wm.obj_import`, and compares 2 objects, 2 triangles, UVMap presence, and one material per object.
- `node tools/web/check-obj-web-roundtrip.mjs` passed the exact golden and artifact hash gate:
`obj-web-roundtrip-ok objects=2 triangles=2 lossWarnings=2 desktopExact=true next=M12-07D`.
- `npm --prefix web run typecheck`, Python compile, and `git diff --check` passed. Package hash remains
frozen; OBJ Web capability is still bounded and does not change N-023 parity.
## Artifact Hashes
- parent manifest: `785f593271058098704498cb0a7c948305087f1a83bf8f29b6e6fb9fe9341926`
- protocol: `e7240af65e0d90f3ee690a4e3f391416fe4744ac6c46edc8ac0d72386857cab9`
- Worker: `bf1fcc60ec318cf6c2747d44f4af741b46f284cf5f5307e142f0ab6d50b14302`
- desktop importer: `9f1eb4ab679255a0f1f596696e8befc33a4e30c0cbe6ea423e2aaa0314cec22d`
- checker: `9d53014f4b89f786c516ebe8d300030c2728e4a36a86a5ef136b2769a12ac96b`
- unit/Chromium: `485a669be5de8e370e9b5a3239357b028ba61ca5c4076819cd46aed52a5c210a` /
`93785b4017ba14b007926b0f82442f8ae5968f242a2a762e5f5dc77d36110f5b`
- report: `45eaffc9c2e50c84b557d13ebbe9f4f53b63e19e00bc69b272491ef6366dff81`
- fixture OBJ/MTL/PNG: `4ed3dced8445b03754cd3916ae2e8cf0dff85e6a5882f1c6f0a4a4e4c5251f6a` /
`80338f569c67a8b1616515ba878ffc72b26e93ef2e8c361131023fb14f132f5f` /
`44e4fd08bdda8403908349e2a62dcf103ce2d0851099fc61cd868d65ddbef78c`
- package: `cfb232baa494ff59f6c8d65514a08c86332ee9354350b2a0392b6f932a7ee42c`
- manifest: `0c639954900b1fcc3b8285d0f4c0ecfa5807df6cde6d1f2cd3b59c4636d71674`
## Next Task
`M12-07D`: split STL binary and ASCII capability declarations.
## Rollback
Remove the OBJ protocol, Worker, desktop importer, unit/E2E tests, checker, report, manifest, and this
status entry. Restore M12-07B as the queue tail and move the machine queue back to M12-07C. No parity
ledger rollback is required.