# M12-02A Status status: done task: inventory Blender preview dimensions, color semantics, and no-preview state updated: 2026-08-17 America/New_York enablingTask: true parityStateChange: false ## Scope The machine inventory binds Blender 5.2 PreviewImage DNA, slot enum, BKE/RNA implementation, Blend reader, asset preview generator, render-size constants, current Web v1/v2 preview protocols, and two runtime fixtures. It records both ICON and PREVIEW slots, persisted dimensions/flags/pixel arrays, runtime-only state, and absent-pointer behavior. Preview pixels are packed 32-bit RGBA with four byte components and Blender's deferred load path premultiplies alpha. PreviewImage has no persisted or RNA color-space field, and float access only divides byte components by 255 without a color transform. The inventory therefore records color space as unknown instead of assuming sRGB. ## Evidence - `npm --prefix web run test:asset-preview-inventory` launched locked Blender 5.2 twice and reported `slots=2 rna=9 absent=3 loaded=8x8 next=M12-02B`. - The checked-in asset fixture reopened with Object, Material, and World `preview == null`. - A real 8x8 PNG loaded through Blender's preview API produced an 8x8 PREVIEW slot, 32x32 ICON slot, 64/256 image packed/float counts, and 1024 icon packed pixels. - Typecheck, lint, status consistency, and `git diff --check` passed. ## Artifact Hashes - inventory: `a4427426d94afdf1a2ccf5379d76d1797f8604a742a3f0d15bdca629272864bd` - checker: `c9cc83d21bac5f34c6d68cb1225dffcd92a5ec76c158ddce909b620cbbcb245c` - package command: `04f832a3c5773c8cc5294ecdcf175478eed9710496e48c63698d79043384e328` ## Next Task `M12-02B`: define preview source/content SHA-256, MIME, dimensions, and generator identity. ## Rollback Remove the M12-02A inventory, checker, package command, and this status entry. Restore M12-02A to pending and `nextTask` to M12-02A. No parity ledger rollback is required.