Skip to content

Pending Owner Decisions

rayswaynl edited this page Jun 14, 2026 · 47 revisions

Pending Owner Decisions

Claude-owned (2026-06-02). The single place a code owner can see every open decision the deep-review campaign surfaced, each with its finding(s) and the affected subsystem. The Codebase coverage ledger is "green except Auth/PV cells"; those residual cells are exactly the decisions below — review work is complete, what remains is choosing and applying fixes. Severity uses the Deep-review findings tiers.

How To Use This Page

Read this as a decision register, not a bug list. A row belongs here when source evidence is already strong enough and the next step is choosing a policy: server authority, filter posture, revive/remove, smoke gate or branch ownership.

Quick path:

  1. Start with Feature status if you need the human-readable triage view.
  2. Pick one decision class below and open its canonical page before editing code.
  3. If you patch gameplay, update the Chernarus source mission first, run LoadoutManager propagation when needed, and record smoke status in Source fix queue / agent-release-readiness.json.

Fast Decision Queue

Queue Decision type Canonical implementation route
P0 public-server safety Choose server-side authority and dispatcher/direct-channel hardening before public hosting, or document a real BattlEye/filter deployment as defense in depth only. PVF dispatch implementation, Public variable channel index, ICBM authority, Economy authority first cut, External integrations.
P1 economy and direct-PV migration Treat spend/effect/direct-PV payloads as requests and re-derive side/funds/supply/effects server-side. Server authority migration map, Public variable channel index, Attack-wave authority, Support specials.
P1/P2 match correctness Patch default victory winner/double-fire behavior and choose whether threeway victory is real or unsupported. Victory/endgame atlas, Hardening roadmap.
P1 logistics baseline Decide PR #1 supply heli merge requirements separately from dormant autonomous AI logistics. Supply mission authority cleanup, Supply mission architecture, Current supply heli PR.
P2 commander correctness Decide commander vote AI/no-commander semantics before patching the vote worker; keep this separate from manual reassignment and broader requester-authority hardening. Commander vote/reassignment playbook, Commander/HQ lifecycle atlas, Hardening roadmap, Server authority migration map.
P2 revive/remove backlog Decide whether to revive, hide or delete dormant UI/support/marker/mission paths. Abandoned feature revival, AI commander autonomy audit, Client UI systems atlas.
P2/P3 scoped hardening Patch ready local defects once a maintainer schedules smoke. Factory queue cleanup, Town AI vehicle safety, Service guards, salvage payout/loop notes in Feature status, Marker cleanup/restoration.

Branch-Only Feature Promotion Decisions

These rows are merge/release gates for useful branch work. They are not stable-master findings until the target branch is named, Chernarus and maintained Vanilla scope is explicit, and smoke is recorded.

