Advance Blender 5.2 web parity through M12-03D
This commit is contained in:
59
docs/status/M12-01A.md
Normal file
59
docs/status/M12-01A.md
Normal file
@@ -0,0 +1,59 @@
|
||||
# M12-01A Status
|
||||
|
||||
status: done
|
||||
task: inventory Blender 5.2 AssetMetaData, tag, and catalog fields
|
||||
updated: 2026-08-17 America/New_York
|
||||
enablingTask: true
|
||||
parityStateChange: false
|
||||
|
||||
## Scope
|
||||
|
||||
The machine inventory freezes the Blender 5.2 storage and public API surface needed before
|
||||
designing a full-parity Web catalog schema. It covers every `AssetMetaData` DNA member,
|
||||
the `AssetTag` storage and collection operations, actual `AssetMetaData` RNA properties,
|
||||
Blend read/write participation, `AssetCatalog` semantic/runtime fields, catalog definition
|
||||
file version/record order, path hierarchy rules, and the current Web v1 interface snapshot.
|
||||
|
||||
This task deliberately does not create the desktop catalog fixture, Web schema v2,
|
||||
migrations, IndexedDB behavior, or a new verified parity slice. In particular, a source
|
||||
inventory is not evidence that Web preserves or writes the inventoried fields.
|
||||
|
||||
## Findings
|
||||
|
||||
- `AssetMetaData` has 14 DNA members: 10 persisted semantic/UI members, custom
|
||||
`IDProperty` metadata, one runtime type pointer, one derived tag count, and ABI padding.
|
||||
The real Blender runtime exposes 10 RNA properties.
|
||||
- `author`, `description`, `copyright`, and `license` are optional dynamic strings. Empty
|
||||
values are valid Blender state; the existing Web v1 manifest currently requires non-empty
|
||||
author/license and has no description/copyright fields.
|
||||
- `catalog_id` is the authoritative RFC4122 identity. `catalog_simple_name` is a read-only
|
||||
recovery copy and cannot replace the UUID-to-path mapping.
|
||||
- Catalog hierarchy is implicit in a cleaned UTF-8 slash path. CDF v1 records
|
||||
`UUID:path:simple_name`; no parent UUID is stored. Duplicate paths are legal and resolve
|
||||
deterministically by first-loaded state and UUID.
|
||||
- Existing Web v1 directly represents catalog ID, tags, author, and license, but misses seven
|
||||
inventoried metadata semantics and models hierarchy as an explicit `parentId` graph.
|
||||
|
||||
## Evidence
|
||||
|
||||
- `npm --prefix web run test:asset-catalog-inventory` passed on the first complete run:
|
||||
`dna=14 rna=10 tag=3 catalog=3 gaps=7 next=M12-01B`.
|
||||
- The checker binds eight source SHA-256 values, extracts the RNA property declarations,
|
||||
launches `Blender 5.2.0 LTS --factory-startup --background`, compares the actual runtime
|
||||
property identifiers/types/read-only flags, verifies Blend IO markers and CDF v1 format,
|
||||
and uses the TypeScript AST to freeze the current Web interfaces.
|
||||
- The inventory manifest SHA-256 is
|
||||
`194d5fd0fef5044f5e82a51931a061e226445f0f53410af9dc0594c70a79e936`;
|
||||
the checker SHA-256 is
|
||||
`38839f47dbe82ad7931e5e444e124e87b64a604d9358be6d71cce7769439e57b`.
|
||||
|
||||
## Next Task
|
||||
|
||||
`M12-01B`: generate a desktop Blender 5.2 catalog v1 fixture and canonical JSON from the
|
||||
inventoried fields. Do not begin Web schema v2 until that desktop artifact is verified.
|
||||
|
||||
## Rollback
|
||||
|
||||
Remove the inventory manifest, checker, package command, and this status entry; restore
|
||||
M12-01A to pending and move `nextTask` back from M12-01B. No parity ledger rollback is
|
||||
needed because this enabling task did not change a family slice.
|
||||
Reference in New Issue
Block a user