# M12-03F Status status: done task: create a desktop linked Object fixture preserving source-library ownership updated: 2026-08-17 America/New_York enablingTask: true parityStateChange: false ## Scope Blender 5.2 creates a source library containing one Object with a Mesh, Material, and packed Image dependency closure. A clean target links only the selected Object with `bpy.data.libraries.load(link=True)`. The Object, Mesh, Material, and Image retain the source library pointer, have no library override, and map to read-only `SOURCE_LIBRARY` ownership. The target is saved, reopened in a new Main load, and compared to the pre-save linked graph. This task freezes the desktop LINK contract only. It does not implement a WASM link writer, linked mutation, reload/relocate, missing-library placeholders, or full N-023 parity. ## Evidence - `npm --prefix web run test:library-link-desktop` passed the manifest/artifact hash gate, Blender 5.2 generator rerun, and canonical report comparison. - The fixture links one root and four dependency IDs. All three dependency edges, 4 vertices, 4 edges, 1 polygon, 4 loops, `UVMap`, material slot, packed 2x2 sRGB RGBA image, and Float32 pixel SHA-256 `6f0f8c231d65149e69e6ed12d370bcfa095ef90adc202065492ea8c8ef17e45a` survive save/reopen. - Every linked ID reports `library=m12_link_source.blend` and `isLibraryOverride=false`; all four stable mappings are `SOURCE_LIBRARY/readOnly=true`. A temporary source/target regeneration matches the canonical report after normalizing only session-bound blend container hashes. ## Artifact Hashes - generator: `15a2e34c1c5b2a8ee63b10084dbb894e0f9677b9e1cf4adb7e2ddce6b4c965b1` - checker: `6a4c024bea227d7bc14f793467b91766b006459fe4d7717cc75dfee12f49f894` - source `.blend`: `fae97569e9d2e2066fc92749672f86cc42717cd9b97b012faeb9eb92015d7fd1` - target `.blend`: `acdaf0f297deb08c84e1a8beba30972e3414ef62e60e3b103fe0661199c438a1` - desktop report: `b278d4c254eff63d41c8cb3ea1d5e0984192137d45b1695ba0672e16f95b58ea` - manifest: `8220a8f5d560d45a75a62cbed645b3febc1390fe37b07c3c48871fefc1a9b159` - package commands: `336d8df1914aaaafaeccc181d4e73ed7058165f10e167efe539939c3ac1e0536` ## Next Task `M12-03G`: linked data writers must fail closed with `LINKED_DATA_MUTATION_BLOCKED`. ## Rollback Remove the M12-03F link generator/checker, source and target fixtures, desktop report/manifest, package command, and this status entry. Restore M12-03E to pending and move the machine queue back to `M12-03E`. No parity ledger rollback is required.