Branch / feature Confirmed branch evidence Owner decision before promotion
origin/feat/ai-commander head c20ce153 Source-Chernarus-only diff from origin/master 2cdf5fb8: 9 files, +416/-5. The branch changes WFBE_C_AI_COMMANDER_ENABLED default to enabled (Rsc/Parameters.hpp:96), compiles commander workers (Server/Init/Init_Server.sqf:49-54), starts one supervisor per side (:630-631), runs full/assist loops (Server/AI/Commander/AI_Commander.sqf:29-81) and only guards the old UpdateSupplyTruck nil path (Init_Server.sqf:387-389). Follow-up commits b4b0333f through c20ce153 rewrite lazy condition blocks in the five AI commander scripts, improving static readiness without changing propagation/smoke gates. Decide whether default-on AI commander is desired, whether human-commander assist mode may run by default, and whether autonomous logistics stays deferred. Before calling it revived: propagate/review maintained Vanilla, then smoke no-human full command, human assist/no-spend, order execution, town assignment, AI production cap, upgrade debit/costs, commander handoff, HQ death and JIP.
origin/feat/drone-saturation-strike head 8ca4be90 Mission runtime changes are source-Chernarus-only: 15 mission files, +379/-4, with 0 maintained Vanilla mission files changed. The total branch diff is 17 files, +1133/-4 because it also ships docs/superpowers plan/spec files. Drone constants are latest branch tuning: enabled/enhanced defaults, 2 flare + 2 munition drones, 300m cruise altitude, 6m scatter, HP 20, cost 22000 and cooldown 300 (Common/Init/Init_CommonConstants.sqf:243-263). Server support trusts the request payload for side/destination/team (Server/Support/Support_DroneStrike.sqf:1-14) and only checks toggle/cap locally (:16-18, :46-52); the Tactical menu still debits client funds and sends RequestSpecial before server acceptance (Client/GUI/GUI_Menu_Tactical.sqf, DroneStrike / ChangePlayerFunds / RequestSpecial). Decide whether this is an economy-affecting paid support or an admin/test feature. If paid, move acceptance, cost, cooldown, upgrade, caller/team/side and map validation server-side before merge; debit only after server accept. Also decide generated Vanilla propagation vs explicit Chernarus-only scope and smoke active-cap cleanup, JIP cooldown, marker/audience behavior, resistance targeting, score effects and performance.
origin/feat/recon-uav head 563418ea Separate support replacement branch, not just "drone strike plus recon". Mission runtime changes are source-Chernarus-only: 22 mission files, +593/-657, with 0 maintained Vanilla mission files changed. The total branch diff is 25 files, +1461/-657 because it also carries drone/recon docs/superpowers files. It adds ReconUAV/ReconUAVRecall cases (Server/Functions/Server_HandleSpecial.sqf:63-82), deletes the old client UAV module scripts and old Server/Support/Support_UAV.sqf, and adds server AI-flown recon with side-scoped reveal and cleanup (Server/Support/Support_ReconUAV.sqf:1-22, :83-102, :119-132, :140-151). It includes drone history only through 93b47594, not latest 8ca4be90. Decide whether ReconUAV replaces the old UAV feature or remains experimental. Rebase/merge consciously against latest drone tuning, then smoke old-UAV removal, deploy/recall, cap decrement, destroyed-UAV cleanup, side-only reveal audience, JIP during active orbit, HQ-loss cleanup and generated Vanilla propagation.
origin/feat/wf-menu-ops-console head 0767c0b5 UI/theme branch from stable origin/master 2cdf5fb8: 23 files, +1033/-154. It rewrites the Chernarus and Vanilla palette macros (Rsc/Styles.hpp:10-40), retints base controls (Rsc/Ressources.hpp:117-131, :274-277), adds a main-menu chevron/footer (Rsc/Dialogs.hpp:1057-1064, :1240-1249), uses bundled-font candidates (Dialogs.hpp:1179, Rsc/Titles.hpp:178-179), mirrors the same shape to Vanilla, and ships docs/superpowers/* plan/spec/mockup files. Static check caveat: branch git diff --check origin/master..origin/feat/wf-menu-ops-console reports trailing whitespace in docs/superpowers/plans/2026-06-03-wf-menu-ops-console.md:78,179. Decide whether the ops-console reskin is acceptable as a full UI theme. Before merge: clean branch whitespace, confirm PuristaBold and EtelkaMonospacePro load in Arma 2 OA or choose stock fallbacks, verify Client\images\brand_chevron.jpg loads from the shipped Client/Images/brand_chevron.jpg asset on a packed mission, smoke main menu, buy units, buy gear, upgrades, tactical/help, RHUD/FPS HUD and both Chernarus + Vanilla.
origin/feat/buymenu-easa-qol head a66d4691 Narrow Chernarus UI branch: Client_UIFillListBuyUnits.sqf:1,61-62,104 tints unaffordable displayed base prices red, GUI_Menu_BuyUnits.sqf:201-210 appends live queue counts to factory tabs, GUI_Menu_BuyUnits.sqf:280,335,388,444,487 updates selected-unit cost display and GUI_Menu_EASA.sqf:29-40 marks the current aircraft loadout green and preselects it. Diff is 3 files, +42/-6; git diff --check is clean; no maintained Vanilla files are touched. See BuyMenu EASA QoL branch audit. Decide whether to accept these as UI-only QoL changes and whether they need maintained Vanilla propagation. Before merge, smoke Buy Units with affordable/unaffordable units, exact-funds/full-crew cases, queue count refresh without UI churn, final idc 12034 price after the later write, and EASA current-loadout selection with visible, filtered and unset current loadouts.
origin/feat/player-stats head e01e47e1 Adds an off-by-default stats pipeline: WFBE_C_STATS_ENABLED = false (Init_CommonConstants.sqf:443), kill stat hooks (RequestOnUnitKilled.sqf:51-65), Server/Stats/RecordStat.sqf/StatsFlush.sqf, DiscordBot StatsService RPT tailing/accumulation and DiscordBot.Tests/* coverage. Diff is 23 files, +1919/-1; git diff --check is clean; local dotnet test passed 13/13. See Player stats branch audit. Decide the deployment model before enabling: RPT path/state files, stats JSON location, UID/privacy policy, log volume, corrupt-JSON recovery policy, Chernarus-only vs Vanilla propagation, DiscordBot test/build gate and whether this should remain in DiscordBot or move toward the mission extension. Runtime smoke should include disabled-by-default proof, enabled stats flush from real RPT lines, bot restart/tail-state behavior and RPT rotation behavior.
origin/perf/quick-wins head 0076040f Chernarus-only fix branch: 18 files, +27/-27, clean git diff --check, merge base 2cdf5fb8. Fix families include side-supply clamp (Common_ChangeSideSupply.sqf:25, Server_ChangeSideSupply.sqf:12,36), crewless-buy queue decrement (Client_BuildUnit.sqf:366-368), paratrooper marker PV registration (Init_PublicVariables.sqf:40), mine cleaner pair removal (mines_cleaner.sqf:17), garbage collector wfbe_trashed guard (server_collector_garbage.sqf:17), patrol && exits (server_patrols.sqf:26, server_town_patrol.sqf:18), fixed income interval (updateresources.sqf:74), camp-bunker nil-code EH removal (Server_HandleSpecial.sqf:235-236), kill-assist bounty type (RequestOnUnitKilled.sqf:92) and WASP off-by-one/nil defaults. See Perf quick wins branch audit. Decide whether to cherry-pick, merge whole, or split into per-fix branches. Before release wording, reconcile with existing docs/source fixes, propagate maintained Vanilla, keep DR-44 side-supply authority separate from the clamp, and smoke economy debit/no-credit inversion, factory queue counters, paratrooper markers, cleaner/camp nil-code behavior, resource-loop cadence and WASP action regressions.
origin/feat/commander-positions head 560db61c Broad branch with merge base f5985b77, not current stable 2cdf5fb8: 83 files, +524/-2025. It adds source-Chernarus WDDM commander-position anchors/compositions through Structures_CO_US.sqf:168-174, Structures_CO_RU.sqf:166-172, Init_Defenses.sqf:93-183, RequestDefense.sqf:11-14 and Server_ConstructPosition.sqf:1-66. It also carries Valhalla, UI, AFK/profile, HC/static-defense, performance-audit and Vanilla deltas. Branch grep found no maintained Vanilla Server_ConstructPosition or WFBE_POSITION_TEMPLATE_MAP. See Commander positions branch audit. Decide whether to split the construction-position feature from unrelated branch baggage and whether to propagate the actual feature to maintained Vanilla. Promotion gates: clean whitespace, recheck DR-6 construction authority, smoke placement-at-clicked-position rather than map corner, CoIn/HQ undeploy cleanup, modular wall usability/pathing and Chernarus/Vanilla scope.
origin/feature/zargabad-map head e9294ede Terrain branch: 832 files, +77733/-95. Adds Missions_Vanilla/[31-2hc]warfarev2_073v48co.zargabad, terrain integration (ZARGABAD.cs:1-13, SqfFileGenerator.cs:127-130), source hooks (initJIPCompatible.sqf:121-124, Init_Boundaries.sqf:4-10, Init_Zargabad.sqf:1-125) and Zargabad completion/runtime evidence guides. The refreshed head adds/tunes low-pop defaults: AI max 6, player AI max 8, Soldier skill cap 3, team supply cap 30000, UAV 650, town mortar/patrol 420/300, countermeasures 12/18, starting funds 8000, starting supply 3600, ordnance ranges 1500, Air AA/flares/thermal on, ICBM off and price multipliers 0.95/1.15/1.4/1.75/2.0/1.0. Local static validation with Tools\Validate-ZargabadMission.ps1 passed in a detached worktree at e9294ede: 13 towns, 19 camps, 1 airport, 9 starts, 33 town-defense logics, no duplicate ids/missing syncs and no Takistan Zargabad-module spillover. See Zargabad branch audit. Decide whether Zargabad is a maintained Vanilla target, a separate low-pop experiment or a branch-only playtest, and whether the tightened low-pop balance defaults are public-server defaults or test-profile defaults. Before promotion: clean or accept 3542 generated whitespace findings, rerun static validation on the candidate head, run hosted/dedicated/JIP/HC smoke, review screenshots/RPT packet, verify class loads, smoke edge guard and black market, and tune town/base/camp/economy/air-price balance.
origin/feat/supply-helicopter head 262dc431 Current PR #1 docs are refreshed against this head. Evidence includes Air-factory upgrade 3 load/action gates (Skill_Apply.sqf:62-72, supplyMissionStart.sqf:21-29), Air upgrade 4 cash-run branch (supplyMissionCompleted.sqf:24-35), load/unload timer constants (Init_CommonConstants.sqf:172-173), lobby toggle (Rsc/Parameters.hpp:4-10) and retained SupplyByHeli state after completion (supplyMissionCompleted.sqf:40-41 clears amount/source only). No maintained Vanilla SupplyByHeli/heli constant hits found. Decide Air-upgrade level semantics, cash-run economy, pilot/commander payout behavior, whether to clear SupplyByHeli, load/unload timer UX and Vanilla propagation. Also review non-supply baggage and branch whitespace because the diff is not supply-only.

1. The big one — economy/forgery authority (one decision, whole class)

Decision: add server-side authority to spend/effect paths, or accept client-authoritative economy and ship a real BattlEye filter set. The forgery class has two surfaces and the decision must cover both:

  • PVF dispatcherServer/Functions/Server_HandlePVF.sqf / Client/Functions/Client_HandlePVF.sqf Call Compile the sender's command string (DR-1). Fix: validate against the known SRVFNC*/CLTFNC* set + re-derive authority in each handler. (Same change removes a per-message recompile, DR-38.)
  • Direct publicVariableServer channels — e.g. ATTACK_WAVE_INIT (DR-41); each needs its own server re-derivation. See Public variable channel index.
