28 lines
1.5 KiB
Python
28 lines
1.5 KiB
Python
import hashlib
|
|
import json
|
|
from pathlib import Path
|
|
|
|
root = Path('C:/git/MagnetismHeroes')
|
|
state_path = root / '.dryforge/execution.json'
|
|
state = json.loads(state_path.read_text(encoding='utf-8-sig'))
|
|
proof = root / 'artifacts/verification/VisualUpgrade/FinalProduct'
|
|
record = json.loads((proof / 'completion.json').read_text(encoding='utf-8-sig'))
|
|
audit = json.loads((proof / 'root-final-product-audit.json').read_text(encoding='utf-8-sig'))
|
|
assert record['status'] == 'passed' and audit['status'] == 'PASS'
|
|
assert record['sourceCommit'] == audit['testedProductSourceCommit']
|
|
state['completion'] = {
|
|
'productSourceCommit': record['sourceCommit'],
|
|
'record': 'artifacts/verification/VisualUpgrade/FinalProduct/completion.json',
|
|
'recordSha256': hashlib.sha256((proof / 'completion.json').read_bytes()).hexdigest(),
|
|
'fourPhasesExitZero': True,
|
|
'productFilesUnchanged': audit['productFileHashesUnchanged'],
|
|
'editMode': 103, 'playMode': 53, 'androidGates': 226,
|
|
'apkSha256': audit['apkSha256'],
|
|
'failedAttemptsPreserved': audit['failedAttemptsPreserved'],
|
|
}
|
|
review_path = root / '.dryforge/reviews/horizon-fix-conformance.json'
|
|
state['final_followup']['reviewSha256'] = hashlib.sha256(review_path.read_bytes()).hexdigest()
|
|
state['tasks']['T6'] = 'new_four_phases_passed_documentation_refresh_running'
|
|
state_path.write_text(json.dumps(state, ensure_ascii=False, indent=2) + '\n', encoding='utf-8')
|
|
print(json.dumps({'status': 'recorded', 'completion': 'passed', 'finalUserGate': 'pending'}))
|