docs(runtime): close local movement ownership

Record the exact J5.4 automated, lifecycle/reconnect, and nine-stop movement evidence; advance the Modern Runtime program to J5.5; and synchronize architecture, roadmap, milestones, AGENTS/CLAUDE, rollback, and durable research pointers.

Co-authored-by: Codex <noreply@openai.com>
This commit is contained in:
Erik 2026-07-26 12:53:41 +02:00
parent aa3f4a60f8
commit 0dc3bfdeff
11 changed files with 135 additions and 34 deletions

View file

@ -288,8 +288,15 @@ and spell-cast intent children. Retained bars and graphical input borrow those
owners; direct Runtime commands drive the same operations and snapshots. owners; direct Runtime commands drive the same operations and snapshots.
Runtime tests pass 223/223, App tests pass 3,754/3 skips, the complete Release Runtime tests pass 223/223, App tests pass 3,754/3 skips, the complete Release
suite passes 8,566/5 skips, and the exact-binary seven-checkpoint gate passes suite passes 8,566/5 skips, and the exact-binary seven-checkpoint gate passes
with graceful exits and zero failures. J5.4 local movement/outbound cadence is with graceful exits and zero failures. J5.4 is complete at `aa3f4a60`:
active. `RuntimeLocalPlayerMovementState` owns the exact local movement controller,
construction seam, autorun latch, typed view, and terminal ledger; graphical
input and direct Runtime commands borrow the same state, and outbound
MTS/jump/AP cadence lives in Runtime. Runtime tests pass 303/303, App tests
pass 3,716/3 skips, the complete Release suite passes 8,575/5 skips, and both
the exact-binary lifecycle/reconnect and canonical nine-stop movement gates
pass with graceful exits and zero failures. J5.5 per-session physics and
remote simulation is active.
J0's rollback is J0's rollback is
`git revert b632672e5ccabfb44c551e08f1c411ab2669c44a`. `git revert b632672e5ccabfb44c551e08f1c411ab2669c44a`.
J1's rollback is J1's rollback is
@ -323,6 +330,8 @@ J5.2's rollback is
`git revert f5f7b4177f449ebcad9724bfea263ef73ab60255`. `git revert f5f7b4177f449ebcad9724bfea263ef73ab60255`.
J5.3's rollback is J5.3's rollback is
`git revert 20df9d155db50706a42420d60a9b15861cf4bfe7`. `git revert 20df9d155db50706a42420d60a9b15861cf4bfe7`.
J5.4's rollback is
`git revert aa3f4a60f87f2cbebc3d8ecd5e33d779b7fb13c1`.
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
@ -338,7 +347,9 @@ is `docs/research/2026-07-26-slice-j4-5-gameplay-state-closeout.md`; J5.1
closeout is closeout is
`docs/research/2026-07-26-slice-j5-1-canonical-action-state.md`; J5.2 closeout `docs/research/2026-07-26-slice-j5-1-canonical-action-state.md`; J5.2 closeout
is `docs/research/2026-07-26-slice-j5-2-interaction-transactions.md`; J5.3 is `docs/research/2026-07-26-slice-j5-2-interaction-transactions.md`; J5.3
closeout is `docs/research/2026-07-26-slice-j5-3-combat-magic-intent.md`. The exact G4 closeout is `docs/research/2026-07-26-slice-j5-3-combat-magic-intent.md`; J5.4
closeout is
`docs/research/2026-07-26-slice-j5-4-local-movement-ownership.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

@ -286,8 +286,15 @@ and spell-cast intent children. Retained bars and graphical input borrow those
owners; direct Runtime commands drive the same operations and snapshots. owners; direct Runtime commands drive the same operations and snapshots.
Runtime tests pass 223/223, App tests pass 3,754/3 skips, the complete Release Runtime tests pass 223/223, App tests pass 3,754/3 skips, the complete Release
suite passes 8,566/5 skips, and the exact-binary seven-checkpoint gate passes suite passes 8,566/5 skips, and the exact-binary seven-checkpoint gate passes
with graceful exits and zero failures. J5.4 local movement/outbound cadence is with graceful exits and zero failures. J5.4 is complete at `aa3f4a60`:
active. `RuntimeLocalPlayerMovementState` owns the exact local movement controller,
construction seam, autorun latch, typed view, and terminal ledger; graphical
input and direct Runtime commands borrow the same state, and outbound
MTS/jump/AP cadence lives in Runtime. Runtime tests pass 303/303, App tests
pass 3,716/3 skips, the complete Release suite passes 8,575/5 skips, and both
the exact-binary lifecycle/reconnect and canonical nine-stop movement gates
pass with graceful exits and zero failures. J5.5 per-session physics and
remote simulation is active.
J0's rollback is J0's rollback is
`git revert b632672e5ccabfb44c551e08f1c411ab2669c44a`. `git revert b632672e5ccabfb44c551e08f1c411ab2669c44a`.
J1's rollback is J1's rollback is
@ -321,6 +328,8 @@ J5.2's rollback is
`git revert f5f7b4177f449ebcad9724bfea263ef73ab60255`. `git revert f5f7b4177f449ebcad9724bfea263ef73ab60255`.
J5.3's rollback is J5.3's rollback is
`git revert 20df9d155db50706a42420d60a9b15861cf4bfe7`. `git revert 20df9d155db50706a42420d60a9b15861cf4bfe7`.
J5.4's rollback is
`git revert aa3f4a60f87f2cbebc3d8ecd5e33d779b7fb13c1`.
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
@ -336,7 +345,9 @@ is `docs/research/2026-07-26-slice-j4-5-gameplay-state-closeout.md`; J5.1
closeout is closeout is
`docs/research/2026-07-26-slice-j5-1-canonical-action-state.md`; J5.2 closeout `docs/research/2026-07-26-slice-j5-1-canonical-action-state.md`; J5.2 closeout
is `docs/research/2026-07-26-slice-j5-2-interaction-transactions.md`; J5.3 is `docs/research/2026-07-26-slice-j5-2-interaction-transactions.md`; J5.3
closeout is `docs/research/2026-07-26-slice-j5-3-combat-magic-intent.md`. The exact G4 closeout is `docs/research/2026-07-26-slice-j5-3-combat-magic-intent.md`; J5.4
closeout is
`docs/research/2026-07-26-slice-j5-4-local-movement-ownership.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

