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

@ -330,7 +330,13 @@ destination/readiness latch, materialization/simulation edge, viewport,
completion, cancellation, wait cue, and portal count. App's lifecycle mirror completion, cancellation, wait cue, and portal count. App's lifecycle mirror
is deleted. Its 349 Runtime tests, 3,716 App tests / 3 skips, 8,626 complete is deleted. Its 349 Runtime tests, 3,716 App tests / 3 skips, 8,626 complete
Release tests / 5 skips, and exact-binary lifecycle/reconnect route pass with Release tests / 5 skips, and exact-binary lifecycle/reconnect route pass with
zero reveal invariants. J6.3 F751/Position transit correlation is active. zero reveal invariants. J6.3 landed at `6a063a27`: Runtime owns wrap-safe F751
history, both accepted F751/Position orders, the exact destination, and
generation/sequence/cell placement and materialization validation. App's
transit coordinator and destination mirror are deleted. Its 360 Runtime tests,
3,710 App tests / 3 skips, 8,631 complete Release tests / 5 skips, and
exact-binary lifecycle/reconnect route pass. J6.4 graphical-host
acknowledgement and owner cleanup is active.
J0's rollback is J0's rollback is
`git revert b632672e5ccabfb44c551e08f1c411ab2669c44a`. `git revert b632672e5ccabfb44c551e08f1c411ab2669c44a`.
J1's rollback is J1's rollback is
@ -377,6 +383,8 @@ J6.1's rollback is
J6.2's rollback is, newest first, J6.2's rollback is, newest first,
`git revert acb845d812574206da1693fb379fec8a6f175fcb` then `git revert acb845d812574206da1693fb379fec8a6f175fcb` then
`git revert a6860d5563ae845a2cbb916abacf2b4aee515cdb`. `git revert a6860d5563ae845a2cbb916abacf2b4aee515cdb`.
J6.3's rollback is
`git revert 6a063a27d4c805cd166d5a487afc290c34c400fd`.
Slice H's retained UI/frame, bounded-light, and pooled/borrowed/direct network Slice H's retained UI/frame, bounded-light, and pooled/borrowed/direct network
work is complete; the exact seven-checkpoint connected lifecycle/reconnect gate work is complete; the exact seven-checkpoint connected lifecycle/reconnect gate
passes. Slice I is closed in passes. Slice I is closed in
@ -399,7 +407,9 @@ closeout is
`docs/research/2026-07-26-slice-j5-5-physics-remote-ownership.md`; J5.6 `docs/research/2026-07-26-slice-j5-5-physics-remote-ownership.md`; J5.6
closeout is closeout is
`docs/research/2026-07-26-slice-j5-6-projectile-ownership.md`; J5.7 closeout is `docs/research/2026-07-26-slice-j5-6-projectile-ownership.md`; J5.7 closeout is
`docs/research/2026-07-26-slice-j5-7-simulation-ownership-closeout.md`. The exact G4 `docs/research/2026-07-26-slice-j5-7-simulation-ownership-closeout.md`; J6.3
closeout is
`docs/research/2026-07-26-slice-j6-3-teleport-correlation.md`. The exact G4
visual rollback visual rollback
is `git revert ef1d263337997bb030eadb7b8e71d73dc659907a`; do not revert G3 or is `git revert ef1d263337997bb030eadb7b8e71d73dc659907a`; do not revert G3 or
the portal-warmup corrections. Evidence: the portal-warmup corrections. Evidence:

View file

