Files
workinf_Blender_Wasm/docs/status/M12-01A.md
mes123456 5a11045ca5
Some checks are pending
M6 deployable RC / quick (push) Waiting to run
M6 deployable RC / chromium (push) Blocked by required conditions
M6 deployable RC / release (push) Blocked by required conditions
Advance Blender 5.2 web parity through M12-03D
2026-08-17 17:30:27 -04:00

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.