Checkpoint web parity through Chromium input tasks
This commit is contained in:
55
docs/status/M12-07C.md
Normal file
55
docs/status/M12-07C.md
Normal file
@@ -0,0 +1,55 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user