Advance Blender 5.2 web parity through M12-03D
This commit is contained in:
55
docs/status/M12-03A.md
Normal file
55
docs/status/M12-03A.md
Normal file
@@ -0,0 +1,55 @@
|
||||
# M12-03A Status
|
||||
|
||||
status: done
|
||||
task: inventory append, link, and library override data-blocks and dependency closures
|
||||
updated: 2026-08-17 America/New_York
|
||||
enablingTask: true
|
||||
parityStateChange: false
|
||||
|
||||
## Scope
|
||||
|
||||
The machine inventory separately records Append, Link, and Library Override entry points,
|
||||
selectable data-block roots, non-root ID roles, direct/indirect/transitive/embedded dependency
|
||||
classes, terminal ownership actions, and override reference/hierarchy/property-operation fields.
|
||||
|
||||
The exact closure is an actual Blender Main ID pointer graph walked by
|
||||
`BKE_library_foreach_ID_link`, not a hard-coded Object-to-Mesh table. The inventory therefore
|
||||
preserves cross-library and override-only dependency distinctions needed by later ownership and
|
||||
invalidation contracts. It does not perform a library mutation or add a parity slice.
|
||||
|
||||
## Findings
|
||||
|
||||
- Blender 5.2 exposes 36 selectable library data-block collections. Screen and WorkSpace are
|
||||
append-only; Library is source/transitive metadata, while embedded Key IDs follow their owner.
|
||||
- Append can keep linked, reuse local, make local, or copy local after classifying direct,
|
||||
indirect, and liboverride-only dependencies. Recursive cross-library localization is explicit.
|
||||
- Link retains the source `Library`, direct `ID_TAG_EXTERN`, indirect `ID_TAG_INDIRECT`, and
|
||||
transitive parent-library relationships without localization.
|
||||
- Override retains a linked reference alongside a local override and hierarchy root. Its 17 RNA
|
||||
fields cover reference/root flags, property paths, operations, and local/reference subitems.
|
||||
- Current Web metadata represents only library source, dependency IDs, and read-only state; eight
|
||||
per-ID ownership, override, and invalidation semantics remain absent and mutation stays blocked.
|
||||
|
||||
## Evidence
|
||||
|
||||
- `npm --prefix web run test:library-operation-inventory` passed with
|
||||
`roots=36 appendOnly=2 operations=3 overrideFields=17 gaps=8 next=M12-03B`.
|
||||
- The checker binds nine Blender/Web source files and one real nested-library fixture by SHA-256,
|
||||
verifies link/append action and dependency-walk tokens, launches Blender 5.2, and compares the
|
||||
actual append/link operator properties, library collections, nested source, and override RNA.
|
||||
|
||||
## Artifact Hashes
|
||||
|
||||
- inventory: `0dcb16233b52b3c0be2373f489d6bf3c771c9d6564993ff98b5d63dcd322fef7`
|
||||
- checker: `1581490d1923578293202d27a1c379eb2a8c5e13be418547d148cf09c6a783fd`
|
||||
- package commands: `a7cf339b0cf6fab17ef63e9394b2e540af60327f7bf1f7fe95823d182e0d3e63`
|
||||
|
||||
## Next Task
|
||||
|
||||
`M12-03B`: define source library ID, owner, read-only state, and invalidation token for all three
|
||||
operations.
|
||||
|
||||
## Rollback
|
||||
|
||||
Remove the library operation inventory, checker, package command, and this status entry. Restore
|
||||
M12-03A to pending and the queue to M12-03A. No parity ledger rollback is required.
|
||||
Reference in New Issue
Block a user