Files
workinf_Blender_Wasm/docs/status/M12-01D.md
mes123456 5a11045ca5
Some checks failed
M6 deployable RC / quick (push) Has been cancelled
M6 deployable RC / chromium (push) Has been cancelled
M6 deployable RC / release (push) Has been cancelled
Advance Blender 5.2 web parity through M12-03D
2026-08-17 17:30:27 -04:00

49 lines
2.3 KiB
Markdown

# M12-01D Status
status: done
task: define and verify schema v1 to v2 forward migration
updated: 2026-08-17 America/New_York
enablingTask: true
parityStateChange: false
## Scope
The forward migration first validates the current production schema v1 manifest and rejects
undeclared fields before conversion. Canonical UUIDs are preserved; legacy catalog IDs map
deterministically through RFC 4122 UUIDv5 with a fixed namespace. The v1 parent graph becomes
Blender cleaned slash paths, and assets receive SHA-256 IDs from Blender weak-reference identity.
Logical revision is preserved. Author/license/tag/source bindings, optional source paths,
preview receipts, and the complete library dependency graph survive migration. Metadata absent
from v1 receives explicit defaults recorded in the migration report. The report binds canonical
source/target hashes and every legacy-to-v2 catalog/asset identity mapping.
## Evidence
- `npm --prefix web run test:asset-catalog-migration` passed 3/3.
- A schema v1 fixture with three catalogs, two asset kinds, one preview, two source bindings,
and two dependent libraries migrated to the checked-in schema v2 golden and exact report.
- Repeating the migration on a cloned source produced byte-equivalent semantic objects and the
same source/target SHA-256 values. A canonical source UUID remained unchanged.
- M12-01C regression, typecheck, lint, and `git diff --check` passed.
## Artifact Hashes
- migration protocol: `6d74bc5605f94e05208eda82830192d38f88066dfc409058555a8876c785f226`
- generator: `954d15c02d68e3f644b57c8c4c136ce09bd037a0af2012bf74b97f681c77dd60`
- unit suite: `6b927e7a8238e4e0a77cc0fdf783b099d8add22c5f875df2299012eb32730186`
- v1 fixture: `1cc43d181afefd63b53cb9c3626bb58195fad20187d6e534adc1ecbe65f75da5`
- v2 fixture: `38e5d1771b3d2d63ce5e10268eac4513f2043b0cbf71ab1799c1868bc2aa97fb`
- migration report: `57b972c1bbb9ae326c3f264c225c21546682442ff3194fbc343e1c46a2cd410a`
- manifest: `fea9e01b51f64a7e9c15dcfc521b3e84636525ffbe0a849f7a6f1b0be2b02e9d`
## Next Task
`M12-01E`: define the read-only/block policy when a schema v1 reader encounters schema v2.
## Rollback
Remove the migration protocol, generator, unit suite, M12-01D fixtures/report/manifest, package
command, and this status entry. Restore M12-01D to pending and `nextTask` to M12-01D. No parity
ledger rollback is required.