Path Finding Severity
PVF dispatch RCE/forgery DR-1 High
SEND_MESSAGE direct-PV message-text RCE DR-46 High
Construction (RequestStructure/RequestDefense/MHQ) DR-6 High
Unit purchase DR-14 High (architectural)
Structure sale DR-16 High
Side-supply transfer (overspend floor) DR-22 High
Side-supply ledger directly client-writable (forged wfbe_supply_temp_<side>) DR-44 High
Upgrades DR-23 High
ICBM superweapon (forged RequestSpecial) DR-27 Critical
Non-ICBM RequestSpecial support effects Current source has client-local fee/upgrade/cooldown gates for paratroops, para-ammo, para-vehicle and UAV (Client/GUI/GUI_Menu_Tactical.sqf:262-276,371-373,513-527; Client/Module/UAV/uav.sqf:27-52), then server HandleSpecial accepts payload side/destination/team/object state for support spawns, supply-truck forced respawn, UAV cleanup and camp repair (Server_HandleSpecial.sqf:43-64,147-170). Keep this lane separate from the P0 ICBM patch. High
Gear/EASA + vehicle rearm/repair/refuel/heal DR-28 High
Attack-wave price modifier (direct PV) DR-41 High
BattlEye option is not shipped (22-byte kickAFK stub only, no scripts.txt) DR-30 informs the choice

