88 lines
13 KiB
Markdown
88 lines
13 KiB
Markdown
# Validation evidence
|
||
|
||
2026-09-19, local development environment. This remains a development prototype, not a release-qualified successor.
|
||
|
||
## Repository checks
|
||
|
||
`python3 tools/check.py` passes: five-addon isolation, acyclic dependencies, twenty source resource identities, exact successor/vanilla GUID references, production mission-rule boundaries, physical radio paths and failure handling, settings conversion, helicopter availability policy and mortar salvo policy. The latter two are helper tests, not operational support-controller evidence.
|
||
|
||
The reference guard verified all 533 original workspace source/resource files against the pre-test snapshot. Existing missions were not edited or saved. Native tests use a separate profile and only the successor projects plus vanilla dependencies. Earlier successful visible runs were measured on the right display. A later launch restored an oversized main Workbench window despite placement rules; those tests were stopped. Automated tests now run on an isolated headless display and create no physical-desktop windows.
|
||
|
||
## Native development sessions
|
||
|
||
Workbench version: 1.8.0.13. The initial September 18 source snapshots remain in `native-initial-snapshot.json` and `native-followup-snapshot.json`. They established script compilation, native world loading and initial spawning only.
|
||
|
||
Durable logs, screenshot captures, source hashes and a machine-readable report for `logs_2026-09-19_00-28-24` are in [native-2026-09-19-002824](evidence/native-2026-09-19-002824/report.json). That run completed two scripted rounds across an automatic restart, with 38 passing assertions. It exercised native prisoner spawn, the authored lock action, two real cache documents recovered into inventory, intel-driven identification, radio range rejection, interrupted and continuous defence, physical helicopter seating and the victory boundary.
|
||
|
||
The diagnostic deliberately teleports the player and helicopter and makes the test player invulnerable. It does not establish manual escape/piloting, combat balance, multiplayer lifecycle or FPS improvement. Engine screenshots capture the rendered scene and do not prove the HUD/end-screen presentation.
|
||
|
||
The original prison prototype had an unsuitable slope and a gate-opening mismatch. Read-only terrain and model-clearance scans selected an open site at 6090/7160. The gate now spans the three-metre opening. Walls have explicit hierarchy ownership, and equipment is placed on tables above vegetation. Final physical gate-passage and defeat checks are recorded separately below.
|
||
|
||
## Remaining native issues
|
||
|
||
The run is not a clean runtime pass. The report preserves errors rather than suppressing them:
|
||
|
||
- During restart, vanilla US and USSR medical-kit catalog objects at world origin are destroyed without an initialized entity-catalog reference. Their inherited `SCR_BaseItemSupportStationComponent.OnDelete` path logs two catalog-manager errors. The diagnostic identifies the objects; it does not alter vanilla cleanup behavior.
|
||
- Vanilla vehicle resources emit unsupported fields: Mi8 `SlidingTrackMaterial`, and catalog-loaded BRDM2/BTR70 `Parent` entries. Validate the installed game/Tools resource compatibility before release.
|
||
- Vanilla UI slot/button warnings occur during end-screen setup, and inherited Everon initialization reports a radio-manager ordering warning. The successor creates its radio manager, but these warnings still need evaluation.
|
||
|
||
The shared-map destruction exception and unsupported runtime destructible-wall errors from earlier prototypes no longer occur in the archived repeated-round run.
|
||
|
||
No dedicated multiplayer, reconnect, spectator, twelve-player, operational support-controller, equivalent-workload performance or release-packaging acceptance has passed. The full acceptance ledger remains pending.
|
||
|
||
## Final gate and victory regression
|
||
|
||
[native-2026-09-19-003520](evidence/native-2026-09-19-003520/report.json) contains two completed rounds and 40 assertions, including `BaseDoorComponent.CanCharacterPass(0.6)` after unlocking. The actual result configuration returned "You escaped Everon" for the extracted player. The run had no script errors or virtual-machine exceptions. Seven inherited vehicle schema errors remain in the report, so its overall runtime result is deliberately nonzero. The source manifest matches the tested repository.
|
||
|
||
A Workbench-only diagnostic briefly replaced the reflected end-screen class and caused an unknown-class resource error in an intermediate run. That diagnostic override was removed; the archived final run resolves the class and the victory title successfully.
|
||
|
||
## Extraction loss and defeat restart
|
||
|
||
[native-2026-09-19-003902](evidence/native-2026-09-19-003902/report.json) completed two helicopter-loss rounds and recorded 45 passing assertions, including startup of a third round before the test process stopped. Removing the empty extraction helicopter during extraction caused DEFEAT through the normal server tick, then the mission restarted and completed the same test again. The defeat end-screen configuration resolved without missing-screen errors. This is not an all-players-dead, unconsciousness, reconnect or multiplayer test.
|
||
|
||
Four catalog-manager errors were recorded across the two restarts, alongside the inherited vehicle schema errors. The archive deliberately retains the failing overall native report. Both test processes were stopped; the user's pre-existing editor was left open.
|
||
|
||
## Player death, identity roster and spectator restart
|
||
|
||
[native-2026-09-19-011025](evidence/native-2026-09-19-011025/report.json) contains two completed death rounds with 20 passing assertions and no script/runtime exceptions. The fixture exercises native character death, transition into the local spectator camera, the all-dead grace interval, defeat and automatic restart. An isolated roster with a real living actor checks spent-life retention, disconnected survivor retention, duplicate identity rejection and reused connection IDs. It does not simulate an actual remote disconnect/reconnect. Seven inherited helicopter schema errors still fail the overall native report.
|
||
|
||
This test ran on headless Gamescope at 1280×720/30Hz using a cloned disposable Proton prefix. The physical desktop contained only the user's pre-existing editor. `tools/headless_workbench.py` provides a bounded version of this runner, stopping on failure, timeout or the requested number of completions and preserving engine errors in its exit status.
|
||
|
||
## Physical radio equipment and routing
|
||
|
||
[native-2026-09-19-011738](evidence/native-2026-09-19-011738/report.json) completed two bounded headless rounds with 30 assertions and no script/runtime exceptions. Each authored six-person patrol now includes one vanilla RTO with a physical manpack. The test runs production uplink and downlink routes, then removes a receiving carrier's actual radio during transmission and verifies delivery fails. It does not insert a synthetic contact into HQ. Strategic response to native visual perception remains a separate test. Seven inherited vehicle schema errors remain.
|
||
|
||
Both installed executable version resources report 1.8.0.13 (game Steam build 24903726; Tools build 24870687). The remaining schema errors are therefore not explained merely by different displayed version numbers.
|
||
|
||
## Native sighting to HQ response
|
||
|
||
[native-2026-09-19-012234](evidence/native-2026-09-19-012234/report.json) completed two headless rounds with 24 assertions. The real player was moved in front of a guard squad. Native perception generated a sighting; the production radio route delivered it to HQ; two different existing squads received downlinked orders and distinct search waypoints. The fixture did not inject HQ contacts or create response forces. Both rounds subsequently passed death, spectator and defeat. Two inherited catalog cleanup errors reappeared during restart; seven vehicle schema errors also remain. This is a scoped coordinator integration pass, not a clean native runtime pass.
|
||
|
||
## Silent complete-loop regression
|
||
|
||
[native-2026-09-19-013224](evidence/native-2026-09-19-013224/report.json) completed two headless escape rounds with 52 assertions and no script/runtime exceptions after the roster, spectator and radio-composition changes. Test audio was independently verified muted on the dedicated silent sink; other audio outputs were unchanged. Seven inherited vehicle schema errors remain. A preceding launch exited before gameplay with a host `double free or corruption` error; its raw diagnostics are retained in `native-2026-09-19-012838-host-crash` and are not counted as a successful run.
|
||
|
||
## Physical mortar inventory checkpoint
|
||
|
||
[native-2026-09-19-014052](evidence/native-2026-09-19-014052/report.json) completed two muted headless rounds with 30 assertions and no script/VM exceptions. Native inventories held exactly 27 HE shells across three crew plus a separate manpack operator. Deleting the shells did not replenish ammunition; deleting the gun and crew did not spawn replacements. Seven inherited vehicle schema errors remain. Firing, convoy rearming and multiplayer support acceptance are unverified. Further support migration is deferred while completing the base replacement.
|
||
|
||
## Independent base escape
|
||
|
||
[native-2026-09-19-015043](evidence/native-2026-09-19-015043/report.json) records two Core-only rounds and 26 assertions. The loaded-addon section contains engine core, vanilla Reforger and ERR_Core. Essential inventory-document recovery and discovered objective markers now belong to Core, with a separate base scenario identity. The scripted escape succeeds without AI, Intel, Chat or Map. Two catalog teardown errors and seven vehicle schema errors remain. This proves dependency separation and the exercised progression paths, not manual playability or multiplayer acceptance.
|
||
|
||
[native-2026-09-19-015605](evidence/native-2026-09-19-015605/report.json) adds the native objective service: two Core-only rounds, 38 assertions, no script or VM exceptions. Tests verify prison task creation, previous-task completion, list-only search disclosure, changed instructions after radio discovery, countdown and reset after interrupted defence, physical extraction and restart. Seven inherited vehicle schema errors remain. These assertions inspect native task state; they do not establish the rendered UI quality or remote-client behavior.
|
||
|
||
[native-2026-09-19-015947](evidence/native-2026-09-19-015947/report.json) checks the same Core changes with all companions loaded: one escape round, 26 assertions, no script/VM exceptions. Seven vehicle schema errors remain. The test retains physical document recovery, interrupted radio defence and actual helicopter occupancy while the core services own progression.
|
||
|
||
[native-2026-09-19-020149](evidence/native-2026-09-19-020149/report.json) checks death/spectator/defeat with the new Core task lifecycle and companions loaded: one round, 10 assertions, no script/VM exceptions. Seven inherited vehicle schema errors remain.
|
||
|
||
## Authored sites and finite scavenging
|
||
|
||
[native-2026-09-19-022704](evidence/native-2026-09-19-022704/report.json) records two Core-only rounds with 62 assertions and no script/VM exceptions. The four configured sites prepare 52 physical stock entities; recursive inventory totals include native weapon attachments. The player transfers both targeted radio documents from the supply crate. Empty stock stays empty when preparation is queried again, and a destroyed crate remains absent. Radio progress, extraction and restart complete afterward. Both crate footprints pass bounded native model-clearance checks; the supply terrain sample spans 0.625 metres over six metres. Seven inherited vehicle schema errors remain.
|
||
|
||
Earlier failed iterations are retained with their source hashes: attribute/callback compilation errors, unregistered storage, insufficient crate capacity, and use of a character-only inventory manager on a world container. The final controller uses the generic manager with explicit storage registration and an appropriately bounded weapon crate. These failures were corrected before the successful run; they are not hidden from the evidence archive.
|
||
|
||
[native-2026-09-19-023120](evidence/native-2026-09-19-023120/report.json) repeats the new site flow with all companions loaded: two complete rounds and 52 assertions, including physical inventory transfers, interrupted radio defence and extraction. Templates now obtain location IDs entirely from definitions. The inherited catalog teardown pair and seven vehicle schema errors remain in the report, so this is not a clean runtime acceptance.
|
||
|
||
[native-2026-09-19-023514](evidence/native-2026-09-19-023514/report.json) verifies radio integration after site ownership moved into Core: one muted headless round and 15 assertions, with no script/VM exceptions. All four authored six-person squads carry physical manpacks. Uplink and downlink work, and removing a receiving radio interrupts delivery. Native death, local spectator and all-dead defeat also pass. Seven inherited vehicle schema errors remain.
|