Skip to content

Reject stale checkpoints using versioned study definitions - #147

Merged
jc-macdonald merged 3 commits into
mainfrom
fix/143-checkpoint-identity
Oct 3, 2026
Merged

jc-macdonald merged 3 commits into
mainfrom
fix/143-checkpoint-identity

Conversation

@jc-macdonald

Copy link
Copy Markdown
Collaborator

Checkpoint reuse previously validated only phase names, so a changed grid could silently load stale results. Validate a versioned structural manifest covering grids, phase settings, objectives, factors, annotations, model code, and filter closures. Add a caller-managed checkpoint_key for model/data revisions and opaque behavior, atomically write the manifest, and validate saved observable schemas.

Closes #143.

Existing phase-name-only checkpoints are refused with instructions to use a new directory. Instance state, globals, and external data require a caller-managed revision; checkpoints do not serialize live model objects.

Validation: just ci; regressions cover changed grids, replication/trial counts, objective directions, factors, filter closures, revisions, legacy manifests, opaque callables, incompatible phase schemas, valid resumes, and external phase results. Strict docs build also checks the checkpoint guide.

@jc-macdonald
jc-macdonald merged commit 7760a9a into main Oct 3, 2026
4 checks passed
@jc-macdonald
jc-macdonald deleted the fix/143-checkpoint-identity branch October 3, 2026 01:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Validate checkpoint study identity beyond phase names

1 participant