# M12-03B Status status: done task: define source library identity, owner, read-only state, and invalidation tokens updated: 2026-08-17 America/New_York enablingTask: true parityStateChange: false ## Scope Schema 1 derives `sourceLibraryId` from a canonical source locator and source `.blend` SHA-256. Each operation binding then fixes one source data-block, its operation-specific owner and read-only state, source generation/revision, dependency-closure SHA-256, and a hash-derived invalidation token. APPEND owns a writable local Main ID. LINK remains owned by the matching source library and is fully read-only. LIBRARY_OVERRIDE owns a writable local override while retaining a read-only linked reference and hierarchy root. This is a pure protocol task and does not mutate Blender Main. ## Evidence - `npm --prefix web run test:library-operation-identity` passed 6/6. - Stable source identity changes when either locator or source bytes change. - APPEND/LINK/LIBRARY_OVERRIDE produce distinct invalidation tokens for the same source root and reject owner substitution, read-only drift, reference substitution, unknown fields, and forgery. - Source library/hash, generation, revision, and dependency closure drift each return `REVISION_CONFLICT`; the unchanged state revalidates the original binding exactly. - The one initial test expectation was corrected to the actual fail-fast exact-schema code, then the complete suite was rerun successfully. ## Artifact Hashes - protocol: `5371133bd98e05935cd75bab582abedec32a36559af8d212f0bc8a534ef19451` - golden bindings: `b39c0f26697ac688c1203ae4e3e27d8a02686c7c9da9afc438c89a0b4d69370f` - unit suite: `0e5b2c82d481180eb8eb22de16ad8cdef5e58fa7423c26011faaffbac788e547` - manifest: `f388aedb9c0901932cf90c058f2f2b83259d9797cd6b144566a25e37a348c64b` - package commands: `48cf41f0d0041bf4f497bc2a454cfa9469874eded1775cea50fe3249d4e0b59e` ## Next Task `M12-03C`: create a desktop single-Object append fixture and record stable Object, Mesh, Material, and Image mappings. ## Rollback Remove the library operation identity protocol, golden, unit suite, manifest, package command, and this status entry. Restore M12-03B to pending and the queue to M12-03B. No parity ledger rollback is required.