@ -328,7 +328,13 @@ destination/readiness latch, materialization/simulation edge, viewport,
completion, cancellation, wait cue, and portal count. App's lifecycle mirror completion, cancellation, wait cue, and portal count. App's lifecycle mirror
is deleted. Its 349 Runtime tests, 3,716 App tests / 3 skips, 8,626 complete is deleted. Its 349 Runtime tests, 3,716 App tests / 3 skips, 8,626 complete
Release tests / 5 skips, and exact-binary lifecycle/reconnect route pass with Release tests / 5 skips, and exact-binary lifecycle/reconnect route pass with
zero reveal invariants. J6.3 F751/Position transit correlation is active. zero reveal invariants. J6.3 landed at `6a063a27`: Runtime owns wrap-safe F751
history, both accepted F751/Position orders, the exact destination, and
generation/sequence/cell placement and materialization validation. App's
transit coordinator and destination mirror are deleted. Its 360 Runtime tests,
3,710 App tests / 3 skips, 8,631 complete Release tests / 5 skips, and
exact-binary lifecycle/reconnect route pass. J6.4 graphical-host
acknowledgement and owner cleanup is active.
J0's rollback is J0's rollback is
`git revert b632672e5ccabfb44c551e08f1c411ab2669c44a`. `git revert b632672e5ccabfb44c551e08f1c411ab2669c44a`.
J1's rollback is J1's rollback is
@ -375,6 +381,8 @@ J6.1's rollback is
J6.2's rollback is, newest first, J6.2's rollback is, newest first,
`git revert acb845d812574206da1693fb379fec8a6f175fcb` then `git revert acb845d812574206da1693fb379fec8a6f175fcb` then
`git revert a6860d5563ae845a2cbb916abacf2b4aee515cdb`. `git revert a6860d5563ae845a2cbb916abacf2b4aee515cdb`.
J6.3's rollback is
`git revert 6a063a27d4c805cd166d5a487afc290c34c400fd`.
Slice H's retained UI/frame, bounded-light, and pooled/borrowed/direct network Slice H's retained UI/frame, bounded-light, and pooled/borrowed/direct network
work is complete; the exact seven-checkpoint connected lifecycle/reconnect gate work is complete; the exact seven-checkpoint connected lifecycle/reconnect gate
passes. Slice I is closed in passes. Slice I is closed in
@ -397,7 +405,9 @@ closeout is
`docs/research/2026-07-26-slice-j5-5-physics-remote-ownership.md`; J5.6 `docs/research/2026-07-26-slice-j5-5-physics-remote-ownership.md`; J5.6
closeout is closeout is
`docs/research/2026-07-26-slice-j5-6-projectile-ownership.md`; J5.7 closeout is `docs/research/2026-07-26-slice-j5-6-projectile-ownership.md`; J5.7 closeout is
`docs/research/2026-07-26-slice-j5-7-simulation-ownership-closeout.md`. The exact G4 `docs/research/2026-07-26-slice-j5-7-simulation-ownership-closeout.md`; J6.3
closeout is
`docs/research/2026-07-26-slice-j6-3-teleport-correlation.md`. The exact G4
visual rollback visual rollback
is `git revert ef1d263337997bb030eadb7b8e71d73dc659907a`; do not revert G3 or is `git revert ef1d263337997bb030eadb7b8e71d73dc659907a`; do not revert G3 or
the portal-warmup corrections. Evidence: the portal-warmup corrections. Evidence:

View file

@ -241,7 +241,7 @@ src/
World/ World/
RuntimeWorldEnvironmentState.cs -> canonical calendar/time/weather owner RuntimeWorldEnvironmentState.cs -> canonical calendar/time/weather owner
RuntimeWorldTransitState.cs -> canonical reveal generation/readiness 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 -> may reference Core, Core.Net, Content, and Plugin.Abstractions only
-> must never reference App, UI, Silk.NET, OpenAL, Arch, or ImGui -> 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, by a newer teleport sequence, or session teardown. It clears the destination,
streaming priority, sequencer edges, projection override, and portal scene streaming priority, sequencer edges, projection override, and portal scene
together, preventing transition state from crossing destination or session together, preventing transition state from crossing destination or session
lifetimes. `TeleportTransitCoordinator` correlates each fresh F751 sequence lifetimes. Runtime's instance-scoped `RuntimeWorldTransitState` correlates each
with exactly one accepted `UpdatePosition`. Because the Position can arrive on fresh F751 sequence with exactly one accepted `UpdatePosition` and owns the
either side of F751, a pre-notification packet is buffered only when it advances pending/active sequence plus exact destination lifetime. Because Position can
retail's `TELEPORT_TS`; after notification, the first accepted matching packet arrive on either side of F751, a pre-notification packet is buffered only when
is consumed even if that timestamp already advanced. Duplicate/older F751 it advances retail's `TELEPORT_TS`; after notification, the first accepted
notifications are rejected with wrap-safe ordering. Canonical physics remains 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 independent, and streaming recentering compares destination identity with the
actual current streaming center rather than the player's still-unplaced source 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 cell. A live teleport received while acdream's developer fly/orbit camera is

View file

