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

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.