Caveat (DR-30): BattlEye filter files normally live in the server's BEpath outside the mission PBO, so confirm the production posture with the server owner before assuming it is unprotected.

2. Other correctness fixes (owner-scoped, source-cited)

Decision Finding Severity Note
Victory winner-inversion + duplicate game-end DR-11, DR-13 (mechanism DR-36) High one-line: parenthesize/guard both win clauses with !WFBE_GameOver + exitWith the side forEach on win
Threeway mode has no victory detection DR-12 Medium enable detection when WFBE_C_VICTORY_THREEWAY != 0
Commander vote AI/no-commander semantics DR-47 Medium Server_VoteForCommander.sqf:24-29,43 counts AI/no-commander votes but selects any non-tied player candidate; GUI_VoteMenu.sqf:87-89 previews stricter AI/no-commander behavior. Decide plurality/majority/tie/no-commander rules before patching.
Commander-assign call-shape bug DR-15 Medium _side = _this -> _this select 0; use Commander vote/reassignment for adjacent vote/UI/notification smoke.
Supply-mission cooldown key casing DR-18 Medium align lastSupplyMissionRun vs LastSupplyMissionRun (case-sensitive getVariable)
HQ-killed non-idempotent score exploit DR-20 Medium idempotency guard on the killed-EH
Factory queue soft-lock + broadcast churn DR-33 Medium decrement WFBE_C_QUEUE on all exit paths; unique token
HC static-defence update-back commented out DR-42 Low/Med restore the update-back or document as fire-and-forget
DiscordBot TypeNameHandling.All insecure deser DR-31 High (latent) .All.None (data is a flat DTO)
GLOBALGAMESTATS extension dormant deser + async-void race DR-29 Med delete dead .Auto load; fix File.Replace race
AntiStack external DB deployment mode DR-7, DR-8, DR-9, DR-10 High/ops choose one: keep AntiStack enabled only with the separate A2WaspDatabase DLL installed plus return-shape/circuit-breaker hardening, or default/operate AntiStack disabled until that dependency is confirmed; building the in-repo Extension project does not satisfy this dependency