@ -472,14 +472,14 @@ useful ordering seam, but its ownership status is **partial**.
| World environment | **J6.1 complete Runtime ownership** | `RuntimeWorldEnvironmentState` owns the instance-scoped Dereth calendar, synchronized clock, weather progression/state, selected day group, AdminEnvirons state, and typed debug overrides. App converts immutable DAT sky definitions once and projects the borrowed Runtime snapshot into rendering; no process-global Region origin or second App clock/weather owner remains (`902076c0`). TS-54/TS-55 register the remaining centered UI sound and full fog/ambient/radar behavior gaps. | | World environment | **J6.1 complete Runtime ownership** | `RuntimeWorldEnvironmentState` owns the instance-scoped Dereth calendar, synchronized clock, weather progression/state, selected day group, AdminEnvirons state, and typed debug overrides. App converts immutable DAT sky definitions once and projects the borrowed Runtime snapshot into rendering; no process-global Region origin or second App clock/weather owner remains (`902076c0`). TS-54/TS-55 register the remaining centered UI sound and full fog/ambient/radar behavior gaps. |
| Live identity/lifetime | **J3 complete** | `RuntimeEntityObjectLifetime` owns the sole `RuntimeEntityDirectory`, live `ClientObjectTable`, direct views, and ordered entity/object stream. The directory owns canonical GUID/incarnation/local-ID identity, accepted snapshots/timestamps, parent state, operation versions, and tombstones. `LiveEntityProjectionStore` owns App graphical sidecars by exact `RuntimeEntityKey`; hydration, presentation components, `GpuWorldState` residence/visibility, and retryable teardown preserve that key without another authority. Exact receipts precede fallible callbacks, re-entrant commits drain synchronously in sequence, and stable reset/disposal must converge the complete ledger to zero (`f46ddb5c`, `420e5eea`, `e937cc36`, `5ef8b537`, `ce3ac310`, `119b7c11`). | | Live identity/lifetime | **J3 complete** | `RuntimeEntityObjectLifetime` owns the sole `RuntimeEntityDirectory`, live `ClientObjectTable`, direct views, and ordered entity/object stream. The directory owns canonical GUID/incarnation/local-ID identity, accepted snapshots/timestamps, parent state, operation versions, and tombstones. `LiveEntityProjectionStore` owns App graphical sidecars by exact `RuntimeEntityKey`; hydration, presentation components, `GpuWorldState` residence/visibility, and retryable teardown preserve that key without another authority. Exact receipts precede fallible callbacks, re-entrant commits drain synchronously in sequence, and stable reset/disposal must converge the complete ledger to zero (`f46ddb5c`, `420e5eea`, `e937cc36`, `5ef8b537`, `ce3ac310`, `119b7c11`). |
| Inbound/object-frame order | **Complete App orchestration** | `UpdateFrameOrchestrator` owns the complete typed host phase graph; `RetailInboundEventDispatcher`, `RetailLiveFrameCoordinator`, `LiveObjectFrameController`, `LiveSpatialPresentationReconciler`, streaming/input/teleport/player-mode/camera owners preserve the accepted order. `GameWindow.OnUpdate` is one profiler-scoped handoff (`e91f3102`). | | Inbound/object-frame order | **Complete App orchestration** | `UpdateFrameOrchestrator` owns the complete typed host phase graph; `RetailInboundEventDispatcher`, `RetailLiveFrameCoordinator`, `LiveObjectFrameController`, `LiveSpatialPresentationReconciler`, streaming/input/teleport/player-mode/camera owners preserve the accepted order. `GameWindow.OnUpdate` is one profiler-scoped handoff (`e91f3102`). |
| World reveal | **J6.2 complete Runtime ownership** | `RuntimeWorldTransitState` owns the sole monotonic login/portal reveal generation, exact destination, typed atomic readiness latch, materialization/simulation edge, viewport observation, completion, cancellation, retail wait cue, and portal count. `WorldRevealCoordinator` is the graphical host adapter over App readiness/reservations; `WorldGenerationAvailabilityState` borrows Runtime truth and owns no mutable generation. Delayed portals retain the authored tunnel and centered retail wait notice rather than force-revealing incomplete content (`a6860d55`, `acb845d8`). | | World reveal/transit | **J6.3 complete Runtime ownership** | `RuntimeWorldTransitState` owns the sole monotonic login/portal reveal generation, wrap-safe F751 history, pending/active teleport sequence, both accepted F751/Position packet orders, exact destination, typed atomic readiness latch, generation/sequence/cell placement and materialization validation, simulation edge, viewport observation, completion, cancellation, retail wait cue, and portal count. `WorldRevealCoordinator` and `LocalPlayerTeleportController` are graphical host adapters over App readiness/reservations, render-space placement, tunnel, and UI; `WorldGenerationAvailabilityState` borrows Runtime truth and owns no mutable generation. The App transit coordinator and accepted-destination mirror are deleted (`a6860d55`, `acb845d8`, `6a063a27`). |
| Retained gameplay UI | **Mostly complete feature ownership** | `RetailUiRuntime` and focused panel/controllers own layout and behavior. `GameWindow.OnLoad` still performs substantial service composition, which is allowed until the final composition cleanup. | | Retained gameplay UI | **Mostly complete feature ownership** | `RetailUiRuntime` and focused panel/controllers own layout and behavior. `GameWindow.OnLoad` still performs substantial service composition, which is allowed until the final composition cleanup. |
| Action/combat/magic/movement | **J5 complete** | Runtime `RuntimeActionState` owns the exact selection, temporary target mode, interaction transactions, combat attack/target/mode, and spell-cast intent children. Interaction owns use/appraisal/pickup identity, ordered FIFO, and exact post-arrival token while borrowing J4's sole busy gate. `RuntimeLocalPlayerMovementState` owns the exact local controller, construction seam, autorun latch, typed view, and outbound MTS/jump/AP cadence. Retained bars, physical input, world/content queries, transport, lighting, toasts, drag/drop, effects, and animation remain App adapters/presentation. One combined Runtime ledger spans entity/object, gameplay, physics, remote, and projectile ownership (`b298f99f`, `f5f7b417`, `20df9d15`, `aa3f4a60`, `cdee7a4b`). | | Action/combat/magic/movement | **J5 complete** | Runtime `RuntimeActionState` owns the exact selection, temporary target mode, interaction transactions, combat attack/target/mode, and spell-cast intent children. Interaction owns use/appraisal/pickup identity, ordered FIFO, and exact post-arrival token while borrowing J4's sole busy gate. `RuntimeLocalPlayerMovementState` owns the exact local controller, construction seam, autorun latch, typed view, and outbound MTS/jump/AP cadence. Retained bars, physical input, world/content queries, transport, lighting, toasts, drag/drop, effects, and animation remain App adapters/presentation. One combined Runtime ledger spans entity/object, gameplay, physics, remote, and projectile ownership (`b298f99f`, `f5f7b417`, `20df9d15`, `aa3f4a60`, `cdee7a4b`). |
| Physics/remote simulation | **J5.5 complete** | `RuntimePhysicsState` owns one per-session engine, production cache/cell graph, transition scratch, shadow registry, typed collision admissions, canonical bodies/hosts/remotes, keyed ordinary/remote worksets, simulation, and cell commits. App streaming supplies immutable prepared collision; animation/shape adapters supply graphical inputs and project committed snapshots only (`7e6033d0`). | | Physics/remote simulation | **J5.5 complete** | `RuntimePhysicsState` owns one per-session engine, production cache/cell graph, transition scratch, shadow registry, typed collision admissions, canonical bodies/hosts/remotes, keyed ordinary/remote worksets, simulation, and cell commits. App streaming supplies immutable prepared collision; animation/shape adapters supply graphical inputs and project committed snapshots only (`7e6033d0`). |
| Projectile simulation | **J5.6 complete** | `RuntimeEntityRecord`/`RuntimePhysicsState` own the canonical projectile component, exact-key workset, prediction/correction state, unchanged retail quantum/integration/sweep/collision loop, and cell commits. App resolves immutable Setup/DAT shape input and projects committed render, shadow, and effect-pose results only (`2aee3356`). | | Projectile simulation | **J5.6 complete** | `RuntimeEntityRecord`/`RuntimePhysicsState` own the canonical projectile component, exact-key workset, prediction/correction state, unchanged retail quantum/integration/sweep/collision loop, and cell commits. App resolves immutable Setup/DAT shape input and projects committed render, shadow, and effect-pose results only (`2aee3356`). |
| Landblock presentation | **Complete** | `LandblockBuildFactory` owns the captured-origin DAT transaction; concrete render/physics/DAT-static publishers and `LandblockPresentationPipeline` own typed-meter publication and exact retryable retirement. `StreamingController` owns stable destination/control/unload/Near/Far queues and destination reservation. CPU mesh-cache restaging requires an exact live owner. `StreamingOriginRecenterCoordinator` serializes old-window retirement with teleport/session origin lifetimes. `GameWindow` retains construction and one pipeline field only (`c79d0a49`, closeout `4a205a3e`; Slice E closeout `91e82c3c`). | | Landblock presentation | **Complete** | `LandblockBuildFactory` owns the captured-origin DAT transaction; concrete render/physics/DAT-static publishers and `LandblockPresentationPipeline` own typed-meter publication and exact retryable retirement. `StreamingController` owns stable destination/control/unload/Near/Far queues and destination reservation. CPU mesh-cache restaging requires an exact live owner. `StreamingOriginRecenterCoordinator` serializes old-window retirement with teleport/session origin lifetimes. `GameWindow` retains construction and one pipeline field only (`c79d0a49`, closeout `4a205a3e`; Slice E closeout `91e82c3c`). |
| Render-frame orchestration | **Complete** | `RenderFrameOrchestrator` owns the GPU-flight, resource, world/PView/shared-alpha, private-presentation, diagnostics, screenshot, and recovery graph. `GameWindow.OnRender` takes one logical window-size snapshot and performs one immutable handoff (`9d7df1bf`). | | Render-frame orchestration | **Complete** | `RenderFrameOrchestrator` owns the GPU-flight, resource, world/PView/shared-alpha, private-presentation, diagnostics, screenshot, and recovery graph. `GameWindow.OnRender` takes one logical window-size snapshot and performs one immutable handoff (`9d7df1bf`). |
| Unified `GameEntity` | **Slice J active at J6.3** | Canonical identity, retained-object lifetime, direct views, ordered entity/object deltas, J4 gameplay state, and the complete J5 action/combat/magic/movement/physics/remote/projectile simulation graph share failure-safe Runtime owners while exact graphical sidecars stay in App. J5 closeout proves Runtime-only parity and one terminal ownership ledger. J6.1J6.2 moved world environment and reveal-generation truth; J6.3 now moves F751/Position destination correlation before J7 composes one `GameRuntime` root. | | Unified `GameEntity` | **Slice J active at J6.4** | Canonical identity, retained-object lifetime, direct views, ordered entity/object deltas, J4 gameplay state, and the complete J5 action/combat/magic/movement/physics/remote/projectile simulation graph share failure-safe Runtime owners while exact graphical sidecars stay in App. J5 closeout proves Runtime-only parity and one terminal ownership ledger. J6.1J6.3 moved world environment, reveal-generation truth, and exact F751/Position destination correlation; J6.4 now closes typed graphical-host acknowledgements before J7 composes one `GameRuntime` root. |
### 4.3 Revised extraction sequence ### 4.3 Revised extraction sequence