@ -14,7 +14,7 @@ banner cannot silently override the current program state.
[`plans/2026-07-23-world-interaction-completion.md`](plans/2026-07-23-world-interaction-completion.md). [`plans/2026-07-23-world-interaction-completion.md`](plans/2026-07-23-world-interaction-completion.md).
The eight-slice `GameWindow` decomposition and its connected visual matrix The eight-slice `GameWindow` decomposition and its connected visual matrix
are complete. are complete.
- **Current active engineering program:** Slices AI, J0J4, and J5.1J5.3 of - **Current active engineering program:** Slices AI, J0J4, and J5.1J5.4 of
[`plans/2026-07-24-modern-runtime-architecture.md`](plans/2026-07-24-modern-runtime-architecture.md) [`plans/2026-07-24-modern-runtime-architecture.md`](plans/2026-07-24-modern-runtime-architecture.md)
are complete. Production uses prepared world/collision packages, typed are complete. Production uses prepared world/collision packages, typed
residence, retained render-scene/delta submission, bounded frame owners, and residence, retained render-scene/delta submission, bounded frame owners, and
@ -22,8 +22,8 @@ banner cannot silently override the current program state.
Runtime owns canonical session/transport, entity/object lifetime, J4 Runtime owns canonical session/transport, entity/object lifetime, J4
gameplay state, selection/interaction transactions, and combat/magic intent. gameplay state, selection/interaction transactions, and combat/magic intent.
App materialized projections and retained widgets borrow exact Runtime App materialized projections and retained widgets borrow exact Runtime
identity and action owners. J5.4 local movement and outbound cadence is next identity and action owners. J5.5 per-session physics and remote simulation is
in next in
[`plans/2026-07-26-modern-runtime-slice-j5.md`](plans/2026-07-26-modern-runtime-slice-j5.md). [`plans/2026-07-26-modern-runtime-slice-j5.md`](plans/2026-07-26-modern-runtime-slice-j5.md).
- **Completed gates:** R6 locomotion/collision/projectile/teleport/radar and - **Completed gates:** R6 locomotion/collision/projectile/teleport/radar and
the final two-client portal-out/materialization observer comparison (`#218`). the final two-client portal-out/materialization observer comparison (`#218`).
@ -33,14 +33,15 @@ banner cannot silently override the current program state.
`#116` (two narrowed slide-response cases), and divergence rows TS-50/TS-51. `#116` (two narrowed slide-response cases), and divergence rows TS-50/TS-51.
- **Active engineering track:** complete Slice J's coherent Runtime lifetime - **Active engineering track:** complete Slice J's coherent Runtime lifetime
groups, then build the approved Linux/headless multi-session host in Slice K. groups, then build the approved Linux/headless multi-session host in Slice K.
J5.3's exact rollback is J5.4's exact rollback is
`git revert 20df9d155db50706a42420d60a9b15861cf4bfe7`. `git revert aa3f4a60f87f2cbebc3d8ecd5e33d779b7fb13c1`.
- **Divergence audit:** 178 active rows — IA 17, AD 37, AP 85, TS 34, - **Divergence audit:** 178 active rows — IA 17, AD 37, AP 85, TS 34,
and UN 5 — plus the retained retired TS-37 history note. and UN 5 — plus the retained retired TS-37 history note.
- **Latest automated baseline:** Release build succeeds; 8,566 tests pass and - **Latest automated baseline:** Release build succeeds; 8,575 tests pass and
five are intentionally skipped. The exact J5.3 connected lifecycle/reconnect five are intentionally skipped. The exact J5.4 connected lifecycle/reconnect
gate completed two sessions and seven checkpoints with graceful zero-code gate completed two sessions and seven checkpoints, and its canonical
exits, zero failures, zero render-shadow mismatches, and zero pending deltas. nine-stop movement route completed all destinations and movement exercises,
with graceful zero-code exits and zero failures.
## Sources of truth ## Sources of truth

