{ "verdict": "no concrete native API or inheritance mismatch found; engine compilation remains pending", "source_changes_from_1349": false, "tests": [ "test_native_mounted_intercept.py PASS (actual witness, CLI AST, terminal and actual modded hook)", "test_native_convoy_cover_probe.py PASS" ], "base_hook_check": "Visible protected empty HQ base method; production modded override in10_AI; fixture override in40_Chat calls super once and retains strong pre-super order/route. Actual hook regression covers pending, negative/cancel, successful delivery, inactive fixture and already-delivered branches. Native multi-modded dispatch still requires planned engine compilation.", "radio_cursor_semantics": "Native production script Advance ends uplink at Cursor>=Count, downlink at Cursor==Count-1, clears Sending; fixture predicates match. No new invented native method.", "references": [ { "path": "/home/jakub/devel/escapistsrereintroduced/addons/core/Scripts/Game/ERR/10_AI/ERR_HQ.c", "sha256": "da2ffb958cdcb47ff375ebe2cbf221e1d726da0fc54ad446d0cad60e0ef2389c", "methods": [ { "text": "protected void TickMountedIntercept(float now) {}", "line": 1311 }, { "text": "protected void ContactReport(ERR_HQUnit unit, float now)", "line": 749 }, { "text": "ERR_HQMemory Memory()", "line": 467 } ] }, { "path": "/home/jakub/devel/escapistsrereintroduced/addons/core/Scripts/Game/ERR/10_AI/ERR_HQMountedDispatch.c", "sha256": "8650c09afc46439a74e17cdf968b09d238ec9437113ffad784a031cddd65440a", "methods": [ { "text": "protected override void TickMountedIntercept(float now)", "line": 75 }, { "text": "m_MountedInterceptRoute.Advance(now, m_Journal)", "line": 91 }, { "text": "m_MountedInterceptRoute = null; m_MountedInterceptDelivered = true;", "line": 99 } ] }, { "path": "/home/jakub/devel/escapistsrereintroduced/addons/core/Scripts/Game/ERR/10_AI/ERR_HQNetwork.c", "sha256": "85e4d2cb27426c07b8631ca411f4b8f5c821f9f331c8c2719cbfa71b3687f08e", "methods": [ { "text": "int Advance(float now, ERR_HQJournal journal)", "line": 55 }, { "text": "if ((!Downlink && Cursor >= Nodes.Count()) || (Downlink && Cursor == Nodes.Count() - 1))", "line": 106 } ] }, { "path": "/home/jakub/devel/escapistsrereintroduced/addons/core/Scripts/Game/ERR/10_AI/ERR_HQLocalAwareness.c", "sha256": "124260280ac8eda0e920bfcfc86932c9b21df6b1f7a6aa8acfc43feea3da149f", "methods": [ { "text": "void Clear()", "line": 27 }, { "text": "void Remember(ERR_HQReport report, float now)", "line": 45 } ] }, { "path": "/home/jakub/devel/escapistsrereintroduced/addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeHQMemoryProbe.c", "sha256": "d8fec6c138bb0f5bdbf99ee82ffc3ac9b44d1045d8833da63f8aa5f39beeb7e5", "methods": [ { "text": "ERR_HQRoute ERR_MemoryFixtureQueue(ERR_HQReport report)", "line": 37 }, { "text": "unit.LocalAwareness.Remember(report, report.ObservedAt);", "line": 50 } ] } ], "preservation": "All current four existing baseline file working/index hashes captured; no tracked target edits. Rebase application check succeeds. Unrelated terrain source untouched.", "apply_check_exit": 0 }