49 lines
2.2 KiB
Markdown
49 lines
2.2 KiB
Markdown
# M12-02B Status
|
|
|
|
status: done
|
|
task: define preview source, content, dimensions, MIME, and generator identity
|
|
updated: 2026-08-17 America/New_York
|
|
enablingTask: true
|
|
parityStateChange: false
|
|
|
|
## Scope
|
|
|
|
The schema binds source bytes and encoded content as separate SHA-256/length/MIME identities.
|
|
Encoded content additionally binds width, height, RGBA8, explicit sRGB, and alpha mode. Generator
|
|
identity binds name, Blender version, executable hash, generator script hash, and canonical
|
|
settings hash. A domain-separated canonical hash covers the complete record.
|
|
|
|
The locked Blender 5.2 generator re-encodes a real 8x8 PNG with explicit PNG RGBA8, compression,
|
|
display, view-transform, exposure, and gamma settings. The source and content encodings have
|
|
different hashes and lengths while a second Blender process confirms decoded pixels are exact.
|
|
|
|
## Evidence
|
|
|
|
- `npm --prefix web run test:asset-preview-identity` passed 3/3 protocol tests and the locked
|
|
Blender generator checker.
|
|
- Two independent generation runs matched the checked-in 513-byte content SHA-256 exactly; the
|
|
261-byte source has a different SHA-256, and decoded pixel maximum error is zero.
|
|
- Source bytes, content bytes, generator settings, dimensions, identity hash, and unknown fields
|
|
each have fail-closed negative coverage.
|
|
- Typecheck and `git diff --check` passed.
|
|
|
|
## Artifact Hashes
|
|
|
|
- protocol: `2a1d877af42424014097c669e9d44c21b27e3171be185320554693cbefcd7438`
|
|
- generator: `753a26be90f7d97828737ebc3a4ab88275a7c655b4f9992406c7c35fba6535ce`
|
|
- checker: `4d8ece1a5440d202f4e79a48f1f26bc75b3fb11a02d821b8ebc5aee14b11e41a`
|
|
- unit suite: `5b7b3ccaf410d627365579fa82bf2b48fed9ef17144aad963cdbd4bb7fbd4b5a`
|
|
- identity golden: `1b1eb8416ce4aa4d83b0dc42b9cb375f1da965e3f0cb9650991289fc619a0a7b`
|
|
- content PNG: `ff139c4a1c5d388c78c5168dfd3272e80ea0d1b15b3743e29a38cd908e8c70e7`
|
|
- manifest: `096f125461b963ee2c414f98f6bb00f02034a380a0cc9c43e0d84754324adb17`
|
|
|
|
## Next Task
|
|
|
|
`M12-02C`: enforce MIME, pixel, byte, and compression-ratio budgets before preview decode.
|
|
|
|
## Rollback
|
|
|
|
Remove the preview identity protocol, generator/checker, unit suite, M12-02B goldens, package
|
|
command, error code, and this status entry. Restore M12-02B to pending and `nextTask` to M12-02B.
|
|
No parity ledger rollback is required.
|