Checkpoint web parity through Chromium input tasks
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

This commit is contained in:
mes123456
2026-08-19 10:39:03 -04:00
parent 5a11045ca5
commit 380cbed4ff
634 changed files with 41862 additions and 212 deletions

56
docs/status/M12-06D.md Normal file
View File

@@ -0,0 +1,56 @@
# M12-06D Status
status: done
task: Web GLB export generates a machine-readable loss report
updated: 2026-08-18 America/New_York
enablingTask: false
parityStateChange: false
## Scope
The production GLB exporter now has a schema-1 deterministic loss-report wrapper. It records the
source SceneIR identity/revision, exportability, error/warning counts, sorted loss entries and the
bounded data-block surface. Chromium opens all five M12-06C authoritative Main fixtures and sends
their real snapshot/geometry/packed assets through the production exporter Worker. Exportable
PBR/UV/skin/animation outputs are byte-hashed; the mesh fixture's unsupported Color Attribute
shader is reported as `SHADER_GRAPH_UNMAPPABLE` and no GLB bytes are emitted.
This task reports the bounded exporter surface only. It does not claim lossless GLB round-trip,
desktop re-import, arbitrary shader mapping, or GLB file-picker import; those remain later M12-06E/G
tasks or explicit blockers.
## Evidence
- `node --test web/tests/unit/glb-loss-report.test.mjs` passed deterministic sorting/count semantics.
- `node tools/web/check-glb-loss-report.mjs` passed artifact hashes, parent Main fixture binding,
deterministic loss ordering, mesh fail-closed output, and four exportable fixture output hashes.
It reports `fixtures=5 blocked=mesh warnings=3`.
- `CHROME_PATH=/usr/bin/google-chrome-stable WEB_TEST_PORT=5445 node_modules/.bin/playwright test
--config playwright.config.ts --workers=1 tests/e2e/glb-export-loss-report.spec.ts` passed 1/1.
The test uses `WebEngineClient` and a production module Worker, requests packed image assets,
produces the report, and compares it byte-for-byte with the checked-in golden report.
- `npm --prefix web run typecheck` and `git diff --check` passed. `web/package.json` remains
unchanged so previous M12 package bindings stay valid.
## Artifact Hashes
- parent manifest: `e3a57636a47591e3b02dff5a07e8a0aec5e0dc43bf6b4829bffc811035dbbb31`
- export protocol: `a5d342827860a9e55b49a3bb3a196a01b1e53546325d6e594778afb9360c3125`
- loss report protocol: `dce9c790b2f52d46efe0908ecb044d63d21b3c6c3f7d77ddb5e697b29a7a2d6e`
- Worker: `6f6294d26fe7b717416a5dd25fe834fb4b9a2ecbe8b011395c9559a26701ec77`
- Chromium test: `ce334b6bb5d82c133d317e916c03711029fba1c19c634dec06c06da9eddbd776`
- checker: `a23346860fa26405b2cd24591b0ab36fea29cb561ec8c2991ecfeabcffc17ee1`
- unit: `dfcc2d968e4e0c0cef4496bc304cb481f10d1f0dc4c76a40ea1d6e2f11b6b708`
- web loss report: `c6db52234d867985ef5fbcdc7c62298ec9aaa013028b5a54e2b9a16aa4133397`
- package: `cfb232baa494ff59f6c8d65514a08c86332ee9354350b2a0392b6f932a7ee42c`
- manifest: `c01c5861d493e1f177e8cde3038bc5283a7671fa39bf84484662d307623325a2`
## Next Task
`M12-06E`: desktop Blender re-imports Web GLB and compares the canonical report.
## Rollback
Remove the loss-report protocol/Worker, checker, manifest, golden report, Chromium test, and this
status entry. Restore M12-06C as the queue tail and move the machine queue back to M12-06D. No parity
ledger rollback is required.