Files
EscapistsReintroduced/docs/evidence/config-supply-recovery-2026-10-03/base-gameplay-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
4.3 KiB
JSON

{
"complete": true,
"verdict": "No new demonstrated production defect in this bounded review; no patch proposed.",
"scope": "Ordinary radio occupancy/completion, extraction resolution versus incapacitation, canonical player identity/disconnect and terminal callback cleanup.",
"findings": [
{
"source": "ERR_RadioDefenceService.c:CanBegin/CanDefend/Tick",
"evidence": "Tuning/defence require current roster-controlled friendly actor and conscious capability. Each server sample resets the uninterrupted interval when no defender remains, including disconnect and empty-server samples; another remaining defender preserves progress. Completion latches before callbacks.",
"coverage": "test_radio_defence_policy.py actual matrix, handover/interruption/clock/duration controls; test_progression_identity.py current canonical body checks."
},
{
"source": "ERR_GameMode.c:ServerTick; ERR_ExtractionService.c:Tick/Resolve/ConnectedWinners",
"evidence": "Extraction resolves before recovery/no-survivor defeat. Only living original participant accounts physically aboard assigned helicopter outside boundary in EXTRACTION enter result. Unconscious/reserved disconnected passengers deliberately qualify. Result is latched before event; current connection must still map to same escaped account for winner IDs.",
"coverage": "Existing ERR_NativeExtractionProbe explicitly specifies12 occupants, prior-phase crossing, unconscious/dead/left-behind/recycled-connection cases; this review did not rerun or qualify that fixture."
},
{
"source": "ERR_PlayerRoster.c; ERR_SpawnLogic.c:OnPlayerDisconnected_S",
"evidence": "Disconnect cancels pending admission then removes connection mapping while retaining round account/body/used-life record. Recycled connection IDs cannot inherit the old account. CurrentActor additionally requires actual native controller-body reciprocity."
},
{
"source": "ERR_RecoveryService.c:Tick; ERR_GameMode.c:OnGameModeEnd/StopServices",
"evidence": "Disconnected conscious reserved body remains a potential rescuer; recovering casualties prevent stalled defeat; empty server resets stall. Native end latches inactive before cleanup; existing actual tests cover reentrant cleanup and stale preparation callback refusal.",
"coverage": "test_recovery_policy.py and test_native_end_lifecycle.py inspected."
}
],
"limits": [
"Read-only source/test audit, no test or compiler execution and no native/GUI/process interaction.",
"No multiplayer, manual escape or native physical proof inferred.",
"Current status already explicitly preserves those qualification limits; no unsupported missing-feature claim or speculative refactor."
],
"hashes": {
"addons/core/Scripts/Game/ERR/00_Core/ERR_GameMode.c": "89a29c03ba225acbbb9fa3c58a721aced91a77bc0c77046d697005a6d7c48bb9",
"addons/core/Scripts/Game/ERR/00_Core/ERR_RadioDefenceService.c": "f5f0bf1352141f933d0edb5630e30541e001dc07e1d2c8529b29cc159c126b13",
"addons/core/Scripts/Game/ERR/00_Core/ERR_ExtractionService.c": "91357099b4e0401196b67d48963be54be30e56bdba57cdac67dc20b8ebb883e9",
"addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerRoster.c": "c038dac0f749bd29ebc35a4e952904b41a34417ba738904d5efcd1833a263e0b",
"addons/core/Scripts/Game/ERR/00_Core/ERR_SpawnLogic.c": "47a39c951be71bfcf1cc50526d507d0f9d8ef2fc09408697b6fe6b0dc5a529e2",
"addons/core/Scripts/Game/ERR/00_Core/ERR_RecoveryService.c": "86f9a7769e3ccb19fc61127fe2fee2ad0dd825487a5cd59f334de8b9741c93cf",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972",
"tests/test_radio_defence_policy.py": "48c9c01dc6135a3f6d2187b0974645758040f041c3c2c2c26b14222fc572dfe1",
"tests/test_progression_identity.py": "2fb3725aa735e00b20ba7a4ac45f8e087d4346c58a176bee091bab0a9755c1df",
"tests/test_player_admission_policy.py": "745ec0a9e491ffcf5bec53ebf67ecee8333f4dcfa5d19bafbde31cbd1cad7f8b",
"tests/test_native_end_lifecycle.py": "8b187723c9039e68e3e590c812c91dcffe1e5917d4e450ed798dc177888fda7a",
"tests/test_recovery_policy.py": "adc4966ab92f0849d08636d93da5bd02b9162d1ad7369b325a1a357903abaa55",
"docs/current-status.md": "5d4494b599f9379ef137222230ae0ea79d579e7a032772aa97de0138138b319c"
}
}