diff --git a/docs/research/2026-06-21-138-entity-redelivery-handoff.md b/docs/research/2026-06-21-138-entity-redelivery-handoff.md index 4dee2d3a..90b12d95 100644 --- a/docs/research/2026-06-21-138-entity-redelivery-handoff.md +++ b/docs/research/2026-06-21-138-entity-redelivery-handoff.md @@ -7,6 +7,19 @@ --- +> **✅ RESOLVED 2026-06-21 (`bf66fb4`+`0a5f91b`+`aa4a04d`, branch `claude/thirsty-goldberg-51bb9b`; +> pending user visual gate).** The re-delivery diagnosis below was CONFIRMED by cross-reference +> (ACE never clears `KnownObjects` on a teleport so it won't re-send known objects; retail/holtburger +> keep the client object table and re-render from it). **BUT this handoff's recommended fix source +> was WRONG:** `ClientObjectTable` is the INVENTORY model (`ClientObject` has no world +> position/cell/Setup — see `src/AcDream.Core/Items/ClientObject.cs`) and cannot rebuild a render +> entity. The real retained world-object table is **`GameWindow._lastSpawnByGuid`** (parsed +> `WorldSession.EntitySpawn` records with position + Setup + appearance); it survives the collapse +> and is what we re-project from. Shipped fix: `LandblockEntityRehydrator` + `StreamingController. +> onLandblockLoaded` + `GameWindow.RehydrateServerEntitiesForLandblock`, plus a pending-bucket +> persistent-entity rescue for the player-vanish. See `docs/ISSUES.md` #138 + register AP-48. The +> rest of this doc is the (accurate) investigation trail; ignore its `ClientObjectTable` fix advice. + ## What shipped this session | Commit | What |