Skip to content

AI Commander Autonomy Audit

rayswaynl edited this page Jul 1, 2026 · 97 revisions

AI Commander Autonomy Audit

This page is the source-backed audit for AI commander automation and autonomous logistics. Use it before reviving AI commander production, AI supply trucks, autonomous supply helicopters, or any code that assumes the mission already has a complete self-driving commander.

Paths are relative to Missions/[55-2hc]warfarev2_073v48co.chernarus/.

2026-07-01 release-loop supersession note: this page preserves older branch/stable anchors for historical AICOM audits. For the July 2 PR #122 / PR #125 loop, the current fetched baseline is origin/master@b7241a35f0460e92cf8839cd315c95defaa6380b; PR #122 scanner/tooling head is 4c66c3b6b1c20321163e732d6d06f5dacaeb4e5a; mission-content head is f5c41461508e117d13d0b6172cbd66698091a8eb; and AICOM/HC release claims remain source-backed/runtime-pending until exact-build SERVER_DEBUG RPT evidence passes both-terrain, startup-banner, HC registry, stronger AICOM telemetry and per-terrain runtime evidence gates. The PR #122 parity audit reports 21/21 checked AICOM/HC files hash-identical between Chernarus and generated Takistan, but current livehost template resolution was unresolved for WASP_Experital_TEST.Chernarus and [61-2hc]warfarev2_073v48co.takistan, so those livehost RPT windows are baseline context only, not exact release proof. Older lines that say origin/master@7bfcf09a9, origin/master@f39665d79, origin/master@f8a76de34, or similar are branch-era evidence unless explicitly refreshed.

Verdict

Current stable origin/master@7bfcf09a9 AI commander support is active, but still partial / smoke-pending:

  • Real side-level AI commander state exists.
  • AI commander funds are initialized and can receive income.
  • The AI commander supervisor and worker family are compiled and spawned in both maintained roots.
  • The supervisor sets wfbe_aicom_running true while it has full command, clears it when stopped/human-commanded, and calls the execute, town assignment, strategy, base, team, type, upgrade and production workers on cadence.
  • The server buy worker for AI production is compiled.

The old "no live owner loop" audit wording is historical for earlier refs. Current master compiles WFBE_SE_FNC_AI_Commander at Chernarus and maintained Vanilla Server/Init/Init_Server.sqf:74, spawns it per present non-GUER side at :1067, restarts it from watchdog context at :1095, spawns wildcard supervisors at :1108, sets/clears wfbe_aicom_running at Server/AI/Commander/AI_Commander.sqf:161,348, calls the upgrade worker at :288, and keeps the upgrade-worker compile at Init_Server.sqf:64.

Human commander state is live: vote/reassignment, commander-side economy controls, HQ/MHQ affordances and income split all run through the normal Warfare flow. Full autonomous commander behavior is the partial/latent part.

Autonomous supply trucks are still not revived. The docs/source checkout HEAD@f9bc264f45a0 is source-unchanged from 6d4b514c12fc for the checked supply-truck paths and still has the raw-spawn trap in both maintained roots: UpdateSupplyTruck is commented at Server/Init/Init_Server.sqf:36, wfbe_ai_supplytrucks is initialized at :382, and the branch raw-spawns UpdateSupplyTruck at :383. Current master origin/master@7bfcf09a9 is safe-disabled instead in both maintained roots and PR #88/B751 did not touch the checked Init_Server.sqf path: Init_Server.sqf:46 comments the compile and :626-627 initializes/log-disables the legacy path. Current B74.2 origin/claude/b74.2-aicom@21b62b04 keeps the earlier B74.1 supply-truck safe-disable caller shape; d472da6a..21b62b04 touches source-Chernarus GUER stipend startup plus client join/connect files, not the missing worker/FSM route. The old worker still references missing Server\FSM\supplytruck.fsm at AI_UpdateSupplyTruck.sqf:17, and a broad current-origin ls-tree sweep found no supplytruck.fsm. Miksuu/perf still keep the older raw-spawn trap; see the matrix below.

The old origin/feat/ai-commander section below is historical branch evidence. Current stable has since absorbed a maintained-root supervisor/worker route, while PR #43 / B68 and the B69 pages remain separate branch/live-Chernarus evidence until merged, propagated and smoked.

Separate concept note: Quad AI Commander concept indexes origin/codex/quad-ai-commander head d4e0fa38. It is a future log/intel/context-store design sketch, not stable source behavior and not proof that AI commander autonomy is implemented.

WEST Commander Founding Failure (cmdcon31, source-integrated / runtime-pending)

The "supervisor and worker family are compiled and spawned" verdict above is about the supervisor existing and running, not about WEST reliably founding teams. On cmdcon30 (2026-06-30) the live server RPT showed the WEST side intermittently founds 0 commander teams (side SNAP str=0/teams=0) while the server allocator still shows ALLOC teams=14, and EAST founds normally. The active release branch now carries a targeted source candidate, but this is still runtime-pending — do NOT claim it released/fixed yet.

Current source candidate: the packaged PR #125 command-center branch codex/release-command-center-20260630@e3b6e37903, which includes the earlier origin/claude/command-center-instruct@8de3c4a60 starved-infantry fallback, adds that fallback to both maintained Server/AI/Commander/AI_Commander_Teams.sqf files. If founding eligibility stripping leaves a side with no stored-type-0 infantry template, it admits the cheapest infantry template and logs AICOMGATE|<side>|infFallback|.... The same release line also removed the A3-only allMissionObjects salvage sweep from the retired W10 wildcard branch, added AICOM owner-generation watchdog fencing, live-HC static-defense delegation guards and Common_AICOMNextOrderSeq.sqf order-sequence reads in both maintained terrains, and static smoke now passes the A2 OA command-dialect and AICOM order-sequence guard gates. The latest PR #125 loop also tightened capture completion behavior: AllCamps mode installs the tight camp MOVE and optional SAD as one WaypointsAdd chain so the SAD cannot clear the camp-presence waypoint, and WFBE_C_AICOM_STALL_ADVANCE_SECS now measures same-target age independently of the older far-from-target stuck branch; the e3b6e37903 follow-up also makes relaid WaypointsAdd batches current on their first new waypoint and widens the arrival latch to WFBE_C_AICOM_ASSAULT_ARRIVE_RADIUS, so squads that reach the existing telemetry arrive radius can enter the local capture phase. It additionally guards WFBE_ReqAicomFeed against malformed/non-player/dead/invalid-owner replay requests, validates active-team lifecycle slots before refund/cleanup/marker-heading math, and rejects malformed AICOM HandleSpecial payload/list shapes before slot reads. Runtime proof is still pending.

PR #125 7f AICOM P0 Verification Matrix

Use this matrix to keep the static branch proof separate from the runtime proof still required before release wording. The source refs are checked on the Chernarus source mission and mirrored to maintained Takistan by Tools\LoadoutManager; the static gates are local package evidence only.

