docs(runtime): close simulation ownership
This commit is contained in:
parent
cdee7a4b49
commit
4743f7c409
11 changed files with 281 additions and 33 deletions
16
AGENTS.md
16
AGENTS.md
|
|
@ -310,7 +310,16 @@ App resolves immutable DAT shape data and projects committed frames. Runtime
|
||||||
tests pass 317/317, App tests pass 3,718/3 skips, 47 focused Core projectile
|
tests pass 317/317, App tests pass 3,718/3 skips, 47 focused Core projectile
|
||||||
tests pass, the complete Release suite passes 8,591/5 skips, and the exact
|
tests pass, the complete Release suite passes 8,591/5 skips, and the exact
|
||||||
arrow/bolt/spell, lifecycle/reconnect, and canonical nine-stop gates pass with
|
arrow/bolt/spell, lifecycle/reconnect, and canonical nine-stop gates pass with
|
||||||
graceful exits and zero failures. J5.7 cleanup and closeout is active.
|
graceful exits and zero failures. J5.7 and J5 are complete at `cdee7a4b`:
|
||||||
|
Runtime owns accepted remote-body/vector activation, final simulation
|
||||||
|
retirement, terminal physics/shadow/workset cleanup, and one combined
|
||||||
|
entity/object/gameplay/physics ownership ledger. The Runtime-only fixture
|
||||||
|
drives movement, use, combat, casting, and projectiles without loading
|
||||||
|
presentation/backend assemblies. Runtime tests pass 323/323, App tests pass
|
||||||
|
3,717/3 skips, the complete Release suite passes 8,596/5 skips, and the exact
|
||||||
|
lifecycle/reconnect plus canonical nine-stop gates match binary/source,
|
||||||
|
converge every backlog, and exit gracefully with zero failures. J6
|
||||||
|
world/portal/environment and projection-handshake ownership is active.
|
||||||
J0's rollback is
|
J0's rollback is
|
||||||
`git revert b632672e5ccabfb44c551e08f1c411ab2669c44a`.
|
`git revert b632672e5ccabfb44c551e08f1c411ab2669c44a`.
|
||||||
J1's rollback is
|
J1's rollback is
|
||||||
|
|
@ -350,6 +359,8 @@ J5.5's rollback is
|
||||||
`git revert 7e6033d0adcd0b572c20e89dd275746fb442d52f`.
|
`git revert 7e6033d0adcd0b572c20e89dd275746fb442d52f`.
|
||||||
J5.6's rollback is
|
J5.6's rollback is
|
||||||
`git revert 2aee33569f0268d7bc0f4f52437dfa0b405432a4`.
|
`git revert 2aee33569f0268d7bc0f4f52437dfa0b405432a4`.
|
||||||
|
J5.7's rollback is
|
||||||
|
`git revert cdee7a4b49addb5e1500753f6a885f7c899bd0f0`.
|
||||||
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
|
||||||
|
|
@ -371,7 +382,8 @@ closeout is
|
||||||
closeout is
|
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`. The exact G4
|
`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
|
||||||
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:
|
||||||
|
|
|
||||||
16
CLAUDE.md
16
CLAUDE.md
|
|
@ -308,7 +308,16 @@ App resolves immutable DAT shape data and projects committed frames. Runtime
|
||||||
tests pass 317/317, App tests pass 3,718/3 skips, 47 focused Core projectile
|
tests pass 317/317, App tests pass 3,718/3 skips, 47 focused Core projectile
|
||||||
tests pass, the complete Release suite passes 8,591/5 skips, and the exact
|
tests pass, the complete Release suite passes 8,591/5 skips, and the exact
|
||||||
arrow/bolt/spell, lifecycle/reconnect, and canonical nine-stop gates pass with
|
arrow/bolt/spell, lifecycle/reconnect, and canonical nine-stop gates pass with
|
||||||
graceful exits and zero failures. J5.7 cleanup and closeout is active.
|
graceful exits and zero failures. J5.7 and J5 are complete at `cdee7a4b`:
|
||||||
|
Runtime owns accepted remote-body/vector activation, final simulation
|
||||||
|
retirement, terminal physics/shadow/workset cleanup, and one combined
|
||||||
|
entity/object/gameplay/physics ownership ledger. The Runtime-only fixture
|
||||||
|
drives movement, use, combat, casting, and projectiles without loading
|
||||||
|
presentation/backend assemblies. Runtime tests pass 323/323, App tests pass
|
||||||
|
3,717/3 skips, the complete Release suite passes 8,596/5 skips, and the exact
|
||||||
|
lifecycle/reconnect plus canonical nine-stop gates match binary/source,
|
||||||
|
converge every backlog, and exit gracefully with zero failures. J6
|
||||||
|
world/portal/environment and projection-handshake ownership is active.
|
||||||
J0's rollback is
|
J0's rollback is
|
||||||
`git revert b632672e5ccabfb44c551e08f1c411ab2669c44a`.
|
`git revert b632672e5ccabfb44c551e08f1c411ab2669c44a`.
|
||||||
J1's rollback is
|
J1's rollback is
|
||||||
|
|
@ -348,6 +357,8 @@ J5.5's rollback is
|
||||||
`git revert 7e6033d0adcd0b572c20e89dd275746fb442d52f`.
|
`git revert 7e6033d0adcd0b572c20e89dd275746fb442d52f`.
|
||||||
J5.6's rollback is
|
J5.6's rollback is
|
||||||
`git revert 2aee33569f0268d7bc0f4f52437dfa0b405432a4`.
|
`git revert 2aee33569f0268d7bc0f4f52437dfa0b405432a4`.
|
||||||
|
J5.7's rollback is
|
||||||
|
`git revert cdee7a4b49addb5e1500753f6a885f7c899bd0f0`.
|
||||||
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
|
||||||
|
|
@ -369,7 +380,8 @@ closeout is
|
||||||
closeout is
|
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`. The exact G4
|
`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
|
||||||
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:
|
||||||
|
|
|
||||||
|
|
@ -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 A–I, J0–J4, and J5.1–J5.6 of
|
- **Current active engineering program:** Slices A–I and J0–J5 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
|
||||||
|
|
@ -24,24 +24,27 @@ banner cannot silently override the current program state.
|
||||||
App materialized projections and retained widgets borrow exact Runtime
|
App materialized projections and retained widgets borrow exact Runtime
|
||||||
identity and action owners. Runtime also owns the sole per-session physics,
|
identity and action owners. Runtime also owns the sole per-session physics,
|
||||||
collision, body/host, remote/projectile simulation, and cell-commit graph.
|
collision, body/host, remote/projectile simulation, and cell-commit graph.
|
||||||
J5.7 ownership cleanup and closeout is active in
|
J5 closed at `cdee7a4b` with one combined simulation ledger, a
|
||||||
[`plans/2026-07-26-modern-runtime-slice-j5.md`](plans/2026-07-26-modern-runtime-slice-j5.md).
|
Runtime-only movement/use/combat/cast/projectile host, 8,596 complete
|
||||||
|
Release tests / 5 skips, and exact-binary lifecycle plus nine-stop gates.
|
||||||
|
J6 world/portal/environment and projection-handshake ownership is active in
|
||||||
|
[`plans/2026-07-25-modern-runtime-slice-j.md`](plans/2026-07-25-modern-runtime-slice-j.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`).
|
||||||
- **Separate visual verification:** the shared-alpha lifestone/particle result
|
- **Separate visual verification:** the shared-alpha lifestone/particle result
|
||||||
in `#225`; its connected resource-lifetime and performance routes pass.
|
in `#225`; its connected resource-lifetime and performance routes pass.
|
||||||
- **Carried behavior debt:** `#153` (far teleport onto an unstreamed edge),
|
- **Carried behavior debt:** `#153` (far teleport onto an unstreamed edge),
|
||||||
`#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 world handshake,
|
||||||
groups, then build the approved Linux/headless multi-session host in Slice K.
|
composition root, and no-window closeout, then build the approved
|
||||||
J5.6's exact rollback is
|
Linux/headless multi-session host in Slice K. J5.7's exact rollback is
|
||||||
`git revert 2aee33569f0268d7bc0f4f52437dfa0b405432a4`.
|
`git revert cdee7a4b49addb5e1500753f6a885f7c899bd0f0`.
|
||||||
- **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,591 tests pass and
|
- **Latest automated baseline:** Release build succeeds; 8,596 tests pass and
|
||||||
five are intentionally skipped. The exact J5.6 arrow/bolt/spell,
|
five are intentionally skipped. The exact J5.7 lifecycle/reconnect and
|
||||||
lifecycle/reconnect, and canonical nine-stop gates complete with graceful
|
canonical nine-stop gates match embedded binary/source commit, converge
|
||||||
zero-code exits and zero failures.
|
every backlog, and complete with graceful zero-code exits and zero failures.
|
||||||
|
|
||||||
## Sources of truth
|
## Sources of truth
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -238,7 +238,7 @@ src/
|
||||||
RuntimeOrdinaryPhysicsUpdater.cs -> presentation-free object simulation
|
RuntimeOrdinaryPhysicsUpdater.cs -> presentation-free object simulation
|
||||||
RuntimeProjectile.cs -> canonical projectile component/prediction owner
|
RuntimeProjectile.cs -> canonical projectile component/prediction owner
|
||||||
RuntimeProjectilePhysicsUpdater.cs -> presentation-free projectile simulation
|
RuntimeProjectilePhysicsUpdater.cs -> presentation-free projectile simulation
|
||||||
-> J3–J4 and J5.1–J5.6 complete; J5.7 cleanup/closeout active
|
-> J3–J5 complete; J6 world/portal/environment handshake 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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -474,12 +474,12 @@ 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/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`). |
|
| 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 J5.7** | Canonical identity, retained-object lifetime, direct views, ordered entity/object deltas, J4 gameplay state, J5 action/combat/magic/movement/physics/remote/projectile simulation share failure-safe Runtime owners while exact graphical sidecars stay in App. J5.7 removes remaining temporary seams and proves no-window parity before J6–J7 add world handshakes and one Runtime composition root. |
|
| Unified `GameEntity` | **Slice J active at J6** | 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 now separates authoritative world/portal/environment state from presentation readiness before J7 composes one `GameRuntime` root. |
|
||||||
|
|
||||||
### 4.3 Revised extraction sequence
|
### 4.3 Revised extraction sequence
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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`, and J5.6 projectile simulation at `2aee3356`. J5.7 cleanup and closeout 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 world/portal/environment and projection-handshake ownership 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.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
@ -1771,7 +1771,13 @@ port in any phase — no separate listing here.
|
||||||
> Its 317 Runtime tests, 3,718 App tests / 3 skips, 47 focused Core projectile
|
> Its 317 Runtime tests, 3,718 App tests / 3 skips, 47 focused Core projectile
|
||||||
> tests, 8,591-test / 5-skip complete Release suite, exact arrow/bolt/spell
|
> tests, 8,591-test / 5-skip complete Release suite, exact arrow/bolt/spell
|
||||||
> evidence, lifecycle/reconnect gate, and canonical nine-stop route pass.
|
> evidence, lifecycle/reconnect gate, and canonical nine-stop route pass.
|
||||||
> J5.7 cleanup and closeout is active.
|
> J5.7 completed at `cdee7a4b`: Runtime owns accepted remote-body/vector
|
||||||
|
> activation, final simulation retirement, terminal physics/shadow/workset
|
||||||
|
> cleanup, and one combined entity/object/gameplay/physics ownership ledger.
|
||||||
|
> Its Runtime-only movement/use/combat/cast/projectile fixture, 323 Runtime
|
||||||
|
> tests, 3,717 App tests / 3 skips, 8,596-test / 5-skip complete Release suite,
|
||||||
|
> exact-binary lifecycle/reconnect gate, and canonical nine-stop route pass.
|
||||||
|
> J6 world/portal/environment and projection-handshake ownership 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:
|
||||||
|
|
|
||||||
|
|
@ -245,7 +245,14 @@ residency is `0/0/0` at every stable checkpoint and teardown converges. Slice I
|
||||||
shape inputs and projects committed frames. Its 317 Runtime tests, 3,718
|
shape inputs and projects committed frames. Its 317 Runtime tests, 3,718
|
||||||
App tests / 3 skips, 47 focused Core projectile tests, 8,591 full Release
|
App tests / 3 skips, 47 focused Core projectile tests, 8,591 full Release
|
||||||
tests / 5 skips, exact arrow/bolt/spell evidence, lifecycle/reconnect route,
|
tests / 5 skips, exact arrow/bolt/spell evidence, lifecycle/reconnect route,
|
||||||
and canonical nine-stop route pass. J5.7 cleanup and closeout is active under
|
and canonical nine-stop route pass. J5.7 completed at `cdee7a4b`: one
|
||||||
|
Runtime simulation ledger spans entity/object, gameplay, physics, remote,
|
||||||
|
and projectile ownership; the Runtime-only fixture drives movement, use,
|
||||||
|
combat, casting, and projectiles without presentation dependencies. Its 323
|
||||||
|
Runtime tests, 3,717 App tests / 3 skips, 8,596 full Release tests / 5
|
||||||
|
skips, exact-binary lifecycle/reconnect route, and canonical nine-stop route
|
||||||
|
pass. J6 world/portal/environment and projection-handshake ownership 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).
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
**Date:** 2026-07-24
|
**Date:** 2026-07-24
|
||||||
|
|
||||||
**Status:** Slices A–I, J0–J4, and J5.1–J5.6 are complete. Flat-authoritative collision, zero-
|
**Status:** Slices A–I and J0–J5 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 F–L were
|
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
|
explicitly approved 2026-07-24. Slice J0–J1 established the enforced Runtime
|
||||||
|
|
@ -16,11 +16,12 @@ 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.7 after canonical action state
|
and combat ownership closed at `cdee7a4b` after canonical action state
|
||||||
(`b298f99f`), interaction transactions (`f5f7b417`), and combat/magic intent
|
(`b298f99f`), interaction transactions (`f5f7b417`), and combat/magic intent
|
||||||
(`20df9d15`), local movement/outbound cadence (`aa3f4a60`), and per-session
|
(`20df9d15`), local movement/outbound cadence (`aa3f4a60`), and per-session
|
||||||
physics/remote simulation (`7e6033d0`), and projectile simulation
|
physics/remote simulation (`7e6033d0`), projectile simulation (`2aee3356`),
|
||||||
(`2aee3356`) moved to Runtime.
|
and the combined simulation ledger/Runtime-only closeout moved to Runtime.
|
||||||
|
J6 world/portal/environment and projection-handshake ownership 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.
|
||||||
|
|
@ -1277,8 +1278,11 @@ gate, and canonical nine-stop route pass. J4 is complete at `89e6b207`: the
|
||||||
single Runtime shortcut/spellbook/inventory owners, graphical/no-window
|
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 complete at `cdee7a4b`.
|
||||||
point. J5.1–J5.6 are complete; J5.7 cleanup and closeout is active.
|
The Runtime-only simulation fixture, combined terminal ledger, 8,596-test /
|
||||||
|
5-skip Release suite, exact-binary lifecycle/reconnect gate, and canonical
|
||||||
|
nine-stop route pass. J6 world/portal/environment and projection-handshake
|
||||||
|
ownership 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
|
||||||
|
|
@ -1300,6 +1304,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-j5-7-simulation-ownership-closeout.md`](../research/2026-07-26-slice-j5-7-simulation-ownership-closeout.md)
|
||||||
|
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).
|
||||||
|
|
||||||
The intended order is therefore:
|
The intended order is therefore:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Modern runtime Slice J — presentation-independent runtime
|
# Modern runtime Slice J — presentation-independent runtime
|
||||||
|
|
||||||
**Status:** J0–J4 COMPLETE; J5 ACTIVE
|
**Status:** J0–J5 COMPLETE; J6 ACTIVE
|
||||||
**Parent:** `2026-07-24-modern-runtime-architecture.md`, Slice J
|
**Parent:** `2026-07-24-modern-runtime-architecture.md`, Slice J
|
||||||
**Authorization:** the user approved Slices F–L, including the otherwise-frozen
|
**Authorization:** the user approved Slices F–L, including the otherwise-frozen
|
||||||
Slice J gameplay-owner moves, on 2026-07-24
|
Slice J gameplay-owner moves, on 2026-07-24
|
||||||
|
|
@ -277,7 +277,7 @@ J4 must borrow it rather than create another inventory model.
|
||||||
|
|
||||||
### J5 — movement, physics, interaction, and combat group
|
### J5 — movement, physics, interaction, and combat group
|
||||||
|
|
||||||
**Active 2026-07-26.** Detailed execution begins with a source/owner inventory
|
**Completed 2026-07-26.** Detailed execution began with a source/owner inventory
|
||||||
and a named-retail ordering matrix. Each coherent move must preserve the
|
and a named-retail ordering matrix. Each coherent move must preserve the
|
||||||
accepted connected interaction, facing, projectile, and collision behavior.
|
accepted connected interaction, facing, projectile, and collision behavior.
|
||||||
The executable sub-slice ledger, presentation boundary, acceptance gates, and
|
The executable sub-slice ledger, presentation boundary, acceptance gates, and
|
||||||
|
|
@ -317,7 +317,14 @@ retail projectile simulation; App resolves immutable DAT shape data and
|
||||||
projects committed frames only. Its 317 Runtime tests, 3,718 App tests / 3
|
projects committed frames only. Its 317 Runtime tests, 3,718 App tests / 3
|
||||||
skips, 47 focused Core projectile tests, 8,591 complete Release tests / 5
|
skips, 47 focused Core projectile tests, 8,591 complete Release tests / 5
|
||||||
skips, exact arrow/bolt/spell evidence, lifecycle/reconnect gate, and canonical
|
skips, exact arrow/bolt/spell evidence, lifecycle/reconnect gate, and canonical
|
||||||
nine-stop route pass. J5.7 ownership cleanup and closeout is active. Evidence:
|
nine-stop route pass. J5.7 completed at `cdee7a4b`: Runtime owns accepted
|
||||||
|
remote-body/vector activation, final simulation retirement, terminal
|
||||||
|
physics/shadow/workset cleanup, and one combined simulation ownership ledger.
|
||||||
|
Its Runtime-only movement/use/combat/cast/projectile host proves no-window
|
||||||
|
parity and terminal convergence after projection failure. Its 323 Runtime
|
||||||
|
tests, 3,717 App tests / 3 skips, 8,596 complete Release tests / 5 skips,
|
||||||
|
exact-binary lifecycle/reconnect gate, and canonical nine-stop route pass.
|
||||||
|
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)
|
||||||
|
|
@ -328,7 +335,9 @@ and
|
||||||
and
|
and
|
||||||
[`../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)
|
||||||
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
|
||||||
|
[`../research/2026-07-26-slice-j5-7-simulation-ownership-closeout.md`](../research/2026-07-26-slice-j5-7-simulation-ownership-closeout.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,
|
||||||
|
|
@ -345,6 +354,8 @@ graphical feel gates remain unchanged.
|
||||||
|
|
||||||
### J6 — world, portal, environment, and projection handshake
|
### J6 — world, portal, environment, and projection handshake
|
||||||
|
|
||||||
|
**Active 2026-07-26.**
|
||||||
|
|
||||||
- Move authoritative teleport/session cell identity, world clock, weather
|
- Move authoritative teleport/session cell identity, world clock, weather
|
||||||
state, and reveal-generation state required by gameplay.
|
state, and reveal-generation state required by gameplay.
|
||||||
- Keep streaming publication, terrain/EnvCell rendering, portal tunnel,
|
- Keep streaming publication, terrain/EnvCell rendering, portal tunnel,
|
||||||
|
|
@ -400,3 +411,9 @@ another gameplay extraction.
|
||||||
|
|
||||||
Each commit is independently buildable and retains an exact rollback command
|
Each commit is independently buildable and retains an exact rollback command
|
||||||
in this plan before its connected gate.
|
in this plan before its connected gate.
|
||||||
|
|
||||||
|
J5.7 exact rollback:
|
||||||
|
|
||||||
|
```text
|
||||||
|
git revert cdee7a4b49addb5e1500753f6a885f7c899bd0f0
|
||||||
|
```
|
||||||
|
|
|
||||||
|
|
@ -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.1–J5.6 complete; J5.7 next
|
**Status:** COMPLETE — J5.1–J5.7 closed 2026-07-26
|
||||||
**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 F–L, including the Slice J
|
**Authorization:** the user approved Slices F–L, including the Slice J
|
||||||
|
|
@ -91,7 +91,7 @@ commands to Runtime. The camera may not write the player heading directly.
|
||||||
| 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.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 | 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.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 | complete | `2aee33569f0268d7bc0f4f52437dfa0b405432a4`; one Runtime projectile component/workset/simulation/correction owner; 317 Runtime tests, 3,718 App tests / 3 skips, 47 focused Core projectile tests, 8,591 complete Release tests / 5 skips, exact arrow/bolt/spell evidence, lifecycle/reconnect pass, and nine-stop route pass |
|
| J5.6 projectile runtime | complete | `2aee33569f0268d7bc0f4f52437dfa0b405432a4`; one Runtime projectile component/workset/simulation/correction owner; 317 Runtime tests, 3,718 App tests / 3 skips, 47 focused Core projectile tests, 8,591 complete Release tests / 5 skips, exact arrow/bolt/spell evidence, lifecycle/reconnect pass, and nine-stop route pass |
|
||||||
| J5.7 combined cleanup and closeout | active | no mirrors, one ownership ledger, no-window parity, teardown, connected and visual gates |
|
| J5.7 combined cleanup and closeout | complete | `cdee7a4b49addb5e1500753f6a885f7c899bd0f0`; one combined simulation ledger, Runtime-only fixture parity, exact terminal teardown, 323 Runtime tests, 3,717 App tests / 3 skips, 8,596 complete Release tests / 5 skips, exact-binary lifecycle/reconnect and nine-stop gates |
|
||||||
|
|
||||||
## J5.1 — canonical action state
|
## J5.1 — canonical action state
|
||||||
|
|
||||||
|
|
@ -431,6 +431,29 @@ Run:
|
||||||
9. architecture, divergence, issue, roadmap, AGENTS/CLAUDE, and durable-memory
|
9. architecture, divergence, issue, roadmap, AGENTS/CLAUDE, and durable-memory
|
||||||
reconciliation.
|
reconciliation.
|
||||||
|
|
||||||
|
**Completed 2026-07-26 at
|
||||||
|
`cdee7a4b49addb5e1500753f6a885f7c899bd0f0`.**
|
||||||
|
Runtime now owns accepted CreateObject vector installation, remote-motion
|
||||||
|
construction/activation, canonical vector commits, final simulation-component
|
||||||
|
retirement, terminal physics/shadow/workset cleanup, and one combined
|
||||||
|
entity/object/physics/gameplay ownership ledger. App compatibility views and
|
||||||
|
the duplicate remote-body initializer are deleted; graphical checkpoints
|
||||||
|
borrow direct Runtime views. A Runtime-only fixture drives movement, use,
|
||||||
|
combat, casting, and projectile simulation without loading App or a
|
||||||
|
presentation/backend assembly, and injected projection failure still converges
|
||||||
|
the complete ledger.
|
||||||
|
|
||||||
|
Runtime tests pass 323/323, App tests pass 3,717/3 skips, the complete Release
|
||||||
|
suite passes 8,596/5 skips, and the Release solution builds with zero errors.
|
||||||
|
The exact-binary lifecycle/reconnect report
|
||||||
|
`logs/connected-world-gate-20260726-160825/report.json` passes all seven
|
||||||
|
checkpoints and both graceful code-zero exits. The canonical report
|
||||||
|
`logs/connected-r6-soak-20260726-161406.report.json` matches embedded
|
||||||
|
binary/source SHA, passes all nine destinations and movement/combat/jump
|
||||||
|
exercises, converges every streaming backlog to zero, and exits gracefully
|
||||||
|
with zero failures. Evidence:
|
||||||
|
[`../research/2026-07-26-slice-j5-7-simulation-ownership-closeout.md`](../research/2026-07-26-slice-j5-7-simulation-ownership-closeout.md).
|
||||||
|
|
||||||
## Commit and rollback discipline
|
## Commit and rollback discipline
|
||||||
|
|
||||||
Each sub-slice lands as one independently reversible production commit followed
|
Each sub-slice lands as one independently reversible production commit followed
|
||||||
|
|
@ -487,6 +510,12 @@ J5.6 rollback:
|
||||||
git revert 2aee33569f0268d7bc0f4f52437dfa0b405432a4
|
git revert 2aee33569f0268d7bc0f4f52437dfa0b405432a4
|
||||||
```
|
```
|
||||||
|
|
||||||
|
J5.7 rollback:
|
||||||
|
|
||||||
|
```text
|
||||||
|
git revert cdee7a4b49addb5e1500753f6a885f7c899bd0f0
|
||||||
|
```
|
||||||
|
|
||||||
## Acceptance
|
## Acceptance
|
||||||
|
|
||||||
J5 is complete only when:
|
J5 is complete only when:
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,156 @@
|
||||||
|
# Slice J5.7 — simulation-ownership closeout
|
||||||
|
|
||||||
|
Date: 2026-07-26
|
||||||
|
Scope: ownership and teardown cleanup only; no retail algorithm, packet,
|
||||||
|
timing, collision policy, gameplay outcome, or graphical presentation change
|
||||||
|
|
||||||
|
## Objective
|
||||||
|
|
||||||
|
Close the temporary seams left by J5.1–J5.6 so one Runtime lifetime owns the
|
||||||
|
complete presentation-independent simulation graph:
|
||||||
|
|
||||||
|
- canonical entity/object identity and accepted wire state;
|
||||||
|
- selection, interaction, combat, magic, and local movement intent;
|
||||||
|
- per-session physics, remote motion, projectiles, shadows, and spatial
|
||||||
|
worksets;
|
||||||
|
- reset, projection withdrawal, and terminal retirement.
|
||||||
|
|
||||||
|
App remains the graphical host. It supplies physical input, immutable
|
||||||
|
DAT/content inputs, transport and projection acknowledgements, then presents
|
||||||
|
committed Runtime state through animation, meshes, particles, audio, cameras,
|
||||||
|
retained UI, markers, and diagnostics.
|
||||||
|
|
||||||
|
## Named-retail invariant
|
||||||
|
|
||||||
|
J5.7 preserves the already-ported retail control flow. The one relocated
|
||||||
|
initialization detail follows:
|
||||||
|
|
||||||
|
- `CPhysicsObj::set_description` at `0x00514F40`
|
||||||
|
|
||||||
|
CreateObject velocity and angular velocity are installed once when Runtime
|
||||||
|
constructs the canonical remote body. Later authoritative Vector updates flow
|
||||||
|
through the existing retail timestamp gate and canonical record. App no longer
|
||||||
|
constructs a second body or repeats the accepted CreateObject vector install.
|
||||||
|
|
||||||
|
The projectile, movement, collision, interaction, combat, and spell algorithms
|
||||||
|
remain those documented by the preceding J5 evidence notes. No constant,
|
||||||
|
branch, packet order, server-authority boundary, or visible effect changed.
|
||||||
|
|
||||||
|
## Closed ownership gaps
|
||||||
|
|
||||||
|
Production commit
|
||||||
|
`cdee7a4b49addb5e1500753f6a885f7c899bd0f0`:
|
||||||
|
|
||||||
|
- removes the App remote-motion/physics-host/canonical-runtime/cell/placement
|
||||||
|
compatibility aliases after production consumers moved to Runtime types;
|
||||||
|
- deletes `LiveEntityRemoteMotionRuntimeView<T>` and the App
|
||||||
|
`RemotePhysicsBodyInitializer`;
|
||||||
|
- makes `LiveEntityNetworkUpdateController` borrow the canonical
|
||||||
|
`LiveEntityRuntime` and delegate body, remote-motion, vector, wakeup, and
|
||||||
|
activation work to `RuntimePhysicsState`;
|
||||||
|
- makes Runtime install accepted CreateObject velocity and angular velocity
|
||||||
|
exactly once at canonical body construction;
|
||||||
|
- makes `RuntimeEntityObjectLifetime.CompleteProjectionRetirement` own final
|
||||||
|
simulation-component retirement after the App projection acknowledges
|
||||||
|
withdrawal;
|
||||||
|
- removes App-side mutation of canonical remote/body/host/placement component
|
||||||
|
slots;
|
||||||
|
- makes current-runtime checkpoints borrow `IRuntimeEntityView` and inventory
|
||||||
|
views rather than reconstructing state from App projections or
|
||||||
|
`ClientObjectTable`;
|
||||||
|
- adds terminal clearing for `PhysicsEngine`, `ShadowObjectRegistry`, spatial
|
||||||
|
worksets, collision residence, bodies, hosts, remotes, and projectiles;
|
||||||
|
- adds `RuntimeSimulationOwnershipSnapshot`, one terminal ledger spanning
|
||||||
|
entity/object, physics, and gameplay ownership;
|
||||||
|
- adds a Runtime-only fixture host that drives movement, use, combat, casting,
|
||||||
|
and projectile simulation without loading App, UI, Silk.NET, OpenAL, ImGui,
|
||||||
|
Arch, or a native window.
|
||||||
|
|
||||||
|
`ILocalPlayerMotionSource` remains as a presentation-facing source name for
|
||||||
|
the animation projection seam. It does not construct, store, or mutate a
|
||||||
|
second movement owner; graphical animation borrows the exact
|
||||||
|
`RuntimeLocalPlayerMovementState`.
|
||||||
|
|
||||||
|
## Failure and parity matrix
|
||||||
|
|
||||||
|
The closeout fixtures cover every J5.7 boundary:
|
||||||
|
|
||||||
|
| Boundary | Evidence |
|
||||||
|
|---|---|
|
||||||
|
| construction | per-instance entity/object/physics/gameplay owners; canonical remote-body acquisition; no presentation/backend assembly load |
|
||||||
|
| subscription | entity, communication, gameplay, and projection observers isolate failures and detach exactly |
|
||||||
|
| command | graphical and direct movement, use, combat, and magic commands reach the same exact owners |
|
||||||
|
| projection acknowledgement | vector, rebucket, projectile, and terminal projection failures preserve canonical committed state and allow retry/convergence |
|
||||||
|
| reset | interaction, action, movement, session, entity/object, and physics reset paths converge without replay |
|
||||||
|
| disposal | combined simulation ledger, physics residence, shadows, worksets, objects, and subscriptions reach exact zero |
|
||||||
|
|
||||||
|
Normalized graphical/direct parity is pinned by:
|
||||||
|
|
||||||
|
- `CurrentGameRuntimeAdapterTests.GraphicalAndDirectCombatMagicCommands_ReachTheExactSameOwners`;
|
||||||
|
- `CurrentGameRuntimeAdapterTests.DirectAndGraphicalHosts_ProduceIdenticalEntityObjectTrace`;
|
||||||
|
- `RuntimeLocalPlayerMovementStateTests.GraphicalAndDirectCommandsMutateOneAutorunLatch`;
|
||||||
|
- `RuntimeSimulationFixtureHostTests.RuntimeOnlyHostDrivesCompleteJ5SimulationWithoutPresentation`.
|
||||||
|
|
||||||
|
The projection-failure fixture additionally proves that a failed graphical
|
||||||
|
acknowledgement cannot strand or roll back canonical simulation state:
|
||||||
|
|
||||||
|
- `RuntimeSimulationFixtureHostTests.ProjectionAcknowledgementFailureStillAllowsTerminalConvergence`.
|
||||||
|
|
||||||
|
## Automated acceptance
|
||||||
|
|
||||||
|
On the production commit:
|
||||||
|
|
||||||
|
- focused App ownership/entity/projectile/hydration suite: 198 passed;
|
||||||
|
- Runtime tests: 323 passed;
|
||||||
|
- App tests: 3,717 passed / 3 skipped;
|
||||||
|
- complete Release solution: 8,596 passed / 5 skipped;
|
||||||
|
- Release solution build: zero errors; 17 pre-existing warnings;
|
||||||
|
- source/dependency guards pass;
|
||||||
|
- `git diff --check` is clean.
|
||||||
|
|
||||||
|
The combined Runtime fixture loads no presentation or backend assembly and
|
||||||
|
its terminal `RuntimeSimulationOwnershipSnapshot.IsConverged` is true after
|
||||||
|
normal operation and injected projection failure.
|
||||||
|
|
||||||
|
## Connected acceptance
|
||||||
|
|
||||||
|
Both accepted connected gates used the exact rebuilt executable and source
|
||||||
|
commit `cdee7a4b49addb5e1500753f6a885f7c899bd0f0`.
|
||||||
|
|
||||||
|
- Lifecycle/reconnect:
|
||||||
|
`logs/connected-world-gate-20260726-160825/report.json`
|
||||||
|
passed all seven fresh-login, outdoor, dungeon, revisit, graceful-disconnect,
|
||||||
|
and uncapped fresh-process reconnect checkpoints. Both processes exited
|
||||||
|
gracefully with code zero, with zero failures and only the 25 expected
|
||||||
|
world-edge empty-landblock misses.
|
||||||
|
- Canonical nine-stop route:
|
||||||
|
`logs/connected-r6-soak-20260726-161406.report.json`
|
||||||
|
reported `binaryMatchesSource = true`, materialized all nine destinations,
|
||||||
|
passed forward, jump, combat, and authoritative movement-truth exercises at
|
||||||
|
Caul, Holtburg, and the Caul return, and exited gracefully with code zero
|
||||||
|
and zero failures. Every checkpoint converged with zero pending publication,
|
||||||
|
retirement, worker-completion, or destination backlog.
|
||||||
|
|
||||||
|
The earlier post-commit route
|
||||||
|
`logs/connected-r6-soak-20260726-155912.report.json` was behaviorally green
|
||||||
|
but is deliberately rejected as exact-binary evidence because its embedded
|
||||||
|
binary SHA preceded the source commit. It remains in the audit trail. The
|
||||||
|
solution was rebuilt and both accepted gates were then rerun.
|
||||||
|
|
||||||
|
The user-accepted connected behavior carried through J5 includes local
|
||||||
|
movement and target-facing, near/far object use, combat and spell bars,
|
||||||
|
projectile presentation, collision, repeated portal/recall, and reconnect.
|
||||||
|
J5.7 changes only ownership seams and the exact-binary routes exercise those
|
||||||
|
same owners after cleanup.
|
||||||
|
|
||||||
|
## Divergence and rollback
|
||||||
|
|
||||||
|
J5.7 removes duplicate ownership and compatibility seams. It introduces no
|
||||||
|
new retail behavior or divergence, so the divergence register requires no new
|
||||||
|
row.
|
||||||
|
|
||||||
|
Exact rollback:
|
||||||
|
|
||||||
|
```text
|
||||||
|
git revert cdee7a4b49addb5e1500753f6a885f7c899bd0f0
|
||||||
|
```
|
||||||
Loading…
Add table
Add a link
Reference in a new issue