{ "scope": "Read-only current-source reconciliation of all39 dated feature rows; not a fresh native acceptance audit or a claim of full parity. Historical ledger unchanged. No protected GroupLookup/base-author contents read, no tests/native/source edits.", "rows": [ { "id": "config", "historical_status": "partial", "current": "Current source exists; historical missing/partial wording is not evidence this subsystem remains absent.", "source": "addons/core/Scripts/Game/ERR/00_Core/ERR_ProfileConfig.c" }, { "id": "skill", "historical_status": "missing", "current": "Current source exists; historical missing/partial wording is not evidence this subsystem remains absent.", "source": "addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyGunnerSkill.c" }, { "id": "radio", "historical_status": "partial", "current": "Current source exists; historical missing/partial wording is not evidence this subsystem remains absent.", "source": "addons/core/Scripts/Game/ERR/10_AI/ERR_HQLocalHandoff.c" }, { "id": "observations", "historical_status": "implemented", "current": "Current source exists; historical missing/partial wording is not evidence this subsystem remains absent.", "source": "addons/core/Scripts/Game/ERR/10_AI/ERR_HQObservation.c" }, { "id": "ground_tactics", "historical_status": "partial", "current": "Concrete remaining local search-footprint gap selected below.", "source": "addons/core/Scripts/Game/ERR/10_AI/ERR_HQ.c" }, { "id": "status", "historical_status": "partial", "current": "Current source exists; historical missing/partial wording is not evidence this subsystem remains absent.", "source": "addons/core/Scripts/Game/ERR/10_AI/ERR_HQStatusSampler.c" }, { "id": "missing_patrol", "historical_status": "missing", "current": "Current source exists; historical missing/partial wording is not evidence this subsystem remains absent.", "source": "addons/core/Scripts/Game/ERR/10_AI/ERR_HQWatch.c" }, { "id": "body_discovery", "historical_status": "partial", "current": "Current source exists; historical missing/partial wording is not evidence this subsystem remains absent.", "source": "addons/core/Scripts/Game/ERR/10_AI/ERR_HQBodyObserver.c" }, { "id": "belief_search", "historical_status": "partial", "current": "Current source exists; historical missing/partial wording is not evidence this subsystem remains absent.", "source": "addons/core/Scripts/Game/ERR/10_AI/ERR_HQMemory.c" }, { "id": "hunter", "historical_status": "missing", "current": "Current source exists; historical missing/partial wording is not evidence this subsystem remains absent.", "source": "addons/core/Scripts/Game/ERR/10_AI/ERR_HunterService.c" }, { "id": "capture", "historical_status": "partial", "current": "Current source exists; historical missing/partial wording is not evidence this subsystem remains absent.", "source": "addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyService.c" }, { "id": "convoys", "historical_status": "missing", "current": "Current source exists; historical missing/partial wording is not evidence this subsystem remains absent.", "source": "addons/core/Scripts/Game/ERR/10_AI/ERR_SupplyConvoyService.c" }, { "id": "recon", "historical_status": "partial", "current": "Existing air subsystem source and later evidence present; paused flight/air replacement scope excluded from this bounded selection." }, { "id": "air_assault", "historical_status": "partial", "current": "Existing air subsystem source and later evidence present; paused flight/air replacement scope excluded from this bounded selection." }, { "id": "parachutes", "historical_status": "partial", "current": "Existing air subsystem source and later evidence present; paused flight/air replacement scope excluded from this bounded selection." }, { "id": "aircraft_ammo", "historical_status": "partial", "current": "Existing air subsystem source and later evidence present; paused flight/air replacement scope excluded from this bounded selection." }, { "id": "air_recovery", "historical_status": "missing", "current": "Existing air subsystem source and later evidence present; paused flight/air replacement scope excluded from this bounded selection." }, { "id": "flight_safety", "historical_status": "partial", "current": "Existing air subsystem source and later evidence present; paused flight/air replacement scope excluded from this bounded selection." }, { "id": "ammo_accounting", "historical_status": "missing", "current": "Current source exists; historical missing/partial wording is not evidence this subsystem remains absent.", "source": "addons/core/Scripts/Game/ERR/10_AI/ERR_HQMountedAmmoSampler.c" }, { "id": "resupply", "historical_status": "partial", "current": "Current source exists; historical missing/partial wording is not evidence this subsystem remains absent.", "source": "addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryResupply.c" }, { "id": "depots", "historical_status": "missing", "current": "Current source exists; historical missing/partial wording is not evidence this subsystem remains absent.", "source": "addons/core/Scripts/Game/ERR/10_AI/ERR_GroundDepotLoading.c" }, { "id": "mines_issue", "historical_status": "missing", "current": "Current source exists; historical missing/partial wording is not evidence this subsystem remains absent.", "source": "addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryMineTransfer.c" }, { "id": "mines_task", "historical_status": "missing", "current": "Current source exists; historical missing/partial wording is not evidence this subsystem remains absent.", "source": "addons/core/Scripts/Game/ERR/10_AI/ERR_EngineerMinePosts.c" }, { "id": "roadblocks", "historical_status": "missing", "current": "Current source exists; historical missing/partial wording is not evidence this subsystem remains absent.", "source": "addons/core/Scripts/Game/ERR/10_AI/ERR_HQMountedDispatch.c" }, { "id": "mortar_deployment", "historical_status": "partial", "current": "Current source exists; historical missing/partial wording is not evidence this subsystem remains absent.", "source": "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarSystem.c" }, { "id": "mortar_fire", "historical_status": "implemented", "current": "Current source exists; historical missing/partial wording is not evidence this subsystem remains absent.", "source": "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarFiring.c" }, { "id": "settlement_safety", "historical_status": "partial", "current": "Current source exists; historical missing/partial wording is not evidence this subsystem remains absent.", "source": "addons/core/Scripts/Game/ERR/10_AI/ERR_EngineerMineSite.c" }, { "id": "performance", "historical_status": "partial", "current": "Current source exists; historical missing/partial wording is not evidence this subsystem remains absent.", "source": "addons/core/Scripts/Game/ERR/00_Core/ERR_ForceSimulation.c" }, { "id": "ambient_disable", "historical_status": "implemented", "current": "Isolation is intentional policy; no original ambient-system port needed." }, { "id": "factions", "historical_status": "partial", "current": "Current source exists; historical missing/partial wording is not evidence this subsystem remains absent.", "source": "addons/core/Scripts/Game/ERR/00_Core/ERR_FactionSelection.c" }, { "id": "prisons", "historical_status": "partial", "current": "Current source exists; historical missing/partial wording is not evidence this subsystem remains absent.", "source": "addons/core/Scripts/Game/ERR/00_Core/ERR_GeneratedSites.c" }, { "id": "start_choices", "historical_status": "missing", "current": "Ordinary crash-start selection still absent from current settings/source scan; new independent scenario/admission scope is larger than selected HQ fix and not proposed now." }, { "id": "outfit", "historical_status": "partial", "current": "Current source exists; historical missing/partial wording is not evidence this subsystem remains absent.", "source": "addons/core/Scripts/Game/ERR/10_AI/ERR_AutomaticEquipment.c" }, { "id": "stinger", "historical_status": "missing", "current": "Current source exists; historical missing/partial wording is not evidence this subsystem remains absent.", "source": "addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyLoadout.c" }, { "id": "optics", "historical_status": "missing", "current": "Current source exists; historical missing/partial wording is not evidence this subsystem remains absent.", "source": "addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyOptics.c" }, { "id": "compatibility", "historical_status": "partial", "current": "Current source exists; historical missing/partial wording is not evidence this subsystem remains absent.", "source": "addons/core/Scripts/Game/ERR/00_Core/ERR_ReaperRHSCompat.c" }, { "id": "simulation", "historical_status": "missing", "current": "Normal-server autonomous escape simulation remains distinct from WORKBENCH smoke; player/input work excluded from this increment." }, { "id": "journal", "historical_status": "implemented", "current": "Current source exists; historical missing/partial wording is not evidence this subsystem remains absent.", "source": "addons/core/Scripts/Game/ERR/10_AI/ERR_HQJournal.c" }, { "id": "catalogs", "historical_status": "partial", "current": "Current source exists; historical missing/partial wording is not evidence this subsystem remains absent.", "source": "addons/core/Scripts/Game/ERR/00_Core/ERR_FactionCatalog.c" } ], "selected_gap": { "id": "ground_tactics", "title": "Delivered searches do not widen their native investigation footprint", "evidence": [ { "path": "/home/jakub/devel/escapists/escapists-ai/Scripts/Game/EscapistsAI/EAI_GroupTactics.c", "lines": [ 7, 383, 385, 409 ], "fact": "Owned tactics supplies 45m fresh or110m stale radius to SearchAndDestroy; freshness threshold15s." }, { "path": "/home/jakub/devel/escapistsrereintroduced/addons/core/Scripts/Game/ERR/10_AI/ERR_HQ.c", "lines": [ 1090, 1093, 1100 ], "fact": "Current DeliverOrder spawns vanilla SearchWaypoint and installs it without SetCompletionRadius or any other search extent configuration." }, { "path": "/tmp/erri-vanilla-stock/Prefabs/AI/Waypoints/AIWaypoint_SearchAndDestroy.et", "lines": [ 7 ], "fact": "Installed vanilla prefab CompletionRadius30." }, { "path": "/tmp/erri-vanilla-stock/scripts/Game/AI/Behavior/SCR_AISearchAndDestroyActivity.c", "lines": [ 130, 143 ], "fact": "Native GenerateInvestigationGrid derives its actionRadius from waypoint.GetCompletionRadius." }, { "path": "/home/jakub/devel/escapistsrereintroduced/addons/core/Scripts/Game/ERR/10_AI/ERR_HQPursuit.c", "lines": [ 94, 108, 125 ], "fact": "Current uncertainty changes objective/sector coordinates; it does not configure native grid radius." } ], "effect": "A stale delivered report can move the search destination into a different uncertainty sector, but the native search around that destination is still the same30m footprint as every fresh task. This is a source behavior omission, not merely an unqualified physical test.", "bounded_proposal": "Add a finite immutable search-radius field/policy to normal memory SEARCH orders (suggest original45/110 age behavior or explicit45..110 uncertainty policy chosen by root); assign during plan using delivered snapshot evidence, validate and set on the new native waypoint before AddWaypointAt. Keep existing delivered identity/revision checks, task expiry, claim limits, patrol restoration and native combat preemption. Do not mutate already-running waypoints or refresh observation time.", "boundaries": [ "Do not apply to road/security Defend waypoints, containment/intercept or missing-patrol requests without separate policy.", "Keep existing physical40m/30s negative-search witness; do not widen cleared-ground claims just because native grid is larger. Existing500m coverage cells are explicitly visit exclusions rather than proof every point was visible.", "No new force, stock, spawn system, target-position read or road survey.", "Setting radius before activity creation is supported by current native API but still needs later native compilation/behavior qualification." ], "focused_test_plan": "Extend actual DeliverOrder harness and pure policy test: fresh/stale finite values, pending immutable radius despite later memory mutation, malformed radius refusal without installing, unchanged fixed deadlines/Defend/missing-patrol behavior, no enlarged negative-search claim. No tests run here." }, "not_recommended_as_missing_feature": [ "Radio awareness-only broadcast storage is absent but original EAI_HQ Awareness is used only for duplicate broadcast suppression/logging, not movement/perception; this would add radio traffic without demonstrated gameplay benefit.", "Most original status, missing patrol, memory, convoy, mine, depot and equipment rows are obsolete as source-gap descriptions: current corresponding implementations exist. Their remaining native/manual/MP gaps are not new source features." ], "source_sha256": { "/home/jakub/devel/escapistsrereintroduced/docs/ai-feature-migration.json": "68dfb0b523b650fc82648953d3ed390dc68617d0ed9cc5bce86145b3e7b99eea", "/home/jakub/devel/escapistsrereintroduced/addons/core/Scripts/Game/ERR/10_AI/ERR_HQ.c": "d873b5b689e918f8c907918d673304a184ac2e4a4cb6face527b37a67821ee9f", "/home/jakub/devel/escapistsrereintroduced/addons/core/Scripts/Game/ERR/10_AI/ERR_HQTask.c": "1147904bae6d72e9de47ce17bdada3dab489de4ed6e781dbf15bdbb30599ff6e", "/home/jakub/devel/escapistsrereintroduced/addons/core/Scripts/Game/ERR/10_AI/ERR_HQPursuit.c": "ab6ca0e1a7f36c104e664db06a74c80a528cbfd1de599af42e2194ef0a4f4ca3", "/home/jakub/devel/escapistsrereintroduced/addons/core/Scripts/Game/ERR/10_AI/ERR_HQCoverage.c": "8d9668858c47b7e9fee2b12d3ebd4e7cb88146b817cf615c4b0dade26c81b2ec", "/home/jakub/devel/escapistsrereintroduced/addons/core/Scripts/Game/ERR/00_Core/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee", "/home/jakub/devel/escapists/escapists-ai/Scripts/Game/EscapistsAI/EAI_GroupTactics.c": "226eb3981765284afa0cead84411244806a84440003fe4af69f2208028cef23d", "/tmp/erri-vanilla-stock/Prefabs/AI/Waypoints/AIWaypoint_SearchAndDestroy.et": "55e46bd62175f3f2b4c5f203bb161b339648f5c1a1b53fcc6b40193c72dcf2a2", "/tmp/erri-vanilla-stock/scripts/Game/AI/Behavior/SCR_AISearchAndDestroyActivity.c": "51f4343ee3e8fa90edea9a9a7d73581debfccc961a2e65dc87043289a5bd6fe1" } }