The checkpoint loader requires matching body count and geometry, so the
round-trip test rebuilds the three-circle scene before loading instead of
an empty simulation (loader unchanged). run_case.main now calls
verify_source(..., current=False); the two dry-run/run mock assertions
follow.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
run_case --current-checkout records the clean checkout (HEAD, src
fingerprint, harness hashes, pinned build-capture helper) labelled
current_checkout instead of requiring the frozen a135252 tree; receipts
carry numerical_revision=None. assess --current-checkout applies the same
gates to such receipts. Frozen mode is unchanged and now rejects any
receipt with source_mode, so the two never cross-qualify. A missing a135252
object is reported as unavailable history instead of a source diff.
check_projected_pairs.py is untouched, so its pinned hash and existing
receipts keep their meaning.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>