docs(runtime): record teleport correlation gate

This commit is contained in:
Erik 2026-07-26 18:04:50 +02:00
parent 6a063a27d4
commit 73d0b54e38
10 changed files with 188 additions and 25 deletions

View file

@ -241,7 +241,7 @@ src/
World/
RuntimeWorldEnvironmentState.cs -> canonical calendar/time/weather owner
RuntimeWorldTransitState.cs -> canonical reveal generation/readiness owner
-> J3J5 and J6.1J6.2 complete; J6.3 transit handshake active
-> J3J5 and J6.1J6.3 complete; J6.4 host acknowledgement active
-> may reference Core, Core.Net, Content, and Plugin.Abstractions only
-> must never reference App, UI, Silk.NET, OpenAL, Arch, or ImGui
@ -964,12 +964,17 @@ One reset seam ends a logical transit on successful completion, replacement
by a newer teleport sequence, or session teardown. It clears the destination,
streaming priority, sequencer edges, projection override, and portal scene
together, preventing transition state from crossing destination or session
lifetimes. `TeleportTransitCoordinator` correlates each fresh F751 sequence
with exactly one accepted `UpdatePosition`. Because the Position can arrive on
either side of F751, a pre-notification packet is buffered only when it advances
retail's `TELEPORT_TS`; after notification, the first accepted matching packet
is consumed even if that timestamp already advanced. Duplicate/older F751
notifications are rejected with wrap-safe ordering. Canonical physics remains
lifetimes. Runtime's instance-scoped `RuntimeWorldTransitState` correlates each
fresh F751 sequence with exactly one accepted `UpdatePosition` and owns the
pending/active sequence plus exact destination lifetime. Because Position can
arrive on either side of F751, a pre-notification packet is buffered only when
it advances retail's `TELEPORT_TS`; after notification, the first accepted
matching packet is consumed even if that timestamp already advanced.
Duplicate/older F751 notifications are rejected with wrap-safe ordering.
Placement and materialization must match the exact Runtime generation,
sequence, and destination cell. `LocalPlayerTeleportController` borrows that
truth and owns only the graphical portal, render-space translation/recenter,
placement callback, tunnel, and retained UI. Canonical physics remains
independent, and streaming recentering compares destination identity with the
actual current streaming center rather than the player's still-unplaced source
cell. A live teleport received while acdream's developer fly/orbit camera is