Files
workinf_Blender_Wasm/docs/status/M12-07C.md
mes123456 380cbed4ff
Some checks are pending
M6 deployable RC / quick (push) Waiting to run
M6 deployable RC / chromium (push) Blocked by required conditions
M6 deployable RC / release (push) Blocked by required conditions
Checkpoint web parity through Chromium input tasks
2026-08-19 10:39:03 -04:00

3.1 KiB

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.