View file

@ -231,7 +231,7 @@ src/
InteractionState.cs -> presentation-free cursor-target mode state InteractionState.cs -> presentation-free cursor-target mode state
RuntimeInteractionTransactionState.cs -> use/appraisal/pickup FIFO, RuntimeInteractionTransactionState.cs -> use/appraisal/pickup FIFO,
exact approach and busy borrower exact approach and busy borrower
-> J3J4 and J5.1J5.3 complete; J5.4 local movement/cadence active -> J3J4 and J5.1J5.4 complete; J5.5 per-session physics 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
@ -504,7 +504,11 @@ combat-target, combat-mode, and spell-cast intent children. Retained bars and
graphical input adapters borrow those exact owners, while direct Runtime graphical input adapters borrow those exact owners, while direct Runtime
commands drive the same operations and snapshots. App retains world/content commands drive the same operations and snapshots. App retains world/content
queries, transport, animation, sound, particles, and response text queries, transport, animation, sound, particles, and response text
(`20df9d15`). J5.4 next moves canonical local movement and outbound cadence. (`20df9d15`). `RuntimeLocalPlayerMovementState` owns the exact local movement
controller, construction seam, autorun latch, typed view, and terminal ledger;
graphical input and direct commands borrow that owner, and outbound
MTS/jump/AP cadence lives in Runtime (`aa3f4a60`). J5.5 next moves per-session
physics and remote simulation.
`GpuWorldState` owns spatial buckets only and retains the exact projection key `GpuWorldState` owns spatial buckets only and retains the exact projection key
through loaded/pending movement, landblock retirement/reload, origin recenter, through loaded/pending movement, landblock retirement/reload, origin recenter,

View file

