Files
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

53 lines
3.9 KiB
JSON

{
"finding": "Engineer mine individual movement bypasses the native group movement envelope",
"status": "source demonstrated and independently reproduced by actual-method baseline runtime failure; corrected source green",
"trigger": "An original on-foot mine carrier at an accepted HQ road-interception post is selected for a geometrically valid mine position outside its current group utility IsPositionAllowed envelope. Existing Begin calls Owned then issues priority1000 individual movement; Owned never checks that envelope. A current native Defend waypoint with radius30 and mine position50m away is a concrete rejected-native-envelope/admitted-controller case.",
"owned_reference": {
"path": "/home/jakub/devel/escapists/escapists-ai/Scripts/Game/EscapistsAI/EAI_HQRoadblocks.c",
"lines": "374-392",
"behavior": "Before starting its mine task, original calls engineer group utility.IsPositionAllowed(point). Original engineers were a separate group with GetOut waypoint; defending crew used a different group."
},
"sdk": {
"path": "/tmp/erri-vanilla-stock/scripts/Game/AI/Components/SCR_AIGroupUtilityComponent.c",
"lines": "917-935",
"meaning": "Current SCR_DefendWaypoint allows strictly inside its 3D completion radius; other waypoints use strictly less than max autonomous distance from group center of mass. This is not a generic forbidden zone or navmesh predicate.",
"installed_binding": "/tmp/erri-mine-zones-review-0558/sdk-bindings.json"
},
"production_fix": {
"file": "addons/core/Scripts/Game/ERR/10_AI/ERR_EngineerMine.c",
"method": "Owned",
"change": "Require current group utility and IsPositionAllowed(m_Position).",
"coverage": "Begin already calls Owned before exact item tombstone and first movement; Tick calls it before preparation/removal/placement, and final arming calls it again. Denial takes existing Stop path. No new movement, retry, callback policy, item refund or radius mutation."
},
"limits": [
"The native Defend waypoint radius is30m, so current25-60m candidate band only admits25..<30m in3D. No radius widening or alternate candidate retry is introduced; geometrically selected sites outside envelope conservatively refuse.",
"Existing HQ EngineerMineAttempted remains spent on a refused group attempt; item tombstone is not inserted on initial envelope refusal.",
"No native behavior qualification or compiler tests run by this author; peer owns focused actual-method tests."
],
"artifacts": {
"patch": "/tmp/erri-base-review-0558/fix.patch",
"manifest": "/tmp/erri-base-review-0558/source-manifest.json",
"test_proposal": "/tmp/erri-mine-zones-tests-0558"
},
"provenance": {
"/home/jakub/devel/escapists/escapists-ai/Scripts/Game/EscapistsAI/EAI_HQRoadblocks.c": "128776f0b448162ee36cfc71b2a38d2cd06d6d6e4679253f215896aa3fcabb98",
"/tmp/erri-vanilla-stock/scripts/Game/AI/Components/SCR_AIGroupUtilityComponent.c": "d808ed61832e55001f49a5be87b6117341ebfa12a972a839de8c5a8ecd6590eb",
"/home/jakub/devel/escapistsrereintroduced/addons/core/Scripts/Game/ERR/10_AI/ERR_HQ.c": "5d66c53baf8762e76ae59e28721edaa348014af6d988d42891d9a84a6cf44969"
},
"preservation": {
"original_read_only": true,
"successor_read_only": true,
"native_launched": false,
"compiler_launched": false
},
"validation": {
"source_review": "/tmp/erri-mine-zones-review-0558/review.json",
"actual_method_tests": "/tmp/erri-mine-zones-tests-0558/review.json",
"green": "/tmp/erri-mine-zones-tests-0558/green.log",
"baseline_runtime_red": "/tmp/erri-mine-zones-tests-0558/baseline-red.log",
"begin_only_guard_mutation_runtime_red": "/tmp/erri-mine-zones-tests-0558/continuation-mutation-red.log",
"test_sha256": "244ab49155000e5939a6c9d9e8f01fe8b14115119d548ba423ceffdd33ca9946",
"execution": "Executed by independent test peer, not this author; peer reports baseline and mutation compiled then assertion-failed, corrected green."
}
}