Files
workinf_Blender_Wasm/docs/status/M12-06D.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.0 KiB

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.