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
..

Coordinated AI native investigation — 13 October 2026

These are local, hidden, muted Workbench runs on Everon. Each run uses a separate frozen source copy, private profile, and the isolated /tmp/erri-headless-compat Proton prefix. The installed game, installed external addons, and dedicated server are not modified. The seven installed dependencies were reviewed in the dependency evidence.

Every archived run contains the exact console, runner outcome, launch source manifest, and external-input fingerprints. runner.json records confirmed process cleanup and unchanged source/dependency inputs. Failures remain in the archive; a clean compile or a passed intermediate assertion is not a completed native qualification.

Run Outcome and consequence
01 Native compiler rejected engine-reserved member names Road, Sequence, and Contact. Renamed to OnRoad, ReportSequence, and HasContact.
02 Native compiler exposed missing base HQ extension hooks, a float remainder expression, and a suppression action requiring a strong reference. Owners corrected these; subsequent compile progressed.
03 Compiled and started. Two original distant squads remained stationary and the production execution adapter honestly reported blockage. Fixture stopped at its movement deadline. This exposed the need for a production scoped LOD lease.
04 Native compiler rejected the compact MobilePursuitLimit return body. Rewritten with a local result and explicit return.
05 New fixture diagnostics used the reserved identifier owned; corrected to activityOwned.
06 Production LOD lease compiled. Both original squads moved over 45 metres and production execution reported physical arrival. Suppression was not attempted because no native target was acquired before the arranged encounter deadline.
07 Repeated physical movement/arrival. The arranged prisoner remained at the intended position, the actual faction relation was hostile, and native perception components existed, but their enemy lists stayed empty. Failed the native acquisition deadline; no support claim was made.
08 Canonical character teleport and a close arranged encounter produced a genuine native visual sighting. The conservative low-eye geometry search found no clear suppression-range retreat and the fixture failed there. This is perception evidence, not suppression proof.
09 Repeated physical arrival and actual close native contact. After the arranged longer retreat, native trace/exposure became zero and the last seen position remained the old close location. The fixture correctly refused FIX and failed its acquisition deadline. The next fixture uses the actual original observer's existing sight ray.
10 Compiled the then-current complete source and again proved both physical arrivals. A real observer acquired the suppression-range target and the fixture issued FIX. Contact was intermittent and one attempted suppression activity produced no attributed projectile proof; the fixture failed its support deadline. The next fixture selects the two authored responder groups deterministically and mirrors production's immediate execution sample on order receipt.
11 Both authored responder formations physically moved and arrived. The first formation continued its native hold travel after the 40m arrival quorum, leaving the arranged target behind it; the encounter never produced native acquisition. Failed its bounded encounter deadline. Subsequent source inspection also found an independent production conflict: the owned Defend action had higher native priority than suppression. The executor now temporarily removes only its own hold while suppression exists and restores it afterward. A subsequent scoped group priority of Defend+1 also avoids the retained home Defend preempting suppression; ordinary attack, healing and danger priorities remain above it.
12 Explicit blocked-only variant: all seven scripted assertions and its scoped completion marker succeeded. Both original formations physically moved and arrived; cancellation reported SUPERSEDED; the impossible route produced a real native movement-failure callback, BLOCKED and eventual FAILED with zero searched radius. No script/runtime failures occurred. The strict native report still exited 1 on existing localization/resource/world-keyword/Steam engine errors; these were not filtered or bypassed. Suppression was excluded by the explicit flag.
13 Final production source compiled and both original formations physically moved and arrived again. After native position stability, the arranged prisoner produced genuine close and suppression-range sightings. The real group executed the owned SCR_AISuppressActivity with ammunition available, proving the ownership/priority correction. Native visibility then became stale and local suppression was cancelled without a support claim. No attributed suppression projectile was observed; the full fixture failed its bounded support deadline. Attributed shots, ammunition consumption for suppression, support handoff and support-loss cancellation in the native engine remain unqualified.

The current fixture uses two existing registered original squads and the real production execution adapter. It does not spawn or teleport soldiers. To create a controlled firing encounter, it temporarily protects and teleports only the canonical prisoner: close approach, then a longer retreat. After each placement, an actual fresh native visual sample is required before a fix order is issued. The full fixture waits for ten seconds of physical stability before arranging the encounter. It does not seed perception, set contact booleans, synthesize projectile events, or subtract ammunition. The fixture's orders are explicitly arranged and do not qualify HQ radio delivery, natural player discovery, multiplayer balance, or dedicated-server performance.

Reproduction uses the normal audited runner with a fresh private profile and an idle isolated prefix:

python3 tools/headless_workbench.py \
  --compat /tmp/erri-headless-compat \
  --profile /tmp/erri-coordinated-native-new \
  --external-addons '/path/to/reviewed/installed/addons' \
  --project core --smoke coordinated-ai --rounds 1 --timeout 720

The runner retains its normal compiler/runtime/error checks, source sealing, external dependency verification, bounded timeout, muted audio, hidden display, and owned-process cleanup. The new smoke option does not bypass these checks.

Adding --coordinated-blocked-only explicitly selects the independent movement, cancellation, and unreachable-route variant. Its completion message excludes suppression qualification; it cannot serve as a pass for the full fixture. Run 12's strict native report is retained alongside the runner outcome so smoke-completed cannot be mistaken for clean validation. It contains 20 engine-error lines, including the RHS/WCS localization Wrong GUID/name messages, Steamworks: RequestCurrentStats failed, unknown world keywords Parent, SlidingTrackMaterial, m_HardLandingVelocity and m_DeathLandingVelocity, and zero-GUID references to worlds/Eden/Eden.ent. The exact message and line comparison confirms every one of these messages also appears in run 03, before the final execution corrections. This establishes that they predate those corrections; it is not a pre-feature A/B baseline and does not waive the failing native gate.

Run 13 retains its strict native report, including the failed encounter assertion. The final source comparison confirms all 512 authored addon files at the end of that pass exactly matched that final launch snapshot. Later source changes and their results are tracked separately in the human AI follow-up. Cleanup and unchanged source/dependency inputs are confirmed for every run. No further native processes remain owned by these runs. Successful compilation and these scoped assertions do not establish a clean native gate, HQ radio integration, dedicated-server performance, or multiplayer playtest acceptance.

Repository checks

Policy regression output and structured results record 304 policy checks, 53 HQ tests, and 13 pursuit replay cases passing. The full checker output is retained separately: it stops on the existing missing root ID in ERRM_AtlasLeaf.et. That unrelated asset failure has not been bypassed or changed as part of this work. No dedicated-server performance, multiplayer playtest, or deployment result is inferred from these local tests.