3.2 KiB
M12-06C Status
status: done
task: import desktop GLB results into authoritative Main, save .blend, reopen, and compare stable IDs
updated: 2026-08-18 America/New_York
enablingTask: false
parityStateChange: false
Scope
The pinned Blender 5.2 desktop runtime imports each M12-06A GLB fixture and saves a .blend; the
generator reopens every saved file and requires the complete stable Object/Mesh/Material/Image/
Armature/Action ID set to remain unchanged. Chromium then opens those authoritative Main fixtures
through the production WebEngine, applies one Main-owned visibility edit, saves the resulting
.blend, reopens it in a fresh isolated open transaction, and compares the stable IDs with the
desktop baseline. The saved edit is checked after reopen and the open resource counters are zero for
input, staging, and active requests.
This task does not expose GLB in the normal .blend file picker, claim arbitrary glTF extensions,
or change the N-023 full-parity ledger. M12-06B remains the bounded Web GLB semantic parser and
M12-06D owns export loss reporting.
Evidence
node tools/web/check-glb-main-persistence.mjspassed the parent manifest, all artifact hashes, five desktop GLB/Main fixture bindings, stable-ID shape checks, and a fresh Blender regeneration with exact semantic report/stable-ID comparison.CHROME_PATH=/usr/bin/google-chrome-stable WEB_TEST_PORT=5437 node_modules/.bin/playwright test --config playwright.config.ts --workers=1 tests/e2e/glb-main-persistence.spec.tspassed 1/1. Every fixture opened in the production WebEngine, performed one authoritative visibility edit, serialized a changed.blend, reopened it, preserved all stable IDs, restored visibility=false, and returned zero active requests/input/staging resources.npm --prefix web run typecheckandgit diff --checkpassed. The existing package manifest was left unchanged so prior M12 evidence remains bound to its frozen package hash.
Artifact Hashes
- parent manifest:
5275310394b34726a05b30ab67658e1381662dddf9163a97cb02f47f646a8fa4 - generator:
8989d6ce4196f140a7bfb44b863dc530a6aa462ca4a57fa7b77c468e06ab61ad - checker:
5bbbbeaf2d20ff9bbdeb74c8dd10fa6ffc421d1d59f86540e95f29c2cfd10903 - desktop report:
76b000454a9073ef762d25fa546d5c65a004659a93eb6ec82fad1e679b2e81be - Chromium test:
7c97877f1cbbfd0166e106c80faee53f474f78816cca68ea924df5aa3c47776d - package:
cfb232baa494ff59f6c8d65514a08c86332ee9354350b2a0392b6f932a7ee42c - mesh
.blend:66e29adc016f07e220019b6f24eb7e5016c684dca4b3102b20c8e836968d422d - PBR
.blend:ba08aeb2876d82ddf731abe81d3a42041a1be36617d0b6324c870d5bcd4cc771 - UV
.blend:1270cb452d34d2fd7a19181a2b20f70b7a028bdd2db7cf1bba4e1003f7de0f48 - skin
.blend:23f175e44ec588c75db99d3f9134863fc3d7d1f192bbd815d5d1c4e3218bce0c - animation
.blend:fa6baf3a67ff11fe3d2922210089a7c508e4ee28bfaabe4cf628ba6addee1ff5 - manifest:
e3a57636a47591e3b02dff5a07e8a0aec5e0dc43bf6b4829bffc811035dbbb31
Next Task
M12-06D: Web export generates a machine loss report.
Rollback
Remove the M12-06C generator/checker, manifest, desktop Main fixtures, report, Chromium test, and this status entry. Restore M12-06B as the queue tail and move the machine queue back to M12-06C. No parity ledger rollback is required.