Skip to content

Source Fix Propagation Queue

rayswaynl edited this page Jun 21, 2026 · 269 revisions

Source Fix Propagation Queue

This page tracks mission-code fixes that have reached the Chernarus source mission and the maintained generated Vanilla Takistan target, but still need Arma 2 OA smoke before they can be called release-complete. Agents can load the compact mirror in agent-release-readiness.json.

All source paths are relative to the repo root.

Rule

Missions/[55-2hc]warfarev2_073v48co.chernarus is the source mission. Missions_Vanilla/[61-2hc]warfarev2_073v48co.takistan is the maintained generated/copy target. A fix is not release-complete until:

  1. The Chernarus source patch is present.
  2. LoadoutManager propagation has run.
  3. Generated diffs are inspected.
  4. Every claimed mission root has its generated version.sqf present and terrain-correct.
  5. Relevant Arma 2 OA smoke is recorded.

LoadoutManager root discovery is branch-sensitive. Docs checkout docs/developer-wiki-index@d30d23466 is source-unchanged from the queue's 4bd37b98 line-anchor proof for this file. Current stable origin/master@0139a346 and historical release commit a96fdda2 accept either an ancestor named a2waspwarfare or a repo-shaped root containing Missions/[55-2hc]warfarev2_073v48co.chernarus, Tools/LoadoutManager and AGENTS.md (Tools/LoadoutManager/FileManagement/FileManager.cs:153,158,166,176,186-188 on docs checkout; :165,170-172 on current stable). Current Miksuu b8389e74 and origin/perf/quick-wins 0076040f still require an ancestor folder named a2waspwarfare (FileManager.cs:145,150-152). Packaging can be skipped for propagation-only runs with A2WASP_SKIP_ZIP=1; see Tools/build workflow.

Generated input gate: version.sqf is required boot input, not tracked source. It is ignored by .gitignore, included by description.ext:39 and initJIPCompatible.sqf:4, and consumed by Rsc/Header.hpp:5,9,21. Before calling any propagated fix release-ready, verify source Chernarus and maintained Vanilla Takistan both have generated version.sqf files with the expected WF_MAXPLAYERS, WF_MISSIONNAME, WF_RESPAWNDELAY, map flags and release/debug defines. The compact agent-readable rule lives in agent-release-readiness.json under versionSqfGeneratedInput.

Current Branch Scope (2026-06-21)

