Include the current addon, terrain integrations, tools, regression tests and recorded development evidence.
98 lines
6.9 KiB
Markdown
98 lines
6.9 KiB
Markdown
# Human AI follow-up — 13 October 2026
|
|
|
|
This follow-up extends the opt-in Coordinated doctrine with persistent squad
|
|
judgment, bounded tactical terrain selection, executable finite covering fire
|
|
and optional local action speech. The behaviour and configuration are described
|
|
in [the AI documentation](../../aggression-ai.md). Current remains the default.
|
|
The dedicated server has not been changed by this follow-up.
|
|
|
|
The previous candidate's results remain in
|
|
[its separate archive](../coordinated-ai-2026-10-13/README.md). Those earlier
|
|
source fingerprints and test results do not qualify this follow-up.
|
|
|
|
## Policy checks
|
|
|
|
The new production-method tests exercise actual Enforce method bodies with
|
|
explicit native-boundary doubles:
|
|
|
|
- `test_hq_squad_judgment.py`: original roster chronology, casualties,
|
|
incapacitation, stable caution, ammunition hysteresis and evidence-based recovery.
|
|
- `test_hq_operations.py`: safe rally spacing, persistent retreat destination
|
|
and arrival through task expiry, current contact versus queued old rosters,
|
|
role selection and finite shared assignments.
|
|
- `test_hq_tactical_ground.py`: role-specific cover choices, static filtering,
|
|
finite work, tile refusal, search footprint and support deadline limits.
|
|
- `test_hq_execution.py`: exact activity/projectile attribution, finite
|
|
last-seen-area bursts, loss of support, ammunition and firing-lane guards,
|
|
attempt limits and native priority relationships.
|
|
- `test_hq_operation_speech.py`: actual-action cue selection and revalidation
|
|
after replacement, ownership changes, stale queues or lost support.
|
|
|
|
[The regression output](policy-regressions.log) and
|
|
[structured results with script hashes](policy-results.json) record **62 of 62
|
|
test programs passing**, covering HQ, hunter, infantry, speech, replay and runner
|
|
behaviour. Script sources stayed unchanged throughout that capture. Policy
|
|
doubles do not prove native navigation, weapon fire, playback, multiplayer
|
|
balance or dedicated-server performance.
|
|
|
|
A final [planner regression capture](policy-final-planner.log), with
|
|
[its source hashes](policy-final-planner.json), passes the operations, judgment
|
|
and adapter tests after the remaining delayed-roster edge was corrected: a
|
|
contact newer than a roster must inhibit its recovery contribution even when
|
|
that contact is now more than 60 seconds old. The new counterexample failed
|
|
before the correction; actual subsequent quiet reports still permit recovery.
|
|
|
|
The [full repository checker](full-check.log) still stops at the existing missing
|
|
saved root entity ID in `addons/core/Prefabs/Items/Equipment/ERRM_AtlasLeaf.et`.
|
|
That unrelated map prefab was not changed or bypassed. The first
|
|
[sandboxed attempt](full-check-sandbox.log) stopped earlier because its existing
|
|
localhost HTTP test could not open a socket. The normal checker was rerun with
|
|
local socket access; the HTTP tests passed before the prefab check failed.
|
|
|
|
## Native runs
|
|
|
|
Every run uses a frozen source copy, a fresh private profile and the isolated
|
|
`/tmp/erri-headless-compat` prefix. The normal audited runner retains compiler,
|
|
runtime and engine-error checks, exact input fingerprints and owned-process
|
|
cleanup. Failures are retained. No perception, projectile or ammunition facts
|
|
are fabricated to satisfy an assertion.
|
|
|
|
The full arranged encounter uses two authored original formations and the real
|
|
production execution adapter. Only the canonical prisoner is positioned for
|
|
the encounter; original soldiers must physically move and acquire the target
|
|
through native perception. The fixture does not qualify natural discovery,
|
|
complete HQ radio orchestration or dedicated-server performance.
|
|
|
|
| Run | Result |
|
|
| --- | --- |
|
|
| 01 | Native compilation found that the new speech extension accessed members defined by a later extension of the same native class. The methods were moved into the existing speech-context extension; policy tests still pass. This failed run did not reach gameplay. |
|
|
| 02 | Combined source compiled. Both original squads moved over 45 metres and physically arrived; seven scoped assertions passed. The arranged target was never acquired through native perception before the bounded encounter deadline, so no suppression attempt was made. |
|
|
| 03 | Compilation and physical movement succeeded again. A closer, low-eye arrangement reached native contact intake, but the required longer retreat had no clear ray in the bounded geometry survey. The fixture failed before a FIX order and did not claim fire support. Explicit post-placement timestamp and current-position checks were added for the following run, so this is not qualification of the complete close encounter. |
|
|
| 04 | Final planner chronology correction compiled. Physical movement, arrival and a post-placement close native sighting passed, with matching observation time and current position. After retreat, current native visibility was lost; no qualifying FIX or projectile proof followed before the bounded deadline. |
|
|
| 05 | Final source compiled with zero script errors. The other authored responder squad, on the more open Supply2 hillside, performed the firing-encounter role; the retreat survey preferred 80/70 metres to allow for native Defend movement. Eight scoped assertions passed, including both squads' movement/arrival and precise close native acquisition. The distant target was not acquired before the unchanged deadline, so FIX was never issued. The full fixture failed honestly. |
|
|
|
|
The [final strict native report](run-05/native-report.json) retains the failed
|
|
encounter assertion and engine/addon errors. Actual tagged suppression fire,
|
|
attributed ammunition consumption, support handoff and support-loss handling
|
|
remain **unqualified in the native engine** for this follow-up. The policy
|
|
tests exercise those branches; they are not a substitute for an actual firing
|
|
encounter. No visibility or projectile-proof requirement was relaxed.
|
|
|
|
The overlong 90-metre second-squad order in the full fixture is deliberately a
|
|
lease-expiry test. It does not prove a successful production 20-metre bound, and
|
|
the two authored responder squads start far apart, so it cannot establish
|
|
effective mutual tactical support. A co-located encounter with HQ radio delivery
|
|
and a multiplayer playtest remain separate acceptance work.
|
|
|
|
[Final live-source comparison](final-live-source-comparison.json) confirms all
|
|
516 authored addon files match run 05's frozen snapshot. Each archived
|
|
`runner.json` confirms cleanup and unchanged source/dependency inputs. No owned
|
|
native processes remain. The final execution and native-runner policy checks
|
|
also pass in [their output](policy-final-native.log), with
|
|
[exact source hashes](policy-final-native.json).
|
|
|
|
This is an implemented local candidate with successful compilation and scoped
|
|
execution evidence, not a clean native acceptance gate. Dedicated-server load
|
|
comparison, effective mutual support, optional speech playback and multiplayer
|
|
balance still need in-game qualification. No deployment is recorded here.
|