refactor(contracts): own snapshot provenance

Merged
TH
2d ago
+495-454

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 typecheck and pnpm check:layering passed.
  • pnpm check:affected --run --head 0d5b9917a9 passed; 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
Open in [code]smith · Need help on this PR? Tag @codesmith-bot with what you need.