Use this table before treating any queue row as current-branch truth. The docs checkout and current stable now carry several of the same propagated fix families, but current stable differs on FPS publisher count, queue PVFs, supply scan shape and commander-built ARTY. The supply player-list index fix remains docs/source-only in the current refs checked here. Current origin exposes no release/* heads on 2026-06-21, so a96fdda2 release evidence below is historical until a release head is restored or rechecked.

2026-06-21 docs-source refresh: the latest checked docs-source base is docs/developer-wiki-index@d30d23466, but the checked propagation source paths are unchanged from the queue's 4bd37b98 source anchor through d30d23466. Rechecked path families: Common/Init/Init_PublicVariables.sqf, Client/Init/Init_Client.sqf, Server/GUI/serverFpsGUI.sqf, Server/Module/serverFPS/monitorServerFPS.sqf, Server/Module/supplyMission/supplyMissionStarted.sqf, Server/Module/supplyMission/playerObjectsList.sqf, Server/Construction/Construction_StationaryDefense.sqf, Common/Functions/Common_GetTeamArtillery.sqf in both source Chernarus and maintained Vanilla, plus Tools/LoadoutManager/FileManagement/FileManager.cs. Rows below keep 4bd37b98 as the line-anchor source proof; do not treat it as stale mirror state.

Ref Source-backed notes Practical route
Docs checkout docs/developer-wiki-index 4bd37b98 Chernarus and maintained Vanilla carry paratrooper registration (Init_PublicVariables.sqf:39), single client Skill_Init plus apply (Init_Client.sqf:547,571), two guarded FPS publishers (serverFpsGUI.sqf:1, monitorServerFPS.sqf:1), typed supply command-center scan (supplyMissionStarted.sqf:25,28), player-list indexing (playerObjectsList.sqf:17) and commander-team ARTY gunner handoff (Construction_StationaryDefense.sqf:91-93). Treat as the historical propagation-run/source-docs shape. Keep branch-drift checks in this page before promoting to stable/release language.
Current stable origin/master@0139a346 Chernarus and maintained Vanilla carry queue PVFs plus paratrooper registration (Init_PublicVariables.sqf:22-23,38), single client Skill_Init plus apply (Init_Client.sqf:624,647), one guarded FPS publisher (serverFpsGUI.sqf:4; old monitorServerFPS.sqf absent), heli-aware typed supply command-center scan (supplyMissionStarted.sqf:7,55,61,83) and marker-based commander ARTY discovery (Construction_StationaryDefense.sqf:166-168; Common_GetTeamArtillery.sqf:41-78, owner-side check at :56). They still reset the supply player-list index inside the loop (playerObjectsList.sqf:18, loop closes at :29). Treat current stable as carrying the listed propagated families, but do not claim the player-list index fix. Smoke the stable implementation shape, especially FPS single-publisher, truck/heli supply command-center completion and marker-based commander ARTY.
Historical release commit a96fdda2; no current release/* head on 2026-06-21 The last checked release commit matched the older stable shape in both maintained roots, with client skill line drift (Init_Client.sqf:563,586) and the same guarded FPS, heli-aware supply scan, in-loop player-list reset and marker-based commander ARTY anchors. Use historical release smoke wording only after rechecking or restoring a release ref. Do not claim the player-list index fix on release until source changes.
Miksuu b8389e74 and origin/perf/quick-wins 0076040f This pass rechecked high-risk queue drift: Miksuu omits the paratrooper marker registration, perf carries it in Chernarus only, both still duplicate Skill_Init, both keep two unguarded FPS publishers, both keep the broad supply terminal scan and both reset the supply player-list index inside the loop. Their LoadoutManager root discovery still requires an ancestor named a2waspwarfare (FileManager.cs:145,150-152). Recheck each gameplay row on these refs before claiming parity.

Latest Propagation Run

Checked on 2026-06-02 in a checkout where LoadoutManager could resolve its root, with packaging skipped through A2WASP_SKIP_ZIP=1. Codex ran:

$env:A2WASP_SKIP_ZIP = "1"
dotnet run --project Tools\LoadoutManager\LoadoutManager.csproj

Result: generation/copy completed for Chernarus and Takistan, _MISSIONS.7z packaging was intentionally skipped, and the maintained Vanilla Takistan diffs carried the source fixes checked in that lane. Current branch refresh: as of 2026-06-21, docs checkout 4bd37b98 (still source-unchanged at docs/developer-wiki-index@d30d23466), current stable origin/master@0139a346 and historical release commit a96fdda2 all carry the paratrooper, client skill, FPS guard and typed supply-scan families, but current stable/release use a single FPS publisher and marker-based commander ARTY discovery while the docs checkout still carries the older two-FPS-publisher plus commander-team gunner handoff shape. The supply player-list index fix remains docs/source-only in this checked set. The run printed The specified content was not found in the file. once per terrain from BaseTerrain.ReplaceGUIMenuHelp; this is a non-fatal help-menu text replacement warning because Client/GUI/GUI_Menu_Help.sqf is skip-listed and terrain-specific.

Fix Rechecked evidence Result
Paratrooper marker revival Source and Vanilla Common/Init/Init_PublicVariables.sqf:39 include HandleParatrooperMarkerCreation. Chernarus carries it, Vanilla carries it, smoke pending.
Client skill init idempotency Source and Vanilla Client/Init/Init_Client.sqf now run one Skill_Init.sqf compile and then WFBE_SK_FNC_Apply; the duplicate post-apply compile is removed. Chernarus carries it, Vanilla carries it, smoke pending.
Hosted server FPS loop sleep Source and Vanilla serverFpsGUI.sqf:1 and monitorServerFPS.sqf:1 exit on !isDedicated. Chernarus carries it, Vanilla carries it, smoke pending.
Supply mission scan narrowing Docs checkout 4bd37b98 Chernarus and Vanilla use the typed ["Base_WarfareBUAVterminal"] scan at supplyMissionStarted.sqf:28; current stable origin/master@0139a346 uses the heli-aware typed scan at supplyMissionStarted.sqf:61 in both maintained roots, with the terminal check at :55, heli flag at :7 and nearby-player scan at :83. Historical release a96fdda2 keeps the older checked release line shape until rechecked. Treat this as branch-present but smoke-pending; truck/heli command-center smoke remains required before release-ready wording.
Supply player-object list indexing Source and Vanilla playerObjectsList.sqf:17 initialize _i = 0 before the WFBE_SE_PLAYERLIST loop. Chernarus carries it, Vanilla carries it, smoke pending.

Follow-up source check on 2026-06-05 added one later source-only fix to the queue: commander-built artillery ownership. It was not part of the 2026-06-02 LoadoutManager run above. Current docs checkout 4bd37b98 Chernarus and maintained Vanilla carry the commander-team gunner handoff at Construction_StationaryDefense.sqf:91-93; current stable origin/master@0139a346 instead carries marker-based discovery in both maintained roots by setting WFBE_CommanderArtillery* object variables at Construction_StationaryDefense.sqf:166-168 and scanning same-side marked artillery inside HQ/base-area radius from Common_GetTeamArtillery.sqf:41-78. Historical release a96fdda2 remains old checked release evidence until rechecked.

Branch Implementation Caveat (2026-06-14 Refresh)

The rows below are a branch-shape map, not a smoke sign-off. Keep exact refs in any claim because docs checkout 4bd37b98 and stable/release now differ on FPS publisher count, supply scan shape, supply player-list indexing and commander-built ARTY implementation.

Lane Docs checkout 4bd37b98 Current stable origin/master@0139a346 / historical release a96fdda2 Practical rule
Paratrooper marker revival Chernarus/Vanilla register HandleParatrooperMarkerCreation at Common/Init/Init_PublicVariables.sqf:39. Current stable registers queue PVFs at Common/Init/Init_PublicVariables.sqf:22-23 and paratrooper markers at :38; historical release used the older checked line shape. Branch-present in checked maintained roots; Arma marker smoke is still required.
Client skill init idempotency One Skill_Init.sqf call at Client/Init/Init_Client.sqf:547, followed by WFBE_SK_FNC_Apply at :571. Current stable has Skill_Init / apply at :624,647; historical release at :563,586. Branch-present in checked maintained roots; Soldier/non-Soldier/respawn smoke is still required.
Hosted server FPS loop sleep serverFpsGUI.sqf:1 and monitorServerFPS.sqf:1 both exit on !isDedicated. Current stable serverFpsGUI.sqf:4 exits on !isDedicated; old Server/Module/serverFPS/monitorServerFPS.sqf is absent. Smoke dedicated publish and hosted/listen no-spin against the target branch's publisher shape.
Supply mission scan narrowing Typed terminal scan at supplyMissionStarted.sqf:28, plus terminal post-filter at :25 and nearby-player scan at :44. Current stable heli-aware typed terminal scan is at supplyMissionStarted.sqf:61, with heli flag at :7, terminal check at :55 and nearby-player scan at :83; historical release keeps the older checked line shape. Smoke truck and heli command-center completion plus unrelated-object non-completion before release-ready wording.
Supply player-object list indexing _i = 0 before the WFBE_SE_PLAYERLIST loop at playerObjectsList.sqf:17. _i = 0 is still inside the loop at playerObjectsList.sqf:18, so this fix is not stable/release-present. Branch-present only in docs/source checked roots; reconnect/JIP lookup smoke remains pending before release-ready wording.
Commander-built artillery ownership Commander-team gunner handoff at Construction_StationaryDefense.sqf:91-93; Common_GetTeamArtillery.sqf:10-30 discovers team vehicles only. Current stable non-repair-truck ARTY defenses set WFBE_CommanderArtillery* at Construction_StationaryDefense.sqf:166-168; Common_GetTeamArtillery.sqf:41-78 scans marked same-side artillery in HQ/base-area radius. Historical release keeps its older checked line shape. Treat docs checkout and stable/release as separate source-backed implementations; smoke the exact target branch shape.

Current Propagated Fix Queue

Lane Source status Vanilla status Smoke status Evidence Next action
Paratrooper marker revival Chernarus registers HandleParatrooperMarkerCreation in the client PV list. Vanilla Init_PublicVariables.sqf now registers the handler too. Pending Arma smoke. Source/Vanilla Common/Init/Init_PublicVariables.sqf:39; sender Server/Support/Support_Paratroopers.sqf:117. Smoke a paratrooper support drop and confirm the client marker appears.
Client skill init idempotency Chernarus runs Skill_Init.sqf once, then calls WFBE_SK_FNC_Apply. Vanilla duplicate compile removed. Pending Arma smoke. Source/Vanilla Client/Init/Init_Client.sqf:547,571; skill cap mutation Client/Module/Skill/Skill_Init.sqf:49. Smoke Soldier/non-Soldier AI cap and respawn skill reapply.
Hosted server FPS loop sleep Chernarus FPS publishers exit immediately on !isDedicated. Vanilla FPS publishers have the same early exit. Pending dedicated/hosted smoke. Source/Vanilla Server/GUI/serverFpsGUI.sqf:1; source/Vanilla Server/Module/serverFPS/monitorServerFPS.sqf:1. Smoke dedicated FPS publish and hosted/listen no-spin behavior.
Supply mission scan narrowing Docs checkout 4bd37b98 Chernarus has the typed terminal scan at supplyMissionStarted.sqf:28; current stable origin/master@0139a346 uses the heli-aware typed scan at :61. Maintained Vanilla matches the named branch shapes. Branch-present in checked docs/current-stable/historical-release roots; truck/heli smoke pending. Docs checkout Chernarus/Vanilla Server/Module/supplyMission/supplyMissionStarted.sqf:25,28,44; current stable Chernarus/Vanilla :7,55,61,83; historical release keeps the older checked line shape; broad nearby-player 8m scan remains intentional. Smoke truck and heli delivery near command centers and no completion near unrelated nearby objects on the target branch.
Supply player-object list indexing Chernarus initializes _i = 0 before the WFBE_SE_PLAYERLIST loop so reconnecting UIDs replace their real row. Vanilla has the same counter placement. Pending reconnect/supply smoke. Source/Vanilla Server/Module/supplyMission/playerObjectsList.sqf:17-29; consumers supplyMissionStarted.sqf:57+ and supplyMissionActive.sqf:51+. Smoke reconnect/JIP player-object replacement and supply mission completion lookup.
Commander-built artillery ownership Docs checkout 4bd37b98 Chernarus routes manned artillery-class base-area defense gunners to the current commander team when one exists; current stable origin/master@0139a346 and historical release a96fdda2 use marker-based commander ARTY discovery instead. Maintained Vanilla matches the named branch shapes. Pending commander ARTY smoke for both implementation shapes. Docs checkout Chernarus/Vanilla Server/Construction/Construction_StationaryDefense.sqf:91-93; tactical discovery Common/Functions/Common_GetTeamArtillery.sqf:10-30; current stable Chernarus/Vanilla Construction_StationaryDefense.sqf:166-168 and Common_GetTeamArtillery.sqf:41-78; historical release keeps the older checked line shape; tactical UI Client/GUI/GUI_Menu_Tactical.sqf:544,565,594. Smoke commander-built manned ARTY inside the HQ/base circle, Tactical fire-mission listing, ammo loading, direct fire, non-artillery DefenseTeam behavior and HC static-defense fallback. On current stable/historical release, include the marker-based discovery path and repair-truck-built artillery exclusion.
Patrols v2 current-master route Current stable origin/master@0139a346 Chernarus keeps the Patrols side-upgrade driver, runner, marker loop and && patrol-worker loop first routed when stable was cf2a6d6a. It now anchors Patrols at WFBE_UP_PATROLS = 23, a level-aware side cap and level-4 convoy/camp-sweep hooks. Maintained Vanilla Takistan has the same Patrols v2 source shape. Pending Arma patrol/HC/marker smoke. Source/Vanilla Init_CommonConstants.sqf:60,63,486,683; Init_Common.sqf:107; Init_Client.sqf:405; Init_Server.sqf:40,690; server_town_ai.sqf:72,327; server_side_patrols.sqf:12,19,48,67,72; Common_RunSidePatrol.sqf:54,82,87,91,108,119,148,245,264; Server_HandleSpecial.sqf:345-380; Client/FSM/updatepatrolmarkers.sqf:3,19; Server/FSM/server_patrols.sqf:31. Smoke Patrols upgrade levels 1/2/3, level-4 convoy/camp-sweep hooks, HC delegate-sidepatrol, friendly-only markers, patrol death, side-slot/cooldown release and Buy Units/RHUD AI-cap text.
Commander vote server comparison Current stable origin/master@0139a346 Chernarus removes the old DR-47 `>= <=vote comparison; player assignment now requires_highest >= _aiVotesatServer_VoteForCommander.sqf:43`. Maintained Vanilla has the same current-stable comparison at Server_VoteForCommander.sqf:43. Pending vote outcome smoke and UI preview alignment.

Patch-Ready But Not In Current Code

These have source-backed playbooks but are not current code fixes yet. Do not mix them into a propagation run unless the code owner explicitly claims the patch.

Branch-head note: rows below preserve their last lane-specific matrix until the linked owner page is refreshed. If a row still cites 89ae9dad or 7ff18c49, treat that as historical checked-ref evidence, not as a 2026-06-14 current-head claim.

2026-06-21 PVF dispatcher closeout note: current stable origin/master@0139a346 now has registered PVF namespace+CODE lookup in both maintained roots, so the old cf2a6d6a dispatcher-compile evidence is no longer current-stable truth. The remaining current-stable queue item is explicit registered allowlisting/logging plus smoke; docs checkout and origin/perf/quick-wins still need the full dispatcher port.

Lane Status Canonical page Why separate
PVF dispatcher lookup / allowlist hardening Branch-split. Current stable origin/master@0139a346 removes dispatcher Call Compile in both maintained roots by using missionNamespace getVariable _script plus typeName _code == "CODE" at Server_HandlePVF.sqf:14-15 and Client_HandlePVF.sqf:32-33, with Chernarus blame 7d60b02b4 and maintained Vanilla propagation blame 9b49883cb. Init_PublicVariables.sqf:55-61 still has no registered-handler allowlist or rejection log. Docs checkout still has Spawn (Call Compile _script) at server :14 and client :22; Miksuu b8389e74 and origin/perf/quick-wins 0076040f keep the same old server :14 / client :22 shape; historical release commit a96fdda2 still has server :14 and HC-filtered client :32. Current origin exposes no release/* heads on 2026-06-21. PVF dispatch implementation On current stable, add explicit registered SRVFNC*/CLTFNC* allowlists plus warning logs, then smoke RequestJoin/RequestVehicleLock/client messages and forged unregistered handler rejection. On old-shape targets, backport namespace lookup and allowlist together. Keep DR-55 legitimate-handler payload validation and direct PV channels separate.
Factory queue counter/token cleanup Patch-ready, current code still carries both the queue-counter leak and low-entropy token; branch matrix refreshed 2026-06-05. Factory queue cleanup perf/quick-wins and release Chernarus patch only the crewless queue-counter leak; the FIFO token and maintained Vanilla propagation remain open.
SEND_MESSAGE direct compile removal P0 patch-ready direct-PV RCE; docs head 16247fc8f, current stable origin/master@0139a346, Miksuu upstream b8389e74 and origin/perf/quick-wins 0076040f all keep the direct event handler plus receiver/helper call compile route in both maintained roots (updateclient.sqf:12, Client_onEventHandler_SEND_MESSAGE.sqf:27, Common_SendMessage.sqf:26,38). Targeted diffs 1e16527b..16247fc8f and cf2a6d6a..0139a346 do not touch the checked paths. Current origin exposes no release/* heads on 2026-06-21, so older release a96fdda2 evidence is historical until restored. Public variable channel index Current stable's PVF dispatcher lookup change, and any future dispatcher allowlist, does not close this direct channel. Patch receiver/helper/callers to structured localization keys/args, propagate maintained Vanilla, then smoke localized artillery/ICBM/side messages and a forged payload treated as data.
Attack-wave direct-PV authority (ATTACK_WAVE_INIT / ATTACK_WAVE_DETAILS) P1 patch-ready direct-PV authority gap; current stable origin/master / local master 0139a346 Chernarus and maintained Vanilla still trust client _supply / _side in ATTACK_WAVE_INIT and trust ATTACK_WAVE_DETAILS payloads (Common_AttackWaveActivate.sqf:6,8; Server_AttackWave.sqf:5-6,15,23,27,36,38; AttackWave.sqf:19,23-25,40). Miksuu b8389e74, origin/perf/quick-wins 0076040f, historical AI-commander commit c20ce153, historical release commit a96fdda2 and historical upstream/AttackWave commit 994150da keep the same shape; current origin exposes no release/* or feat/ai-commander heads on 2026-06-21. Attack-wave authority playbook Keep separate from generic PVF dispatcher lookup, SEND_MESSAGE and side-supply clamp work. Treat ATTACK_WAVE_INIT as a request, re-derive side/supply server-side, guard forged detail payloads, propagate maintained Vanilla and smoke valid activation, forged _supply >= 70000, wrong-side payloads, duplicate active waves and JIP replay.
Victory/endgame winner semantics and double-fire Patch-ready correctness bug; 2026-06-21 refresh shows docs head d30d23466 is source-unchanged from a0a86da2 / 2f2132f8 for checked victory/endgame paths. Docs, Miksuu b8389e74, origin/perf/quick-wins 0076040f and historical release commit a96fdda2 keep the older opposite-side logger block in both maintained roots (server_victory_threeway.sqf:23-41), so all-towns wins log the loser. Current stable origin/master@0139a346 has a different but still unclosed shape in both maintained roots: HQ nil/null skip :18-22, mixed condition :29, WF_Winner :37, WFBE_GameOver :39, WASPSTAT _x :41-46, and LogGameEnd [_x] :49, so HQ/factory eliminations log the loser and the same-tick guard/side-loop exit is still missing. Current stable still has client payload inversion at Client_EndGame.sqf:5-13 and no GUER label in GUI_EndOfGameStats.sqf:6-8. origin/claude/b57-soak-proposals@b8a1505f carries Chernarus-only guard/client-label edits, not maintained Vanilla propagation or explicit winner/loser computation. Current origin exposes no release/* heads. Victory/endgame atlas Compute explicit winner/loser sides per branch, guard the full condition with !WFBE_GameOver, exit after one accepted endgame path, align client payload semantics plus GUER label, write WASPSTAT/logger with the winner, propagate maintained Vanilla and smoke HQ elimination, all-towns victory, same-tick mutual elimination and AntiStack enabled/disabled tails. Keep stale PVF logger retirement and server-init duplicate-bind cleanup separate.
HQ-kill score double-award Patch-ready scoring integrity bug; current stable recheck 2026-06-21 shows origin/master@0139a346 Chernarus and maintained Vanilla both still keep generic HQ building score plus a second HQ bounty score in Server/Functions/Server_OnHQKilled.sqf: _points at :23, generic award at :52 / :54, non-teamkill guard at :80, _score = 900 at :83 and second award at :86. Common/Init/Init_CommonConstants.sqf:529 keeps WFBE_C_BUILDINGS_SCORE_COEF = 3. Older docs/Miksuu/perf/release/feat-ai evidence remains branch-scoped on the owner page. Commander/HQ lifecycle Keep one non-teamkill HQ score award and make friendly/teamkill HQ kills score zero. Propagate maintained Vanilla and smoke enemy HQ kill, friendly HQ teamkill and DR-20 idempotency/replayed-HQ-kill interactions.
Factory destroyed-purchase refund contract Branch-split after 2026-06-21 owner refresh: docs checkout ebd86fad0 is source-unchanged from 8d611092 for checked buy/build paths; docs, Miksuu b8389e74, origin/perf/quick-wins 0076040f and historical QoL commit a66d4691 still leave the dead/null factory abort as queue cleanup without refund. Current stable origin/master@0139a346 passes _currentCost into BuildUnit (GUI_Menu_BuyUnits.sqf:163-165) and refunds the dead/null abort (Client_BuildUnit.sqf:276-280) in both maintained roots. Historical release commit a96fdda2 carries the same refund at Client_BuildUnit.sqf:212-216; intermediate 7ff18c49 only refunded the empty/crewless branch and is superseded. Current origin exposes no release/* or feat/buymenu-easa-qol heads on 2026-06-21. Factory and purchase systems Keep separate from DR-33 queue-token cleanup: preserve/port the current-stable/historical-release refund payload as needed, do not port 7ff18c49's empty/crewless refund without an explicit policy decision, and smoke factory death, buyer disconnect, empty/crewless abort and normal completion. Player purchase authority remains client-local.
Side-supply clamp and temp-channel validation Patch-ready; docs checkout f52ccee8, stable origin/master cf2a6d6a, release a96fdda2 and Miksuu upstream b8389e74 still carry the overspend-as-credit floor plus payload-side trust in both maintained roots. perf/quick-wins 0076040f fixes only the Chernarus arithmetic floor; perf Vanilla and DR-44 side/channel/requester validation remain open. Economy authority first cut Port or recreate the arithmetic floor-to-zero fix in current source, add west/east side/channel/amount validation, propagate maintained Vanilla, and keep broader DR-44 spend authority/server-ledger work separate.
Side-supply reason string off-by-one Patch-ready low-risk diagnostics cleanup; docs checkout f52ccee8, stable origin/master cf2a6d6a, release a96fdda2, Miksuu upstream b8389e74 and perf/quick-wins 0076040f all still carry the helper guard that drops 3-argument AttackWave.sqf:40 caller reasons while preserving 4-argument supply-completion reasons (:26 on docs/Miksuu/perf, :40 on stable/release). Economy authority first cut Fix _reason parsing with the side-supply clamp pass because the same helper is being edited, but keep it scoped as logging/audit cleanup rather than authority closure.
Resource income payout/display drift Patch-ready economy correctness review; docs checkout f52ccee8, stable origin/master cf2a6d6a, release a96fdda2, Miksuu upstream b8389e74 and perf/quick-wins 0076040f all still keep the resource-loop cap guard over side supply, player paychecks and AI commander funds, plus the income-system 4 server/client multiplier mismatch. Perf Chernarus changes only resource-loop wait cadence. Economy, towns and supply Decide cap-guard intent, then align source Chernarus and maintained Vanilla server payout, AI commander funds and Client_GetIncome/RHUD/menu display math. Smoke capped and uncapped income ticks before changing balance wording.
AI commander upgrade debit/cost lookup Patch-ready AI/economy cleanup; branch check 2026-06-14 shows docs checkout d4cfef80, Miksuu b8389e74 and perf/quick-wins 0076040f still validate [supply, funds] but debit funds/supply swapped at Server_AI_Com_Upgrade.sqf:47,50. Stable origin/master cf2a6d6a, release a96fdda2 and origin/feat/upgrade-queue-stacking b061c905 fix debit order in both maintained roots but keep raw cost lookup at :27; origin/feat/ai-commander c20ce153 also fixes cost-level lookup only in Chernarus. AI commander autonomy audit, Upgrades and research Port or recreate the release debit-order fix where still open, decide whether to take the feat/ai-commander cost-index correction, propagate maintained Vanilla and smoke AI upgrade affordability/debit before enabling an AI commander upgrade scheduler.
AI supply-truck safe-disable Current source Chernarus, maintained Vanilla and origin/master / local master cf2a6d6a now carry the safe-disable shape in both maintained roots: Init_Server.sqf:37 keeps UpdateSupplyTruck commented, :383-384 initializes wfbe_ai_supplytrucks and logs that legacy logistics are disabled, and AI_UpdateSupplyTruck.sqf:17 still points at missing Server\FSM\supplytruck.fsm but is not spawned by current master. Release a96fdda2 matches this. Miksuu upstream b8389e74 and perf/quick-wins 0076040f still raw-spawn the missing worker; feat/ai-commander c20ce153 guards only Chernarus while Vanilla remains raw. AI commander autonomy audit Current master safety cleanup is source-present. Keep it during branch merges/rebases, optionally port the same warning/disable to raw-spawn branches, or intentionally revive logistics with a real server-owned loop/FSM. Keep separate from broader AI commander supervisor work and player-run supply helicopters.
Town AI vehicle despawn safety Patch-ready player-safety cleanup; branch check 2026-06-13 shows docs checkout b9e80da0 Chernarus/Vanilla deletes inactive tracked town-AI vehicles with alive _x plus !(isPlayer leader group _x) at server_town_ai.sqf:214, stable origin/master cf2a6d6a at :207, Miksuu b8389e74 at :195, perf/quick-wins 0076040f at :219 and release a96fdda2 at :200, all without a player crew check. No checked ref contains Server_CleanupExpiredTownDefenseAssets.sqf; older 89ae9dad helper evidence is historical. Town AI vehicle despawn safety Add a full player-occupancy guard before deleting wfbe_active_vehicles, preserve empty AI-only cleanup, propagate maintained Vanilla and smoke occupied driver/gunner/cargo/turret cases plus empty AI vehicle cleanup. Treat any future persistent town-defense cleanup helper as a separate re-audit surface.
Commander reassignment call shape Branch-split/current-stable partial source-present. 2026-06-21 recheck shows current stable origin/master@0139a346 Chernarus and maintained Vanilla unpack _side = _this select 0 / _commander = _this select 1 at Server_AssignNewCommander.sqf:4-5; Miksuu b8389e74, origin/perf/quick-wins 0076040f, historical release a96fdda2 and historical AI-commander c20ce153 match that maintained-root helper shape. Docs branch b44aaaf8 still uses _side = _this at :3; current stable full modded Napf/Eden/Lingor forks also still use _side = _this at Modded_Missions/*/Server/Functions/Server_AssignNewCommander.sqf:3. All checked maintained roots still keep duplicate new-commander-assigned senders and visible-name UI selection. Current origin exposes no live release/* or feat/ai-commander heads. Commander reassignment call shape, Commander vote/reassignment Do not reopen helper unpacking on current stable maintained roots. Patch old-shape targets separately, choose one notification owner, switch UI selection to row value/team identity, keep modded forks out of parity claims until maintained, and smoke one-message reassignment plus duplicate/similar leader names.
Construction small-site logic cleanup Patch-ready; docs checkout 4bd37b98, stable origin/master cf2a6d6a, Miksuu b8389e74, perf 0076040f and release a96fdda2 all still carry SmallSite add/add while MediumSite removes in both maintained roots. Construction logic list cleanup Needs the one-line SmallSite add-to-remove edit, then Vanilla propagation and construction smoke.
Auto-wall toggle scope cleanup Docs-ready workflow/authority cleanup; docs checkout 4bd37b98, stable origin/master cf2a6d6a, Miksuu b8389e74, perf 0076040f and release a96fdda2 all keep User14 toggling one global isAutoWallConstructingEnabled value that later SmallSite/MediumSite workers consume. Stable/release initialize it to true and add an AARadar exclusion but not side/requester scoping. Construction and CoIn systems atlas Decide global-vs-side/requester policy, then either label the match-wide behavior or key/validate the state and smoke two players/sides toggling before small and medium construction.
RHUD/endgame title display handle split Patch-ready; 2026-06-14 branch check shows current docs checkout b5219d47 keeps the 2fef1e3d title-handle line shape, and docs/source, stable origin/master cf2a6d6a, Miksuu b8389e74, perf 0076040f and release a96fdda2 all still share currentCutDisplay between OptionsAvailable/RHUD/action icons and EndOfGameStats in both maintained roots. Stable/release fix the EASA dialog IDD split, but not title-handle ownership. UI IDD collision repair Needs a title display-variable split or RHUD/action-icon endgame gate before propagation; keep separate from broader UI IDD cleanup and smoke RHUD/action icons/endgame stat bars together.
Clickable text soundPush config Source-present on current stable; current origin/master@0139a346 now carries valid RscClickableText.soundPush[] = {"", 0.2, 1}; at Rsc/Ressources.hpp:556 in both maintained roots, matching the valid :92 precedent. Chernarus blame points to 1a5e0b40; maintained Vanilla propagation points to 9b49883c; current master has 14 derived RscClickableText controls per maintained root. Older docs/source b5219d47, Miksuu b8389e74, origin/perf/quick-wins 0076040f, release a96fdda2 and UI theme evidence remains branch-scoped for the former malformed value until rechecked or merged. Client UI systems atlas Do not reopen the base-class edit on current master. For older target branches that still carry {, 0.2, 1}, port the current valid value, propagate maintained Vanilla, then run Arma 2 OA dialog smoke across representative RscClickableText inheritors before release wording.
Empty supply-truck cleanup timeout Docs-ready logistics/cleanup owner decision. Current docs head 7eea6b6c is source-unchanged from 634a907b for the checked empty-vehicle collector/handler paths, and the atlas matrix owns the detailed docs/stable/release/Miksuu/perf proof for the 24-hour supply-truck timeout. Marker cleanup/restoration atlas Decide keep-and-label versus shorter/parameterized timeout, then patch source Chernarus plus maintained Vanilla if changing behavior. Smoke ordinary empty vehicles, ambulance/repair double-timeout vehicles, supply trucks used for supply/logistics and long-match object counts.
Gear template profile filter Branch-split after 2026-06-21 refresh: docs checkout 43c3ba05 is source-unchanged from 8b71e2a1 and still carries undefined _u_upgrade save filtering at Client_UI_Gear_SaveTemplateProfile.sqf:33,52,75 plus the six-field Init_ProfileGear.sqf:17,25 import guard in both maintained roots. Current stable origin/master@0139a346 fixes the save-filter comparisons in both maintained roots at :34,57,82, but keeps the import guard. Miksuu b8389e74, perf/quick-wins@0076040f, historical release a96fdda2 and historical EASA QoL a66d4691 keep the old save-filter shape. Gear template profile filter Patch docs/source or old-shape refs with the save-filter replacement; on current stable, do not reopen that edit, but add an Init_ProfileGear.sqf import guard/default before calling profile-template persistence complete.
Gear template creation/display/save gate alignment Owner-decision consistency work; 2026-06-21 branch check shows docs checkout 43c3ba05, current stable origin/master@0139a346, Miksuu b8389e74, perf/quick-wins@0076040f, historical release a96fdda2 and historical EASA QoL a66d4691 all keep the AddTemplate Barracks-or-Gear creation gate and Gear-only FillTemplates display gate. Current stable fixed only the save-filter _u_upgrade comparison; old-shape refs still need that save-filter patch too. Gear template profile filter Decide whether templates are intentionally unlocked by either Barracks/Gear lane or should be Gear-only across creation, display and profile save. Keep separate from gear authority hardening; patch source Chernarus plus maintained Vanilla only after the owner decision.
Vehicle cargo equip loop bounds Branch-split; docs checkout 8b71e2a1, Miksuu b8389e74 and EASA QoL a66d4691 still carry the five inclusive cargo loops in both maintained roots. Stable cf2a6d6a and release a96fdda2 fix all five loops in both maintained roots; perf/quick-wins 0076040f fixes Chernarus only while perf Vanilla still needs propagation. Vehicle cargo equip loop bounds Preserve/port the stable/release five-loop fix where the target branch still carries inclusive loops, then run maintained Vanilla propagation and cargo smoke.
Buy-menu price/key alignment Partially fixed on current stable / historical release after owner refresh: docs checkout 8d611092, Miksuu b8389e74 and perf/quick-wins 0076040f still carry selected-detail price drift, stale UNIT_COST_MODIFIER reset behavior and the driver-default profile key split. Current stable origin/master@0139a346 and historical release commit a96fdda2 fix selected-detail display and mirror both driver keys in both maintained roots; historical QoL commit a66d4691 fixes selected-detail display in Chernarus only. Current origin exposes no release/* or feat/buymenu-easa-qol heads on 2026-06-21. No checked ref resets UNIT_COST_MODIFIER to 1 for level 0. Factory and purchase systems atlas Needs one shared price/reset path for unit-cost level 0/1/2; then decide whether dual-key mirroring is the intended driver-default compatibility policy and smoke Buy Units UI/economy paths.
Visible parameter runtime-consumer cleanup Docs-ready parameter cleanup; current source/Vanilla, stable, Miksuu upstream and release all keep WFBE_C_AI_MAX visible/defaulted without an active maintained-root runtime reader, and keep WFBE_C_UNITS_CLEAN_TIMEOUT visible/defaulted while live cleanup uses bodies/empty timeout variables. Mission parameters Decide whether to wire, hide, rename or label each parameter historical; apply consistently to source Chernarus plus maintained Vanilla, then smoke host parameter display, player AI cap UI/RHUD, corpse cleanup and empty-vehicle cleanup.
Salvage payout casing and loop/authority cleanup Patch-ready; 2026-06-21 recheck shows docs checkout 10097961, current stable origin/master@0139a346, Miksuu upstream b8389e74, origin/perf/quick-wins 0076040f and historical release commit a96fdda2 all still carry lowercase ChangePlayerfunds, the salvage-truck updatesalvage.sqf:10 ` loop and client-local deletion/reward shape in both maintained roots. Current stable line drift isSkill_Salvage.sqf:38, updatesalvage.sqf:51, Init_Client.sqf:72,110andClient_BuildUnit.sqf:343; docs/Miksuu/perf/release keep the older checked line shape at updatesalvage.sqf:50, Init_Client.sqf:53,91andClient_BuildUnit.sqf:267where checked. Current origin exposes norelease/*heads, soa96fdda2` remains historical branch-scoped evidence.
Service menu affordability guards Patch-ready/branch-split; 2026-06-14 branch check shows docs checkout 8b71e2a1 keeps the old cached-price plus unguarded rearm/refuel action debits, stable cf2a6d6a and release a96fdda2 partially guard rearm/refuel in both maintained roots, and Miksuu b8389e74, perf 0076040f plus EASA QoL a66d4691 keep unguarded rearm/refuel action debits. All checked refs still reject exact-funds EASA and debit client-side. Service menu affordability guards Current docs/source and any old-shape target need action-time price/funds/context guards. On stable/release, repair/heal action-time affordability/context and EASA exact-funds/client-debit behavior remain open; do not call partial rearm/refuel guards full authority hardening.
RequestSpecial upgrade-sync tuple cleanup Patch-ready consistency cleanup; current-stable refresh 2026-06-21 shows docs-source base ad05401a3 is unchanged from line-anchor checkpoint ff8dd884 for checked handler/caller/process-upgrade paths, while current stable origin/master@0139a346 still keeps the mixed _args / _this parser at Server_HandleSpecial.sqf:67-73 in both maintained roots. Current stable caller line is GUI_UpgradeMenu.sqf:292; sync variable lifecycle is Server_ProcessUpgrade.sqf:32,35,41. Miksuu b8389e74 and perf/quick-wins 0076040f still call from GUI_UpgradeMenu.sqf:241; historical release a96fdda2 calls from :254; historical upgrade-queue commit b061c905 calls from :268. Current origin exposes no release/* or feat/upgrade-queue-stacking heads on 2026-06-21. Because _args = _this, current behavior is equivalent but still fragile. Support specials atlas, Upgrades and research Normalize Server_HandleSpecial.sqf:67-73 to one tuple source, keep RequestUpgrade authority migration separate, propagate maintained Vanilla and smoke upgrade completion/non-server timer sync plus malformed payload rejection.
Vote/help/main-menu UI cleanup Patch-ready; current source/Vanilla, stable, Miksuu upstream, perf/quick-wins and release all keep inclusive vote refresh loops, vote row-color offset, mismatched help load/unload namespace state and GPS zoom router cases without audited button emitters. Client UI systems atlas Fix vote loops and row coloring, clean the help onLoad/onUnload namespace contract, decide remove-vs-revive for GPS 17/18, propagate maintained Vanilla and smoke vote refresh, help open/close and main-menu HUD/GPS behavior.
Fast travel fee UX Docs-ready owner-decision cleanup; branch check 2026-06-14 shows docs checkout d2a3f995, stable cf2a6d6a, release a96fdda2, Miksuu b8389e74 and perf 0076040f all keep the same maintained-root Tactical fee-mode TODO, unaffordable-destination hiding, marker-only price text and local travel debit (GUI_Menu_Tactical.sqf:146-147,185-217,403-406). Constants line-drift only: docs/Miksuu/perf Init_CommonConstants.sqf:218,227-230, stable :235,244-247, release :231,240-243. Client UI systems atlas Decide hide-vs-disabled/prompt policy, add a final local funds/context recheck if paid mode stays, propagate maintained Vanilla and smoke modes 0/1/2, insufficient/exact/sufficient funds, HQ/town/command-center starts and group/vehicle travel.
Camp flag texture drift Branch-split. Docs head 5243f91d is source-unchanged from 3eefcb00 for checked camp paths and still uses the old owner; Miksuu b8389e74 also uses the old owner, perf/quick-wins 0076040f fixes Chernarus only, and stable origin/master cf2a6d6a plus release a96fdda2 already fix independent camp-capture flags in both maintained roots. Repair-side flag refresh remains open in every checked ref. Towns, camps and capture atlas Preserve stable/release server_town_camp.sqf:83-86; patch old-owner lines where still targeted; add setFlagTexture to repair-camp where it changes sideID and broadcasts CampCaptured. Branch-line drift is documented on the owner page; smoke independent capture and camp repair.
Camp count helper fallback semantics Patch-ready caller-semantics cleanup. Docs head 5243f91d is source-unchanged from 3eefcb00 for checked helper/consumer paths, and docs, stable origin/master cf2a6d6a, Miksuu b8389e74, perf/quick-wins 0076040f and release a96fdda2 all keep zero-camp helpers returning 1 at Common_GetTotalCamps.sqf:10 and Common_GetTotalCampsOnSide.sqf:16, feeding capture mode 2, threeway respawn and depot-buy gates. Towns, camps and capture atlas Decide real-count versus safe-denominator semantics, then split helpers or add caller-specific zero-camp guards. Branch-line drift is documented on the owner page; smoke capture mode 2, threeway defender respawn and depot infantry buys on zero, partial and all-camp towns.
WASP marker wait cleanup Opportunity/source implementation still needed. Current-head refresh 2026-06-21: stable origin/master@0139a346 Chernarus and maintained Vanilla both load WASP\global_marking_monitor.sqf at Client/Init/Init_Client.sqf:309 and keep the display-54 input-lock busy wait at global_marking_monitor.sqf:57,62,65,69-70, while the display-12 sibling is already throttled at :81. Miksuu b8389e74 and origin/perf/quick-wins@0076040f keep the same unrescued shape with older line drift; current origin exposes no release/* heads as of 2026-06-21, so older release evidence is historical until restored. WASP marker wait cleanup Replace the display-54 wait with a throttled waitUntil/sleep shape, preserve key handler wiring and final input unlock, propagate maintained Vanilla, then smoke map-marker double-click naming, Enter prefixing, Escape cleanup and timeout/no-dialog input re-enable.

Propagation Procedure

  1. Start from a clean or intentionally understood worktree.
  2. For propagation-only runs, set A2WASP_SKIP_ZIP=1.
  3. Run dotnet run --project Tools\LoadoutManager\LoadoutManager.csproj from the repo root, or dotnet run from Tools/LoadoutManager.
  4. Inspect Missions_Vanilla/[61-2hc]warfarev2_073v48co.takistan diffs for the intended source fixes.
  5. Treat The specified content was not found in the file. from ReplaceGUIMenuHelp as a non-fatal warning unless a future diff shows help-menu title replacement was expected for that terrain.
  6. Verify generated version.sqf exists and matches the intended target root before pack/test/release claims; use agent-release-readiness.json versionSqfGeneratedInput as the machine checklist.
  7. Do not claim Modded_Missions/* propagation; current tooling does not actively maintain those folders. A 2026-06-03 scout confirmed all tracked modded folders lack generated version.sqf, several lack core bootstrap files, and 18 Napf/Eden/Lingor files contain unresolved conflict markers.
  8. Run or record the relevant smoke from Testing workflow, especially the propagated fix smoke pack.
  9. Update this page, Progress dashboard, agent-release-readiness.json, agent-feature-status.jsonl, agent-hardening-backlog.jsonl and agent-knowledge.jsonl.

Validation Matrix

Fix Minimum smoke
Paratrooper marker revival Trigger paratrooper support; marker is created on the requesting client and no unregistered-client-PVF error appears. See the dedicated smoke row in Testing workflow.
Client skill init idempotency Soldier class receives one AI-cap boost, non-Soldier keeps configured cap, and respawn still reapplies skill effects. See the hosted/respawn row in Testing workflow.
Hosted server FPS loop sleep Dedicated server still publishes SERVER_FPS_GUI / WFBE_VAR_SERVER_FPS; hosted/listen run does not spin the FPS publisher loops. See the dedicated/hosted row in Testing workflow.
Supply mission scan narrowing Supply truck/heli completes at a real command center; unrelated nearby objects do not complete the mission; JIP cooldown behavior remains unchanged. See the supply scan row in Testing workflow.
Supply player-object list indexing A reconnecting/JIP player with an existing UID updates the matching WFBE_SE_PLAYERLIST row, not row 0, and supply completion still finds the correct nearby player object. See the reconnect row in Testing workflow.
Commander-built artillery ownership Commander-built manned artillery inside the HQ/base circle appears in the commander's Tactical fire-mission path, ammo loading still targets the gun, direct fire still works, non-artillery statics remain on the base-area DefenseTeam, and HC static-defense delegation does not break commander-team discoverability. On current stable origin/master@0139a346 and historical release a96fdda2, the expected source shape is marker-based discovery through WFBE_CommanderArtillery* rather than the docs-checkout gunner handoff, so smoke the marker path and repair-truck exclusion explicitly. See the commander artillery row in Testing workflow.

Agent Index Facts

[
  {"fact":"loadoutmanager_root_discovery","source":"Tools/LoadoutManager/FileManagement/FileManager.cs","summary":"Branch-sensitive: docs checkout 4bd37b98 / checked docs base d30d23466, current stable origin/master@0139a346 and historical release a96fdda2 accept either an ancestor named a2waspwarfare or a repo-shaped root containing Missions/[55-2hc]warfarev2_073v48co.chernarus, Tools/LoadoutManager and AGENTS.md; Miksuu b8389e74 and perf/quick-wins 0076040f still require an ancestor named a2waspwarfare."},
  {"fact":"loadoutmanager_skip_zip","source":"Tools/LoadoutManager/ZipManager.cs","summary":"Set A2WASP_SKIP_ZIP to 1, true or yes to run generation/copy without packaging _MISSIONS.7z."},
  {"fact":"version_sqf_generated_input_gate","source":"agent-release-readiness.json#versionSqfGeneratedInput","summary":"version.sqf is ignored/generated but required by description.ext, initJIPCompatible.sqf and Rsc/Header.hpp; verify per-target generated files before pack, smoke or release claims."},
  {"fact":"docs_source_propagated_fixes","source":"Current Branch Scope (2026-06-21)","summary":"Checked docs branch base d30d23466 is source-unchanged from 4bd37b98 for the queue's checked propagation paths. Docs checkout 4bd37b98 remains the line-anchor proof for paratrooper marker registration, duplicate Skill_Init removal, two hosted-FPS loop exits, typed supply command-center scan, supply player-object indexing and commander-team ARTY gunner handoff in Chernarus source and maintained Vanilla Takistan. Current stable origin/master@0139a346 carries queue PVFs, paratrooper registration, Skill_Init/apply, one guarded FPS publisher, heli-aware typed supply scan and marker-based commander ARTY, but does not carry the supply player-list index fix. Historical release a96fdda2 remains old checked release evidence until a release head is restored or rechecked. Arma smoke remains pending."},
  {"fact":"latest_propagation_run","source":"Source-Fix-Propagation-Queue.md#latest-propagation-run","summary":"2026-06-02 LoadoutManager run completed generation/copy for Chernarus and Takistan with A2WASP_SKIP_ZIP=1; all five tracked fixes propagated, Arma smoke remains pending."}
]

Continue Reading

Previous: Testing workflow | Next: Tools/build workflow

Main map: Home | Progress: Progress dashboard | Machine release ledger: agent-release-readiness.json | Machine backlog: agent-hardening-backlog.jsonl

Sidebar

Clone this wiki locally