Include the current addon, terrain integrations, tools, regression tests and recorded development evidence.
68 lines
9.9 KiB
Python
68 lines
9.9 KiB
Python
from pathlib import Path
|
|
import json,hashlib,shutil,subprocess,sys
|
|
r=Path('/home/jakub/devel/escapistsrereintroduced');b=Path('/tmp/erri-owner-package-0703-baseline');build=r/'.build/playtest-2026-10-02-owner-fixes';e=r/'docs/evidence/playtest-refresh-2026-10-02-owner-fixes'
|
|
sys.path.insert(0,str(r/'tools'));from source_manifest import addon_manifest
|
|
sha=lambda p:hashlib.sha256(p.read_bytes()).hexdigest()
|
|
handoff=json.loads((build/'handoff.json').read_text());assert handoff['authored_files']==403 and handoff['pak_payload_files']==346 and len(handoff['runtime_files'])==3
|
|
assert handoff['normal_mission_ready'] and handoff['local_participant_verified'] and handoff['repository_regression_programs']==280 and not handoff['release_qualified'] and handoff['normal_route_reused_without_source_changes'] and handoff['repository_check_reused_for_identical_source']
|
|
assert addon_manifest(r)==json.loads((r/'.build/chat-owner-frozen-0624/frozen-source.json').read_text())
|
|
old=json.loads((b/'unstaged.json').read_text());original=json.loads(Path('/tmp/erri-heartbeat-20260930-1542-reference.json').read_text());prior=json.loads((r/'docs/evidence/playtest-refresh-2026-10-02-ground-depot-guide/candidate-sha256.json').read_text())
|
|
for root,files in [(r,old),(Path('/home/jakub/devel/escapists'),original),(r/'.build/playtest-2026-10-02-ground-depot-guide',prior)]:assert all(sha(root/p)==h for p,h in files.items())
|
|
for name in ['current-status.md','playtest-build.md','original-feature-coverage.md']:
|
|
assert (r/'docs'/name).read_bytes()==(b/(name+'.working')).read_bytes()==(b/(name+'.index')).read_bytes()
|
|
assert subprocess.check_output(['git','show',':docs/'+name],cwd=r)==(b/(name+'.index')).read_bytes()
|
|
e.mkdir()
|
|
for src,dest in [(Path('/tmp/erri-playtest-0703/adaptation.json'),'helper-adaptation.json'),(Path('/tmp/erri-owner-package-review-0703/review.json'),'independent-package-review.json'),(r/'.build/heartbeat-chat-0624/suite-result.json','suite-result.json')]:shutil.copy2(src,e/dest)
|
|
summary={'artifact':str(build.relative_to(r)),'authored_files':403,'pak_payload_files':346,'runtime_files':3,'regression_programs':280,'unchanged_source_reuses_bound_suite_and_normal_route':True,'included_fixes':['Observer stops former local-controller callbacks and rebinds replacement','Chat cleanup cannot close replacement controller administration panel'],'native_normal_route':{'assertions':63,'rounds':1,'script_failures':0,'retained_installed_resource_errors':13},'packed_ordinary_startup':{'normal_mission_ready':True,'local_prisoner_verified':True,'script_failures':0,'retained_installed_resource_errors':17,'strict_failed_verdict_retained':True},'native_packaging':'Exact403 authored/346 payload identities, child exit0; strict completion/shutdown/resource failures retained. Unqualified development candidate.','preserved':{'inherited_unstaged_paths':len(old),'original_reference_files':len(original),'previous_candidate_files':len(prior)},'parallel_work':'Bounded discovery-manager and view-distance lifecycle reviews found no demonstrated ordinary new defect. A supported authored map-overlay prototype is being prepared separately, not included in this build. No platform filtering override was applied.','remaining':'Human full escape, real multiplayer/JIP/reconnect/twelve players, native controller replacement, physical logistics, comparative FPS and clean release.','committed':False,'published':False,'release_qualified':False}
|
|
(e/'review.json').write_text(json.dumps(summary,indent=2)+'\n')
|
|
(build/'README.md').write_text('''# Development playtest — 2 October 2026, controller ownership fixes
|
|
|
|
The combined addon is **Co10 Escape Reintroduced**, GUID `2528466DE220D91C`. Load the normal Everon scenario `{C1E20667DCE324ED}Missions/ERR_Everon.conf` from `packages/core`. Editable Workbench source is in `source/addons/core/addon.gproj`.
|
|
|
|
Install RHS Status Quo, WCS Armaments, WCS BMP-1, Parachute Framework and their supporting packs separately. `source/EXTERNAL-ADDONS.json` records the audited closure. Original Escapists is not required; third-party assets are not bundled.
|
|
|
|
This snapshot includes the earlier finite camp-to-truck loading, engineer resupply and HQ improvements. It adds observer ownership/rebinding and prevents an old chat controller from closing the current administration panel. The proposed map-overlay redesign is not included. Optional terrain integration remains experimental; validation targets Everon.
|
|
|
|
**403 authored files, 346 exact PAK payloads and three runtime files** match editable source and `handoff.json`. All **280 registered regression programs pass**. The matching unchanged-source normal route completes **63 assertions through extraction/results**, with zero script/runtime failures and thirteen retained installed-resource errors. Fresh ordinary startup of these exact packaged bytes verifies the normal mission and local prisoner, with zero script/runtime failures and seventeen retained installed-resource errors.
|
|
|
|
This is an **unqualified development candidate**. Exact contents and native child exit zero do not clear recorded resource/shutdown/completion failures. Full human escape, real multiplayer/JIP/reconnect/twelve players, native controller replacement, physical logistics, comparative FPS and clean release remain unfinished.
|
|
|
|
Native checks stayed hidden and muted with confirmed cleanup and unchanged inputs. Original missions and previous candidates are preserved. Nothing was published.
|
|
|
|
See the [player route](../../docs/player-route.md), [setup guide](../../docs/playtest-build.md), [current status](../../docs/current-status.md), [artifact evidence](../../docs/evidence/package-2026-10-02-owner-fixes/handoff.json) and [packed startup evidence](../../docs/evidence/packed-2026-10-02-owner-fixes/archive-review.json).
|
|
''')
|
|
p=r/'docs/playtest-build.md';s=p.read_text();start=s.index('The latest retained, hash-verified handoff is');end=s.index('## Identities and required dependencies');s=s[:start]+'''The latest retained, hash-verified handoff is
|
|
[2 October — controller ownership fixes](../.build/playtest-2026-10-02-owner-fixes/README.md),
|
|
at `.build/playtest-2026-10-02-owner-fixes`. It contains matching editable source
|
|
and one packaged addon: **403 authored files and 346 exact PAK payloads**.
|
|
It includes the previous ground-depot/guide features plus observer ownership,
|
|
replacement-controller rebinding and chat menu teardown ownership fixes.
|
|
|
|
This is an **unqualified development candidate**. Its exact source passes all 280
|
|
registered regression programs and 63 scripted normal-route assertions. Fresh
|
|
ordinary startup of the exact package verifies the mission and local prisoner.
|
|
The 13/17 installed-resource errors and strict failed packaging/startup verdicts
|
|
remain. Human play, real multiplayer, native controller replacement, physical
|
|
logistics, comparative FPS and clean release still require qualification.
|
|
Optional terrain integration remains experimental.
|
|
|
|
See [current status](current-status.md). Later edits are not automatically present;
|
|
the ground-depot/guide and all earlier candidates remain unchanged.
|
|
|
|
'''+s[end:];p.write_text(s)
|
|
p=r/'docs/current-status.md';s=p.read_text();heading='# Current development status\n\n';assert s.startswith(heading)
|
|
intro='''**2 October 2026 — development package refreshed with controller ownership fixes:** the [separate owner-fixes handoff](../.build/playtest-2026-10-02-owner-fixes/README.md) now includes the tested observer/rebinding and chat-menu cleanup corrections alongside the earlier ground-depot/guide features. **403 authored files, 346 exact PAK payloads and three runtime files** match editable source. [Artifact hashes](evidence/package-2026-10-02-owner-fixes/handoff.json).
|
|
|
|
The unchanged source retains its **280-program regression pass** and **63-assertion normal escape**. [Fresh ordinary startup of the exact package](evidence/packed-2026-10-02-owner-fixes/archive-review.json) verifies the normal mission and local prisoner, with zero script/runtime failures and seventeen retained installed-resource errors. Strict packaging/startup failures remain; this is **not a qualified release**. The earlier route retains thirteen installed-resource errors.
|
|
|
|
All native work stayed hidden/muted with confirmed cleanup and unchanged inputs. Original missions, 61 inherited unstaged paths and the previous 412-file candidate are preserved. No production code changed for this packaging increment. A separate authored map-overlay proposal is not included. Human play, real multiplayer, native controller replacement, physical logistics, comparative FPS and clean release remain unfinished. [Independent review and preservation](evidence/playtest-refresh-2026-10-02-owner-fixes/review.json).
|
|
|
|
''';p.write_text(heading+intro+s[len(heading):])
|
|
p=r/'docs/original-feature-coverage.md';s=p.read_text();oldtext='The latest retained candidate is the [2 October ground-depot/guide playtest](../.build/playtest-2026-10-02-ground-depot-guide/README.md). It includes the finite depot loading and zero-stock mine-resupply changes; its exact source/package evidence predates the subsequent observer ownership correction.';newtext='The latest retained candidate is the [2 October controller-ownership playtest](../.build/playtest-2026-10-02-owner-fixes/README.md). It includes the earlier finite depot loading and zero-stock mine-resupply work plus observer/rebinding and chat menu ownership corrections.';assert oldtext in s;p.write_text(s.replace(oldtext,newtext,1))
|
|
(e/'candidate-sha256.json').write_text(json.dumps({str(p.relative_to(build)):sha(p) for p in sorted(build.rglob('*')) if p.is_file()},indent=2)+'\n')
|
|
shutil.copy2(__file__,e/'finalize.py')
|
|
subprocess.run(['git','add','--','docs/current-status.md','docs/playtest-build.md','docs/original-feature-coverage.md','docs/evidence/package-2026-10-02-owner-fixes','docs/evidence/packed-2026-10-02-owner-fixes',str(e.relative_to(r))],cwd=r,check=True)
|
|
subprocess.run(['git','diff','--check'],cwd=r,check=True)
|
|
assert all(sha(r/p)==h for p,h in old.items())
|
|
print(json.dumps(summary,indent=2))
|