Recheck storage slots after spawn preload and streaming handoff

This commit is contained in:
2026-09-20 17:46:45 +02:00
parent 1201f9666f
commit e8d472c6ff
7 changed files with 200 additions and 32 deletions
+52
View File
@@ -1,5 +1,57 @@
# Mission preparation presentation
## Storage slots and post-preload check (0.0.8 candidate)
The user tested published 0.0.7 on RKS #2 and still opened an empty prison crate
before its pistol appeared. The actual client log at 17:34 on September 20
confirms the update from 0.0.6 to 0.0.7. It acknowledged 50 objects and 28 items
at 17:34:35.261, then opened inventory at 17:34:40.453. The server acknowledged
the same snapshot and began preload at 15:34:35 UTC. This was a failed retest,
not an outdated package. The previous local tests did not establish the reported
dedicated-client behavior.
Two gaps are addressed in this candidate. Manager `GetItems` membership alone
does not check the actual storage slot or the `BaseInventoryStorageComponent.GetAll`
list used by vanilla `SCR_InventoryStorageBaseUI`. The client now requires an
item's parent slot, reverse slot lookup, slot occupant and storage enumeration
to agree as well as membership in the expected manager.
The initial acknowledgement now only allows native asset preload. After preload
completes, the server restores normal streaming for the snapshot and reinstates
the spawn-position observer. It requests a second, token-bound acknowledgement.
The client retains the manifest and requires all objects and storage links to
remain present for one continuous second under normal streaming. A missing item
resets this interval. Only this final acknowledgement allows assignment; timeout
also covers this stage. Snapshot changes invalidate both acknowledgements and
require another preload. Cleanup transfers the observer to the controlled actor
or removes it if the admission failed.
Regression adapters cover stale/premature final replies, final-stage timeout,
missing slot/storage/UI enumeration despite manager membership, and disappearance
after preload resetting the final check. These changes close identified gaps;
the logs do not prove which gap caused the user's empty crate. Dedicated
fresh-join and late-join acceptance remain pending.
The 17:41 local Workbench run compiled the candidate. Initial storage readiness
was acknowledged at 17:42:50.749, native preload completed and the final check
started at 17:42:51.758, and final storage readiness was acknowledged at
17:42:52.891. The prisoner-admission assertion followed at 17:42:53.381. The
full victory fixture later failed in vanilla `SCR_AIGetSuppressionVolumePosition`
(`No suppression volume provided!`); that failure is retained, and is not a
successful full-mission verdict. Cleanup and unchanged addon sources were
confirmed. Raw results are in
`/tmp/erri-spawn-slots-20260920/logs/logs_2026-09-20_17-41-56`.
All repository checks passed. The focused native `core/prisoner-kit` fixture
then completed 171 assertions without script/runtime failures. Both readiness
acknowledgements preceded admission; the fixture checked native clothing,
equipment and physical stock transfers. Cleanup and unchanged source were
confirmed. The four external RHS/WCS localization errors remain in its strict
native verdict. Results are in
`/tmp/erri-spawn-slots-kit-20260920/logs/logs_2026-09-20_17-44-35`.
This is local Workbench evidence, not a successful RKS #2 retest. Publishing and
updating the server/client to 0.0.8 remain necessary for dedicated validation.
## Client inventory readiness (0.0.7 candidate)
The user reported arriving before loot was available with 0.0.6. The client's