{ "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." } }