@ -474,10 +474,10 @@ useful ordering seam, but its ownership status is **partial**.
| 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 | **Complete** | `WorldRevealCoordinator` owns login/portal readiness, generation quiescence, and the exact streaming destination reservation. Login auto-entry and portal completion close only their active generation; stale completion cannot clear its replacement. Delayed portals retain the authored tunnel and centered retail wait notice rather than force-revealing incomplete content. Quiesced destination projections may become spatially resident for renderer preparation while all availability-gated gameplay consumers stay closed. | | World reveal | **Complete** | `WorldRevealCoordinator` owns login/portal readiness, generation quiescence, and the exact streaming destination reservation. Login auto-entry and portal completion close only their active generation; stale completion cannot clear its replacement. Delayed portals retain the authored tunnel and centered retail wait notice rather than force-revealing incomplete content. Quiesced destination projections may become spatially resident for renderer preparation while all availability-gated gameplay consumers stay closed. |
| 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 | **J5.1J5.3 complete; J5.4 active** | 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. Retained bars, input, world/content queries, transport, lighting, toasts, drag/drop, and effects remain App adapters/presentation. No parallel App owner remains (`b298f99f`, `f5f7b417`, `20df9d15`). | | Action/combat/magic/movement | **J5.1J5.4 complete; J5.5 active** | 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. No parallel App owner remains (`b298f99f`, `f5f7b417`, `20df9d15`, `aa3f4a60`). |
| 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 J5.4** | Canonical identity, retained-object lifetime, direct views, ordered entity/object deltas, J4 gameplay state, and J5.1J5.3 action/combat/magic state share failure-safe Runtime owners while exact graphical sidecars stay in App. J5.4J7 move movement/physics/projectiles and remaining world authority before one Runtime composition root. | | Unified `GameEntity` | **Slice J active at J5.5** | Canonical identity, retained-object lifetime, direct views, ordered entity/object deltas, J4 gameplay state, and J5.1J5.4 action/combat/magic/movement state share failure-safe Runtime owners while exact graphical sidecars stay in App. J5.5J7 move physics/projectiles and remaining world authority before one Runtime composition 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`, and J5.3 combat/magic intent at `20df9d15`. J5.4 local movement/outbound cadence 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`, and J5.4 local movement/outbound cadence at `aa3f4a60`. J5.5 per-session physics and remote simulation 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.
--- ---
@ -1754,8 +1754,12 @@ port in any phase — no separate listing here.
> and spell-cast intent children; App bars/input/content/transport and direct > and spell-cast intent children; App bars/input/content/transport and direct
> commands borrow the same state. Its 223 Runtime tests, 3,754 App tests / 3 > commands borrow the same state. Its 223 Runtime tests, 3,754 App tests / 3
> skips, 8,566-test / 5-skip complete Release suite, and exact-binary > skips, 8,566-test / 5-skip complete Release suite, and exact-binary
> seven-checkpoint lifecycle/reconnect gate pass. J5.4 local movement/outbound > seven-checkpoint lifecycle/reconnect gate pass. J5.4 is complete at
> cadence is active. > `aa3f4a60`: Runtime owns one exact local movement/controller/cadence graph,
> and App input plus direct commands borrow it. Its 303 Runtime tests, 3,716
> App tests / 3 skips, 8,575-test / 5-skip complete Release suite,
> exact-binary lifecycle/reconnect gate, and canonical nine-stop movement
> route pass. J5.5 per-session physics and remote simulation 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

@ -228,8 +228,13 @@ residency is `0/0/0` at every stable checkpoint and teardown converges. Slice I
intent children; graphical bars/input and direct commands borrow the same intent children; graphical bars/input and direct commands borrow the same
state and operations. Its 223 Runtime tests, 3,754 App tests / 3 skips, 8,566 state and operations. Its 223 Runtime tests, 3,754 App tests / 3 skips, 8,566
full Release tests / 5 skips, and exact-binary seven-checkpoint full Release tests / 5 skips, and exact-binary seven-checkpoint
lifecycle/reconnect route pass. J5.4 local movement/outbound-cadence lifecycle/reconnect route pass. J5.4 completed at `aa3f4a60`: Runtime owns
ownership is active under the exact local movement controller, construction seam, autorun latch, typed
view, and outbound MTS/jump/AP cadence; App input and direct commands borrow
it. Its 303 Runtime tests, 3,716 App tests / 3 skips, 8,575 full Release
tests / 5 skips, exact-binary lifecycle/reconnect route, and canonical
nine-stop movement route pass. J5.5 per-session physics and remote
simulation 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).
@ -257,6 +262,8 @@ Slice-J5.2 closeout evidence is
[`../research/2026-07-26-slice-j5-2-interaction-transactions.md`](../research/2026-07-26-slice-j5-2-interaction-transactions.md). [`../research/2026-07-26-slice-j5-2-interaction-transactions.md`](../research/2026-07-26-slice-j5-2-interaction-transactions.md).
Slice-J5.3 closeout evidence is Slice-J5.3 closeout evidence is
[`../research/2026-07-26-slice-j5-3-combat-magic-intent.md`](../research/2026-07-26-slice-j5-3-combat-magic-intent.md). [`../research/2026-07-26-slice-j5-3-combat-magic-intent.md`](../research/2026-07-26-slice-j5-3-combat-magic-intent.md).
Slice-J5.4 closeout evidence is
[`../research/2026-07-26-slice-j5-4-local-movement-ownership.md`](../research/2026-07-26-slice-j5-4-local-movement-ownership.md).
The historical exact G4 visual rollback remains The historical exact G4 visual rollback remains
`git revert ef1d263337997bb030eadb7b8e71d73dc659907a`. `git revert ef1d263337997bb030eadb7b8e71d73dc659907a`.

