Files
EscapistsReintroduced/docs/evidence/convoy-survivors-2026-10-02/diagnostic-review.json
T
jakub 6a667d8deb Capture current mission, AI, map and administration development
Include the current addon, terrain integrations, tools, regression tests and recorded development evidence.
2026-10-13 22:52:53 +02:00

47 lines
3.8 KiB
JSON

{
"scope": "Read-only current production release predicates; failure-time fixture diagnostic recommendation, no historical cause attribution.",
"source_sha256": {
"addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyService.c": "6ca333da6183c86d19f09d0ad2b4d789879ebad2cb43dbe7fd3eb06d6f4e5a53",
"addons/core/Scripts/Game/ERR/00_Core/ERR_Actors.c": "980d30964845600a261693cc5c5553e1472e8e54867bdc06133ff5c7b36c9128",
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeConvoyProbe.c": "7e6d5b367f71539cdac1e5f406d650d7d06bfd26a3ce3404abfb0ac5d88d3411"
},
"release_paths": {
"ERR_ConvoyVehicle.Tick": "CrewValid false; existing Waypoint and now>=LegDeadline; Order false. Arrived sets Arrived without immediate individual Release; final task Stop later releases all.",
"ERR_ConvoyTask.Stop": "Sets Reason and releases each original vehicle; capture, startup/admission failure, all-ended, and service Stop callers retain task reason.",
"combat_resume": "Combat hold removal calls Order when not SupplyHeld; false releases unit."
},
"crew_predicates": {
"root": "Group and Entity present; ERR_Actors.Alive(Entity); group faction==mode.EnemyFaction.",
"driver": "Original Driver CanFight, non-player and native GetVehicleIn tree includes original Entity.",
"members": "Each original member Alive, non-player and ERR_Actors.Group(member)==original Group. No passenger-consciousness/seat requirement in CrewValid."
},
"bounded_snapshot": [
"Once on failure: task Ready/Stopped/Reason, failing array index and unit.Index, original entity identity match, mode Active/current identity.",
"Unit Released/Arrived/Registered, entity present+Alive, Group present+enemy faction, current CrewValid and Captured (only after safe null guards).",
"Route presence/count/index, now/LegDeadline, own Waypoint/current native waypoint presence and equality, entity position and distance from frozen origin.",
"Driver identity/presence/Alive/CanFight/Player/current Group, aboard entity and PartOf original tree.",
"For original Members (cap19): index, identity, Alive, Player, Group equality. Optional native seat/CanFight useful context but label separately from release predicate.",
"Current combat held/supply token+held/intercept token+active; these values may already be cleared by Release."
],
"cautions": [
"Release clears own waypoint, combat/supply/intercept flags and unregisters group; their absence afterward cannot establish the trigger.",
"Order can fail native waypoint spawn; a later null Waypoint is not evidence of that failure because Release also deletes it.",
"Crew state can change after release; diagnostics are current-state evidence, not proof of earlier predicate.",
"Do not invoke Order, Tick, Release or any action to obtain diagnostics. Keep one failure readout, bounded exact original arrays and <=6 PrintFormat arguments per line.",
"Missing vehicle/actor/group must be null-guarded; SeatDiagnostic currently assumes group exists, so do not call it unguarded for loss."
],
"tests_run": false,
"native_run": false,
"target_writes": false,
"draft_review": {
"result": "Scope and API approved; recommend splitting two7argument rows to<=6 and parent-planned task/route context.",
"patch_sha256": "5198ebf6959db1f0354e656d57d24cd3245af8629cb2e520f5de78b47ec71e62",
"source_sha256": "0156fb019a5e4d2741c1a6aba0bffeca71af4a57ae1308e62b2ae348c3e901d5",
"notes": [
"All APIs already appear in production or same fixture. No new traversal beyond bounded original Members.",
"New !vehicle failure guard prevents null record dereference at existing proof boundary.",
"Earlier stopped-task branch reports task Reason without this per-vehicle helper; failure-time snapshot is not historical release tracing."
]
}
}