View file

@ -1,6 +1,6 @@
# acdream — strategic roadmap # acdream — strategic roadmap
**Status:** Living document. Updated 2026-07-26. **M3 landed; M4 is active.** M3's retail casting/UI, R6 locomotion/collision/projectile/teleport/radar rebaseline, deterministic fresh-login/portal world lifecycle, and final two-client portal observer flow are user-gated. All eight slices of the behavior-preserving ownership campaign in [`docs/architecture/code-structure.md`](../architecture/code-structure.md), their automated closeout, and the user's connected visual matrix are complete. Modern Runtime J3 canonical entity/object lifetime and J4 gameplay-state ownership are closed at `89e6b207`; J5.1 canonical selection/combat/target-mode ownership is closed at `b298f99f`, J5.2 interaction transactions at `f5f7b417`, J5.3 combat/magic intent at `20df9d15`, J5.4 local movement/outbound cadence at `aa3f4a60`, J5.5 per-session physics/remote simulation at `7e6033d0`, J5.6 projectile simulation at `2aee3356`, and J5.7 combined simulation closeout at `cdee7a4b`. J6.1 world-environment ownership is closed at `902076c0`; J6.2 canonical reveal generation and typed destination readiness is closed at `a6860d55` plus `acb845d8`; J6.3 teleport packet/destination correlation is active. Issue #225's lifestone/particle alpha comparison remains a separate rendering visual gate. **Status:** Living document. Updated 2026-07-26. **M3 landed; M4 is active.** M3's retail casting/UI, R6 locomotion/collision/projectile/teleport/radar rebaseline, deterministic fresh-login/portal world lifecycle, and final two-client portal observer flow are user-gated. All eight slices of the behavior-preserving ownership campaign in [`docs/architecture/code-structure.md`](../architecture/code-structure.md), their automated closeout, and the user's connected visual matrix are complete. Modern Runtime J3 canonical entity/object lifetime and J4 gameplay-state ownership are closed at `89e6b207`; J5.1 canonical selection/combat/target-mode ownership is closed at `b298f99f`, J5.2 interaction transactions at `f5f7b417`, J5.3 combat/magic intent at `20df9d15`, J5.4 local movement/outbound cadence at `aa3f4a60`, J5.5 per-session physics/remote simulation at `7e6033d0`, J5.6 projectile simulation at `2aee3356`, and J5.7 combined simulation closeout at `cdee7a4b`. J6.1 world-environment ownership is closed at `902076c0`; J6.2 canonical reveal generation and typed destination readiness is closed at `a6860d55` plus `acb845d8`; J6.3 exact F751/Position destination correlation is closed at `6a063a27`; J6.4 graphical-host acknowledgement and owner cleanup is active. Issue #225's lifestone/particle alpha comparison remains a separate rendering visual gate.
**Purpose:** One source of truth for where the project is and where it's going. Every observed defect or missing feature has a named phase that owns it; when something looks wrong in-game, look here to find the phase that'll address it. Implementation details live in per-phase specs under `docs/superpowers/specs/`, not in this file. **Purpose:** One source of truth for where the project is and where it's going. Every observed defect or missing feature has a named phase that owns it; when something looks wrong in-game, look here to find the phase that'll address it. Implementation details live in per-phase specs under `docs/superpowers/specs/`, not in this file.
--- ---
@ -1786,8 +1786,13 @@ port in any phase — no separate listing here.
> simulation-availability, viewport, completion, cancellation, and wait-cue > simulation-availability, viewport, completion, cancellation, and wait-cue
> state. Its 349 Runtime tests, 3,716 App tests / 3 skips, 8,626-test / 5-skip > state. Its 349 Runtime tests, 3,716 App tests / 3 skips, 8,626-test / 5-skip
> complete Release suite, and exact-binary lifecycle/reconnect route pass with > complete Release suite, and exact-binary lifecycle/reconnect route pass with
> zero reveal invariants. J6.3 teleport packet/destination correlation is > zero reveal invariants. J6.3 completed at `6a063a27`: Runtime owns wrap-safe
> active. > F751 history, both accepted F751/Position packet orders, the exact
> destination, and generation/sequence/cell placement and materialization
> validation; the App transit coordinator and destination mirror are deleted.
> Its 360 Runtime tests, 3,710 App tests / 3 skips, 8,631-test / 5-skip complete
> Release suite, and exact-binary lifecycle/reconnect route pass. J6.4
> graphical-host acknowledgement and owner cleanup is active.
> The historical exact cutover > The historical exact cutover
> rollback remains > rollback remains
> `git revert ef1d263337997bb030eadb7b8e71d73dc659907a`. Slice H is complete: > `git revert ef1d263337997bb030eadb7b8e71d73dc659907a`. Slice H is complete:

View file

@ -261,7 +261,13 @@ residency is `0/0/0` at every stable checkpoint and teardown converges. Slice I
viewport, completion, cancellation, and wait-cue state; App's lifecycle viewport, completion, cancellation, and wait-cue state; App's lifecycle
mirror is deleted. Its 349 Runtime tests, 3,716 App tests / 3 skips, 8,626 mirror is deleted. Its 349 Runtime tests, 3,716 App tests / 3 skips, 8,626
complete Release tests / 5 skips, and exact-binary lifecycle/reconnect route complete Release tests / 5 skips, and exact-binary lifecycle/reconnect route
pass with zero reveal invariants. J6.3 transit correlation is active under pass with zero reveal invariants. J6.3 completed at `6a063a27`: Runtime owns
wrap-safe F751 history, both accepted F751/Position orders, the exact
destination, and generation/sequence/cell placement and materialization
validation; App's transit coordinator and destination mirror are deleted.
Its 360 Runtime tests, 3,710 App tests / 3 skips, 8,631 complete Release tests
/ 5 skips, and exact-binary lifecycle/reconnect route pass. J6.4 graphical-
host acknowledgement and owner cleanup is active under
[`2026-07-25-modern-runtime-slice-j.md`](2026-07-25-modern-runtime-slice-j.md). [`2026-07-25-modern-runtime-slice-j.md`](2026-07-25-modern-runtime-slice-j.md).
Slice-I closeout evidence is Slice-I closeout evidence is
[`../research/2026-07-25-slice-i7-closeout.md`](../research/2026-07-25-slice-i7-closeout.md). [`../research/2026-07-25-slice-i7-closeout.md`](../research/2026-07-25-slice-i7-closeout.md).
@ -295,6 +301,8 @@ Slice-J5.5 closeout evidence is
[`../research/2026-07-26-slice-j5-5-physics-remote-ownership.md`](../research/2026-07-26-slice-j5-5-physics-remote-ownership.md). [`../research/2026-07-26-slice-j5-5-physics-remote-ownership.md`](../research/2026-07-26-slice-j5-5-physics-remote-ownership.md).
Slice-J5.6 closeout evidence is Slice-J5.6 closeout evidence is
[`../research/2026-07-26-slice-j5-6-projectile-ownership.md`](../research/2026-07-26-slice-j5-6-projectile-ownership.md). [`../research/2026-07-26-slice-j5-6-projectile-ownership.md`](../research/2026-07-26-slice-j5-6-projectile-ownership.md).
Slice-J6.3 closeout evidence is
[`../research/2026-07-26-slice-j6-3-teleport-correlation.md`](../research/2026-07-26-slice-j6-3-teleport-correlation.md).
The historical exact G4 visual rollback remains The historical exact G4 visual rollback remains
`git revert ef1d263337997bb030eadb7b8e71d73dc659907a`. `git revert ef1d263337997bb030eadb7b8e71d73dc659907a`.

