Skip to content

Pending Owner Decisions

rayswaynl edited this page Jun 3, 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 the Owner Decision Queue 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.
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 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, 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 4dba060e Source-Chernarus-only diff from origin/master 2cdf5fb8: 9 files, +366/-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). 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 Source-Chernarus-only support branch. 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". 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:104 tints unaffordable prices red, GUI_Menu_BuyUnits.sqf:201-206 appends live queue counts to factory tabs and GUI_Menu_EASA.sqf:29-37 marks the current aircraft loadout green and preselects it. Diff is 3 files, +42/-6; git diff --check is clean. 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, crew/full-price expectations, queue count refresh without UI churn and EASA current-loadout selection.
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: side-supply clamp shape (Common_ChangeSideSupply.sqf:20-26), crewless-buy queue decrement (Client_BuildUnit.sqf:365-368), paratrooper marker PV registration (Init_PublicVariables.sqf:40) and several server-loop / handler corrections across 18 files. git diff --check is clean. 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, and smoke economy debit/no-credit inversion, factory queue counters, paratrooper markers, cleaner/camp nil-code behavior and special-handler 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 1fdcb37a Terrain branch: 832 files, +77702/-95. Adds Missions_Vanilla/[31-2hc]warfarev2_073v48co.zargabad, terrain integration (ZARGABAD.cs:1-5), source hooks (initJIPCompatible.sqf:121-123, Server/Init/Init_Zargabad.sqf) and Zargabad completion/runtime evidence guides. git diff --check reports generated mission trailing whitespace. Decide whether Zargabad is a maintained Vanilla target, a separate low-pop experiment or a branch-only playtest. Before promotion: clean generated whitespace, validate LoadoutManager terrain generation, run hosted/dedicated/JIP/HC smoke, review screenshots/RPT packet, verify class loads and tune town/base/camp/economy balance.
origin/feat/supply-helicopter head 262dc431 Current local supply-heli branch head has moved beyond the older PR #1 evidence head ffeea4c2. New current evidence includes Air-factory upgrade 3 load gate (supplyMissionStart.sqf:21-29), Air upgrade 4 cash-run branch (supplyMissionCompleted.sqf:24-35), load/unload timer constants (Init_CommonConstants.sqf:172-173) and lobby toggle (Rsc/Parameters.hpp:4-7). No maintained Vanilla SupplyByHeli/heli constant hits found. Refresh PR #1 docs before merge review. Decide Air-upgrade level semantics, cash-run economy, pilot/commander payout behavior, 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
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-assign call-shape bug DR-15 Medium _side = _this_this select 0
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

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
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 dead both ends; revive needs server-held list + JIP re-send
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 + 3 commented remnants DR-43b Live duplicates are LogGameEnd (Init_Server.sqf:64,89), PlayerObjectsList (:69,91) and AwardScorePlayer (:83,93); commented remnants are AFK kick, server FPS and MASH marker. De-duplicate live binds; coordinate LogGameEnd with DR-13/DR-36.
version.sqf referenced by description.ext:39 and initJIPCompatible.sqf:4 but absent from tracked source DR-43a git ls-files has no version.sqf; commit a safe source placeholder or keep generated-only with explicit pre-pack/pre-test checks.

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/source Chernarus + Vanilla now early-exit on !isDedicated (serverFpsGUI.sqf:1, monitorServerFPS.sqf:1); stable origin/master still has the old inner-isDedicated sleep, release a9219d88 is Chernarus-only, and 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