Fix faction ammunition resupply and settings recovery

Wait for both convoy cargo phases and use actual magazine stock. Resolve empty primary weapon ammunition from muzzle metadata and recover cleanly from failed initial settings saves.

Update native fixtures, scoped cleanup guards, packaging evidence and validation documentation. Make reviewed fixture tests checkout-relative. All repository checks pass against the isolated staged tree; native resupply completion and multiplayer qualification remain outstanding.
This commit is contained in:
2026-09-30 14:34:46 +02:00
parent c5629f7f4f
commit a951a96edc
158 changed files with 39131 additions and 69 deletions
+25
View File
@@ -0,0 +1,25 @@
# Faction cargo resupply correction — 30 September 2026
The combined successor already declares RHS Status Quo, WCS Armaments and WCS BMP-1. Their reviewed closure plus the separately authorized Parachute Framework comprises seven external addons. Installed project hashes match the current policy. The dependency documentation now describes the single combined addon and the current packaging command; no installed third-party asset or original mission was edited.
Infantry resupply previously captured only the old fixed AK74 cargo, could snapshot stock before the faction magazine phase, and could stop at the earlier crew-admission deadline. It now waits for both issue phases and completed callbacks under one immutable 90-second stock-startup deadline. It captures up to 96 actual magazine identities, preserving the 128-item inventory limit, exact original truck/crew/recipient ownership, compatible physical transfers, finite quantities and accepted-operation quarantine. Later items are never adopted as replacement stock.
The existing controlled native transfer fixture now selects compatible captured stock across faction calibers and waits for both cargo phases. Its setup uses the ordinary checked prison-release method before waiting for HQ convoy startup. This is scripted setup, not prison input automation. The unrelated nondumpable `scdaemon --multi-server` is recognized during private test cleanup with the same narrow signature already used by the runner preflight. Unknown unreadable Wine/runtime processes still refuse cleanup; no unrelated process was signalled.
## Verification
The complete repository check passed all 231 registered programs after the stock/selection changes. The subsequent prison-setup regression and all affected fixture lifecycle/placement and private-cleanup checks pass separately. Stock tests execute the actual coordinator method against controlled inventory/callback boundaries, including delayed second phase, fixed expiry, NATO magazines, 96/97 bounds and exclusion of later replacement identities. They do not execute the native cargo producer.
The first hidden, muted native attempt compiled but stopped at the fixture deadline because its old setup left HQ paused in PRISON. Its runner also refused cleanup classification of the unrelated smart-card helper and omitted the stopped-run seal. [Raw failed evidence](evidence/native-2026-09-30-infantry-stock-setup/failure-preservation.json) retains the unchanged failure record and launch manifest. A subsequent host-side read-only check confirmed the private prefix idle and no game process; the helper was left untouched. This unsealed run cannot qualify source or gameplay.
The [second native run](evidence/native-2026-09-30-infantry-stock-selection/report.json) compiled and reached the normal convoy. Both faction-cargo phases completed, and the production resupply coordinator captured **56 original magazine identities**. The fixture then failed to find a compatible, available original patrol recipient. Its journal shows the early formations in home-guard or dedicated support roles; the exact selection refusal is not instrumented further. No transfer or autonomous rendezvous is claimed. The run retained 13 existing asset/property/localization errors plus two fixture-failure lines. Its [runner record](evidence/native-2026-09-30-infantry-stock-selection/runner.json.txt) confirms unchanged source/external inputs and successful private cleanup, with no helper signals sent. This remains a failed native qualification and an explicit follow-up item.
## Empty-weapon cargo follow-up
The existing air-supply cargo selector could identify a magazine only while one was inserted in a carried weapon. A soldier who had removed the last empty magazine therefore received no requested cargo. The selector now retains a loaded magazine variant when available and otherwise uses the rifle, machine-gun or sniper muzzle's native default magazine. It ignores auxiliary launchers and muzzles without a magazine well, and handles missing magazine-owner metadata. The existing twelve-item loading budget, physical transfers, reservations and flight behavior are unchanged. An executable regression of the actual selector fails on the prior empty-rifle case and passes on the fix; adjacent support/reservation/ammunition-sampling suites also pass. The later [radio fixture](evidence/native-2026-09-30-radio-current/report.json) compiled this change with the combined source and completed seven scripted radio-interaction assertions without script/runtime failures. It retains thirteen installed-resource errors. Native ammunition delivery remains unverified; no flight experiment was resumed.
A bounded review of the earlier recipient-selection failure found no production reservation leak. `formation-1` is the legacy fixture's successfully prepared mortar crew and must stay reserved. Ordinary site responders and town garrisons remain eligible, but neither had populated that early fixture. Their existing regression suites pass. The native fixture still needs an appropriate ordinary recipient; protected roles were not weakened to make it pass.
## Remaining scope
This correction is not full logistics parity. Resupply still binds the canonical first convoy, requires delivered shortage/status reports, and can waste a bounded trip on incompatible remaining cargo. The stock and inventory ceilings remain conservative. Autonomous walking rendezvous, human mission completion, multiplayer join/reconnect/death/extraction cases and equivalent-workload FPS improvement still require direct testing. Experimental helicopter flight and prison input automation were not resumed.