Keep restart input provenance separate from destination output records

This commit is contained in:
2026-09-19 13:46:33 -04:00
parent 522a2cfc02
commit 7793fd9111

View File

@@ -137,18 +137,18 @@ def main():
path = (path if path.is_absolute() else source / path).resolve()
if word == '--restart-snapshot':
snapshot_file = path / 'accepted_state.txt' if path.is_dir() else path
folder = snapshot_file.parent
if not (folder / 'metadata.txt').is_file():
folder = folder.parent
prior_manifest = folder.parent / 'provenance.json'
prior_run = folder.parent / (folder.name + '_run.json')
prior_folder = snapshot_file.parent
if not (prior_folder / 'metadata.txt').is_file():
prior_folder = prior_folder.parent
prior_manifest = prior_folder.parent / 'provenance.json'
prior_run = prior_folder.parent / (prior_folder.name + '_run.json')
prior = json.loads(prior_manifest.read_text())
saved_run = json.loads(prior_run.read_text())
if prior['mesh_sha256'] != provenance['mesh_sha256']:
raise RuntimeError('Restart mesh differs from the snapshot campaign.')
for saved_file in (snapshot_file, folder / 'metadata.txt', folder / 'layout.csv'):
for saved_file in (snapshot_file, prior_folder / 'metadata.txt', prior_folder / 'layout.csv'):
value = digest(saved_file)
key = str(saved_file.relative_to(folder))
key = str(saved_file.relative_to(prior_folder))
if value != saved_run['output_hashes'][key]:
raise RuntimeError('Restart input no longer matches its original run: ' + key)
state_files[str(saved_file)] = value