View file

@ -2,7 +2,7 @@
**Date:** 2026-07-24 **Date:** 2026-07-24
**Status:** Slices AI, J0J4, and J5.1J5.3 are complete. Flat-authoritative collision, zero- **Status:** Slices AI, J0J4, and J5.1J5.4 are complete. Flat-authoritative collision, zero-
allocation resolve scratch, parsed-graph removal, connected correctness/ allocation resolve scratch, parsed-graph removal, connected correctness/
lifetime acceptance, and Slice-I closeout landed 2026-07-25. Slices FL were lifetime acceptance, and Slice-I closeout landed 2026-07-25. Slices FL were
explicitly approved 2026-07-24. Slice J0J1 established the enforced Runtime explicitly approved 2026-07-24. Slice J0J1 established the enforced Runtime
@ -16,9 +16,10 @@ ownership into Runtime at `011efbea`; J4.3 moved the coupled magic/player-sheet
owner into Runtime at `d02a12ce`; J4.4 moved character settings/projections owner into Runtime at `d02a12ce`; J4.4 moved character settings/projections
and the shared typed state-command seam at `dcb61efb`; J4.5 closed canonical and the shared typed state-command seam at `dcb61efb`; J4.5 closed canonical
gameplay-state ownership at `89e6b207`. J5 movement, physics, interaction, gameplay-state ownership at `89e6b207`. J5 movement, physics, interaction,
and combat ownership is active at J5.4 after canonical action state and combat ownership is active at J5.5 after canonical action state
(`b298f99f`), interaction transactions (`f5f7b417`), and combat/magic intent (`b298f99f`), interaction transactions (`f5f7b417`), and combat/magic intent
(`20df9d15`) moved to Runtime. (`20df9d15`), and local movement/outbound cadence (`aa3f4a60`) moved to
Runtime.
**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.
@ -1276,7 +1277,8 @@ single Runtime shortcut/spellbook/inventory owners, graphical/no-window
command parity, failure-safe combined ledger, 8,544-test Release suite, command parity, failure-safe combined ledger, 8,544-test Release suite,
exact-binary lifecycle/reconnect gate, and canonical nine-stop route pass. exact-binary lifecycle/reconnect gate, and canonical nine-stop route pass.
J5 movement/physics/interaction/combat ownership is the current execution J5 movement/physics/interaction/combat ownership is the current execution
point. J5.1J5.3 are complete; J5.4 local movement/outbound cadence is active. point. J5.1J5.4 are complete; J5.5 per-session physics and remote simulation
is active.
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

View file

@ -301,12 +301,19 @@ exact attack, target, combat-mode, and spell-cast intent children while App
bars, input adapters, content queries, and transport borrow them. Its 223 bars, input adapters, content queries, and transport borrow them. Its 223
Runtime tests, 3,754 App tests / 3 skips, 8,566 complete Release tests / 5 Runtime tests, 3,754 App tests / 3 skips, 8,566 complete Release tests / 5
skips, and exact-binary seven-checkpoint lifecycle/reconnect gate pass. J5.4 skips, and exact-binary seven-checkpoint lifecycle/reconnect gate pass. J5.4
local movement/outbound cadence is next. Evidence: completed at `aa3f4a60`: Runtime owns the exact local movement controller,
construction seam, autorun latch, typed view, and outbound MTS/jump/AP cadence;
App input and direct commands borrow the same owner. Its 303 Runtime tests,
3,716 App tests / 3 skips, 8,575 complete Release tests / 5 skips,
exact-binary lifecycle/reconnect gate, and canonical nine-stop movement route
pass. J5.5 per-session physics and remote simulation is next. Evidence:
[`../research/2026-07-26-slice-j5-1-canonical-action-state.md`](../research/2026-07-26-slice-j5-1-canonical-action-state.md) [`../research/2026-07-26-slice-j5-1-canonical-action-state.md`](../research/2026-07-26-slice-j5-1-canonical-action-state.md)
and and
[`../research/2026-07-26-slice-j5-2-interaction-transactions.md`](../research/2026-07-26-slice-j5-2-interaction-transactions.md) [`../research/2026-07-26-slice-j5-2-interaction-transactions.md`](../research/2026-07-26-slice-j5-2-interaction-transactions.md)
and and
[`../research/2026-07-26-slice-j5-3-combat-magic-intent.md`](../research/2026-07-26-slice-j5-3-combat-magic-intent.md). [`../research/2026-07-26-slice-j5-3-combat-magic-intent.md`](../research/2026-07-26-slice-j5-3-combat-magic-intent.md)
and
[`../research/2026-07-26-slice-j5-4-local-movement-ownership.md`](../research/2026-07-26-slice-j5-4-local-movement-ownership.md).
- Move presentation-free movement interpretation, authoritative/predicted - Move presentation-free movement interpretation, authoritative/predicted
physics state, selection identity, approach/use transactions, combat intent, physics state, selection identity, approach/use transactions, combat intent,

