refactor(contracts): own snapshot provenance
Summary
Moves snapshot provenance, its state carrier and dependent helpers to the contracts snapshot model for #4205, with no intended behavior change. The iOS producer subset now supplies the shared pair instead of repeating its names. The neutral SnapshotProducer prepares the later registry; this PR does not add that registry.
Migrates 134 consumer/support files (143 files changed in total). Snapshot node and geometry primitives stay in kernel because contracts depends on them; kernel has no contracts dependency or compatibility re-export. The existing contracts snapshot-tree module joins the model to avoid a new eager dependency, and the facade exports the complete model. No coordinated Apple router files needed import changes.
Validation
Head: 0d5b9917a91132dc0e8ce0ec4153c4a067f7e92e
- Focused Vitest: provenance, ref minting, tree, and eager-closure tests passed.
pnpm typecheckandpnpm check:layeringpassed.pnpm check:affected --run --head 0d5b9917a9passed; receipt:exactCommit=true,checkoutChanged=false. Selected unit and provider integration passed (257 provider tests).- Hosted CI and its skipped/hosted-only lanes remain pending. No live device run: this is a type and ownership move with no device behavior change.
- No independent reviewer was available; the full diff received a cold self-review.
![Autofix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/autofix-with-codesmith-dark-3x.png)
Open in [code]smith · Need help on this PR? Tag @codesmith-bot with what you need.