Add ground starting supplies and mission telemetry; record Workshop 0.0.123
continuous-integration/drone/push Build is passing
continuous-integration/drone/push Build is passing
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
# Starting-rifle investigation — 2026-10-26
|
||||
|
||||
The native Kolobok starting backpack rejects the full-length vanilla M16A2
|
||||
(`3E413771E1834D2F`). The shorter M16A2 carbine with M203
|
||||
(`EF73725A81669E2C`) fits with the map and pistol used in this test. This is not a
|
||||
blanket rifle-type ban.
|
||||
|
||||
Baseline R1 ran the existing site preparation and real inventory code in an
|
||||
isolated Workbench profile. The required map entered the backpack; the M16 was
|
||||
rejected on each inspection. After 60 quarter-second polls the code deleted the
|
||||
optional rifle and returned READY. This reproduces a 15-second inventory wait
|
||||
and lost selected weapon, not a permanent mission-start failure.
|
||||
|
||||
The fix retains the exact rejected starting item as loose loot, looking for dry,
|
||||
clear, reachable ground near the backpack. It does not create replacement items
|
||||
or pull an item out of a storage that already owns it. If no nearby clear spot
|
||||
exists, the item remains at its original starting-container spawn position.
|
||||
The shared map remains mandatory, accepted asynchronous inventory moves are not
|
||||
resubmitted, and normal inventory failures at non-starting sites remain errors.
|
||||
|
||||
Native evidence:
|
||||
|
||||
- `baseline/` (R1): original behavior, one M16; required map remains after the
|
||||
rifle is removed, preparation completes at poll 60.
|
||||
- `stock-fix/` (R2): the same small stock fixture completes at poll 2 (0.5 s),
|
||||
without removing the rifle.
|
||||
- `full-mission/` (R5): full ordinary mission preparation and player admission,
|
||||
with one full-length M16, one M16/M203 carbine, one pistol and the mandatory
|
||||
field map. The loose M16 is approximately 1.21 m from the backpack and appears
|
||||
in the server spawn-scene snapshot. The carbine, pistol and map remain inside.
|
||||
A native inventory operation then moves the exact loose M16 into the admitted
|
||||
player's inventory; replicated slot/storage visibility is verified.
|
||||
|
||||
R3 also passed a full mission with one M16 and pistol. R4 exposed an incorrect
|
||||
fixture assumption that the shorter carbine would also be rejected; the mission
|
||||
itself started, but the fixture failed its loose-item assertion. R5 corrects that
|
||||
assumption and verifies both fitting and non-fitting weapons together.
|
||||
|
||||
All recorded final runs compiled native scripts, reached `smoke-completed`,
|
||||
kept source/dependency inputs unchanged and confirmed private-process cleanup.
|
||||
The strict engine reporter still lists installed world-resource unknown-property
|
||||
errors; see the raw runner output. These are local Workbench integration tests,
|
||||
not dedicated multiplayer or physical mouse-input certification.
|
||||
|
||||
`tests/test_start_stock_overflow.py` executes the actual stock loop with boundary
|
||||
substitutes for rejected/accepted/delayed/missing custom items, idempotence,
|
||||
required-map failure, timeout and preservation of insertion request counts.
|
||||
The transport test executes the extracted helper when checking readiness order.
|
||||
The complete repository suite passed after the change; see `repository-checks.log`.
|
||||
|
||||
Reproduce the mixed-loadout/full-start/pickup test with:
|
||||
|
||||
```
|
||||
python3 docs/evidence/starting-rifles-2026-10-26/isolated-runner.py UNIQUEID --full --carbine
|
||||
```
|
||||
|
||||
The runner copies sources into `/tmp`, uses the existing private Tools prefix and
|
||||
a fresh disposable profile, and does not touch a live server or installed addon.
|
||||
Reference in New Issue
Block a user