Separate radio defence and harden player and objective lifecycles
This commit is contained in:
+51
-5
@@ -4,7 +4,7 @@
|
||||
|
||||
## 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.
|
||||
`python3 tools/check.py` passes: five-addon isolation, acyclic dependencies, twenty-two 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.
|
||||
|
||||
@@ -22,8 +22,8 @@ The original prison prototype had an unsuitable slope and a gate-opening mismatc
|
||||
|
||||
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.
|
||||
- Some restarts emit two catalog-manager errors associated with vanilla US and USSR medical-kit catalog objects. Read-only source inspection identified an inherited `SCR_BaseItemSupportStationComponent.OnDelete` validation path; the opt-in diagnostic now records the actual owner and manager state. The missing-manager teardown cause remains an inference until reproduced with that diagnostic.
|
||||
- Vanilla vehicle resources emit unsupported fields: M151A2 `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.
|
||||
@@ -44,7 +44,7 @@ Four catalog-manager errors were recorded across the two restarts, alongside the
|
||||
|
||||
## 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.
|
||||
[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 vehicle 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.
|
||||
|
||||
@@ -119,7 +119,7 @@ The first expanded-route native compile failed on Enforce's unsupported compound
|
||||
|
||||
[034556](evidence/native-2026-09-19-034556/report.json) completed the expanded guard-radio regression and death/defeat sequence with 37 passing assertions and no script/VM exceptions. All six physical six-person squads had manpacks; the selected production uplink/downlink delivered and deleting the receiver's actual radio interrupted an in-flight HQ order. The fixture also checked native death, local spectator activation and all-dead defeat. This does not prove every multi-hop route. Seven inherited vehicle schema errors remain.
|
||||
|
||||
The final three archives (033719, 034344 and 034556) match all 99 current addon source/resource files. All test processes were stopped. Source/resource checks pass for five isolated addons and 22 unique resources; the 533-file original-workspace reference guard remains unchanged. Manual gameplay, medical treatment, multiplayer, performance and clean-runtime release gates remain open.
|
||||
The three archives (033719, 034344 and 034556) match the 99 addon source/resource files at that historical checkpoint. All test processes were stopped. Source/resource checks pass for five isolated addons and 22 unique resources; the 533-file original-workspace reference guard remains unchanged. Manual gameplay, medical treatment, multiplayer, performance and clean-runtime release gates remain open.
|
||||
|
||||
## Independent extraction and mission clock
|
||||
|
||||
@@ -138,3 +138,49 @@ These hidden, muted local tests establish the exercised service and native-objec
|
||||
[042046](evidence/native-2026-09-19-042046/report.json) completed one companion-loaded escape with 48 assertions and no script/VM exceptions. Core, HQ, Intel, Chat and Map compile together; existing command aliases, physical documents, interrupted defence, extraction and the personal winner title still work. Seven inherited vehicle schema errors remain.
|
||||
|
||||
Archives 040928, 041233, 041445 and 042046 match all 105 addon source/resource files at this checkpoint. Tests ran on the private hidden display with muted test audio and were stopped afterward. The original workspace's 533 tracked reference source/resource files remain unchanged. Repository policy/resource checks pass; clean-runtime, manual-play, multiplayer and performance release requirements remain open.
|
||||
|
||||
## Base radio separation, native objective details and ground transport
|
||||
|
||||
[042945](evidence/native-2026-09-19-042945-ui-refresh-failure/report.json) retained a real presentation failure: the native task description changed after radio discovery, while its already-open details widget remained stale. The list/details initialized correctly and showed no hidden task position. The successor now subscribes only its own open objective details to native display-data changes, with removal on task switch/detach. The later 044330 and 044608 runs pass the already-open detail update after discovery; their separate new radio fixture fails before completing the round, so whole-loop validation remains separate.
|
||||
|
||||
[043410](evidence/native-2026-09-19-043410-parking-failure/report.json) rejected the first ground-transport parking position at 5960/7232 due to a native geometry obstruction. Preparation rolled back; the error was not suppressed. [043631](evidence/native-2026-09-19-043631-parking-survey/report.json) then surveyed 120 nearby positions with the transport temporarily omitted only in its fixture definition, finding 43 clear candidates without removing scenery. The selected southern position, 5960/7212, has a 0.625 m sampled terrain range over its six-metre square. This is placement evidence, not driving or navigation acceptance.
|
||||
|
||||
[043806](evidence/native-2026-09-19-043806-transport-readiness-failure/report.json) retained a subsequent readiness failure after the parking point itself passed. The bounded diagnostic in [044028](evidence/native-2026-09-19-044028-transport-bounds-failure/report.json) showed native vehicle bounds extending 3.25 m from the surveyed center, exceeding the original 2.5 m allowance; actual origin displacement was only about 0.06 m. The configuration now requires an eight-metre cleared square and retains a 0.5 m margin around full native bounds.
|
||||
|
||||
[044205](evidence/native-2026-09-19-044205/report.json) passes 23 native transport checks with no script/VM exceptions. Parking, five native driver/passenger positions, actual two-character occupancy, ordinary engine startup and finite fuel work. Native fuel starts at 58.5 L with 78 L capacity. Depleting fuel and deleting transport do not refill or recreate it, including repeated preparation/initialization queries. The fixture stops its site service and explicitly requests test reset. Seven inherited vehicle schema errors remain; this is not manual driving, road access or multiplayer acceptance.
|
||||
|
||||
[044330](evidence/native-2026-09-19-044330-radio-fixture-failure/report.json) and [044608](evidence/native-2026-09-19-044608-radio-position-fixture-failure/report.json) preserve failures in a new radio-service fixture that immediately checked distance after moving its character. Switching to the native character teleport API alone did not resolve the check; the fixture is being made asynchronous so it observes applied native state before asserting it. These runs do not count as completed Core regressions.
|
||||
|
||||
[044924](evidence/native-2026-09-19-044924/report.json) independently completes the established companion-loaded escape with 48 passing assertions and no script/VM exceptions. The production radio service accepts the identified nearby player, resets on departure, completes real-time continuous occupancy and advances to physical helicopter extraction. Existing command aliases, document recovery and personal results still work. Seven inherited vehicle schema errors remain.
|
||||
|
||||
The offline performance comparator passes fifteen synthetic regressions and does not produce real benchmark evidence. Release qualification passes 46 validation regressions and correctly refuses the current ledger: all first-release cases remain pending and clean native runtime remains failed. Neither tool changes acceptance or publishes a package.
|
||||
|
||||
[045450](evidence/native-2026-09-19-045450-radio-recovery-fixture-failure/report.json) confirms that deferred native movement resolves the distance assertions: the measured out-of-range position is 6.005 m from the radio and unconscious tuning is rejected. The next assertion fails during recovery. The test is being corrected to separate its overlapping characters and await native consciousness; no production authorization rule was weakened.
|
||||
|
||||
[050158](evidence/native-2026-09-19-050158-lifecycle-compile-failure/report.json) preserves a compiler rejection of two ticket member names that collide with native type names. The members were renamed before further testing.
|
||||
|
||||
[050240](evidence/native-2026-09-19-050240-lifecycle-reflection-failure/report.json) preserves the next integration failure: the WORKBENCH-only spawn-logic override needed to repeat its native container metadata. The corrected reflected class loads and starts an ordinary prisoner in [050403](evidence/native-2026-09-19-050403/report.json), which completes 54 lifecycle assertions without script/VM exceptions. Native geometry leaves 20 clear prison positions around the real prisoner; reserved slots remain distinct and inside the enclosure. A physical unowned body blocks its slot. Native finalization rejects spent-life and wrong-data requests, deletes only the owned unpossessed actor, preserves the actual prisoner, and rejects vertical displacement. The fixture explicitly ends its test; real remote preload, disconnect/reconnect and 12-client acceptance remain pending. Seven inherited vehicle schema errors remain.
|
||||
|
||||
[050515](evidence/native-2026-09-19-050515/report.json) completes two Core escape/restart rounds with 340 assertions, no script/VM exceptions and seven inherited vehicle schema errors. The independent radio edge fixture now waits for real native recovery and passes physical defender handover, empty samples, hostile/unknown/dead actors, interrupted occupancy, live duration changes, cancellation and one-time completion. The ordinary real-time escape then succeeds twice through the new player-admission gate. Native task details update after discovery, advancing progress and interruption. Separate objective-close cleanup review follows; remote UI remains unverified.
|
||||
|
||||
The opt-in station diagnostic identifies US/USSR medical-kit prefabs during `OnDelete/InitValidSetup` at restart. Both cached and global catalog references remain available in this run despite no current game mode, so the intermittent missing-manager error is not reproduced or declared fixed.
|
||||
|
||||
Future native runs now snapshot addon files before process launch, compare sources after shutdown and seal the raw console log. Archival and release checks reject source/log mismatches. Older archives retain their original historical evidence; they cannot satisfy the new launch-provenance release requirement.
|
||||
|
||||
[051249](evidence/native-2026-09-19-051249-companion-fixture-name-failure/report.json) preserves a companion compile failure from two WORKBENCH test helpers sharing a member name on the same extended game mode. The Core helper was renamed to avoid the pre-existing Chat radio-network probe. This is the first archive with mechanically verified pre-launch source, stopped source and raw-log hashes; the failed result remains failed.
|
||||
|
||||
[051452](evidence/native-2026-09-19-051452/report.json) completes two Core escape/restart rounds with 374 assertions, no script/VM errors and seven inherited resource errors. Native objective close/rebind/reopen checks pass, including no retained task events or delayed overflow calls to the closed panel. The runner verifies identical pre-launch and stopped addon sources and seals the raw log. A subsequent ownership-flag change covers task deletion before panel closure and is checked separately by the short `objective-ui` fixture.
|
||||
|
||||
[052140](evidence/native-2026-09-19-052140-deleted-task-callback-failure/report.json) preserves a remaining teardown failure: deleting an isolated native task clears its weak references and the panel detaches, but a delayed callback still reaches the retained test handler. The assertion remains failed while callback identity and queue state are investigated.
|
||||
|
||||
[052352](evidence/native-2026-09-19-052352/report.json) completes the full companion escape with 48 assertions, no script/VM errors and verified launch/stopped-source/log hashes. The helper-name collision is fixed. Core admission, radio, physical intel, preserved admin aliases and extraction work with all companions. Seven inherited resource errors remain; the isolated task-deletion UI failure is separate and still open at this snapshot.
|
||||
|
||||
[052621](evidence/native-2026-09-19-052621-deleted-task-callback-diagnostic/report.json) identifies the surviving callback as `UpdateAssignees`, invoked immediately when the real objective assignment is restored. Installed vanilla source declares all five task-event getters static; guarding their removal by a live task left the closed panel subscribed after task deletion. Cleanup now removes the static invoker subscriptions using retained successor-binding ownership. The unchanged delayed callback assertion is rerun rather than weakened.
|
||||
|
||||
[052811](evidence/native-2026-09-19-052811/report.json) reaches all 30 UI assertions and completion after the static-event fix, but remains a failed runtime result: the added name-based queue diagnostic tries to inspect protected `CheckOverflow` and emits three VM exceptions. The normal function-based cancellation does not emit them. The invalid diagnostic is removed before final UI validation; its exceptions are retained in this archive and the preceding diagnostic run.
|
||||
|
||||
[052932](evidence/native-2026-09-19-052932/report.json) completes the companion-loaded death/spectator/defeat fixture with 32 assertions, no script/VM exceptions and verified source/log provenance. Native damage kills the actual prisoner, activates the spectator camera and retains the spent life through the revised delayed observer callback. Seven inherited resource errors remain; remote reconnect and spectator streaming are still unverified.
|
||||
|
||||
[053124](evidence/native-2026-09-19-053124/report.json) completes all 30 isolated UI assertions with no script/VM exceptions after removing the temporary name-based diagnostic. Real close/rebind/reopen, native weak-reference clearing after isolated task deletion, global event unsubscribe, delayed callback cancellation and restoration of the actual objective assignment all pass. Seven inherited resource errors remain. Its pre-launch/stopped source manifests match all 116 final addon files, and the stopped raw-log hash verifies.
|
||||
|
||||
At this checkpoint, repository policy/resource checks, 15 synthetic performance-tool regressions and 46 release/provenance regressions pass. The actual release checker still refuses all 17 pending first-release cases plus failed clean native runtime. All private test runners are stopped. Manual equipment/medical/casualty gameplay, real multiplayer/preload/reconnect testing, operational support/logistics, equivalent-workload FPS measurements and release packaging remain unfinished. Historical archives describe their own source snapshots; they are not relabelled as final-source tests.
|
||||
|
||||
Reference in New Issue
Block a user