Risk Source refs Static/package gate Runtime proof still required
Supervisor lifecycle and commander handoff Server/AI/Commander/AI_Commander.sqf, Server/Init/Init_Server.sqf, Common/Functions/Common_AICOMNextOrderSeq.sqf Run-WaspFinalCheck.ps1; static smoke AICOM order sequence guards; package marker e3b6e37903 Current-window `AICOMHB
HC delegation, pending slots and lifecycle messages Common/Functions/Common_RunCommanderTeam.sqf, Server/Functions/Server_HandleSpecial.sqf, Server/Functions/Server_OnPlayerConnected.sqf, Server/Functions/Server_OnPlayerDisconnected.sqf Static smoke AICOM lifecycle/refund authority guard, active marker-list and HandleSpecial shape guards, HC audit token emitter checks Two non-zero-owner CIV HC connect rows, zero connect-skip/non-CIV HC rows, HCRECON_AICOM_AUDIT, HCDROP_AICOM_AUDIT, no stale/unknown delayed heading failures
Founding and Takistan WEST fallback Server/AI/Commander/AI_Commander_Teams.sqf, Common/Init/Init_CommonConstants.sqf Static smoke runtime-proof token emitter coverage and Takistan propagation/package payload gate Exact-build Takistan `AICOMGATE
Allocation, orders and capture progress Server/AI/Commander/AI_Commander_Allocate.sqf, AI_Commander_AssignTowns.sqf, AI_Commander_Execute.sqf, Common/Functions/Common_RunCommanderTeam.sqf Static smoke AICOM group defaults, order sequence, capture-stall and arrival-radius and waypoint-current assertionss ASSAULT_DISPATCH, COMBATSTAT, FRONT, POSTURE or SNAP per side; `TARGET_ABANDON
Base/factory production and upgrade economy Server/AI/Commander/AI_Commander_Base.sqf, AI_Commander_Produce.sqf, Server/Functions/Server_AI_Com_Upgrade.sqf, Server/PVFunctions/RequestAIComDonate.sqf Static smoke donation authority, group-funds/default guards, artillery config guards, A2/OA lint FAIL 0 / REVIEW 0 Runtime AICOMSTAT economy/build/upgrade telemetry, no stuck wfbe_upgrading, no client/local spend authority regression
Town AI, WDDM/static/artillery and supply families Server/FSM/server_town_ai.sqf, Server/FSM/server_town.sqf, WDDM/static defense and supply paths scored by Tools\PrTestHarness\Rpt Runtime scorer self-tests cover per-terrain evidence and no one-terrain false pass Chernarus and Takistan each pass per-terrain-runtime-evidence for AICOM, JIP, HC, town-cleanup, WDDM/static/artillery and supply semantic families
A2 OA compatibility and package identity Chernarus source mission plus generated Missions_Vanilla/[61-2hc]...takistan dotnet run -c RELEASE, package provenance PASS, Run-WaspFinalCheck.ps1, git diff --check, package SHA 3DB01AC1656329ECCAE9896CE9442680D5D904C563DD44590FFBD20954CF7B87 Runtime packet manifest, run ledger and summary all bind to ExpectedGit e3b6e37903 and the same archive SHA

Why this fits Takistan WEST: the founding eligibility strip requires every unit in a template to be usable at the current upgrade level. Founding side upgrades begin at [0,0,0,0]; Takistan WEST BIS_US infantry templates can carry a base team leader such as US_Soldier_TL_EP1 at upgrade tier 1, so all infantry templates can be stripped before the side has founded anything useful. EAST/TK can escape because its comparable classes are undefined or read as upgrade-0 in the checked data. The fallback is map-independent and should self-heal once normal upgrade gates reopen richer squads.

The earlier HC re-grab/registry churn theory remains a useful telemetry hypothesis, not the primary release fix. Keep watching HCSIDE|v1|connect, groupSide=civilian, register=true and zero connect-skip, because unstable HC registration can still break delegation. But runtime proof for this source candidate must now pass the dedicated takistan-west-aicom-infantry-fallback scorer gate with Takistan WEST AICOMGATE|WEST|infFallback, plus TEAM_FOUNDED, CMDRSTAT, and at least one autonomous AICOM progress/action token with no SQF errors. Chernarus should either keep founding normally or show only harmless fallback behavior.

PR #43 / B68 Live Soak Branch

PR #43 is the current master-target soak/proposals surface: claude/b57-soak-proposals -> master, open, head b8a1505f8a89881f487a03262f066c8b33eca94d from gh pr view 43 on 2026-06-21. Treat this as branch/live-Chernarus evidence, not as origin/master@0139a346 or release-complete proof. The worklog records B68 deployed live on Chernarus; the source branch remains the review target.

Branch piece Evidence Meaning
B68 Supply Convoy marker leak fix Current origin/master@0139a346 creates a global W17 Supply Convoy marker in Server/Functions/AI_Commander_Wildcard.sqf:981-984. Branch head b8a1505f removes that route at Chernarus AI_Commander_Wildcard.sqf:994, leaving convoy visibility to the friendly unit-marker path. Good branch fix for own-side-only logistics intel. Keep marker catalog current by branch, and smoke that enemy clients no longer see W17 while friendly clients still track the convoy.
B68 attack-bias controls Chernarus Common/Init/Init_CommonConstants.sqf:277-284,319 adds/tunes WFBE_C_AICOM_LASTSTAND_TOWNS = 1, WFBE_C_AICOM_LASTSTAND_RATIO = 0.45, stranded-remnant strength constants and WFBE_C_AICOM_RELIEF_HOLD = 180. AI_Commander_Strategy.sqf:41-68,99,441,571-590 excludes refit/stranded remnants from _myStr, makes last-stand an explicit town-and-strength gate and leaves _posture/AICOMSTAT as telemetry. This clarifies that attack-vs-defend behavior is driven by last-stand, relief diversion and maneuver-strength gates, not by the posture label alone. Smoke winning-side pressure, relief release and no-human/human-assist behavior before merge.
B68 retreat-cull cap Chernarus Server/AI/Commander/AI_Commander_Produce.sqf:90-151 adds monotonic wfbe_aicom_retreat_issues, WFBE_C_AICOM_RETREAT_MAX_ISSUES = 8 and WFBE_C_AICOM_RETREAT_MAX_DIST = 6000 handling so far lone survivors are recycled instead of reissuing retreats indefinitely. Branch fix candidate for stranded-team stalls. Smoke far lone survivor, near returning survivor, refit reset, transport truck behavior and side AI-cap recovery.

The B68 commit itself changes four Chernarus files only. The broader PR #43 branch contains other Chernarus/Vanilla deltas, but this section should not be used to claim full maintained-Vanilla parity for the B68 hotfix until a propagation diff and Arma smoke are recorded.

B69 Roadmap And Sketch Route

The B69 pages are the current planning gateway for work that starts from the live B68 Chernarus audit. Treat them as prioritization and implementation guidance, not as proof that origin/master@0139a346 or maintained Vanilla already contain those changes.

2026-06-22 current-head refresh: origin/claude/b69@8d465fce is the current B69 branch head after PR #51 merged claude/ch-truck-fix@70a1c808 into claude/b69. The full isolated diff b8a1505f..8d465fce is 44 files / +3203 / -239 across B69-IMPLEMENTATION-PLAN.md, current Chernarus and maintained Vanilla/Takistan. The PR #51 delta b8530477..8d465fce is one current Chernarus AI commander file / +5 / -1, with no maintained Vanilla/Takistan diff. gh pr list --head claude/b69 --state all returned [] on 2026-06-22, so this remains branch evidence and not a direct master-target PR route.

2026-06-22 PR #47 merged-head addendum: origin/claude/b69-finalpieces@80d3267c1b2b is now an ancestor of origin/claude/b69@0094647d7b64. The merge delta 0a1ccb4d05c5..0094647d7b64 is the same finalpieces set, 8 Chernarus AI commander/client files / +242 / -13, with no maintained Vanilla diff under Missions_Vanilla/[61-2hc]warfarev2_073v48co.takistan. Treat these finalpieces as B69-head evidence now, not as an open stacked PR, and still not as master/stable, maintained Vanilla or Arma-smoked proof.

2026-06-22 PR #48 B71-harvest addendum: origin/claude/b69@4dcc10b143a0 now also carries claude/b71-pr-harvest@9cad74c4b6d3. The merge delta 0094647d7b64..4dcc10b143a0 is 6 Chernarus files / +40 / -13, with no maintained Vanilla diff. This adds branch evidence for PR #40 marker/FPS residuals, faction vehicle-tint side resolution and a bounded water-reject loop, but still not stable/master, maintained Vanilla or Arma-smoked proof.

2026-06-22 PR #49 B72-tints-on addendum: origin/claude/b69@39eed5c0 now also carries claude/b72-tints-on@7e1026ea. The merge delta 4dcc10b143a0..39eed5c0 is one current Chernarus constants file / +1 / -1 with no maintained Vanilla diff. It flips the nil-guard default at Common/Init/Init_CommonConstants.sqf:795 from WFBE_C_VEHICLE_TINTS = 0 to WFBE_C_VEHICLE_TINTS = 1; the adjacent comment still carries the older default-off / in-engine cosmetic-check caveat, so this is B69/B72 A/B branch evidence, not polished release proof.

2026-06-22 PR #50 Takistan AICOM port addendum: PR #50 merged at b8530477ce4f8cc66c60a5d310a85d25c9cbc27c on 2026-06-22T13:33:48Z with 22 maintained Vanilla/Takistan files / +2499 / -147. Takistan now carries the B69/B59-B72 AICOM constants at Common/Init/Init_CommonConstants.sqf:630-652,691-700, the supervisor compile/spawn/watchdog at Server/Init/Init_Server.sqf:58-67,1015-1057, GUER air-defense launch and worker at Init_Server.sqf:789-795 plus Server/Server_GuerAirDef.sqf:37-58,72-76,243-252, client marker/PV support at Client/Init/Init_Client.sqf:494-496 and Client/PVFunctions/HandleSpecial.sqf:52-67, and the same nil-guarded HC top-up caveat in AI_Commander.sqf:228-238. This corrects the old current-B69 "no maintained Vanilla propagation" caveat, but it is still not origin/master@0139a346, stable/release proof or Arma smoke.

2026-06-22 PR #51 B73 troop-truck addendum: PR #51 merged at 8d465fcede7fc20a7fcb97bd7d02e5211de8d1bf on 2026-06-22T14:03:51Z with one Chernarus AI commander file / +5 / -1 over PR #50. Chernarus AI_Commander_Teams.sqf:414-418 now gates the B66 pure-infantry troop-truck prepend on WFBE_C_AICOM_ARMED_TRANSPORT_ONLY <= 0, so armed-transport-only mode no longer creates unarmed trucks that Common_RunCommanderTeam later refuses and leaves empty. No maintained Vanilla/Takistan file changed in PR #51.

2026-06-23 B74.2 current-head refresh: origin/claude/b74.2-aicom@21b62b04 is branch-only source Chernarus evidence on merge-base/current stable origin/master@f8a76de34; gh pr list --head claude/b74.2-aicom --state all returned [], and git diff --name-only origin/master..origin/claude/b74.2-aicom -- Missions_Vanilla/** returned no files. The full branch changes 29 source Chernarus files / +424 / -38 and git diff --check origin/master..origin/claude/b74.2-aicom is clean. The stale documented head d472da6a advanced by four source Chernarus files / +100 / -14: b9515ef57 adds independent GUER stipend/tier startup/rebroadcast telemetry, and 21b62b04 adds client join/connect ACK failovers plus server reconnect retry budget. Treat it as an integration candidate, not current stable, PR-routed or maintained Vanilla/Takistan behavior.

B74.5 / B74.9 / B75 / B750 / B751 AICOM Follow-Up

2026-06-24 B74.5/B74.9/B75/B750/B751 intake: current stable origin/master@7bfcf09a9 contains PR #85 from origin/claude/b745@dd1401811, PR #86 from origin/feat/b749-enrollment-bodyfix@2327e5c6a, direct branch origin/VBIED_factory_kill_rewards@756d6918, PR #87 from origin/feat/b750-factory-aicom@605ad7326 and PR #88 from origin/feat/b751-tk-aicom13-clientfixes@5aea1ce4016a862de413a198ba8bab0a1ce868c2. The earlier origin/claude/b745@9199bfab8 branch-only AICOM wording is superseded: current master now carries the checked AICOM founding hard cap, attack-heli cap/reaper, redundant-base sell, MHQ abort-cooldown retune, B750 effectiveness-weighted squad draw and B751 hard-cap raise to 13 in both maintained roots. Primitive roster/vote/JIP still routes through Client UI systems, Player join/disconnect and Commander vote/reassignment. PR #86 changes JIP enrollment/settings propagation, B75 changes GUER VBIED rewards, PR #87 changes AICOM draw plus buy-menu limits, and PR #88 changes the AICOM cap plus GUER/JIP client-error guards.

B74.5 / B74.9 / B75 / B750 / B751 helper Current-master source evidence Scope and smoke before release wording
B74.7.1 founding and veteran-slot hard cap, raised by B751 B74.7.1 introduced WFBE_C_AICOM_TEAMS_HARD_CAP = 8; PR #88/B751 raises the current-master value to 13 in both maintained roots at Common/Init/Init_CommonConstants.sqf:159. AI_Commander_Teams.sqf:113-114 reads the cap and clamps _target after the pop-curve plus low-pop banking-valve math. The veteran-slot +1 bump is capped with min _teamsHardCap at AI_Commander_Teams.sqf:184, fixing the prior post-clamp path that could transiently exceed the configured cap. Checked B74.2, B69, adjacent B74, Miksuu and perf have no WFBE_C_AICOM_TEAMS_HARD_CAP symbol. Current-master maintained-root performance/load-control retune. Smoke low-pop and banked-funds conditions that previously founded about 15 teams, veteran-slot armed conditions that previously could reach nine teams, and high-pop/no-funds founding in both roots to verify no side exceeds 13 AICOM teams without starving valid founding.
B750 effectiveness-weighted squad draw PR #87 / origin/master@c4c9a6479 keeps the earlier hard cap and changes AICOM template choice from mission economy price weighting to BI config effectiveness weighting in both maintained roots. Init_CommonConstants.sqf:215 marks the older price/tier bias as superseded, :219 documents the B750 effectiveness draw and :225 defaults WFBE_C_AICOM_EFF_BIAS_EXP = 0.5; AI_Commander_Teams.sqf:428 reads getNumber (configFile >> "CfgVehicles" >> _x >> "cost") for weighted draw. Current-master AICOM source evidence, not balance smoke. Smoke low/mid/high funds and upgrade states to confirm the draw improves variety/effectiveness without premium spam, missing-config zero-cost collapse, nil roster choices or old price-tier bias returning in source Chernarus and maintained Vanilla.
Attack-heli cap and HC-local base reaper Both maintained roots add WFBE_C_AICOM_ATTACKHELI_MAX = 4 and WFBE_C_AICOM_HELI_BASE_REAP_TIMEOUT = 600 at Common/Init/Init_CommonConstants.sqf:187,191; AI_Commander_Teams.sqf:313,322 counts alive non-transport helicopters by side and strips air templates when the cap is reached; Common_RunCommanderTeam.sqf:174,178 gates the HC-local base reaper timeout. AH1Z enrollment remains part of the current-master payload. Current-master maintained-root evidence. Scoped grep found no matching attack-heli cap/base-reaper symbols in B74.2, Miksuu or perf. Smoke AH1Z class availability, cap-hit fallback to ground templates, crewed and crewless side counting, HC locality, enemy-near reset, timeout deletion and no player crew deletion in both roots.
AI commander redundant-base sell/recycle Both maintained roots compile WFBE_SE_FNC_AI_Com_BaseSell at Server/Init/Init_Server.sqf:37, set the redundant-sell threshold at Init_CommonConstants.sqf:303, call the interval-gated supervisor path from AI_Commander.sqf:283, and include AI_Commander_BaseSell.sqf:1-69. The worker exits for resistance, skips while wfbe_mhqreloc_active, protects Headquarters and CommandCenter, chooses the lowest-cost redundant non-HQ/non-CC structure over WFBE_C_AICOM_SELL_REDUNDANT_MAX, refunds side supply in dual-currency mode, decrements wfbe_structures_live, removes the victim from wfbe_structures and deletes it. Current-master maintained-root evidence. No matching base-sell symbols were found in B74.2, Miksuu or perf. This is an AI commander server worker, not proof that human commander sell/refund authority is fixed. Smoke redundant-structure selection, refund math, live-count decrement, JIP/client CoIn state after delete, HQ/CC protection, side-supply mode and no sale during MHQ relocation in both roots.
MHQ relocation abort cooldown MHQ relocation itself is already present on stable/B74-shaped refs and maintained Vanilla: WFBE_SE_FNC_AI_Com_MHQReloc is compiled/called and the worker gates on WFBE_C_AICOM_MHQ_RELOCATE. Current master adds/carries the abort-thrash cooldown in both maintained roots: WFBE_C_AICOM_MHQ_ABORT_COOLDOWN = 600 at Init_CommonConstants.sqf:319; AI_Commander_MHQReloc.sqf:49 skips re-evaluation while wfbe_mhqreloc_abort_until is in the future, and :152,159 stamp that side-logic value after abort paths. Treat as a current-master retune of an existing AI-only relocation helper, not a new HQ deploy/mobilize feature. Smoke repeated aborts, cooldown expiry, successful later relocation after town/front changes, no stuck wfbe_mhqreloc_active, commander handoff and JIP HQ state in both roots.

Treat the B74.5/B74.9/B75/B750/B751 helper matrix as current-master source routing, not release smoke evidence. Before release-ready wording, smoke late join/reconnect, primitive vote-menu rows, AI commander founding and veteran-slot hard caps with the B751 cap of 13, attack-heli caps, AH1Z class availability, redundant-base sale and MHQ relocation in the target root(s). Keep earlier B74.2 pop-tier/camp/naval/stats evidence routed through the B74.2 row below, keep B749 enrollment and B751 GUER/JIP client-error guard smoke owned by Player join/disconnect / Client UI, and route B75 VBIED reward smoke through the current merge intake row rather than AICOM.

B74.2 branch piece Evidence on origin/claude/b74.2-aicom@21b62b04 Meaning
Unified pop-tier AICOM caps Init_CommonConstants.sqf:171-176 adds tier arrays for side AI, low-pop extras, town defenders, active towns, side patrols and player AI caps. AI_Commander_Teams.sqf:83-84 publishes WFBE_PopTier, then consumes tier caps at :105,187-190; production reads the tiered side-AI cap at AI_Commander_Produce.sqf:28. Town/side pressure consumers read the tier at server_side_patrols.sqf:32,38, server_town_ai.sqf:61-64 and Server_GetTownGroupsDefender.sqf:91. d472da6a..21b62b04 does not touch these worker paths. Branch-only population-scaling candidate. Smoke low/mid/high/full player-count transitions, founding skips, side-patrol count, active-town count, defender count and no stale client caps before promotion.
Camp-first anti-stall and capture range WFBE_C_AICOM_CAMP_STALL_PASSES = 3 at Init_CommonConstants.sqf:357; Common_RunCommanderTeam.sqf:813,870-882 counts no-progress camp passes and exits the camp-first loop after the threshold. WFBE_C_CAMPS_RANGE moves from stable 10 to branch 11.5 at Init_CommonConstants.sqf:487, while WFBE_C_CAMPS_RANGE_PLAYERS stays separate at :488. d472da6a..21b62b04 does not touch these capture paths. Branch-only capture-flow tuning, separate from current stable repair-flag debt. Smoke AI camp flips, uncapturable/heavily defended camps, player camp range, depot/town-centre handoff and capture-completion release.
Marker-feed gap recovery and UI cap consumers updateaicommarkers.sqf:47-55 requests WFBE_ReqAicomFeed if a client sees an empty AICOM feed; Init_Server.sqf:927-943 targeted-rebroadcasts AICOM team and patrol feeds. Client_UpdateRHUD.sqf:354-360 and GUI_Menu_BuyUnits.sqf:37-43 read WFBE_C_PLAYERS_AI_MAX_BY_TIER through WFBE_PopTier. The current-head delta also hardens client init waits: Init_Client.sqf:654-681,693-714 re-sends join/connect requests and fails open after 120 seconds, while Server_OnPlayerConnected.sqf:22-56 retries slow JIP enrollment up to three times. Route UI details through Client UI systems. Smoke JIP/late clients, owner-targeted feed replay, RHUD/buy-menu cap display, side-patrol marker rehydration and no permanent join/connect stall.
Naval carrier air-shop/respawn and stats fast-follow hooks Init_NavalHVT.sqf:305-315 spawns a deck hangar and sets wfbe_hangar / wfbe_airfield_side; Client_GetClosestAirport.sqf:27-35, Client_GetRespawnAvailable.sqf:117-124, Client_OnRespawnHandler.sqf:50-61 add carrier airfield/respawn behavior. Stats hooks add town/camp captures, supply runs/value, builds, defenses, factory/HQ kills and deaths at the source refs tracked in Player stats branch audit. d472da6a..21b62b04 does not touch the checked naval or stat-writer files. Chernarus naval and stats fast-follow evidence only. Before merge, decide maintained Vanilla/Takistan scope, smoke carrier capture/recapture, air-shop ownership, deck spawn, and stat emission with source Chernarus stats enabled.
Branch piece Evidence Meaning
Patch A/A-2 core carried forward at current B69 8d465fce Constants for the fractional gate, vehicle-punch bonus and capture interrupt are in Chernarus Common/Init/Init_CommonConstants.sqf:229-232 and maintained Vanilla/Takistan Common/Init/Init_CommonConstants.sqf:649-652. Strategy computes _strikeMinTowns at AI_Commander_Strategy.sqf:530-539, logs launch gate/total at :547, scores vehicle punch at :561-565 and sends HC strikers a "defense" order at :576. Capture interrupt snapshots the order sequence at Common_RunCommanderTeam.sqf:709-712, aborts camp/depot loops at :810 and :895, clears sticky doStop with doFollow at :867 and bails before _captureDone at :916. HQ-strike and capture-interrupt branch code is source-present in both maintained roots on current B69. It still needs review, live HQ-strike/capture smoke and master-target PR routing before release wording.
Patch C/D/E/F hardening is source-present on the branch New Chernarus constants at Init_CommonConstants.sqf:364-383 cover relief minimum alive, territory strength credit, MHQ nudge, watchdog, supervisor jitter and pending timeout. Consumers include relief strength/punch exemption at AI_Commander_Strategy.sqf:424-436, posture effective strength and garrison telemetry at :603-627 plus stall telemetry at :640, supervisor heartbeat/jitter at AI_Commander.sqf:28,36,119, bootstrap stipend hoisted outside _canBuild at :184-216, MHQ re-drive/nudge at AI_Commander_MHQReloc.sqf:228-257, pending-slot reaper at AI_Commander_Teams.sqf:124-128 and the watchdog restart loop at Init_Server.sqf:1017-1044. These are branch implementation evidence for the Chernarus mission, not stable/master proof. Smoke should cover supervisor restart behavior, no duplicate loops, stipend under human-commander blips, relief candidate selection, posture/STALL telemetry, MHQ unstuck, pending-slot reaping and server-FPS cadence.
QoL / spectacle additions are branch-only defaults Server_OnHQKilled.sqf:57,103 adds base-fall smoke and a BaseFallSting broadcast; LocalizeMessage.sqf:11 consumes it without chat text. Client_EndGame.sqf:71 gates victory outro FX, client_title_capture.sqf:42 adds the town name to the capture bar, and GUI_Menu_Tactical.sqf:468 adds fast-travel arrival confirmation. WFBE_C_BASEFALL_SMOKE_ENABLED and WFBE_C_VICTORY_OUTRO_FX are read with defaults but are not centralized in the checked constants block. Treat as review/smoke candidates, not release-ready UI/FX policy. Decide whether the default-on FX flags should be centralized before merge.
B69 finalpieces town-punch and armed-transport addendum origin/claude/b69@8d465fce carries the former finalpieces constants in Chernarus and maintained Vanilla/Takistan. Chernarus anchors remain Init_CommonConstants.sqf:389-390,404, AI_Commander_AssignTypes.sqf:166-167, AI_Commander_Teams.sqf:330,335-336,414-418 and Common_RunCommanderTeam.sqf:416; Takistan anchors include Common/Init/Init_CommonConstants.sqf:691-698 plus the ported worker/function files. Current B69 branch tuning/filter evidence is both-map source-present, but the PR #51 lingering-truck guard is Chernarus-only until propagated. Smoke troop-transport behavior, team composition pressure, armed-transport-only fallback cases and no lingering empty trucks before release wording.
B71 harvest / PR #48 addendum PR #48 merged claude/b71-pr-harvest into claude/b69 at 4dcc10b143a0. The original merge delta 0094647d7b64..4dcc10b143a0 is 6 Chernarus files / +40 / -13. Source anchors include map-gated town markers, terrain-grid profile fallback, faction tint side resolution and water-reject cap; PR #50 later ports the matching Takistan file families. Current B69 branch evidence now includes maintained Vanilla/Takistan propagation for these file families. Smoke map-open/SpecOps supply cue behavior, profile terrain-grid persistence/default and water-heavy random-position callers before release wording.
B72 tints-on / PR #49 addendum PR #49 merged claude/b72-tints-on into claude/b69 at 39eed5c0. The merge delta 4dcc10b143a0..39eed5c0 is one Chernarus file / +1 / -1. Source anchor: Chernarus Common/Init/Init_CommonConstants.sqf:795 nil-guards WFBE_C_VEHICLE_TINTS = 1; maintained Vanilla/Takistan currently has the same default at Common/Init/Init_CommonConstants.sqf:629. Branch-only cosmetic default flip across current B69 maintained roots. Smoke vehicle spawn appearance across WEST/EAST/GUER/civilian hulls before release wording.
B69 finalpieces merge / stranded scaffolding Chernarus merge constants are in Init_CommonConstants.sqf:394-400; Takistan constants are in Common/Init/Init_CommonConstants.sqf:693-698. Client/PVFunctions/HandleSpecial.sqf:57,59 adds an aicom-team-merge case gated by WFBE_C_AICOM_HC_MERGE_ENABLE > 0; Takistan carries the case at Client/PVFunctions/HandleSpecial.sqf:52-67. AI_Commander.sqf:232-238 / Takistan :228-238 call WFBE_SE_FNC_AI_Com_HCTopUp only if defined; AI_Commander_Produce.sqf:122,127-128,156 adds server-local stranded-survivor merge-before-cull. AI_Commander_HCTopUp.DRAFT.sqf is present, but Init_Server.sqf:58-67 does not compile WFBE_SE_FNC_AI_Com_HCTopUp. Stranded merge scaffolding is source-present in both maintained roots on current B69. HC depleted-team merge/top-up remains default-off and not proven compiled/live; do not call it implemented until compile wiring and owning-HC smoke are recorded.
Maintained Vanilla/Takistan propagation exists through PR #50; PR #51 is Chernarus-only 39eed5c0..b8530477 is PR #50's Takistan AICOM port: 22 maintained Vanilla/Takistan files / +2499 / -147. b8530477..8d465fce is PR #51's Chernarus-only troop-truck guard: one file / +5 / -1, with no maintained Vanilla/Takistan diff. PR #47, #48, #49, #50 and #51 are merged into claude/b69, but the GitHub CLI still found no direct PR for claude/b69 on 2026-06-22. Before release wording, inspect generated diffs, decide the master-target route, propagate/review the B73 guard if needed and record Arma smoke for both maintained roots.
Page Use it for Caveat
AI Commander B69 improvement roadmap Review the 15-item recommended slate, the atomic HQ-strike package, HC-team merge/refill direction, supervisor heartbeat/watchdog route, garrison-vs-maneuver strength split and worker-stagger/FPS leads. The page states it was produced on 2026-06-22 from a live B68 Chernarus audit, and now carries the origin/claude/b69@8d465fce current-branch status after PR #47, PR #48, PR #49, PR #50 and PR #51 merged into B69. Before code work, re-check every touched path in the target branch and smoke both maintained roots.
AI Commander B69 implementation sketches Use as an engineer handoff for A2-OA-safe SQF patch shapes and soak-test expectations for the verified B69 items. Several sketches now have branch code in current B69 for Chernarus and maintained Vanilla/Takistan via PR #50; PR #51 adds Chernarus-only troop-truck guard evidence; remaining sketches and prep hooks still need line-anchor, branch-drift, generated-target and Arma smoke verification before being treated as implemented.

B74.1/B74.2 Supervisor Baseline - 2026-06-23

This section supersedes only the old "no active AI commander loop" conclusion for the B74.1/B74.2 baseline. Current master has since advanced to origin/master@7bfcf09a9; use the top verdict and B74.5/B74.9/B75/B750/B751 helper matrix above for current-master wording. This section does not make the whole AI commander release-complete.

Surface Current stable/B74.1 evidence Meaning
Supervisor compile and spawn Current stable/B74.1 origin/master@f8a76de34 / origin/claude/b74.1-aicom@f8a76de34 compiles WFBE_SE_FNC_AI_Commander at Chernarus Server/Init/Init_Server.sqf:72 and maintained Vanilla :66, compiles the wildcard helper at Chernarus :73 / Vanilla :67, and spawns the supervisor once per present non-GUER side at Chernarus :1028 / Vanilla :1015; wildcard supervisors spawn at Chernarus :1069 / Vanilla :1056. Current B74.2 keeps the same Vanilla anchors and line-drifts Chernarus supervisor spawn to :1061 / wildcard :1102 after source-Chernarus GUER stipend/connect-init additions. Current stable/B74-shaped branches have a real side-level AICOM owner loop. Do not use older no-loop wording for current master.
Running latch and worker cadence In current stable/B74.1 both maintained roots, Server/AI/Commander/AI_Commander.sqf:161 sets wfbe_aicom_running to !_humanCmd, the active loop runs execute/town/stipend/merge/hybrid-refill/full-economy workers through :169-292, the upgrade worker is called at :288 when wfbe_upgrading is false, and the latch is cleared at Chernarus :339 / maintained Vanilla :338. The core commander brain is source-present, but branch/live B69 hardening still needs implementation choice, propagation and Arma smoke.
Upgrade worker Current stable/B74.1 compiles WFBE_SE_FNC_AI_Com_Upgrade at Chernarus Server/Init/Init_Server.sqf:62 and maintained Vanilla :56; AI_Commander.sqf:288 calls it when wfbe_upgrading is false. The old "compiled but no caller" statement is no longer current-stable truth. Keep debit/cost-index details in the AI upgrade matrix below.

Branch Refresh - feat/ai-commander

Historical snapshot refreshed: 2026-06-04. Branch head c20ce153 compared against origin/master 2cdf5fb8; current origin exposes no feat/ai-commander head on 2026-06-22. Diff from that older stable master was 9 Chernarus-source files, +416/-5; no Missions_Vanilla files were touched. The later cleanup series after 4dba060e changed only the five AI commander scripts, adding 141 lines and removing 91 lines to avoid lazy condition blocks.

Branch piece Evidence Meaning
Phase-0 safety and economics 585c3519; Rsc/Parameters.hpp:92-96; Common/Init/Init_CommonConstants.sqf:98-105; Server/Functions/Server_AI_Com_Upgrade.sqf:27,47,50; Server/Init/Init_Server.sqf:387-389 Makes AI commander default-on in the lobby, adds new cadence/cap constants, fixes the funds/supply debit swap, and guards the old UpdateSupplyTruck nil-code spawn. The missing supplytruck.fsm is still not restored.
Supervisor and workers 1a3e3def; Server/Init/Init_Server.sqf:49-54,630-631; Server/AI/Commander/AI_Commander.sqf:29-81 Compiles and spawns one per-side supervisor that self-gates on AI commander enablement and live HQ state.
Upgrade cost lookup fix 4c2abced; Server/Functions/Server_AI_Com_Upgrade.sqf:27 Corrects AI upgrade cost indexing from 1-based order level to 0-based cost array index.
Hybrid co-op command 4dba060e; refreshed at c20ce153; AI_Commander.sqf:42-78; AI_Commander_Execute.sqf:16-48; AI_Commander_AssignTowns.sqf:23-54,62-99 Full mode runs economy only when no human commander exists; assist mode still executes explicit Move/Patrol/Defend orders and can auto-assign delegated AI teams while a human commander is present.
AI team production c20ce153; AI_Commander_Produce.sqf:18-21,77-90; Server/Init/Init_Server.sqf:10 Produces under-strength AI teams through AIBuyUnit while respecting a per-side AI cap and AI commander funds. Review this alongside factory queue/token cleanup before merge.
Lazy-condition cleanup series b4b0333f, 27d25a28, dbaf9150, 4626c036, c20ce153; files under Server/AI/Commander/AI_Commander*.sqf Rewrites supervisor, town assignment, order executor, type assignment and production-worker condition paths into stepwise guards. This improves branch static/syntax readiness, but it does not change branch-only status, Vanilla propagation or smoke requirements.

2026-06-04 branch scout clarification: the historical branch supervisor kept running in assist mode with a human commander, but wfbe_aicom_running was deliberately used as the full-command latch, not a simple "commander brain exists" marker. Current stable/B74.1 has since absorbed a maintained-root supervisor route; use the current stable/B74.1 section above for origin/master@f8a76de34, and keep this paragraph as branch-history context.

Branch-only review risks:

  • The branch changes gameplay defaults by setting WFBE_C_AI_COMMANDER_ENABLED default to 1 in Rsc/Parameters.hpp:96.
  • It is source-Chernarus-only until LoadoutManager/Vanilla propagation is performed and reviewed.
  • It revives AI commander production/order execution, but does not revive the old autonomous supply-truck FSM path; UpdateSupplyTruck remains commented and only guarded.
  • It adds always-running per-side supervisors after VoteForCommander startup; smoke must prove exactly one supervisor per side, no duplicate loops after commander vote/revote and clean stop behavior after HQ death.
  • The production worker uses AIBuyUnit; smoke must include AI team queue cleanup, insufficient funds, destroyed factory, full AI cap, vehicle/man production and human takeover of a team.
  • Team-order setters remain state replication, not the scheduler by themselves. On the branch, AI_Commander_Execute.sqf:19-32 is the explicit-order waypoint owner and uses wfbe_exec_sig idempotency; AI_Commander_AssignTowns.sqf:38-48,65-78 separately retargets no-human or delegated/autonomous AI teams toward uncaptured towns.

AI Upgrade Debit Branch Matrix

Checked 2026-06-24 against docs/source HEAD@c70785e4be30 (unchanged from 031a253fe / ade4d356 for the checked worker/menu files), current stable/B74.1 origin/master@f8a76de34 / origin/claude/b74.1-aicom@f8a76de34, current B74.2 origin/claude/b74.2-aicom@21b62b04, B69 origin/claude/b69@8d465fce, adjacent B74 origin/claude/b74-aicom-spend@b23f557f, Miksuu upstream b8389e748243, origin/perf/quick-wins@0076040f, historical commits a96fdda2, b061c905 and c20ce153, plus live AI side branches that touch the worker. Current origin exposes no live release/*, feat/upgrade-queue-stacking or feat/ai-commander head on 2026-06-24, but it does expose mixed side branches, so treat those as branch-only evidence. The player upgrade menu treats upgrade cost tuples as [supply, funds]: docs/source Chernarus and maintained Vanilla read supply/funds at Client/GUI/GUI_UpgradeMenu.sqf:96-97,139-140 and debit side supply at :159, while current stable/B74.1/B74.2 line drift is :214-215,257-258,277. The AI worker old-shape validation uses the same convention at Server_AI_Com_Upgrade.sqf:34,36. Current-head delta d472da6a..21b62b04, origin/master..origin/claude/b74.2-aicom and B69..B74 are empty for the checked AI upgrade worker/menu files.

Branch / root Evidence Status
Docs/source HEAD@c70785e4be30 Chernarus and maintained Vanilla Both roots read _cost with raw (_to_upgrade select 1) at Server_AI_Com_Upgrade.sqf:27, validate side supply against _cost select 0 and AI funds against _cost select 1 at :34,36, then debit AI funds with _cost select 0 and side supply with _cost select 1 at :47,50. The checked worker/menu diffs 031a253fe..HEAD and ade4d356..HEAD are empty. Patch-ready in the docs/source checkout. Port current stable's worker shape, or recreate both the debit-order and current-level cost lookup fixes before scheduling AI upgrades on this branch.
Current stable/B74.1 origin/master@f8a76de34 / origin/claude/b74.1-aicom@f8a76de34; current B74.2 origin/claude/b74.2-aicom@21b62b04; B69/B74 Both maintained roots price by current upgrade level at Server_AI_Com_Upgrade.sqf:75, gate affordability at :89,92,97, log the [supplyCost,fundsCost] tuple at :113,118, debit AI funds with _cost select 1 at :125, and debit side supply with _cost select 0 at :136 unless the opt-in funds-fallback path pays the supply price as funds surcharge at :131-132. origin/master..origin/claude/b74.2-aicom, d472da6a..21b62b04 and origin/claude/b69..origin/claude/b74-aicom-spend are empty for the checked worker files. Current stable/B74-shaped and current B69/B74 refs resolve the old AI upgrade debit/cost-index defect in both maintained roots. Keep AI upgrade smoke, funds-fallback smoke and broader AICOM release readiness separate from this closed current-stable bug.
Miksuu b8389e748243 and origin/perf/quick-wins 0076040f Same maintained-root shape as the docs/source checkout: raw cost lookup at :27, validation at :34,36, swapped funds/supply debit at :47,50. No upstream/perf rescue for the AI debit route.
Historical commits a96fdda2 and b061c905 Both maintained roots fix debit order at Server_AI_Com_Upgrade.sqf:47,50, but still use raw (_to_upgrade select 1) for _cost at :27. Useful historical debit-order evidence only. Current origin no longer exposes the corresponding release/feature heads, and current stable has moved past these commits.
Historical c20ce153 Chernarus subtracts one from the AI_ORDER level when reading _cost at :27, then debits funds with _cost select 1 and supply with _cost select 0 at :47,50. Maintained Vanilla on the same commit keeps the old raw lookup and swapped debit at :27,47,50. Branch-only Chernarus lesson. Do not call this commit Vanilla-propagated or release-ready; current stable now carries the resolved maintained-root shape independently.
Live side branches checked origin/review/aicom-deploy@43531a51, origin/notes/aicom-match-fixes@2cf2d70c and origin/fix/aicom-review-batch-2026-06-15@98d8bd15 carry resolved workers with line drift: Chernarus current-level lookup at :67, affordability at :81,84, AI funds debit at :117, fallback surcharge at :123-124, side supply debit at :128; maintained Vanilla current-level lookup at :40, affordability at :49, AI funds debit at :75, side supply debit at :78. origin/codex/ai-commander-context@c4cd83f2 and origin/codex/ai-commander-logs@89c853e6 fix Chernarus only at :27,47,50; maintained Vanilla remains old-shape. origin/codex/quad-ai-commander@d4e0fa38 remains old-shape in both maintained roots. Branch-only evidence, not current stable or release wording. Recheck target branch before porting; do not infer maintained-root closure from Chernarus-only side branches.

Patch direction: do not reopen the old debit/cost-index defect on current stable/B74-shaped refs. For docs/source, Miksuu, perf or old-shape side-branch targets, port current stable's maintained-root worker or recreate the current-level cost lookup plus corrected funds/supply debit deliberately. Treat a96fdda2, b061c905, c20ce153 and mixed live side branches as branch lessons unless they are selected as the actual target branch, then smoke AI upgrade affordability/debit and the opt-in funds-fallback path before release wording. Keep this separate from the larger autonomous-commander supervisor/production/B69 work.

What Exists

Area Source evidence Meaning
Mission parameter Rsc/Parameters.hpp:77-82 exposes WFBE_C_AI_COMMANDER_ENABLED with default 1 (default-ON). In the mission parameter UI, AI commander appears disabled by default.
Fallback constant Common/Init/Init_CommonConstants.sqf:91 sets WFBE_C_AI_COMMANDER_ENABLED = 1 only if the variable is nil. If the MP parameter path does not provide the variable, the fallback enables it. Do not confuse this with the parameter default.
Move interval constant Common/Init/Init_CommonConstants.sqf:96 defines WFBE_C_AI_COMMANDER_MOVE_INTERVALS = 3600. A legacy cadence constant exists, but no source-read scheduler was found using it.
Supply truck max constant Common/Init/Init_CommonConstants.sqf:97 defines WFBE_C_AI_COMMANDER_SUPPLY_TRUCKS_MAX = 5. Old logistics sizing remains.
Side state Server/Init/Init_Server.sqf:600,603 initializes wfbe_aicom_running = false and wfbe_aicom_funds. Side logic holds AI commander runtime state and starting funds.
Human commander stop hooks Server_VoteForCommander.sqf:48-57, Server_AssignNewCommander.sqf:11-14 clear wfbe_aicom_running when a player commander exists. Player commander assignment is live and suppresses full-command AICOM mode. Current stable also has a start/supervisor path; see the current-stable section above.
AI commander income Server/FSM/updateresources.sqf:67 adds income to AI commander funds when no player commander exists and AI commander is enabled. AI commander money can grow without a player commander.
Upgrade worker compile Docs/source compiles WFBE_SE_FNC_AI_Com_Upgrade at Server/Init/Init_Server.sqf:55; current stable/B74.1 compiles it at Chernarus :62 and maintained Vanilla :56. The worker is available after server init and current stable/B74.1 calls it from the supervisor when no upgrade is already running.
Upgrade order data Common/Config/Core_Upgrades/Upgrades_*.sqf define WFBE_C_UPGRADES_%SIDE_AI_ORDER; Check_Upgrades.sqf:7-40 fills missing enabled upgrade levels. AI upgrade preference data exists.
Upgrade worker behavior Old-shape docs/source reads WFBE_C_UPGRADES_%SIDE_AI_ORDER and processes the first unmet desired level at Server/Functions/Server_AI_Com_Upgrade.sqf:12-50; current stable/B74.1 line drift is :21-145 with current-level cost lookup and funds-fallback handling. The worker is real and deterministic. Current stable/B74.1 calls it from AI_Commander.sqf:288; debit/cost-index status remains branch-sensitive in the matrix above.
Upgrade processing callee Server/Functions/Server_ProcessUpgrade.sqf:10-47,49-83 owns timing/state progression and artillery refresh side effects. It does not create bases, defenses, factories or units; do not infer production behavior from the AI upgrade path.
AI buy worker compile Server/Init/Init_Server.sqf:10 compiles AIBuyUnit = Server_BuyUnit.sqf. Server-side AI production helper exists.
AI buy worker behavior Server/Functions/Server_BuyUnit.sqf:1-180 queues, waits and creates units/vehicles for an AI team. Useful if a future AI commander production loop intentionally calls it.
Supervisor start path Current stable/B74.1 compiles WFBE_SE_FNC_AI_Commander at Chernarus Server/Init/Init_Server.sqf:72 / maintained Vanilla :66 and spawns it for present non-GUER sides at Chernarus :1028 / Vanilla :1015. Current stable has the start loop that earlier audits did not find.
Stop hooks Server_VoteForCommander.sqf:54-57, Server_AssignNewCommander.sqf:11-14 and current stable/B74.1 AI_Commander.sqf:339 in Chernarus / :338 in maintained Vanilla clear wfbe_aicom_running when a player commander or stop condition exists. Stop/reset hooks coexist with the current supervisor route.

Still Needs Proof / Owner Review

Missing/uncertain owner Evidence Development implication
AI commander release readiness Current stable has a supervisor route, but B69 roadmap/sketch pages identify supervisor heartbeat/watchdog, HQ-strike, HC-team merge and posture/garrison issues as live B68 improvement candidates. Treat the core loop as source-present, not release-finished. B69 work needs owner selection, source patches, maintained Vanilla propagation and Arma smoke.
AI upgrade cost-index semantics Current stable calls WFBE_SE_FNC_AI_Com_Upgrade, but the cost-index/debit matrix below remains branch-sensitive. Keep upgrade smoke and cost-index review separate from the existence of the scheduler.
AI unit production smoke AIBuyUnit is compiled and current AICOM production workers exist, but queue/factory/AI-cap behavior still needs runtime smoke before release wording. Smoke AI team production, destroyed factory, insufficient funds, full AI cap, vehicle/man production and human takeover separately.
Legacy movement interval constant WFBE_C_AI_COMMANDER_MOVE_INTERVALS exists, but this page has not re-proven it as the current movement cadence owner. Current movement/order behavior should be read through AI_Commander_AssignTowns.sqf, AI_Commander_Execute.sqf, AI_Commander_Strategy.sqf and the B69 route. Do not use the legacy constant alone as evidence for movement cadence or lack of movement.

Stable Master Order Plumbing

Mini-scout follow-up 2026-06-04 separated live order plumbing from missing autonomy:

  • Client/GUI/GUI_Menu_Command.sqf:19,270,298,305,428 exposes the human commander order surface and writes replicated team state.
  • Common_SetTeamMoveMode.sqf:8 and Common_SetTeamMovePos.sqf:8 set wfbe_teammode / wfbe_teamgoto; they store intent, they do not execute missions by themselves.
  • Waypoint execution lives in helpers such as Server/AI/Orders/AI_MoveTo.sqf:13-17, AI_Patrol.sqf:14, AI_TownPatrol.sqf:23 and Common_WaypointsAdd.sqf:18.
  • Server_UpdateTeam.sqf:5 is shallow behavior randomization, not a full order scheduler.

Current safe wording is therefore: stable master has usable order primitives, a human command UI and a source-present AICOM supervisor route. Release-quality claims still need exact worker-behavior smoke and B69/PR #43 branch changes must stay branch-scoped until merged, propagated and validated.

Another dormant-looking primitive is WFBE_SE_FNC_AI_SetTownAttackPath. Init_Server.sqf:45-47 compiles the attack-path helper and its safety helpers, but the current stable-master static scan found no live caller outside compile/docs. The helper itself removes existing team waypoints near the start (Server_AI_SetTownAttackPath.sqf:18) before attempting the longer arced path branch and later depot/camp waypoints (:41,80-109). If a future AI commander branch wires this function back into town orders, smoke the random and unsafe-path branches so a failed route attempt does not silently leave the team without useful waypoints.

Final mini-scout follow-up 2026-06-04 found one partial automation nuance worth preserving: newly spawned units can inherit an existing client-side map/waypoint destination. Client_SendSpawnedUnitsToLeaderWaypoint.sqf:24-35,73-92 reads the last team-leader map order or current waypoint/expected destination and issues commandMove to spawned units; Client_SetAttackWaveDetails.sqf:24-35,73-92 has the same shape for attack-wave units. This is order inheritance at spawn time, not a general server-side commander scheduler, and it depends on client-side stored map-order state such as WFBE_CLIENT_LAST_TEAMLEADER_MAP_ORDER_*.

Depth scout follow-up 2026-06-04 sharpened the meaning of the wfbe_autonomous group variable. Common/Functions/Common_SetTeamAutonomous.sqf:8 only replicates the flag; the visible consumers found in source are commander-loss cleanup (Client/FSM/updateclient.sqf:191-205), the command-menu toggle (Client/GUI/GUI_Menu_Command.sqf:364-389) and AI respawn reset logic (Server/AI/AI_SquadRespawn.sqf:102-109, Server/AI/AI_AdvancedRespawn.sqf:117-125). In other words, "autonomous" means "do not reset this team's stored movement order on respawn" more than "run a live independent AI commander brain." Keep that distinction when designing AI commander revival or role-balance changes.

The same pass found two order-helper caveats:

  • Behavior/formation knobs can be rewritten by movement helpers. AI_MoveTo.sqf:6-17 and AI_Patrol.sqf:7-18 set combat/behavior/formation/speed, then may call UpdateTeam; AI_TownPatrol.sqf:26-30 randomizes the same properties directly before waypoints. Do not assume command-menu combo values are preserved after every server order helper runs.
  • Server/Functions/Server_UpdateTeam.sqf:4-8 chooses a formation using round(random(count _formations -1)). If uniform selection is intended, this is a small correctness bug candidate because edge entries get different probability than a floor(random count _formations) picker.

Resistance AI should stay split from main-side commander teams. Server/AI/AI_Resistance.sqf:7-16 goes straight to BIS_fnc_taskPatrol, AIWPAdd or AIPatrol; west/east order helpers gate through CanUpdateTeam and UpdateTeam first. Document resistance behavior as town/occupation AI, not as proof that west/east commander-team autonomy is live.

Broken AI Supply Truck Path

The old AI logistics path is config-gated latent breakage:

  1. UpdateSupplyTruck = Compile preprocessFile "Server\AI\AI_UpdateSupplyTruck.sqf"; is still commented out. The docs/source, Miksuu and perf line is Server/Init/Init_Server.sqf:36; current stable/B74.1/B74.2 line drift is :44.
  2. The truck-supply + AI-commander branch still exists. The docs/source checkout HEAD@6d4b514c12fc, Miksuu b8389e748243 and origin/perf/quick-wins@0076040f still initialize wfbe_ai_supplytrucks and raw-spawn UpdateSupplyTruck at Init_Server.sqf:382-383 in both maintained roots, except perf Chernarus line drift at :377-378. Current stable/B74.1 origin/master@f8a76de34 / origin/claude/b74.1-aicom@f8a76de34 and current B74.2 origin/claude/b74.2-aicom@21b62b04 do not spawn it; they initialize/log-disable legacy AI supply-truck logistics at Chernarus Init_Server.sqf:624-625 and maintained Vanilla :618-619.
  3. Server/AI/AI_UpdateSupplyTruck.sqf:17 still calls ExecFSM "Server\FSM\supplytruck.fsm".
  4. Server/FSM/ contains no supplytruck.fsm; the server FSM folder has .sqf loop scripts such as server_town.sqf, updateresources.sqf and server_victory_threeway.sqf.

Default posture nuance:

  • Current stable/B74.1 Chernarus Common/Init/Init_CommonConstants.sqf:536 falls back to WFBE_C_ECONOMY_SUPPLY_SYSTEM = 1, automatic timed supply; docs/source uses the same fallback at :161.
  • Current stable/B74.1 Chernarus Rsc/Parameters.hpp:77-82 defaults WFBE_C_AI_COMMANDER_ENABLED to 1, while docs/source still defaults it to 0 at :92-97.
  • Therefore the broken worker is still avoided by the automatic supply-system default unless a target branch selects truck supply (WFBE_C_ECONOMY_SUPPLY_SYSTEM == 0) while AI commanders are enabled. It remains a live config trap on raw-spawn-shaped branches and a deliberate safe-disable on current stable/B74-shaped branches.

AI Supply-Truck Branch Matrix

Branch route ai-supply-truck-b742-current-head-followup-2026-06-24 rechecked the maintained roots after origin/claude/b74.2-aicom advanced to 21b62b04. The docs/source checkout remains old-shaped, current stable/B74.1/B74.2 are safe-disabled, and a96fdda2 / c20ce153 are historical commit evidence because current origin exposes no release/* head. Live AI/truck side branches checked in this pass (origin/claude/ch-truck-fix, origin/claude/tk-aicom-port, origin/feat/aicom-fleet-improvements, origin/claude/aicom-review-fixes) line-drift Init_Server.sqf but do not change the checked supply-truck tokens, and a broad current-origin sweep found no Server/FSM/supplytruck.fsm:

Branch / root Evidence Status
Docs/source checkout HEAD@f9bc264f45a0 Source-unchanged from 6d4b514c12fc for checked supply-truck paths. Both maintained roots still comment out UpdateSupplyTruck at Server/Init/Init_Server.sqf:36, initialize wfbe_ai_supplytrucks at :382, and raw-spawn UpdateSupplyTruck at :383 when truck supply and AI commanders are enabled. Server/AI/AI_UpdateSupplyTruck.sqf:17 still references missing Server\FSM\supplytruck.fsm; ls-tree found no supplytruck.fsm. The repo docs/source checkout remains old-shaped for this path. Do not use it as proof of current stable safety.
Current stable/B74.1 origin/master@f8a76de34 / origin/claude/b74.1-aicom@f8a76de34 Both maintained roots still comment out UpdateSupplyTruck at Server/Init/Init_Server.sqf:44, then initialize wfbe_ai_supplytrucks and log-disable legacy AI supply-truck logistics when truck supply and AI commanders are enabled. Current Chernarus line shape is Init_Server.sqf:624-625; maintained Vanilla is :618-619. Server/AI/AI_UpdateSupplyTruck.sqf:17 still references missing Server\FSM\supplytruck.fsm, but current stable/B74.1 does not call it from this branch; ls-tree found no supplytruck.fsm. Safety shape is present in current stable/B74.1; autonomous logistics remain disabled/not revived.
Current B74.2 origin/claude/b74.2-aicom@21b62b04 Keeps the same safe-disable caller shape as B74.1: Chernarus Init_Server.sqf:44,624-625, maintained Vanilla :44,618-619, unchanged AI_UpdateSupplyTruck.sqf:17, and no Server/FSM/supplytruck.fsm. The d472da6a..21b62b04 scoped delta line-drifts source-Chernarus Init_Server.sqf for GUER stipend startup and touches client join/connect files, but not the worker/FSM route. Branch continues the current safe-disable posture; do not treat it as a supply-truck revival.
Current B69/B74 origin/claude/b69@8d465fce / origin/claude/b74-aicom-spend@b23f557f Both maintained roots share the same safe-disable line shape as the current B74 family for this branch: Init_Server.sqf:44,618-619 in both roots, unchanged AI_UpdateSupplyTruck.sqf:17, and no supplytruck.fsm. Checked B69..B74 path diff is empty for the worker/FSM and safe-disable branch. Branch-local AI commander work did not revive autonomous supply trucks.
Miksuu upstream b8389e748243 and origin/perf/quick-wins@0076040f Miksuu keeps the older raw spawn in both maintained roots at Init_Server.sqf:382-383. Perf also raw-spawns, with Chernarus at :377-378 and Vanilla at :382-383. Both refs still have AI_UpdateSupplyTruck.sqf:17 pointing at missing Server\FSM\supplytruck.fsm; no checked ref restores the FSM. Branch-specific raw-spawn trap remains open outside current/B74-shaped branches.
Historical release commit a96fdda2; no current release/* head on 2026-06-24 Chernarus and maintained Vanilla match the safety shape: compile commented at Init_Server.sqf:37, wfbe_ai_supplytrucks initialized and warning logged at :383-384, old worker still references missing supplytruck.fsm at AI_UpdateSupplyTruck.sqf:17. Historical release commit and current stable share the minimal safe-disable; neither revives autonomous logistics. Recheck if a release branch is restored.
Historical AI-commander commit c20ce153 Chernarus guards the spawn with if (!isNil "UpdateSupplyTruck") then {[_side] Spawn UpdateSupplyTruck} at Init_Server.sqf:388-389, but the compile remains commented and supplytruck.fsm remains absent. Maintained Vanilla on the same commit still has the raw [_side] Spawn UpdateSupplyTruck at Init_Server.sqf:382-383. Historical branch-only partial guard. Do not treat it as a supply-truck revival or Vanilla propagation.

Patch direction: current stable/B74.1/current B74.2 already have the safety-only warning/disable shape in both maintained roots, while docs/source, Miksuu and perf still show the raw-spawn trap. Keep the safe-disable shape when merging or rebasing branches, and only reopen the worker if a code owner designs or restores a verified server-owned supply-truck loop/FSM. Keep this separate from player-run supply helicopter work.

Authority-Adjacent Commander Controls

Some commander-facing systems are live but still client-led. Keep them out of the autonomy revival lane unless the owner intentionally bundles server-authority work.

Control Evidence Why it matters
Commander income percent Client/GUI/GUI_Menu_Economy.sqf:24-27,74-79; Server/FSM/updateresources.sqf:36-43 Client UI writes the commander percent that the server resource loop consumes. It needs sender/commander validation in the economy authority lane.
Upgrade requests Client/GUI/GUI_UpgradeMenu.sqf:137-171; Server/PVFunctions/RequestUpgrade.sqf:1-5; Server/Functions/Server_ProcessUpgrade.sqf:12-21 The server owns the timer/state transition, but the live request still trusts client-side funds/dependency/level checks.
Commander team orders GUI_Menu_Command.sqf:252-306,425-428; Common_SetTeamMoveMode.sqf:8; Common_SetTeamMovePos.sqf:8; RequestTeamUpdate.sqf:3-25 Team property updates have a real server PVF. Map-order variables are replicated group state, but no general executor was proven that turns wfbe_teammode / wfbe_teamgoto into waypoints. Do not treat this as an AI commander movement scheduler.
AI commander upgrade worker Current stable/B74.1/B74.2/B69/B74 Server_AI_Com_Upgrade.sqf:75,89,92,97,125,131-132,136; old-shape docs/Miksuu/perf Server_AI_Com_Upgrade.sqf:27,34,36,47,50; AI upgrade debit branch matrix Current stable/B74-shaped refs fix current-level cost lookup plus funds/supply debit in both maintained roots. Docs/source, Miksuu, perf and mixed old-shape side branches still need a target-specific port before scheduling AI upgrades there.
MHQ repair Client/Action/Action_RepairMHQ.sqf:5-35; Server/PVFunctions/RequestMHQRepair.sqf:1; Server/Functions/Server_MHQRepair.sqf:1-35 Repair is client-debited and side-only when it reaches the server.
Commander specials and selling Client/GUI/GUI_Menu_Tactical.sqf:363-373,463-527; Client/GUI/GUI_Menu_Economy.sqf:104-150; Server/Functions/Server_HandleSpecial.sqf:55-64 Paratroops, paradrops, UAV/ICBM paths, RespawnST and structure sale/refund all need role/side/funds/effect validation before public-server confidence.

Safe Revival Plan

Minimal Safety Patch

Current master already follows this shape; use it as the baseline if a branch still has the raw spawn or if the owner does not want to revive autonomy yet:

  1. Keep UpdateSupplyTruck disabled.
  2. Initialize wfbe_ai_supplytrucks for compatibility, but do not spawn the missing worker.
  3. Log one WFBE_CO_FNC_LogContent warning if truck supply + AI commanders is requested while legacy logistics are unavailable.
  4. Update agent-release-readiness.json only if this becomes a source patch and generated propagation/smoke are pending.

Minimum smoke:

  • Default mission parameters boot without AI logistics errors.
  • Truck-supply + AI-commander config does not throw nil-code errors.
  • No supply trucks are created unless the owner intentionally restores the worker.

Full Revival

Use this only if autonomous commander/logistics is a real feature goal:

  1. Define the owner model: one server loop per side, not client-side command behavior.
  2. Decide whether wfbe_aicom_running is the lifecycle flag or replace it with clearer side-logic state.
  3. Add a server-owned scheduler that:
    • starts only when no player commander owns the side;
    • calls WFBE_SE_FNC_AI_Com_Upgrade on a safe cadence;
    • calls production logic intentionally rather than relying on hidden dynamic calls;
    • stops cleanly when a player commander is assigned.
  4. Either restore a verified supply-truck FSM or replace the old truck logic with a new SQF loop.
  5. Keep PR #1 player-run supply helicopters separate until the owner explicitly designs autonomous heli behavior.
  6. Define cleanup on HQ death, side elimination, vehicle death, commander assignment, AI commander disable and HC disconnect.

Minimum smoke:

  • AI commander enabled with no player commander starts the server-owned AI loop exactly once per side.
  • Assigning a player commander stops the loop for that side.
  • AI upgrades advance only when funds/supply are sufficient and do not double-debit.
  • AI production queues units through a known owner path and stops if a player takes the team.
  • AI supply trucks or helicopters respect max counts, cleanup dead vehicles and do not depend on missing files.

Do Not Do This

  • Do not just uncomment UpdateSupplyTruck; it still calls a missing FSM.
  • Do not build autonomous supply helicopters on top of AI_UpdateSupplyTruck.sqf without redesign.
  • Do not describe Server_BuyUnit.sqf / AIBuyUnit as live AI commander production until a caller is proven or added.
  • Do not treat the constants fallback as proof that the mission parameter default enables AI commanders.
  • Do not mix the commander reassignment call-shape fix into autonomy revival without its own smoke; that bug has a separate playbook.

Related Pages

Continue Reading

Previous: AI, headless and performance | Next: Headless delegation/failover

Main map: Home | Fast path: Feature status | Agent file: agent-context.json

Sidebar

Clone this wiki locally