46 lines
2.1 KiB
Markdown
46 lines
2.1 KiB
Markdown
# M12-02E Status
|
|
|
|
status: done
|
|
task: deduplicate identical preview content without merging asset metadata
|
|
updated: 2026-08-17 America/New_York
|
|
enablingTask: true
|
|
parityStateChange: false
|
|
|
|
## Scope
|
|
|
|
Two catalog assets with distinct Blender weak-reference identities and distinct catalog metadata
|
|
may bind the same verified preview content. The M12-02D coordinator keys OPFS storage only by the
|
|
content SHA-256, while catalog entries and preview identity hashes remain asset-specific. A second
|
|
commit of identical bytes reuses the existing payload after a full readback/hash check.
|
|
|
|
No catalog metadata is derived from or stored inside the shared payload record. Each transaction
|
|
updates only its targeted asset's preview field and advances the guarded catalog revision.
|
|
|
|
## Evidence
|
|
|
|
- `WEB_TEST_PORT=5597 npm --prefix web run test:asset-preview-dedup` passed the artifact unit test
|
|
1/1 and real Chromium OPFS/IndexedDB test 1/1.
|
|
- Two distinct asset/identity hashes committed at revisions 8 and 9; the second commit reported
|
|
`deduplicated=true` and the OPFS content directory contained exactly one final file.
|
|
- Both catalog entries referenced the same 513-byte/hash payload while their complete non-preview
|
|
metadata remained byte-for-byte equal to their different baseline records.
|
|
- Database reopen reproduced revision 9, the second asset head receipt, and the shared preview;
|
|
stored payload bytes rehashed to the declared content digest.
|
|
|
|
## Artifact Hashes
|
|
|
|
- Chromium suite: `4e53b7a35eb109b152bd6dc0c3348dcb08879d17619968d37fc761c67aa38b40`
|
|
- unit suite: `e023fdd33e0f40c1331dfdd73cd287dc684256b9d134971ab17db8cfe2a83835`
|
|
- manifest: `7d25f1d8335481795257c643c8589d1607a865634b27a7e5d145a57ce2a92a62`
|
|
- package commands: `5a83676e821bb768f6d3e282ea4728413cf84c5f3d57672fc664fac3883873e5`
|
|
|
|
## Next Task
|
|
|
|
`M12-02F`: quarantine corrupt preview content while keeping asset metadata readable.
|
|
|
|
## Rollback
|
|
|
|
Remove the deduplication Chromium/unit suites, M12-02E manifest, package command, and this status
|
|
entry. Restore M12-02E to pending and `nextTask` to M12-02E. The shared coordinator and parity
|
|
ledger do not require rollback.
|