View file

@ -1,6 +1,6 @@
# Modern runtime Slice J5 — movement, physics, interaction, and combat # Modern runtime Slice J5 — movement, physics, interaction, and combat
**Status:** ACTIVE — J5.1J5.3 complete; J5.4 next **Status:** ACTIVE — J5.1J5.4 complete; J5.5 next
**Parent:** `2026-07-25-modern-runtime-slice-j.md`, J5 **Parent:** `2026-07-25-modern-runtime-slice-j.md`, J5
**Production base:** `2c67a2c3` **Production base:** `2c67a2c3`
**Authorization:** the user approved Slices FL, including the Slice J **Authorization:** the user approved Slices FL, including the Slice J
@ -88,8 +88,8 @@ commands to Runtime. The camera may not write the player heading directly.
| J5.1 canonical action state | complete | `b298f99f913249d299796e6a71f7a9b6b283ac1a`; one Runtime selection/combat/target-mode owner; 182 Runtime tests, 3,779 App tests / 3 skips, 8,550 complete Release tests / 5 skips, exact-binary connected lifecycle/reconnect pass | | J5.1 canonical action state | complete | `b298f99f913249d299796e6a71f7a9b6b283ac1a`; one Runtime selection/combat/target-mode owner; 182 Runtime tests, 3,779 App tests / 3 skips, 8,550 complete Release tests / 5 skips, exact-binary connected lifecycle/reconnect pass |
| J5.2 interaction transactions | complete | `f5f7b4177f449ebcad9724bfea263ef73ab60255`; one Runtime transaction owner; 197 Runtime tests, 3,775 App tests / 3 skips, 8,561 complete Release tests / 5 skips, exact-binary connected lifecycle/reconnect pass | | J5.2 interaction transactions | complete | `f5f7b4177f449ebcad9724bfea263ef73ab60255`; one Runtime transaction owner; 197 Runtime tests, 3,775 App tests / 3 skips, 8,561 complete Release tests / 5 skips, exact-binary connected lifecycle/reconnect pass |
| J5.3 combat and magic intent | complete | `20df9d155db50706a42420d60a9b15861cf4bfe7`; exact Runtime attack/mode/target/cast owners; 223 Runtime tests, 3,754 App tests / 3 skips, 8,566 complete Release tests / 5 skips, exact-binary connected lifecycle/reconnect pass | | J5.3 combat and magic intent | complete | `20df9d155db50706a42420d60a9b15861cf4bfe7`; exact Runtime attack/mode/target/cast owners; 223 Runtime tests, 3,754 App tests / 3 skips, 8,566 complete Release tests / 5 skips, exact-binary connected lifecycle/reconnect pass |
| J5.4 local movement and outbound cadence | active | controller, body, movement managers, MTS/AP/jump cadence | | J5.4 local movement and outbound cadence | complete | `aa3f4a60f87f2cbebc3d8ecd5e33d779b7fb13c1`; one Runtime movement/controller/cadence owner; 303 Runtime tests, 3,716 App tests / 3 skips, 8,575 complete Release tests / 5 skips, exact-binary lifecycle/reconnect and nine-stop movement gates pass |
| J5.5 per-session physics and remote simulation | pending | engine/scratch/shadows/remote canonical body | | J5.5 per-session physics and remote simulation | active | engine/scratch/shadows/remote canonical body |
| J5.6 projectile runtime | pending | canonical component/simulation plus App projection acknowledgements | | J5.6 projectile runtime | pending | canonical component/simulation plus App projection acknowledgements |
| J5.7 combined cleanup and closeout | pending | no mirrors, no-window parity, teardown, connected and visual gates | | J5.7 combined cleanup and closeout | pending | no mirrors, no-window parity, teardown, connected and visual gates |
@ -297,6 +297,27 @@ Gate:
- target-facing and movement-aborts-repeat ordering; - target-facing and movement-aborts-repeat ordering;
- zero added per-frame allocations after warmup. - zero added per-frame allocations after warmup.
**Completed 2026-07-26 at
`aa3f4a60f87f2cbebc3d8ecd5e33d779b7fb13c1`.**
`RuntimeLocalPlayerMovementState` constructs and owns the exact
`PlayerMovementController`, construction-time motion seam, autorun latch,
typed movement view, and terminal ledger. The movement controller and
`LocalPlayerOutboundController` now live in `AcDream.Runtime.Gameplay`.
Graphical input samples physical state and borrows that owner; direct Runtime
commands mutate the same state without an App/input detour. Character
run/jump skill projections enter through typed construction options rather
than process environment reads. Runtime tests pass 303/303, App tests pass
3,716/3 skips, and the complete Release suite passes 8,575/5 skips. The
exact-binary connected lifecycle/reconnect report
`logs/connected-world-gate-20260726-123425/report.json` passes both sessions,
7/7 readiness checkpoints, graceful code-zero exits, and zero failures. The
canonical route
`logs/connected-r6-soak-20260726-124049.report.json` passes all nine
destinations; forward, jump, combat, and authoritative movement-truth
exercises pass at Caul, Holtburg, and the Caul return before graceful
shutdown. Evidence:
[`../research/2026-07-26-slice-j5-4-local-movement-ownership.md`](../research/2026-07-26-slice-j5-4-local-movement-ownership.md).
## J5.5 — per-session physics and remote simulation ## J5.5 — per-session physics and remote simulation
Add a Runtime physics owner that constructs one `PhysicsEngine` per runtime Add a Runtime physics owner that constructs one `PhysicsEngine` per runtime
@ -429,6 +450,12 @@ J5.3 rollback:
git revert 20df9d155db50706a42420d60a9b15861cf4bfe7 git revert 20df9d155db50706a42420d60a9b15861cf4bfe7
``` ```
J5.4 rollback:
```text
git revert aa3f4a60f87f2cbebc3d8ecd5e33d779b7fb13c1
```
## Acceptance ## Acceptance
J5 is complete only when: J5 is complete only when:

View file

@ -133,7 +133,7 @@ This preserves the accepted acdream frame order:
- TS-33's already-recorded possible same-update MTS/AP ordering difference is - TS-33's already-recorded possible same-update MTS/AP ordering difference is
preserved; this ownership move neither widens nor hides it. preserved; this ownership move neither widens nor hides it.
## Automated evidence required before closeout ## Closeout evidence
- Runtime state/view identity, two-instance isolation, construction lease, - Runtime state/view identity, two-instance isolation, construction lease,
terminal convergence, typed movement skills, and zero-allocation snapshots; terminal convergence, typed movement skills, and zero-allocation snapshots;
@ -144,3 +144,30 @@ This preserves the accepted acdream frame order:
portal/reset, target-facing, and repeat-abort tests; portal/reset, target-facing, and repeat-abort tests;
- Release build, complete solution tests, exact-binary connected lifecycle, - Release build, complete solution tests, exact-binary connected lifecycle,
and canonical movement route. and canonical movement route.
All required gates pass on production commit
`aa3f4a60f87f2cbebc3d8ecd5e33d779b7fb13c1`:
- Runtime: 303 passed;
- App: 3,716 passed / 3 intentionally skipped;
- complete Release solution: 8,575 passed / 5 intentionally skipped;
- connected lifecycle/reconnect:
`logs/connected-world-gate-20260726-123425/report.json`, exact source/binary
commit, two graceful code-zero sessions, 7/7 readiness checkpoints, and
zero failures;
- canonical movement route:
`logs/connected-r6-soak-20260726-124049.report.json`, exact source/binary
commit, all nine destinations materialized, forward/jump/combat/movement-
truth exercises passed at Caul, Holtburg, and Caul return, and graceful
code-zero shutdown.
The separate baseline-test correction `3456dff0` makes the retained streaming
test accept the already-shipped Slice-E cursor-budget contract: retirement
may converge in the current or a following tick. It is not part of the J5.4
production rollback.
Exact J5.4 rollback:
```text
git revert aa3f4a60f87f2cbebc3d8ecd5e33d779b7fb13c1
```