View file

@ -21,7 +21,9 @@ and combat ownership closed at `cdee7a4b` after canonical action state
(`20df9d15`), local movement/outbound cadence (`aa3f4a60`), and per-session (`20df9d15`), local movement/outbound cadence (`aa3f4a60`), and per-session
physics/remote simulation (`7e6033d0`), projectile simulation (`2aee3356`), physics/remote simulation (`7e6033d0`), projectile simulation (`2aee3356`),
and the combined simulation ledger/Runtime-only closeout moved to Runtime. and the combined simulation ledger/Runtime-only closeout moved to Runtime.
J6 world/portal/environment and projection-handshake ownership is active. J6.1J6.3 moved world environment, canonical reveal generation/readiness, and
exact F751/Position destination correlation into Runtime. J6.4 graphical-host
acknowledgement and owner cleanup is active.
**Scope:** Reconcile and sequence the existing Modern Pipeline (`MP`) and **Scope:** Reconcile and sequence the existing Modern Pipeline (`MP`) and
Linux/headless (`LH`) tracks using the 2026-07-24 connected performance audit. Linux/headless (`LH`) tracks using the 2026-07-24 connected performance audit.
@ -1281,8 +1283,13 @@ exact-binary lifecycle/reconnect gate, and canonical nine-stop route pass.
J5 movement/physics/interaction/combat ownership is complete at `cdee7a4b`. J5 movement/physics/interaction/combat ownership is complete at `cdee7a4b`.
The Runtime-only simulation fixture, combined terminal ledger, 8,596-test / The Runtime-only simulation fixture, combined terminal ledger, 8,596-test /
5-skip Release suite, exact-binary lifecycle/reconnect gate, and canonical 5-skip Release suite, exact-binary lifecycle/reconnect gate, and canonical
nine-stop route pass. J6 world/portal/environment and projection-handshake nine-stop route pass. J6.1J6.3 are complete at `6a063a27`: Runtime owns world
ownership is the current execution point. environment, the reveal generation/readiness lifetime, wrap-safe
F751/Position correlation, and the exact generation/sequence/cell placement
handshake. Its 360 Runtime tests, 3,710 App tests / 3 skips, 8,631-test /
5-skip Release suite, and exact-binary lifecycle/reconnect gate pass. J6.4
graphical-host acknowledgement and owner cleanup is the current execution
point.
Evidence: Evidence:
[`../research/2026-07-25-slice-g5-production-profile.md`](../research/2026-07-25-slice-g5-production-profile.md) [`../research/2026-07-25-slice-g5-production-profile.md`](../research/2026-07-25-slice-g5-production-profile.md)
and and
@ -1304,6 +1311,8 @@ and
and and
[`../research/2026-07-26-slice-j5-6-projectile-ownership.md`](../research/2026-07-26-slice-j5-6-projectile-ownership.md) [`../research/2026-07-26-slice-j5-6-projectile-ownership.md`](../research/2026-07-26-slice-j5-6-projectile-ownership.md)
and and
[`../research/2026-07-26-slice-j6-3-teleport-correlation.md`](../research/2026-07-26-slice-j6-3-teleport-correlation.md)
and
[`../research/2026-07-26-slice-j5-7-simulation-ownership-closeout.md`](../research/2026-07-26-slice-j5-7-simulation-ownership-closeout.md) [`../research/2026-07-26-slice-j5-7-simulation-ownership-closeout.md`](../research/2026-07-26-slice-j5-7-simulation-ownership-closeout.md)
and and
[`2026-07-25-modern-runtime-slice-j.md`](2026-07-25-modern-runtime-slice-j.md). [`2026-07-25-modern-runtime-slice-j.md`](2026-07-25-modern-runtime-slice-j.md).

