Include the current addon, terrain integrations, tools, regression tests and recorded development evidence.
174 lines
12 KiB
JSON
174 lines
12 KiB
JSON
{
|
|
"scope": "Mounted finite-ammunition courier integration; no original workspace changes",
|
|
"review_fixes": [
|
|
"Retire proved successful transaction leaves before subsequent custody changes",
|
|
"Courier boarding cleanup preserves foreign compartment claims and avoids vanilla failure teleport",
|
|
"Physical pickup uses authored cargo reach rather than contradictory vehicle-center radius",
|
|
"Reject locked mounted magazine slot before dispatch and pickup",
|
|
"Group crew retention remains active when individual courier is the group leader",
|
|
"Valid stationary route endpoints remain eligible; infantry arrival policy unchanged",
|
|
"Same-condition guard splitting accommodates Enfusion expression limits",
|
|
"Native witness waits through ordinary pending asynchronous inventory operations",
|
|
"Explicit constructor and multiline native fixture preparation gates prevent premature startup failure",
|
|
"HQ journal forwards actual pickup/swap refusal reasons"
|
|
],
|
|
"source_proposals": [
|
|
"/tmp/erri-mounted-transfer/mounted-transfer.patch",
|
|
"/tmp/erri-mounted-pickup/fix.patch",
|
|
"/tmp/erri-mounted-coordinator/coordinator.patch",
|
|
"/tmp/erri-mounted-coordinator/transfer-access.patch",
|
|
"/tmp/erri-mounted-pickup-access/fix.patch"
|
|
],
|
|
"preserved_failure_logs": [
|
|
"/tmp/erri-mounted-courier-preintegration-check.log"
|
|
],
|
|
"native_qualification": "Full mounted pickup/exchange remains unqualified; ordinary generated escape fixture passes its scripted assertions.",
|
|
"offline_validation": {
|
|
"registered_programs": 256,
|
|
"completed_full_suite": "/tmp/erri-mounted-courier-verified-check.log",
|
|
"subsequent_focused_passes": [
|
|
"test_native_mounted_courier_probe.py",
|
|
"test_mounted_resupply.py"
|
|
],
|
|
"full_suite_failure_logs": [
|
|
"/tmp/erri-mounted-courier-preintegration-check.log",
|
|
"/tmp/erri-mounted-courier-final-check.log"
|
|
]
|
|
},
|
|
"native_runs": [
|
|
{
|
|
"archive": "native-2026-10-01-mounted-courier-compile-initial",
|
|
"assertions": 0,
|
|
"completions": 0,
|
|
"script_or_runtime_failures": [
|
|
"06:13:21.638 SCRIPT (E): @\"Scripts/Game/ERR/10_AI/ERR_HQ.c,361\": Formula too complex",
|
|
"06:13:21.638 SCRIPT (E): @\"Scripts/Game/ERR/10_AI/ERR_HQ.c,361\": Formula too complex",
|
|
"06:13:21.638 SCRIPT (E): @\"Scripts/Game/ERR/10_AI/ERR_HQ.c,361\": Formula too complex",
|
|
"06:13:21.638 SCRIPT (E): @\"Scripts/Game/ERR/10_AI/ERR_HQ.c,361\": Formula too complex",
|
|
"06:13:21.638 SCRIPT (E): @\"Scripts/Game/ERR/10_AI/ERR_HQ.c,361\": Formula too complex",
|
|
"06:13:21.638 SCRIPT (E): @\"Scripts/Game/ERR/10_AI/ERR_HQ.c,361\": Formula too complex",
|
|
"06:13:21.638 SCRIPT (E): @\"Scripts/Game/ERR/10_AI/ERR_HQ.c,361\": Formula too complex",
|
|
"06:13:21.638 SCRIPT (E): @\"Scripts/Game/ERR/10_AI/ERR_HQ.c,361\": Formula too complex"
|
|
],
|
|
"engine_error_count": 14,
|
|
"cleanup_confirmed": true,
|
|
"source_unchanged": true,
|
|
"external_inputs_unchanged": true,
|
|
"source_manifest_sha256": "5a2a70e9974569b9cf44c9bcb4074b870af1803bb7c226cb819da399de897641"
|
|
},
|
|
{
|
|
"archive": "native-2026-10-01-mounted-courier-compile-second",
|
|
"assertions": 0,
|
|
"completions": 0,
|
|
"script_or_runtime_failures": [
|
|
"06:15:34.956 SCRIPT (E): @\"Scripts/Game/ERR/10_AI/ERR_InfantryResupply.c,70\": No return statement in function returning non-void 'ERR_InfantryResupply#6587#2.State'",
|
|
"06:15:34.972 SCRIPT (E): @\"Scripts/Game/ERR/10_AI/ERR_MountedResupply.c,117\": Formula too complex",
|
|
"06:15:34.972 SCRIPT (E): @\"Scripts/Game/ERR/10_AI/ERR_MountedResupply.c,117\": Formula too complex",
|
|
"06:15:34.972 SCRIPT (E): @\"Scripts/Game/ERR/10_AI/ERR_MountedResupply.c,117\": Formula too complex",
|
|
"06:15:34.972 SCRIPT (E): @\"Scripts/Game/ERR/10_AI/ERR_MountedResupply.c,117\": Formula too complex",
|
|
"06:15:34.972 SCRIPT (E): @\"Scripts/Game/ERR/10_AI/ERR_MountedResupply.c,117\": Formula too complex",
|
|
"06:15:34.972 SCRIPT (E): @\"Scripts/Game/ERR/10_AI/ERR_MountedResupply.c,117\": Formula too complex",
|
|
"06:15:35.012 SCRIPT (E): @\"Scripts/Game/GameMode/Loadout/SCR_PlayerArsenalLoadout.c,324\": Error in parameters",
|
|
"06:15:35.012 SCRIPT (E): @\"Scripts/Game/GameMode/Loadout/SCR_PlayerArsenalLoadout.c,333\": Can't find variable 'sortSlots'",
|
|
"06:15:35.012 SCRIPT (E): @\"Scripts/Game/GameMode/Loadout/SCR_PlayerArsenalLoadout.c,335\": Can't find variable 'sortSlots'",
|
|
"06:15:35.012 SCRIPT (E): @\"Scripts/Game/GameMode/Loadout/SCR_PlayerArsenalLoadout.c,337\": Can't find variable 'sortSlots'",
|
|
"06:15:35.012 SCRIPT (E): @\"Scripts/Game/GameMode/Loadout/SCR_PlayerArsenalLoadout.c,337\": Syntax error",
|
|
"06:15:35.016 SCRIPT (E): @\"Scripts/Game/Plugins/Persistence/System/Serializers/Entities/SCR_FactionManagerSerializer.c,26\": Error in parameters",
|
|
"06:15:35.016 SCRIPT (E): @\"Scripts/Game/Plugins/Persistence/System/Serializers/Entities/SCR_FactionManagerSerializer.c,29\": Can't find variable 'friendlyDefaultMapping'",
|
|
"06:15:35.016 SCRIPT (E): @\"Scripts/Game/Plugins/Persistence/System/Serializers/Entities/SCR_FactionManagerSerializer.c,42\": Can't find variable 'friendlyDefaultMapping'",
|
|
"06:15:35.016 SCRIPT (E): @\"Scripts/Game/Plugins/Persistence/System/Serializers/Entities/SCR_FactionManagerSerializer.c,52\": Can't find variable 'friendlyDefaultMapping'",
|
|
"06:15:35.016 SCRIPT (E): @\"Scripts/Game/Plugins/Persistence/System/Serializers/Entities/SCR_FactionManagerSerializer.c,77\": Can't find variable 'friendlyDefaultMapping'",
|
|
"06:15:35.016 SCRIPT (E): @\"Scripts/Game/Plugins/Persistence/System/Serializers/Entities/SCR_FactionManagerSerializer.c,77\": Syntax error",
|
|
"06:15:35.076 SCRIPT (E): @\"Scripts/Game/Respawn/Logic/SCR_SpawnLogic.c,298\": Can't find class Tuple1",
|
|
"06:15:35.090 SCRIPT (E): @\"Scripts/Game/Map/ComponentsUI/SCR_MapUIElementContainer.c,443\": Incompatible parameter 'on delete'",
|
|
"06:15:35.320 SCRIPT (E): @\"Scripts/Game/ERR/10_AI/ERR_MountedAmmoPickup.c,109\": Formula too complex",
|
|
"06:15:35.320 SCRIPT (E): @\"Scripts/Game/ERR/10_AI/ERR_MountedAmmoPickup.c,109\": Formula too complex",
|
|
"06:15:35.320 SCRIPT (E): @\"Scripts/Game/ERR/10_AI/ERR_MountedAmmoPickup.c,109\": Formula too complex",
|
|
"06:15:35.320 SCRIPT (E): @\"Scripts/Game/ERR/10_AI/ERR_MountedAmmoPickup.c,109\": Formula too complex",
|
|
"06:15:35.409 SCRIPT (E): @\"Scripts/Game/ScenarioFramework/Actions/ActionGetters/SCR_ScenarioFrameworkGetCountEntitiesInTrigger.c,10\": Can't find class SCR_ScenarioFrameworkParam",
|
|
"06:15:35.424 SCRIPT (E): @\"Scripts/Game/ScenarioFramework/Actions/ActionGetters/SCR_ScenarioFrameworkGetLastFinishedTaskLayer.c,11\": Can't find class SCR_ScenarioFrameworkParam",
|
|
"06:15:35.449 SCRIPT (E): @\"Scripts/Game/UI/Components/SCR_SpinningWidgetComponent.c,25\": Can't find class SCR_SpinningWidgetAnimation",
|
|
"06:15:35.449 SCRIPT (E): @\"Scripts/Game/UI/Components/SCR_SpinningWidgetComponent.c,27\": Can't find class SCR_SpinningWidgetAnimation",
|
|
"06:15:35.548 SCRIPT (E): @\"Scripts/Game/UI/Menu/ContentBrowser/Common/SCR_ScenarioUICommon.c,452\": Can't find class Tuple2",
|
|
"06:15:35.548 SCRIPT (E): @\"Scripts/Game/UI/Menu/ContentBrowser/Common/SCR_ScenarioUICommon.c,517\": Can't find class Tuple2",
|
|
"06:15:35.557 SCRIPT (E): Can't compile \"Game\" script module!"
|
|
],
|
|
"engine_error_count": 35,
|
|
"cleanup_confirmed": true,
|
|
"source_unchanged": true,
|
|
"external_inputs_unchanged": true,
|
|
"source_manifest_sha256": "b236ac4a5db6b62e840f350f889446227cfd43b72bfa51d63e25c3d8207b0beb"
|
|
},
|
|
{
|
|
"archive": "native-2026-10-01-mounted-courier-fixture-initial",
|
|
"assertions": 32,
|
|
"completions": 0,
|
|
"script_or_runtime_failures": [
|
|
"06:19:57.836 SCRIPT (E): ERR SMOKE FAIL: mounted courier original physical convoy, shared stock service or roster lost",
|
|
"06:19:57.837 SCRIPT (E): ERR SMOKE FAIL: native production mounted courier full physical chain after intentional test depletion"
|
|
],
|
|
"engine_error_count": 15,
|
|
"cleanup_confirmed": true,
|
|
"source_unchanged": true,
|
|
"external_inputs_unchanged": true,
|
|
"source_manifest_sha256": "df1a0b9e65088d5e48f5051727aef58c1b53253043b457be77fd61f044b794ec"
|
|
},
|
|
{
|
|
"archive": "native-2026-10-01-mounted-courier-pickup-refused",
|
|
"assertions": 33,
|
|
"completions": 0,
|
|
"script_or_runtime_failures": [
|
|
"06:28:30.042 SCRIPT (E): ERR SMOKE FAIL: mounted courier trip ended without complete radio, pickup, exchange, exact-seat return and hold-release proof",
|
|
"06:28:30.042 SCRIPT (E): ERR SMOKE FAIL: native production mounted courier full physical chain after intentional test depletion"
|
|
],
|
|
"engine_error_count": 15,
|
|
"cleanup_confirmed": true,
|
|
"source_unchanged": true,
|
|
"external_inputs_unchanged": true,
|
|
"source_manifest_sha256": "c7693bdefb577d005f65470bedab92675f7653397510ac760d538ccd8ddb18c0"
|
|
},
|
|
{
|
|
"archive": "native-2026-10-01-mounted-courier-approach-timeout",
|
|
"assertions": 33,
|
|
"completions": 0,
|
|
"script_or_runtime_failures": [
|
|
"06:36:36.551 SCRIPT (E): ERR SMOKE FAIL: mounted courier trip ended without complete radio, pickup, exchange, exact-seat return and hold-release proof",
|
|
"06:36:36.551 SCRIPT (E): ERR SMOKE FAIL: native production mounted courier full physical chain after intentional test depletion"
|
|
],
|
|
"engine_error_count": 15,
|
|
"cleanup_confirmed": true,
|
|
"source_unchanged": true,
|
|
"external_inputs_unchanged": true,
|
|
"source_manifest_sha256": "734605bce91abd957f72ec90968787f4dfb264fa49c34b90ef3e7526af2aea3e"
|
|
},
|
|
{
|
|
"archive": "native-2026-10-01-mounted-courier-normal-route",
|
|
"assertions": 55,
|
|
"completions": 1,
|
|
"script_or_runtime_failures": [],
|
|
"engine_error_count": 13,
|
|
"cleanup_confirmed": true,
|
|
"source_unchanged": true,
|
|
"external_inputs_unchanged": true,
|
|
"source_manifest_sha256": "734605bce91abd957f72ec90968787f4dfb264fa49c34b90ef3e7526af2aea3e"
|
|
}
|
|
],
|
|
"native_limits": [
|
|
"Opt-in fixture intentionally depletes one original magazine; this does not prove ordinary combat depletion.",
|
|
"Production radio demand and orders, individual dismount, approach attempt, finite deadline and original-seat reboard/hold release are observed.",
|
|
"First physical attempt reached pickup but failed before carried custody; its original generic journal did not retain the leaf refusal reason.",
|
|
"Second physical attempt timed out approaching cargo before pickup; precise leaf reasons are now forwarded if reached.",
|
|
"No exact truck-to-worker pickup or worker-to-mount swap success has been observed.",
|
|
"Normal route: scripted movement/interaction and physical helicopter occupancy, not manual play, piloting, multiplayer or FPS qualification.",
|
|
"Thirteen known installed-resource errors retain strict qualification failure.",
|
|
"Published/packaged handoffs remain unchanged."
|
|
],
|
|
"reference_sources_unchanged": 533,
|
|
"prior_unstaged_paths_preserved": 52,
|
|
"overlapping_additions_only": [
|
|
"tools/check.py",
|
|
"tools/headless_workbench.py"
|
|
],
|
|
"no_commit_or_publication": true
|
|
}
|