Checkpoint web parity through Chromium input tasks
This commit is contained in:
57
docs/status/M12-06B.md
Normal file
57
docs/status/M12-06B.md
Normal file
@@ -0,0 +1,57 @@
|
||||
# M12-06B Status
|
||||
|
||||
status: done
|
||||
task: compare desktop GLB topology, attributes, materials, nodes, and animations in Web
|
||||
updated: 2026-08-18 America/New_York
|
||||
enablingTask: true
|
||||
parityStateChange: false
|
||||
|
||||
## Scope
|
||||
|
||||
The production TypeScript GLB parser now exposes a canonical bounded semantic surface for the five
|
||||
M12-06A desktop fixtures. It validates referenced accessors, nodes, materials, textures, skins, and
|
||||
animation samplers before returning primitive topology, sorted attributes, PBR material fields,
|
||||
node hierarchy/TRS, skin bindings, and animation channels. A field-level comparator checks that Web
|
||||
semantics exactly match the pinned Blender 5.2 desktop report.
|
||||
|
||||
Both Node and a real Chromium Worker consume the exact committed GLB bytes and verify each source
|
||||
SHA-256 before comparing all five domains. The existing summary import API remains compatible. This
|
||||
task does not create Blender Main data or expose GLB in the file picker; the runtime route remains
|
||||
`BLOCKED_UNTIL_MAIN_PERSISTENCE` until M12-06C proves save/reopen and stable IDs.
|
||||
|
||||
## Evidence
|
||||
|
||||
- `node --test web/tests/unit/glb-desktop-import.test.mjs` passed 3/3: five exact fixture imports,
|
||||
separate domain assertions, and a stable field-level PBR mismatch.
|
||||
- `node tools/web/check-glb-desktop-import.mjs` passed: 5 fixtures, 5 compared domains, exact
|
||||
desktop/Web canonical hashes, deterministic report regeneration, and the blocked route state.
|
||||
- `CHROME_PATH=/usr/bin/google-chrome-stable WEB_TEST_PORT=5425 node_modules/.bin/playwright test
|
||||
--config playwright.config.ts --workers=1 tests/e2e/glb-desktop-import.spec.ts` passed 1/1 from
|
||||
the `web/` directory using Chrome 150. The Worker verified source SHA-256 and all five semantic
|
||||
comparisons.
|
||||
- `npm --prefix web run typecheck`, `npm --prefix web run test:status-consistency`, and
|
||||
`git diff --check` passed. The package hash remains
|
||||
`cfb232baa494ff59f6c8d65514a08c86332ee9354350b2a0392b6f932a7ee42c`.
|
||||
|
||||
## Artifact Hashes
|
||||
|
||||
- parent manifest: `e3554a1e739cbe3f217f6169130532365538b0c0eafbb97afc58d4d56c4287cb`
|
||||
- protocol: `45d9a7912c4a59a552789a8ea0dfaff5f1849f8d213f14d238de024b77acdb0d`
|
||||
- generator: `6f97527b7da04c7b4f9b09c48b9f367d1270db9f7820498d33832a80754436c2`
|
||||
- checker: `804a4b5545d95d7ab1ba265469a981d0a10b71dab36f0c96283eb73b401443d2`
|
||||
- unit: `6bf2a96b3e43e5fae93589ea5dcf98e7a69b10266378e442988198925286a8d8`
|
||||
- Chromium Worker: `eb32049631113270fb62acb7ae9379e8ff9a03e38086db2fa309c6891cd707bf`
|
||||
- Chromium test: `fa3e06419c918406f24b5a4260523bd94cfe729a84786e9434517fdfed624d45`
|
||||
- Web import report: `79933888cc5aa2d1e3639ec349ca4c31d028fe89f751ebb8d4342f06d15ecfc2`
|
||||
- manifest: `5275310394b34726a05b30ab67658e1381662dddf9163a97cb02f47f646a8fa4`
|
||||
|
||||
## Next Task
|
||||
|
||||
`M12-06C`: create authoritative Main data from the imported GLB, save `.blend`, reopen it, and
|
||||
compare stable IDs.
|
||||
|
||||
## Rollback
|
||||
|
||||
Remove the canonical Web import surface, report generator/checker, Node/Chromium tests, report,
|
||||
manifest, and this status entry. Restore M12-06A as the queue tail and move the machine queue back to
|
||||
`M12-06B`. No parity ledger rollback is required.
|
||||
Reference in New Issue
Block a user