3. Keep-or-remove / maintenance-model decisions

Use Abandoned feature revival for the source-backed revive/remove matrix behind the MASH, WASP, AI supply truck, stale UI and modded-mission rows. Paratrooper markers have moved out of the revive/remove bucket for maintained source/Vanilla: see Paratrooper marker revival and the smoke-pending row below.

Decision Finding Note
Client-visible indicator audit scope HUD/title resources, map markers, menu/list icons, support markers, server-FPS/status channels and local image references are spread across UI, marker, support and performance code. Explore before redesigning or pruning. Start with Client UI systems atlas, then decide which indicators are public player UX, commander-only, admin/debug, stale/dead or branch-only.
Modded missions: regenerate from source vs maintain as forks DR-32 Napf/eden/lingor are divergent hand-edited forks; source fixes don't reach them
4 abandoned stub missions: complete or delete DR-32 sahrani/dingor/tavi/isladuala are non-runnable (1–20 files)
MASH map-marker feature: revive or remove DR-34 / DR-3 recheck Source/Vanilla local MASH respawn is separate; shared markers are orphaned: active server relay has no maintained-mission sender, receiver compile is commented, and eden/lingor show sender-only modded drift. Revival needs a server-held list, JIP re-send and unique marker names; otherwise archive or remove the relay.
Paratrooper drop markers: smoke propagated fix / decide modded drift DR-2 source Chernarus + maintained Vanilla now register the callback and ship the handler; Arma smoke and divergent modded folders remain
Dead WASP actions (OnArmor, GearYouUnit) DR-35 commented in WASP/actions/AddActions.sqf:4
supplyMissionActive.sqf dead twin DR-39 compiled but never called
Init_Server.sqf duplicate binds: 3 live + commented remnants DR-43b Canonical matrix: Server init bind cleanup. Docs checkout 2f2132f8 and Miksuu b8389e74 keep live duplicates for LogGameEnd, PlayerObjectsList and AwardScorePlayer in both maintained roots; stable origin/master cf2a6d6a and release a96fdda2 are de-duplicated in both maintained roots; perf 0076040f is Chernarus-only for this cleanup. De-duplicate where still present, coordinate LogGameEnd with DR-13/DR-36 and do not re-enable commented AFK/FPS/MASH remnants.
version.sqf referenced by description.ext:39 and initJIPCompatible.sqf:4; generated target roots need verification DR-43a Rechecked 2026-06-14: current docs checkout has no present or tracked Chernarus/Vanilla generated version.sqf; LoadoutManager still owns generated terrain metadata and modded/stub roots remain incomplete. Keep pre-pack/pre-test checks for every supported target mission root and clean checkout.

4. Robustness / defense-in-depth (optional)

Decision Finding Note
Post-join wfbe_* waitUntil chain has no timeouts DR-37 a never-set synced var hangs the JIP client; add defensive timeouts
Server-FPS hosted/listen busy-loop DR-19 Docs checkout db7667c9 Chernarus + Vanilla early-exit on !isDedicated in both FPS publishers (serverFpsGUI.sqf:1, monitorServerFPS.sqf:1). Stable origin/master cf2a6d6a and release a96fdda2 instead use one guarded serverFpsGUI.sqf:4 publisher and have no maintained-root monitorServerFPS.sqf; Miksuu b8389e74 and perf 0076040f still keep the old two-loop shape. Arma smoke remains.
WASP global_marking_monitor.sqf:62 sleepless display-wait DR-40 use the throttled waitUntil {sleep …; cond} idiom

Agent Handoff Contract

  • Do not open a gameplay branch from this page alone; follow the canonical implementation page for source paths, exact evidence and smoke gates.
  • Treat "owner decision" as not a remaining research gap unless a page explicitly says "research-needed".
  • If a decision is made, update this page, Feature status, Hardening roadmap, agent-hardening-backlog.jsonl and agent-feature-status.jsonl.
  • If a feature is removed instead of revived, preserve a short source-backed note explaining why so future agents do not rediscover it as "missing".

Continue Reading

Scoreboard: Codebase coverage ledger | Evidence: Deep-review findings | Channels: Public variable channel index

Sidebar

Clone this wiki locally