View file

@ -354,13 +354,18 @@ graphical feel gates remain unchanged.
### J6 — world, portal, environment, and projection handshake ### J6 — world, portal, environment, and projection handshake
**J6.0J6.2 complete; J6.3 active 2026-07-26.** The instance-scoped Runtime **J6.0J6.3 complete; J6.4 active 2026-07-26.** The instance-scoped Runtime
environment owner landed at `902076c0`. The canonical reveal generation and environment owner landed at `902076c0`. The canonical reveal generation and
typed readiness owner landed at `a6860d55` plus `acb845d8`; App's duplicate typed readiness owner landed at `a6860d55` plus `acb845d8`; App's duplicate
lifecycle owner is deleted and the exact connected lifecycle/reconnect gate lifecycle owner is deleted and the exact connected lifecycle/reconnect gate
passes with zero reveal invariants. Detailed owner inventory, retail ordering, passes with zero reveal invariants. Canonical F751/Position correlation and
host-acknowledgement contract, execution ledger, adversarial matrix, and exact generation/sequence/cell placement handshake landed at `6a063a27`; the
current evidence: App transit coordinator and accepted-destination mirror are deleted. Its
360 Runtime tests, 3,710 App tests / 3 skips, 8,631-test / 5-skip complete
Release suite, and exact-binary lifecycle/reconnect route pass. Evidence:
[`../research/2026-07-26-slice-j6-3-teleport-correlation.md`](../research/2026-07-26-slice-j6-3-teleport-correlation.md).
Detailed owner inventory, retail ordering, host-acknowledgement contract,
execution ledger, adversarial matrix, and current plan:
[`2026-07-26-modern-runtime-slice-j6.md`](2026-07-26-modern-runtime-slice-j6.md). [`2026-07-26-modern-runtime-slice-j6.md`](2026-07-26-modern-runtime-slice-j6.md).
- Move authoritative teleport/session cell identity, world clock, weather - Move authoritative teleport/session cell identity, world clock, weather

View file

@ -1,6 +1,6 @@
# Modern runtime Slice J6 — world, transit, and host handshake # Modern runtime Slice J6 — world, transit, and host handshake
**Status:** J6.0J6.2 COMPLETE; J6.3 ACTIVE **Status:** J6.0J6.3 COMPLETE; J6.4 ACTIVE
**Parent:** `2026-07-25-modern-runtime-slice-j.md`, J6 **Parent:** `2026-07-25-modern-runtime-slice-j.md`, J6
**Authorization:** the user approved Slices FL, including gameplay-owner **Authorization:** the user approved Slices FL, including gameplay-owner
moves, on 2026-07-24 moves, on 2026-07-24
@ -258,6 +258,8 @@ world-edge warning. Evidence:
### J6.3 — canonical F751/Position transit and placement handshake ### J6.3 — canonical F751/Position transit and placement handshake
**Complete 2026-07-26 at `6a063a27`.**
- Move `TeleportTransitCoordinator` state into the Runtime transit owner. - Move `TeleportTransitCoordinator` state into the Runtime transit owner.
- Convert accepted network destination data once into - Convert accepted network destination data once into
`RuntimeTeleportDestination`. `RuntimeTeleportDestination`.
@ -273,6 +275,21 @@ Gate: Position-before-F751, F751-before-Position, duplicate/stale/wrapped
sequence, superseding teleport, same-landblock, cross-landblock, dungeon, sequence, superseding teleport, same-landblock, cross-landblock, dungeon,
mid-portal reset, and reconnect traces match. mid-portal reset, and reconnect traces match.
`RuntimeWorldTransitState` now owns wrap-safe F751 history, pending/active
teleport sequence, both accepted packet orders, the exact destination, and
generation/sequence/cell placement and materialization validation. The former
App transit coordinator and accepted-destination mirror are deleted; App
retains only graphical portal and placement work.
Runtime tests pass 360/360, the focused App transit/reveal suite passes 34/34,
App tests pass 3,710/3 skips, and the complete Release suite passes 8,631/5
skips. Exact-binary report
`logs/connected-world-gate-20260726-175333/report.json` records six capped
checkpoints and one uncapped fresh-process reconnect, graceful code-zero exits,
zero failures, zero reveal invariant failures, and only the expected world-edge
warning. Evidence:
[`../research/2026-07-26-slice-j6-3-teleport-correlation.md`](../research/2026-07-26-slice-j6-3-teleport-correlation.md).
### J6.4 — projection acknowledgement and owner cleanup ### J6.4 — projection acknowledgement and owner cleanup
- Make App presentation registration/withdrawal use typed generation-scoped - Make App presentation registration/withdrawal use typed generation-scoped
@ -352,6 +369,12 @@ git revert acb845d812574206da1693fb379fec8a6f175fcb
git revert a6860d5563ae845a2cbb916abacf2b4aee515cdb git revert a6860d5563ae845a2cbb916abacf2b4aee515cdb
``` ```
J6.3 exact rollback:
```text
git revert 6a063a27d4c805cd166d5a487afc290c34c400fd
```
Documentation-only research/plan commits are not behavior rollback points. Documentation-only research/plan commits are not behavior rollback points.
No workaround, timer, forced-ready path, duplicated owner, or alternate No workaround, timer, forced-ready path, duplicated owner, or alternate
headless behavior is permitted. headless behavior is permitted.

