acdream/tests/AcDream.Core.Tests/Streaming
Erik 0a5f91b6fe fix(streaming): #138 — rescue persistent entities from the pending bucket on unload
GpuWorldState.RemoveLandblock rescued persistent entities (the player)
only from the _loaded list, silently dropping one sitting in the
_pendingByLandblock bucket. The player is re-injected via AppendLiveEntity
every frame; right after a teleport its destination landblock has not
streamed in yet, so the player lands in the pending bucket — and if that
landblock is then unloaded during the streaming churn, the persistent
entry was dropped, violating the "persistent therefore survives unload"
contract. Leading candidate for the #138 "own avatar vanishes after a
couple round-trips" symptom (cumulative; needs user visual confirm).

Fix: scan the pending bucket for persistent guids and rescue them too,
so DrainRescued re-parks them at the next valid landblock. Provable
correctness fix with a deterministic test (rescue-from-pending plus a
negative for non-persistent). Core tests green.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21 08:07:28 +02:00
..
DungeonStreamingGateTests.cs fix(streaming): #145 — teleport re-use via server-authoritative placement 2026-06-20 21:38:00 +02:00
GpuWorldStateActivatorTests.cs feat(vfx #C.1.5b): GpuWorldState fires activator for dat-hydrated entities 2026-05-12 00:07:38 +02:00
GpuWorldStateTests.cs fix(streaming): #138 — rescue persistent entities from the pending bucket on unload 2026-06-21 08:07:28 +02:00
GpuWorldStateTwoTierTests.cs feat(render): Phase A8 — indoor visibility + streaming fixes batch 2026-05-29 10:14:50 +02:00
LandblockEntityRehydratorTests.cs fix(streaming): #138 — re-hydrate server objects from the retained spawn table on reload 2026-06-21 08:06:41 +02:00
LandblockStreamerTests.cs feat(render): Phase A8 — indoor visibility + streaming fixes batch 2026-05-29 10:14:50 +02:00
StreamingControllerDungeonGateTests.cs fix(G.3): pre-collapse dungeon streaming at login/teleport — kill the login FPS ramp (#135) 2026-06-14 16:46:56 +02:00
StreamingControllerTests.cs feat(A.5 T13): StreamingController two-tier Tick 2026-05-10 07:56:57 +02:00
StreamingControllerTwoTierTests.cs feat(render): Phase A8 — indoor visibility + streaming fixes batch 2026-05-29 10:14:50 +02:00
StreamingRegionTests.cs feat(A.5 T4): StreamingRegion ComputeFirstTickDiff 2026-05-09 22:34:55 +02:00
StreamingRegionTwoTierTests.cs fix(A.5 T4-T6): bootstrap guard + dead enum + test cleanups 2026-05-09 22:49:35 +02:00