From fce8e7b18efe604fd6b96dba9fdcda7c913a6ef6 Mon Sep 17 00:00:00 2001 From: Erik Date: Sun, 26 Jul 2026 13:59:06 +0200 Subject: [PATCH] docs(runtime): close per-session physics ownership Record J5.5 production SHA, complete Release baseline, exact-binary lifecycle/reconnect and nine-stop collision/movement evidence, and rollback. Synchronize architecture, roadmap, milestones, AGENTS/CLAUDE, and advance the active program to J5.6 projectile runtime. Co-authored-by: Codex --- AGENTS.md | 17 ++++++++-- CLAUDE.md | 17 ++++++++-- docs/README.md | 15 ++++----- docs/architecture/acdream-architecture.md | 16 ++++++++-- docs/architecture/code-structure.md | 5 +-- docs/plans/2026-04-11-roadmap.md | 9 ++++-- docs/plans/2026-05-12-milestones.md | 11 +++++-- .../2026-07-24-modern-runtime-architecture.md | 11 +++---- .../2026-07-25-modern-runtime-slice-j.md | 11 +++++-- .../2026-07-26-modern-runtime-slice-j5.md | 31 +++++++++++++++++-- ...-26-slice-j5-5-physics-remote-ownership.md | 19 ++++++++++-- 11 files changed, 127 insertions(+), 35 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 23cb7e5f..93cf7f88 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -295,8 +295,15 @@ 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. +pass with graceful exits and zero failures. J5.5 is complete at `7e6033d0`: +`RuntimePhysicsState` owns the sole per-session engine, production cache/cell +graph, transition scratch, shadow registry, typed collision admissions, +canonical body/host/remote components, ordinary/remote worksets, simulation, +and full-cell commits. App publishes prepared collision and projects committed +snapshots only. Runtime tests pass 314/314, App tests pass 3,718/3 skips, the +complete Release suite passes 8,588/5 skips, and both exact-binary +lifecycle/reconnect and canonical nine-stop collision/movement gates pass +with graceful exits and zero failures. J5.6 projectile runtime is active. J0's rollback is `git revert b632672e5ccabfb44c551e08f1c411ab2669c44a`. J1's rollback is @@ -332,6 +339,8 @@ J5.3's rollback is `git revert 20df9d155db50706a42420d60a9b15861cf4bfe7`. J5.4's rollback is `git revert aa3f4a60f87f2cbebc3d8ecd5e33d779b7fb13c1`. +J5.5's rollback is +`git revert 7e6033d0adcd0b572c20e89dd275746fb442d52f`. Slice H's retained UI/frame, bounded-light, and pooled/borrowed/direct network work is complete; the exact seven-checkpoint connected lifecycle/reconnect gate passes. Slice I is closed in @@ -349,7 +358,9 @@ closeout is 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`; J5.4 closeout is -`docs/research/2026-07-26-slice-j5-4-local-movement-ownership.md`. The exact G4 +`docs/research/2026-07-26-slice-j5-4-local-movement-ownership.md`; J5.5 +closeout is +`docs/research/2026-07-26-slice-j5-5-physics-remote-ownership.md`. The exact G4 visual rollback is `git revert ef1d263337997bb030eadb7b8e71d73dc659907a`; do not revert G3 or the portal-warmup corrections. Evidence: diff --git a/CLAUDE.md b/CLAUDE.md index 7a1dd57e..ce6d921e 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -293,8 +293,15 @@ 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. +pass with graceful exits and zero failures. J5.5 is complete at `7e6033d0`: +`RuntimePhysicsState` owns the sole per-session engine, production cache/cell +graph, transition scratch, shadow registry, typed collision admissions, +canonical body/host/remote components, ordinary/remote worksets, simulation, +and full-cell commits. App publishes prepared collision and projects committed +snapshots only. Runtime tests pass 314/314, App tests pass 3,718/3 skips, the +complete Release suite passes 8,588/5 skips, and both exact-binary +lifecycle/reconnect and canonical nine-stop collision/movement gates pass +with graceful exits and zero failures. J5.6 projectile runtime is active. J0's rollback is `git revert b632672e5ccabfb44c551e08f1c411ab2669c44a`. J1's rollback is @@ -330,6 +337,8 @@ J5.3's rollback is `git revert 20df9d155db50706a42420d60a9b15861cf4bfe7`. J5.4's rollback is `git revert aa3f4a60f87f2cbebc3d8ecd5e33d779b7fb13c1`. +J5.5's rollback is +`git revert 7e6033d0adcd0b572c20e89dd275746fb442d52f`. Slice H's retained UI/frame, bounded-light, and pooled/borrowed/direct network work is complete; the exact seven-checkpoint connected lifecycle/reconnect gate passes. Slice I is closed in @@ -347,7 +356,9 @@ closeout is 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`; J5.4 closeout is -`docs/research/2026-07-26-slice-j5-4-local-movement-ownership.md`. The exact G4 +`docs/research/2026-07-26-slice-j5-4-local-movement-ownership.md`; J5.5 +closeout is +`docs/research/2026-07-26-slice-j5-5-physics-remote-ownership.md`. The exact G4 visual rollback is `git revert ef1d263337997bb030eadb7b8e71d73dc659907a`; do not revert G3 or the portal-warmup corrections. Evidence: diff --git a/docs/README.md b/docs/README.md index ca77c0a1..a304bcb7 100644 --- a/docs/README.md +++ b/docs/README.md @@ -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). The eight-slice `GameWindow` decomposition and its connected visual matrix are complete. -- **Current active engineering program:** Slices A–I, J0–J4, and J5.1–J5.4 of +- **Current active engineering program:** Slices A–I, J0–J4, and J5.1–J5.5 of [`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 residence, retained render-scene/delta submission, bounded frame owners, and @@ -22,8 +22,9 @@ banner cannot silently override the current program state. Runtime owns canonical session/transport, entity/object lifetime, J4 gameplay state, selection/interaction transactions, and combat/magic intent. App materialized projections and retained widgets borrow exact Runtime - identity and action owners. J5.5 per-session physics and remote simulation is - next in + identity and action owners. Runtime also owns the sole per-session physics, + collision, body/host, remote simulation, and cell-commit graph. J5.6 + projectile runtime is next in [`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 the final two-client portal-out/materialization observer comparison (`#218`). @@ -33,12 +34,12 @@ banner cannot silently override the current program state. `#116` (two narrowed slide-response cases), and divergence rows TS-50/TS-51. - **Active engineering track:** complete Slice J's coherent Runtime lifetime groups, then build the approved Linux/headless multi-session host in Slice K. - J5.4's exact rollback is - `git revert aa3f4a60f87f2cbebc3d8ecd5e33d779b7fb13c1`. + J5.5's exact rollback is + `git revert 7e6033d0adcd0b572c20e89dd275746fb442d52f`. - **Divergence audit:** 178 active rows — IA 17, AD 37, AP 85, TS 34, and UN 5 — plus the retained retired TS-37 history note. -- **Latest automated baseline:** Release build succeeds; 8,575 tests pass and - five are intentionally skipped. The exact J5.4 connected lifecycle/reconnect +- **Latest automated baseline:** Release build succeeds; 8,588 tests pass and + five are intentionally skipped. The exact J5.5 connected lifecycle/reconnect gate completed two sessions and seven checkpoints, and its canonical nine-stop movement route completed all destinations and movement exercises, with graceful zero-code exits and zero failures. diff --git a/docs/architecture/acdream-architecture.md b/docs/architecture/acdream-architecture.md index 837dd266..f58f2047 100644 --- a/docs/architecture/acdream-architecture.md +++ b/docs/architecture/acdream-architecture.md @@ -231,7 +231,12 @@ src/ InteractionState.cs -> presentation-free cursor-target mode state RuntimeInteractionTransactionState.cs -> use/appraisal/pickup FIFO, exact approach and busy borrower - -> J3–J4 and J5.1–J5.4 complete; J5.5 per-session physics active + Physics/ + RuntimePhysicsState.cs -> per-session engine/cache/scratch/shadows, + collision receipts, bodies/hosts/worksets + RuntimeRemotePhysicsUpdater.cs -> presentation-free remote simulation + RuntimeOrdinaryPhysicsUpdater.cs -> presentation-free object simulation + -> J3–J4 and J5.1–J5.5 complete; J5.6 projectile runtime active -> may reference Core, Core.Net, Content, and Plugin.Abstractions only -> must never reference App, UI, Silk.NET, OpenAL, Arch, or ImGui @@ -507,8 +512,13 @@ queries, transport, animation, sound, particles, and response text (`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. +MTS/jump/AP cadence lives in Runtime (`aa3f4a60`). One +`RuntimePhysicsState` now owns the per-session engine, production cache/cell +graph, transition scratch, shadow registry, typed collision admissions, +canonical body/host/remote components, ordinary/remote worksets, simulation, +and full-cell commits. App supplies prepared collision and animation/shape +inputs, then projects committed snapshots (`7e6033d0`). J5.6 next moves the +projectile component and prediction lifecycle. `GpuWorldState` owns spatial buckets only and retains the exact projection key through loaded/pending movement, landblock retirement/reload, origin recenter, diff --git a/docs/architecture/code-structure.md b/docs/architecture/code-structure.md index 22b2e2fb..eeb04409 100644 --- a/docs/architecture/code-structure.md +++ b/docs/architecture/code-structure.md @@ -474,10 +474,11 @@ 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`). | | 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. | -| Action/combat/magic/movement | **J5.1–J5.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`). | +| Action/combat/magic/movement | **J5.1–J5.4 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. No parallel App owner remains (`b298f99f`, `f5f7b417`, `20df9d15`, `aa3f4a60`). | +| 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`). | | 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`). | -| Unified `GameEntity` | **Slice J active at J5.5** | Canonical identity, retained-object lifetime, direct views, ordered entity/object deltas, J4 gameplay state, and J5.1–J5.4 action/combat/magic/movement state share failure-safe Runtime owners while exact graphical sidecars stay in App. J5.5–J7 move physics/projectiles and remaining world authority before one Runtime composition root. | +| Unified `GameEntity` | **Slice J active at J5.6** | Canonical identity, retained-object lifetime, direct views, ordered entity/object deltas, J4 gameplay state, J5.1–J5.4 action/combat/magic/movement state, and J5.5 physics/remote simulation share failure-safe Runtime owners while exact graphical sidecars stay in App. J5.6–J7 move projectiles and finish cleanup before one Runtime composition root. | ### 4.3 Revised extraction sequence diff --git a/docs/plans/2026-04-11-roadmap.md b/docs/plans/2026-04-11-roadmap.md index beb8e36a..64a06814 100644 --- a/docs/plans/2026-04-11-roadmap.md +++ b/docs/plans/2026-04-11-roadmap.md @@ -1,6 +1,6 @@ # 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`, 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. +**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`, and J5.5 per-session physics/remote simulation at `7e6033d0`. J5.6 projectile runtime 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. --- @@ -1759,7 +1759,12 @@ port in any phase — no separate listing here. > 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. +> route pass. J5.5 is complete at `7e6033d0`: Runtime owns the sole +> engine/cache/scratch/shadow/collision/body/host/remote/workset graph while +> App publishes prepared collision and projects committed snapshots. Its 314 +> Runtime tests, 3,718 App tests / 3 skips, 8,588-test / 5-skip complete +> Release suite, exact-binary lifecycle/reconnect gate, and canonical +> nine-stop collision/movement route pass. J5.6 projectile runtime is active. > The historical exact cutover > rollback remains > `git revert ef1d263337997bb030eadb7b8e71d73dc659907a`. Slice H is complete: diff --git a/docs/plans/2026-05-12-milestones.md b/docs/plans/2026-05-12-milestones.md index f63e5302..4a4083aa 100644 --- a/docs/plans/2026-05-12-milestones.md +++ b/docs/plans/2026-05-12-milestones.md @@ -233,8 +233,13 @@ residency is `0/0/0` at every stable checkpoint and teardown converges. Slice I 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 + nine-stop movement route pass. J5.5 completed at `7e6033d0`: Runtime owns + one per-session engine/cache/cell graph/scratch/shadow/collision admission + graph plus canonical bodies, hosts, remotes, worksets, simulation, and cell + commits; App publishes prepared collision and projects committed snapshots. + Its 314 Runtime tests, 3,718 App tests / 3 skips, 8,588 full Release tests / + 5 skips, exact-binary lifecycle/reconnect route, and canonical nine-stop + collision/movement route pass. J5.6 projectile ownership is active under [`2026-07-25-modern-runtime-slice-j.md`](2026-07-25-modern-runtime-slice-j.md). Slice-I closeout evidence is [`../research/2026-07-25-slice-i7-closeout.md`](../research/2026-07-25-slice-i7-closeout.md). @@ -264,6 +269,8 @@ 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). 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). +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). The historical exact G4 visual rollback remains `git revert ef1d263337997bb030eadb7b8e71d73dc659907a`. diff --git a/docs/plans/2026-07-24-modern-runtime-architecture.md b/docs/plans/2026-07-24-modern-runtime-architecture.md index 9aa509ac..1c040fbf 100644 --- a/docs/plans/2026-07-24-modern-runtime-architecture.md +++ b/docs/plans/2026-07-24-modern-runtime-architecture.md @@ -2,7 +2,7 @@ **Date:** 2026-07-24 -**Status:** Slices A–I, J0–J4, and J5.1–J5.4 are complete. Flat-authoritative collision, zero- +**Status:** Slices A–I, J0–J4, and J5.1–J5.5 are complete. Flat-authoritative collision, zero- allocation resolve scratch, parsed-graph removal, connected correctness/ lifetime acceptance, and Slice-I closeout landed 2026-07-25. Slices F–L were explicitly approved 2026-07-24. Slice J0–J1 established the enforced Runtime @@ -16,10 +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 and the shared typed state-command seam at `dcb61efb`; J4.5 closed canonical gameplay-state ownership at `89e6b207`. J5 movement, physics, interaction, -and combat ownership is active at J5.5 after canonical action state +and combat ownership is active at J5.6 after canonical action state (`b298f99f`), interaction transactions (`f5f7b417`), and combat/magic intent -(`20df9d15`), and local movement/outbound cadence (`aa3f4a60`) moved to -Runtime. +(`20df9d15`), local movement/outbound cadence (`aa3f4a60`), and per-session +physics/remote simulation (`7e6033d0`) moved to Runtime. **Scope:** Reconcile and sequence the existing Modern Pipeline (`MP`) and Linux/headless (`LH`) tracks using the 2026-07-24 connected performance audit. @@ -1277,8 +1277,7 @@ single Runtime shortcut/spellbook/inventory owners, graphical/no-window command parity, failure-safe combined ledger, 8,544-test Release suite, exact-binary lifecycle/reconnect gate, and canonical nine-stop route pass. J5 movement/physics/interaction/combat ownership is the current execution -point. J5.1–J5.4 are complete; J5.5 per-session physics and remote simulation -is active. +point. J5.1–J5.5 are complete; J5.6 projectile runtime is active. Evidence: [`../research/2026-07-25-slice-g5-production-profile.md`](../research/2026-07-25-slice-g5-production-profile.md) and diff --git a/docs/plans/2026-07-25-modern-runtime-slice-j.md b/docs/plans/2026-07-25-modern-runtime-slice-j.md index 06ba49a1..c89ab167 100644 --- a/docs/plans/2026-07-25-modern-runtime-slice-j.md +++ b/docs/plans/2026-07-25-modern-runtime-slice-j.md @@ -306,14 +306,21 @@ 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: +pass. J5.5 completed at `7e6033d0`: Runtime owns the per-session engine/cache/ +scratch/shadow/collision/body/host/remote/workset graph; App publishes +prepared collision and projects committed snapshots. Its 314 Runtime tests, +3,718 App tests / 3 skips, 8,588 complete Release tests / 5 skips, +exact-binary lifecycle/reconnect gate, and canonical nine-stop collision/ +movement route pass. J5.6 projectile runtime 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) and [`../research/2026-07-26-slice-j5-2-interaction-transactions.md`](../research/2026-07-26-slice-j5-2-interaction-transactions.md) and [`../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). +[`../research/2026-07-26-slice-j5-4-local-movement-ownership.md`](../research/2026-07-26-slice-j5-4-local-movement-ownership.md) +and +[`../research/2026-07-26-slice-j5-5-physics-remote-ownership.md`](../research/2026-07-26-slice-j5-5-physics-remote-ownership.md). - Move presentation-free movement interpretation, authoritative/predicted physics state, selection identity, approach/use transactions, combat intent, diff --git a/docs/plans/2026-07-26-modern-runtime-slice-j5.md b/docs/plans/2026-07-26-modern-runtime-slice-j5.md index 5c4dbd34..c194be28 100644 --- a/docs/plans/2026-07-26-modern-runtime-slice-j5.md +++ b/docs/plans/2026-07-26-modern-runtime-slice-j5.md @@ -1,6 +1,6 @@ # Modern runtime Slice J5 — movement, physics, interaction, and combat -**Status:** ACTIVE — J5.1–J5.4 complete; J5.5 next +**Status:** ACTIVE — J5.1–J5.5 complete; J5.6 next **Parent:** `2026-07-25-modern-runtime-slice-j.md`, J5 **Production base:** `2c67a2c3` **Authorization:** the user approved Slices F–L, including the Slice J @@ -89,8 +89,8 @@ commands to Runtime. The camera may not write the player heading directly. | 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.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 | active | engine/scratch/shadows/remote canonical body | -| J5.6 projectile runtime | pending | canonical component/simulation plus App projection acknowledgements | +| J5.5 per-session physics and remote simulation | complete | `7e6033d0adcd0b572c20e89dd275746fb442d52f`; one Runtime engine/cache/scratch/shadow/body/host/remote/workset owner; 314 Runtime tests, 3,718 App tests / 3 skips, 8,588 complete Release tests / 5 skips, exact-binary lifecycle/reconnect and nine-stop collision/movement gates pass | +| J5.6 projectile runtime | active | 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.1 — canonical action state @@ -349,6 +349,25 @@ Gate: - hidden/pending/rehydration, teleport correction, delete/GUID reuse; - two concurrent Runtime instances prove scratch/shadow isolation. +**Completed 2026-07-26 at +`7e6033d0adcd0b572c20e89dd275746fb442d52f`.** +`RuntimeEntityObjectLifetime` now constructs one `RuntimePhysicsState`, which +owns the sole production `PhysicsEngine`, data cache/cell graph, transition +scratch, shadow registry, collision admissions, canonical bodies and hosts, +remote components, ordinary/remote worksets, simulation, and full-cell +commits. App publishes prepared collision through generation-scoped receipts, +supplies DAT/animation inputs, and projects immutable committed snapshots; it +does not construct or run a parallel solver. Runtime tests pass 314/314, App +tests pass 3,718/3 skips, and the complete Release suite passes 8,588/5 skips. +The exact-binary lifecycle/reconnect report +`logs/connected-world-gate-20260726-134107/report.json` passes both sessions, +7/7 readiness checkpoints, graceful code-zero exits, and zero failures. The +canonical route +`logs/connected-r6-soak-20260726-134638.report.json` matches source/binary, +passes all nine render/collision-ready destinations and movement exercises, +and exits gracefully with code zero and zero failures. Evidence: +[`../research/2026-07-26-slice-j5-5-physics-remote-ownership.md`](../research/2026-07-26-slice-j5-5-physics-remote-ownership.md). + ## J5.6 — projectile runtime Move projectile component identity, prediction versions, and simulation into @@ -456,6 +475,12 @@ J5.4 rollback: git revert aa3f4a60f87f2cbebc3d8ecd5e33d779b7fb13c1 ``` +J5.5 rollback: + +```text +git revert 7e6033d0adcd0b572c20e89dd275746fb442d52f +``` + ## Acceptance J5 is complete only when: diff --git a/docs/research/2026-07-26-slice-j5-5-physics-remote-ownership.md b/docs/research/2026-07-26-slice-j5-5-physics-remote-ownership.md index 8c96d293..22333011 100644 --- a/docs/research/2026-07-26-slice-j5-5-physics-remote-ownership.md +++ b/docs/research/2026-07-26-slice-j5-5-physics-remote-ownership.md @@ -196,5 +196,20 @@ Automated gate on the J5.5 production tree: production cache, does not contain the remote/ordinary transition solver, and cannot directly admit/remove streamed landblock collision. -Connected lifecycle/reconnect and the canonical movement/collision route are -the exact-binary post-commit gate. +Connected gates pass on exact production commit +`7e6033d0adcd0b572c20e89dd275746fb442d52f`: + +- `logs/connected-world-gate-20260726-134107/report.json` completed capped + login and uncapped fresh-process reconnect, all 7 readiness checkpoints, + graceful code-zero exits, and zero failures; +- `logs/connected-r6-soak-20260726-134638.report.json` matched source and + binary SHA, materialized all 9 destinations with render and collision ready, + passed forward/jump/combat/authoritative movement exercises at Caul, + Holtburg, and Caul return, and exited gracefully with code zero and zero + failures. + +Exact production rollback: + +```text +git revert 7e6033d0adcd0b572c20e89dd275746fb442d52f +```