View file

@ -0,0 +1,88 @@
# Slice J6.3 — canonical teleport correlation
**Date:** 2026-07-26
**Production commit:** `6a063a27d4c805cd166d5a487afc290c34c400fd`
**Exact rollback:**
```text
git revert 6a063a27d4c805cd166d5a487afc290c34c400fd
```
## Outcome
`AcDream.Runtime.World.RuntimeWorldTransitState` now owns the complete
authoritative teleport-notification and accepted-destination lifetime:
- wrap-safe F751 freshness and last-notification history;
- the pending and active teleport sequence;
- Position-before-F751 buffering and F751-before-Position matching;
- the first accepted destination for one teleport generation;
- exact generation, sequence, and destination-cell placement validation;
- exact materialization acknowledgement; and
- cancellation and session-reset cleanup without generation reuse.
`RuntimeTeleportDestination` preserves the server GUID, all four relevant
retail sequence channels, and the complete Core `Position`, including its
cell-local frame. The App converts accepted network data once at the wire
boundary, after canonical Runtime physics has accepted and applied the
Position update.
The former App `TeleportTransitCoordinator<T>` and duplicate accepted-
destination state are deleted. `LocalPlayerTeleportController` now borrows
Runtime transit truth and owns only graphical portal activation, render-space
translation/recentering, destination placement callbacks, tunnel presentation,
and retained UI. Login reveal and portal reveal are separate typed operations,
so an ordinary login cannot accidentally satisfy a teleport sequence.
## Retail ordering
- `SmartBox::HandlePlayerTeleport @ 0x00452150`
- `SmartBox::TeleportPlayer @ 0x00453910`
- `SmartBox::UseTime @ 0x00455410`
Retail accepts an equal or wrap-safe-newer F751 sequence, clears the local
position-complete state, and waits for a corresponding accepted Position
without advancing the Position timestamp itself. ACE emits the F751 and
Position with the same teleport sequence but transport order is not assumed.
The Runtime owner therefore supports both packet orders while keeping
canonical physics acceptance independent.
The detailed translation is recorded in
[`2026-07-15-retail-portal-space-pseudocode.md`](2026-07-15-retail-portal-space-pseudocode.md).
## Automated evidence
- Runtime: 360 passed, including 28 focused transit-state tests.
- App focused transit/reveal suite: 34 passed.
- App: 3,710 passed / 3 skipped.
- Complete solution: 8,631 passed / 5 skipped.
- Release build: zero errors; 17 pre-existing test-project warnings tracked by
issue #228.
- Source/ownership guards: the App transit coordinator is absent, graphical
composition borrows the session Runtime transit owner, and no parallel
current-cell or accepted-destination authority remains.
- Adversarial fixtures: Position-before-F751, F751-before-Position,
duplicate/stale/wrapped sequences, supersession, exact placement and
materialization mismatch, mid-transit reset, reconnect, generation reuse,
and two-instance isolation.
## Connected evidence
Accepted report:
`logs/connected-world-gate-20260726-175333/report.json`
The report records exact source and embedded binary commit
`6a063a27d4c805cd166d5a487afc290c34c400fd`.
- Capped process: 244.427 seconds, six checkpoints, graceful code-zero exit.
- Uncapped fresh-process reconnect: 61.414 seconds, one checkpoint, graceful
code-zero exit.
- Route: fresh login, Aerlinthe, Rynthid world edge, Facility Hub dungeon,
Holtburg, Aerlinthe revisit, then fresh-process reconnect.
- Failures: zero.
- Reveal invariant failures: zero.
- Expected warning: 25 instrumented world-edge landblock misses.
No new retail divergence was introduced. The two-order buffer contains only
immutable destination data that canonical Runtime physics already accepted; it
is correlation state, not a second physics or position authority.