# M12-03H Status status: done task: library reload replaces only the matching linked generation snapshot updated: 2026-08-17 America/New_York enablingTask: false parityStateChange: false ## Scope Schema-1 reload requests identify one `SOURCE_LIBRARY` and an expected generation/revision. The replacement must keep the same library identity, advance exactly one generation, advance the source revision, and retain a read-only source-library data-block closure. Only the unique matching snapshot is replaced; other libraries and other generations remain unchanged. Malformed requests, duplicate state identities, owner substitution, skipped generations, and stale generation/revision requests fail closed before any Main mutation. A stale request returns `REVISION_CONFLICT` and an unchanged state. ## Evidence - `npm --prefix web run test:library-linked-reload` passed 4/4 unit tests. - The matching-generation case replaces one snapshot atomically while preserving a future generation and an unrelated library; the input state remains immutable. - Stale, malformed, duplicate, owner-substituted, and non-adjacent reload cases are rejected without publishing a partial state. ## Artifact Hashes - protocol: `8be6f0b2abe36cd566ea7447d1b7de44c0e6a9a7351b863dfdd1372c1761060e` - unit: `dff866291468cc01e775fe3b3b95c632f5c0742566f79b956a0193bfd8fd43d2` - manifest: `dd96702dcb064779de3fc33ce1200d75615e7b75a3418a45a309e0e612fdb7df` - package commands: `cfb232baa494ff59f6c8d65514a08c86332ee9354350b2a0392b6f932a7ee42c` ## Next Task `M12-03I`: missing library preserves a placeholder and the original source reference. ## Rollback Remove the linked reload protocol, unit suite, manifest, package command, and this status entry. Restore M12-03G to pending and move the machine queue back to `M12-03H`. No parity ledger rollback is required.