from research import *
s=begin(929,'Accept the intact portable packet replay','Does the extracted evidence reproduce without access to original files?',{},['PORTABLE_REVIEW_C928.json','independent archive integrity review'])
p=json.loads((ROOT/'evidence/PORTABLE_REVIEW_C928.json').read_text());v=p['portable_replay'];iso=p['isolation'];a=p['archive']
prefix=[r for r in json.loads((ROOT/'journal.json').read_text()) if r['step']<=928]
summary={'status':p['status'],'archive_sha256':a['sha256'],'manifest_payloads':a['manifest_payloads'],'replayed_steps':v['sequential_steps'],'frozen_sources':v['source_snapshot_hashes_verified'],'current_sources':v['current_source_copies_checked'],'original_reads':len(iso['attempted_original_workspace_reads']),'method':iso['method'],'source_bindings_unchanged':iso['source_bindings_kept_byte_identical']}
art=artifact('evidence/PORTABLE_ACCEPTANCE_C929.json',json.dumps(summary,indent=2)+'\n')
finish(s,{'portable_acceptance':art,'summary':summary},'The intact extracted97-action packet passes with all41 frozen sources, zero current originals and zero original-workspace reads. Every archived payload remains hash-identical after replay.','Perform the99-action closure gate, then seal C931 without starting a new cycle.',{'PASS':p['status']==v['status']=='PASS','prefix97':v['sequential_steps']==97 and v['last_record_sha256']==prefix[-1]['sha256'],'isolated':v['current_source_copies_checked']==0 and not iso['attempted_original_workspace_reads'],'intact':a['all_extracted_hashes_match_archive_after_replay'] and iso['source_bindings_kept_byte_identical'],'frozen_predecessor':v['C831_predecessor_snapshot_verified'] and not v['C831_current_record_checked']})
