60 lines
3.0 KiB
Markdown
60 lines
3.0 KiB
Markdown
# 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.
|