"""Fetch only changed package files after a metadata wording correction."""
import json
from pathlib import Path
import shutil
import control_integrated as q

folder=q.LOCAL/'Contextra_Fight_Integrated_Review_20261030'
fresh=q.LOCAL/'reports/final_remote_manifest.json'
q.c.old.scp('si@58.233.207.31:'+q.c.REMOTE+'/download/manifest.json',str(fresh))
before={x['path']:x['sha256'] for x in json.loads((folder/'manifest.json').read_text())['files']}
after=json.loads(fresh.read_text());changed=[]
for item in after['files']:
    if before.get(item['path'])==item['sha256']:continue
    target=folder/item['path'];assert folder.resolve() in target.resolve().parents
    target.parent.mkdir(parents=True,exist_ok=True)
    q.c.old.scp('si@58.233.207.31:'+q.c.REMOTE+'/download/'+item['path'],str(target));changed.append(item['path'])
shutil.copy2(fresh,folder/'manifest.json')
remaining=q.c.old.checked(['docker','ps','-a','--filter','name='+q.c.PREFIX,'--format','{{.Names}}']).decode().strip()
assert not remaining
(q.LOCAL/'reports/final_cleanup.json').write_text(json.dumps(dict(trial_containers_remaining=[],production_control_calls=0,gpu_jobs=0,refreshed=changed),indent=2))
print('REFRESHED',changed,'TRIAL_REMAINING=0')
