docs(runtime): close gameplay-state ownership
Record J4.5 canonical shortcut and spellbook command ownership, combined failure and graphical/headless parity evidence, the 8,544-test Release gate, exact-binary lifecycle and nine-stop acceptance, rollback instructions, and the J5 boundary. Co-authored-by: Codex <noreply@openai.com>
This commit is contained in:
parent
89e6b207f8
commit
2c67a2c3ba
11 changed files with 209 additions and 22 deletions
14
AGENTS.md
14
AGENTS.md
|
|
@ -262,7 +262,14 @@ projections, exposes exact borrowed J4 gameplay views, and routes retained UI
|
||||||
plus future no-window state commands through one synchronous generation-gated
|
plus future no-window state commands through one synchronous generation-gated
|
||||||
seam. Runtime tests pass 169/169, App tests pass 3,777/3 skips, the complete
|
seam. Runtime tests pass 169/169, App tests pass 3,777/3 skips, the complete
|
||||||
Release suite passes 8,534/5 skips, and the exact-binary seven-checkpoint gate
|
Release suite passes 8,534/5 skips, and the exact-binary seven-checkpoint gate
|
||||||
passes with graceful exits and zero failures. J4.5 combined closeout is active.
|
passes with graceful exits and zero failures. J4.5 is complete at `89e6b207`:
|
||||||
|
Runtime owns the one shortcut manager, graphical/no-window command effects use
|
||||||
|
the exact inventory/character owners, item-use UI cannot create a second
|
||||||
|
transaction gate, and the combined failure-safe ownership ledger converges.
|
||||||
|
Runtime tests pass 175/175, App tests pass 3,780/3 skips, the complete Release
|
||||||
|
suite passes 8,544/5 skips, and both exact-binary lifecycle/reconnect and
|
||||||
|
canonical nine-stop gates pass with graceful exits and zero failures. J5
|
||||||
|
movement/physics/interaction/combat 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
|
||||||
|
|
@ -288,6 +295,8 @@ J4.3's rollback is
|
||||||
`git revert d02a12ceac54d035797b4c58f2fc2f0ccad9a4d6`.
|
`git revert d02a12ceac54d035797b4c58f2fc2f0ccad9a4d6`.
|
||||||
J4.4's rollback is
|
J4.4's rollback is
|
||||||
`git revert dcb61efb5af6c12bd619369e28cf11bacc37bc73`.
|
`git revert dcb61efb5af6c12bd619369e28cf11bacc37bc73`.
|
||||||
|
J4.5's rollback is
|
||||||
|
`git revert 89e6b207f81946b40c38c8dc6597817ad99fc6e0`.
|
||||||
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
|
||||||
|
|
@ -298,7 +307,8 @@ is `docs/research/2026-07-26-slice-j3-6-lifetime-closeout.md`; J4 executes from
|
||||||
`docs/research/2026-07-26-slice-j4-1-communication-state.md`; J4.2 closeout is
|
`docs/research/2026-07-26-slice-j4-1-communication-state.md`; J4.2 closeout is
|
||||||
`docs/research/2026-07-26-slice-j4-2-inventory-state.md`; J4.3 closeout is
|
`docs/research/2026-07-26-slice-j4-2-inventory-state.md`; J4.3 closeout is
|
||||||
`docs/research/2026-07-26-slice-j4-3-character-state.md`; J4.4 closeout is
|
`docs/research/2026-07-26-slice-j4-3-character-state.md`; J4.4 closeout is
|
||||||
`docs/research/2026-07-26-slice-j4-4-character-projections.md`. The exact G4
|
`docs/research/2026-07-26-slice-j4-4-character-projections.md`; J4.5 closeout
|
||||||
|
is `docs/research/2026-07-26-slice-j4-5-gameplay-state-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
CLAUDE.md
14
CLAUDE.md
|
|
@ -260,7 +260,14 @@ projections, exposes exact borrowed J4 gameplay views, and routes retained UI
|
||||||
plus future no-window state commands through one synchronous generation-gated
|
plus future no-window state commands through one synchronous generation-gated
|
||||||
seam. Runtime tests pass 169/169, App tests pass 3,777/3 skips, the complete
|
seam. Runtime tests pass 169/169, App tests pass 3,777/3 skips, the complete
|
||||||
Release suite passes 8,534/5 skips, and the exact-binary seven-checkpoint gate
|
Release suite passes 8,534/5 skips, and the exact-binary seven-checkpoint gate
|
||||||
passes with graceful exits and zero failures. J4.5 combined closeout is active.
|
passes with graceful exits and zero failures. J4.5 is complete at `89e6b207`:
|
||||||
|
Runtime owns the one shortcut manager, graphical/no-window command effects use
|
||||||
|
the exact inventory/character owners, item-use UI cannot create a second
|
||||||
|
transaction gate, and the combined failure-safe ownership ledger converges.
|
||||||
|
Runtime tests pass 175/175, App tests pass 3,780/3 skips, the complete Release
|
||||||
|
suite passes 8,544/5 skips, and both exact-binary lifecycle/reconnect and
|
||||||
|
canonical nine-stop gates pass with graceful exits and zero failures. J5
|
||||||
|
movement/physics/interaction/combat 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
|
||||||
|
|
@ -286,6 +293,8 @@ J4.3's rollback is
|
||||||
`git revert d02a12ceac54d035797b4c58f2fc2f0ccad9a4d6`.
|
`git revert d02a12ceac54d035797b4c58f2fc2f0ccad9a4d6`.
|
||||||
J4.4's rollback is
|
J4.4's rollback is
|
||||||
`git revert dcb61efb5af6c12bd619369e28cf11bacc37bc73`.
|
`git revert dcb61efb5af6c12bd619369e28cf11bacc37bc73`.
|
||||||
|
J4.5's rollback is
|
||||||
|
`git revert 89e6b207f81946b40c38c8dc6597817ad99fc6e0`.
|
||||||
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
|
||||||
|
|
@ -296,7 +305,8 @@ is `docs/research/2026-07-26-slice-j3-6-lifetime-closeout.md`; J4 executes from
|
||||||
`docs/research/2026-07-26-slice-j4-1-communication-state.md`; J4.2 closeout is
|
`docs/research/2026-07-26-slice-j4-1-communication-state.md`; J4.2 closeout is
|
||||||
`docs/research/2026-07-26-slice-j4-2-inventory-state.md`; J4.3 closeout is
|
`docs/research/2026-07-26-slice-j4-2-inventory-state.md`; J4.3 closeout is
|
||||||
`docs/research/2026-07-26-slice-j4-3-character-state.md`; J4.4 closeout is
|
`docs/research/2026-07-26-slice-j4-3-character-state.md`; J4.4 closeout is
|
||||||
`docs/research/2026-07-26-slice-j4-4-character-projections.md`. The exact G4
|
`docs/research/2026-07-26-slice-j4-4-character-projections.md`; J4.5 closeout
|
||||||
|
is `docs/research/2026-07-26-slice-j4-5-gameplay-state-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:
|
||||||
|
|
|
||||||
|
|
@ -66,7 +66,9 @@ What does NOT go here:
|
||||||
presentation-independent project boundary and J1's borrowed
|
presentation-independent project boundary and J1's borrowed
|
||||||
view/command/event/lifecycle contract are live. J2's canonical
|
view/command/event/lifecycle contract are live. J2's canonical
|
||||||
session/transport lifetime and ordered inbound route are complete at
|
session/transport lifetime and ordered inbound route are complete at
|
||||||
`75930787`; J3 identity, properties, and object-table extraction is active from
|
`75930787`; J3 canonical entity/object lifetime and J4 gameplay-state
|
||||||
|
ownership are complete through `89e6b207`. J5 movement, physics,
|
||||||
|
interaction, and combat ownership is active from
|
||||||
[`plans/2026-07-25-modern-runtime-slice-j.md`](plans/2026-07-25-modern-runtime-slice-j.md).
|
[`plans/2026-07-25-modern-runtime-slice-j.md`](plans/2026-07-25-modern-runtime-slice-j.md).
|
||||||
|
|
||||||
The [documentation map](README.md) defines how this tactical ledger relates to
|
The [documentation map](README.md) defines how this tactical ledger relates to
|
||||||
|
|
|
||||||
|
|
@ -224,7 +224,7 @@ src/
|
||||||
transaction/session-state owner
|
transaction/session-state owner
|
||||||
RuntimeCharacterState.cs -> coupled spellbook/local-player plus
|
RuntimeCharacterState.cs -> coupled spellbook/local-player plus
|
||||||
character-option/run-jump owner
|
character-option/run-jump owner
|
||||||
-> J3 and J4.1–J4.4 complete; J4.5 combined closeout active
|
-> J3–J4 complete; J5 movement/physics/interaction/combat 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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -477,7 +477,7 @@ useful ordering seam, but its ownership status is **partial**.
|
||||||
| Selection/interaction | **Complete** | `WorldSelectionQuery` owns read-only picking/classification/range queries; `SelectionInteractionController` owns selection intent, Use/PickUp transport, exact-incarnation queues, and auto-walk deferral; `ItemInteractionController` owns ItemHolder policy plus the shared retail inventory-request transaction. `GameWindow` retains construction and narrow lifecycle forwarding only. |
|
| Selection/interaction | **Complete** | `WorldSelectionQuery` owns read-only picking/classification/range queries; `SelectionInteractionController` owns selection intent, Use/PickUp transport, exact-incarnation queues, and auto-walk deferral; `ItemInteractionController` owns ItemHolder policy plus the shared retail inventory-request transaction. `GameWindow` retains construction and narrow lifecycle forwarding only. |
|
||||||
| 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 J4** | Canonical identity, retained-object lifetime, direct views, and the ordered entity/object delta stream share one failure-safe Runtime owner while exact graphical sidecars stay in App. J4–J7 now move the remaining coherent gameplay lifetime groups before one Runtime composition root. |
|
| Unified `GameEntity` | **Slice J active at J5** | Canonical identity, retained-object lifetime, direct views, ordered entity/object deltas, and J4 gameplay state share failure-safe Runtime owners while exact graphical sidecars stay in App. J5–J7 move movement/physics/interaction/combat and world authority before one Runtime composition 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's canonical entity/object lifetime plus J4.1 communication/social, J4.2 inventory-transaction, J4.3 magic/player-sheet, and J4.4 character projection/typed-command ownership are closed; J4.5 combined 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 movement/physics/interaction/combat 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.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
@ -1731,8 +1731,14 @@ port in any phase — no separate listing here.
|
||||||
> character, and social views, and routes graphical/no-window state commands
|
> character, and social views, and routes graphical/no-window state commands
|
||||||
> through one synchronous generation-gated seam. Its 169 Runtime tests, 3,777
|
> through one synchronous generation-gated seam. Its 169 Runtime tests, 3,777
|
||||||
> App tests / 3 skips, 8,534-test / 5-skip complete Release suite, and
|
> App tests / 3 skips, 8,534-test / 5-skip complete Release suite, and
|
||||||
> exact-binary seven-checkpoint lifecycle/reconnect gate pass. J4.5 combined
|
> exact-binary seven-checkpoint lifecycle/reconnect gate pass. J4.5 is
|
||||||
> failure, parity, teardown, connected, and nine-stop closeout is active.
|
> complete at `89e6b207`: the one Runtime shortcut manager and exact
|
||||||
|
> inventory/character command owners serve graphical and no-window paths,
|
||||||
|
> item-use UI cannot construct a second transaction gate, and the combined
|
||||||
|
> failure-safe ledger converges. Its 175 Runtime tests, 3,780 App tests / 3
|
||||||
|
> skips, 8,544-test / 5-skip complete Release suite, exact-binary
|
||||||
|
> lifecycle/reconnect gate, and canonical nine-stop route pass. J5
|
||||||
|
> movement/physics/interaction/combat 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:
|
||||||
|
|
|
||||||
|
|
@ -207,7 +207,13 @@ residency is `0/0/0` at every stable checkpoint and teardown converges. Slice I
|
||||||
UI/future no-window state commands through one synchronous generation-gated
|
UI/future no-window state commands through one synchronous generation-gated
|
||||||
seam. Its 169 Runtime tests, 3,777 App tests / 3 skips, 8,534 full Release
|
seam. Its 169 Runtime tests, 3,777 App tests / 3 skips, 8,534 full Release
|
||||||
tests / 5 skips, and exact-binary seven-checkpoint lifecycle/reconnect route
|
tests / 5 skips, and exact-binary seven-checkpoint lifecycle/reconnect route
|
||||||
pass. J4.5 combined closeout is active under
|
pass. J4.5 completed at `89e6b207`: Runtime owns the one shortcut manager,
|
||||||
|
graphical/no-window command effects converge on the exact inventory and
|
||||||
|
character owners, item-use UI cannot create a second transaction gate, and
|
||||||
|
the combined failure-safe ownership ledger converges. Its 175 Runtime
|
||||||
|
tests, 3,780 App tests / 3 skips, 8,544 full Release tests / 5 skips,
|
||||||
|
exact-binary lifecycle/reconnect gate, and canonical nine-stop route pass.
|
||||||
|
J5 movement/physics/interaction/combat 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).
|
||||||
|
|
@ -227,6 +233,8 @@ Slice-J4.3 closeout evidence is
|
||||||
[`../research/2026-07-26-slice-j4-3-character-state.md`](../research/2026-07-26-slice-j4-3-character-state.md).
|
[`../research/2026-07-26-slice-j4-3-character-state.md`](../research/2026-07-26-slice-j4-3-character-state.md).
|
||||||
Slice-J4.4 closeout evidence is
|
Slice-J4.4 closeout evidence is
|
||||||
[`../research/2026-07-26-slice-j4-4-character-projections.md`](../research/2026-07-26-slice-j4-4-character-projections.md).
|
[`../research/2026-07-26-slice-j4-4-character-projections.md`](../research/2026-07-26-slice-j4-4-character-projections.md).
|
||||||
|
Slice-J4.5 closeout evidence is
|
||||||
|
[`../research/2026-07-26-slice-j4-5-gameplay-state-closeout.md`](../research/2026-07-26-slice-j4-5-gameplay-state-closeout.md).
|
||||||
The historical exact G4 visual rollback remains
|
The historical exact G4 visual rollback remains
|
||||||
`git revert ef1d263337997bb030eadb7b8e71d73dc659907a`.
|
`git revert ef1d263337997bb030eadb7b8e71d73dc659907a`.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -14,8 +14,9 @@ hosts and closed the failure-safe owner ledger. J4.1 moved communication and
|
||||||
social ownership into Runtime at `c9d25ade`; J4.2 moved inventory transaction
|
social ownership into Runtime at `c9d25ade`; J4.2 moved inventory transaction
|
||||||
ownership into Runtime at `011efbea`; J4.3 moved the coupled magic/player-sheet
|
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 combined closeout
|
and the shared typed state-command seam at `dcb61efb`; J4.5 closed canonical
|
||||||
is the active execution point.
|
gameplay-state ownership at `89e6b207`. J5 movement, physics, interaction,
|
||||||
|
and combat ownership is the active execution point.
|
||||||
|
|
||||||
**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.
|
||||||
|
|
@ -1268,8 +1269,12 @@ before fallible callbacks, serializes re-entrant observation within the
|
||||||
committing call, protects every accepted channel by mutation version, and
|
committing call, protects every accepted channel by mutation version, and
|
||||||
requires reset/direct disposal to converge the complete ownership ledger to
|
requires reset/direct disposal to converge the complete ownership ledger to
|
||||||
zero. Its 8,484-test / 5-skip Release suite, exact-binary lifecycle/reconnect
|
zero. Its 8,484-test / 5-skip Release suite, exact-binary lifecycle/reconnect
|
||||||
gate, and canonical nine-stop route pass. J4 gameplay-state lifetime groups
|
gate, and canonical nine-stop route pass. J4 is complete at `89e6b207`: the
|
||||||
are the current execution point.
|
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.
|
||||||
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
|
||||||
|
|
@ -1303,7 +1308,7 @@ honest metrics + committed baselines (A — exit criteria block C)
|
||||||
-> delta GPU submission (G)
|
-> delta GPU submission (G)
|
||||||
-> residual frame cleanup (H-a, H-b, H-c)
|
-> residual frame cleanup (H-a, H-b, H-c)
|
||||||
-> flat collision assets (I — COMPLETE)
|
-> flat collision assets (I — COMPLETE)
|
||||||
-> presentation-independent runtime (J — CURRENT at J4)
|
-> presentation-independent runtime (J — CURRENT at J5)
|
||||||
-> Linux/headless/multi-session (K)
|
-> Linux/headless/multi-session (K)
|
||||||
-> evidence-gated GPU jobs (L)
|
-> evidence-gated GPU jobs (L)
|
||||||
```
|
```
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Modern runtime Slice J — presentation-independent runtime
|
# Modern runtime Slice J — presentation-independent runtime
|
||||||
|
|
||||||
**Status:** J0–J3 COMPLETE; J4.1–J4.4 COMPLETE; J4.5 combined closeout active
|
**Status:** J0–J4 COMPLETE; J5 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
|
||||||
|
|
@ -213,7 +213,7 @@ match current traces; App has no server-GUID ownership.
|
||||||
|
|
||||||
### J4 — chat, inventory, magic, and gameplay-state services
|
### J4 — chat, inventory, magic, and gameplay-state services
|
||||||
|
|
||||||
**Active 2026-07-26.**
|
**Completed 2026-07-26.**
|
||||||
|
|
||||||
**Detailed execution plan:**
|
**Detailed execution plan:**
|
||||||
[`2026-07-26-modern-runtime-slice-j4.md`](2026-07-26-modern-runtime-slice-j4.md).
|
[`2026-07-26-modern-runtime-slice-j4.md`](2026-07-26-modern-runtime-slice-j4.md).
|
||||||
|
|
@ -249,8 +249,14 @@ Runtime owns character options and server run/jump projections, exposes exact
|
||||||
borrowed J4 gameplay views, and routes retained UI plus future no-window hosts
|
borrowed J4 gameplay views, and routes retained UI plus future no-window hosts
|
||||||
through one synchronous generation-gated state-command seam. Its 169 Runtime
|
through one synchronous generation-gated state-command seam. Its 169 Runtime
|
||||||
tests, 3,777 App tests / 3 skips, 8,534 complete Release tests / 5 skips, and
|
tests, 3,777 App tests / 3 skips, 8,534 complete Release tests / 5 skips, and
|
||||||
exact-binary seven-checkpoint lifecycle/reconnect gate pass. J4.5 combined
|
exact-binary seven-checkpoint lifecycle/reconnect gate pass. J4.5 completed at
|
||||||
failure, parity, teardown, connected, and nine-stop closeout is active.
|
`89e6b207`: Runtime owns the one shortcut manager, graphical command effects
|
||||||
|
flow through the exact Runtime inventory/character owners, the item-use UI
|
||||||
|
cannot construct a second transaction gate, and the combined failure-safe
|
||||||
|
ownership ledger converges. Its 175 Runtime tests, 3,780 App tests / 3 skips,
|
||||||
|
8,544 complete Release tests / 5 skips, exact-binary lifecycle/reconnect gate,
|
||||||
|
and canonical nine-stop route pass. Evidence:
|
||||||
|
[`../research/2026-07-26-slice-j4-5-gameplay-state-closeout.md`](../research/2026-07-26-slice-j4-5-gameplay-state-closeout.md).
|
||||||
|
|
||||||
Detailed execution begins with a source-ownership inventory. Move one coherent
|
Detailed execution begins with a source-ownership inventory. Move one coherent
|
||||||
lifetime group at a time in this order:
|
lifetime group at a time in this order:
|
||||||
|
|
@ -271,6 +277,10 @@ 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
|
||||||
|
and a named-retail ordering matrix. Each coherent move must preserve the
|
||||||
|
accepted connected interaction, facing, projectile, and collision behavior.
|
||||||
|
|
||||||
- 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,
|
||||||
projectiles, and outbound movement cadence.
|
projectiles, and outbound movement cadence.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Modern runtime Slice J4 — gameplay-state lifetime groups
|
# Modern runtime Slice J4 — gameplay-state lifetime groups
|
||||||
|
|
||||||
**Status:** J4.1–J4.4 COMPLETE; J4.5 ACTIVE
|
**Status:** COMPLETE
|
||||||
**Parent:** `2026-07-25-modern-runtime-slice-j.md`, J4
|
**Parent:** `2026-07-25-modern-runtime-slice-j.md`, J4
|
||||||
**Production base:** `77c013998b902724d66e487589a4ea18538e1ea6`
|
**Production base:** `77c013998b902724d66e487589a4ea18538e1ea6`
|
||||||
**Authorization:** the user approved Slices F–L, including Slice J gameplay
|
**Authorization:** the user approved Slices F–L, including Slice J gameplay
|
||||||
|
|
@ -25,7 +25,7 @@ ordering and its existing retail-derived algorithms.
|
||||||
| J4.2 inventory transactions | complete | `011efbeaa72509b35ea7f4a442e50a2377ae1ea4`; 157 Runtime tests, 3,770 App tests / 3 skips, 8,515 complete Release tests / 5 skips, and `logs/connected-world-gate-20260726-082057/report.json` pass |
|
| J4.2 inventory transactions | complete | `011efbeaa72509b35ea7f4a442e50a2377ae1ea4`; 157 Runtime tests, 3,770 App tests / 3 skips, 8,515 complete Release tests / 5 skips, and `logs/connected-world-gate-20260726-082057/report.json` pass |
|
||||||
| J4.3 magic/player sheet | complete | `d02a12ceac54d035797b4c58f2fc2f0ccad9a4d6`; 162 Runtime tests, 3,772 App tests / 3 skips, 8,522 complete Release tests / 5 skips, and `logs/connected-world-gate-20260726-083921/report.json` pass |
|
| J4.3 magic/player sheet | complete | `d02a12ceac54d035797b4c58f2fc2f0ccad9a4d6`; 162 Runtime tests, 3,772 App tests / 3 skips, 8,522 complete Release tests / 5 skips, and `logs/connected-world-gate-20260726-083921/report.json` pass |
|
||||||
| J4.4 character projections | complete | `dcb61efb5af6c12bd619369e28cf11bacc37bc73`; 169 Runtime tests, 3,777 App tests / 3 skips, 8,534 complete Release tests / 5 skips, and `logs/connected-world-gate-20260726-091340/report.json` pass |
|
| J4.4 character projections | complete | `dcb61efb5af6c12bd619369e28cf11bacc37bc73`; 169 Runtime tests, 3,777 App tests / 3 skips, 8,534 complete Release tests / 5 skips, and `logs/connected-world-gate-20260726-091340/report.json` pass |
|
||||||
| J4.5 combined cleanup | active | combined failure, no-window, connected, and nine-stop closeout |
|
| J4.5 combined cleanup | complete | `89e6b207f81946b40c38c8dc6597817ad99fc6e0`; 175 Runtime tests, 3,780 App tests / 3 skips, 8,544 complete Release tests / 5 skips, exact-binary lifecycle/reconnect and nine-stop gates |
|
||||||
|
|
||||||
## Current ownership inventory
|
## Current ownership inventory
|
||||||
|
|
||||||
|
|
@ -165,6 +165,8 @@ is recorded in
|
||||||
|
|
||||||
### J4.5 — combined cleanup and closeout
|
### J4.5 — combined cleanup and closeout
|
||||||
|
|
||||||
|
**Completed 2026-07-26 at `89e6b207`.**
|
||||||
|
|
||||||
- Delete temporary App owner fields, reset branches, reconstructed runtime
|
- Delete temporary App owner fields, reset branches, reconstructed runtime
|
||||||
views/events, and compatibility adapters replaced by J4.
|
views/events, and compatibility adapters replaced by J4.
|
||||||
- Prove graphical UI and no-window hosts observe the same owner instances,
|
- Prove graphical UI and no-window hosts observe the same owner instances,
|
||||||
|
|
@ -184,6 +186,16 @@ Run:
|
||||||
8. canonical nine-stop route;
|
8. canonical nine-stop route;
|
||||||
9. documentation, divergence, dependency, and source-ownership audit.
|
9. documentation, divergence, dependency, and source-ownership audit.
|
||||||
|
|
||||||
|
Result: the Runtime inventory graph now owns the one retail 18-slot shortcut
|
||||||
|
manager, retained toolbar/spell controllers apply command effects through the
|
||||||
|
canonical Runtime owner, and `ItemInteractionController` can no longer create a
|
||||||
|
second inventory transaction/busy owner. Exact retail local/send ordering is
|
||||||
|
pinned for shortcuts, favorites, filters, and desired components. Graphical
|
||||||
|
and direct no-window command effects match, while a combined failure-safe
|
||||||
|
ledger proves every J4 owner and subscription converges after reset or terminal
|
||||||
|
disposal. Exact evidence is recorded in
|
||||||
|
[`../research/2026-07-26-slice-j4-5-gameplay-state-closeout.md`](../research/2026-07-26-slice-j4-5-gameplay-state-closeout.md).
|
||||||
|
|
||||||
## Acceptance
|
## Acceptance
|
||||||
|
|
||||||
J4 is complete only when:
|
J4 is complete only when:
|
||||||
|
|
@ -232,3 +244,9 @@ J4.4 is independently reversible with:
|
||||||
```text
|
```text
|
||||||
git revert dcb61efb5af6c12bd619369e28cf11bacc37bc73
|
git revert dcb61efb5af6c12bd619369e28cf11bacc37bc73
|
||||||
```
|
```
|
||||||
|
|
||||||
|
J4.5 is independently reversible with:
|
||||||
|
|
||||||
|
```text
|
||||||
|
git revert 89e6b207f81946b40c38c8dc6597817ad99fc6e0
|
||||||
|
```
|
||||||
|
|
|
||||||
118
docs/research/2026-07-26-slice-j4-5-gameplay-state-closeout.md
Normal file
118
docs/research/2026-07-26-slice-j4-5-gameplay-state-closeout.md
Normal file
|
|
@ -0,0 +1,118 @@
|
||||||
|
# Modern runtime J4.5 — gameplay-state closeout
|
||||||
|
|
||||||
|
**Status:** COMPLETE
|
||||||
|
**Production commit:** `89e6b207f81946b40c38c8dc6597817ad99fc6e0`
|
||||||
|
**Parent plan:** `../plans/2026-07-26-modern-runtime-slice-j4.md`
|
||||||
|
|
||||||
|
## Result
|
||||||
|
|
||||||
|
J4 now has one presentation-independent owner for every gameplay-state group
|
||||||
|
in its scope. Graphical UI, current-runtime/plugin projections, and future
|
||||||
|
no-window hosts borrow the exact Runtime instances.
|
||||||
|
|
||||||
|
- `RuntimeInventoryState` owns the one 18-slot `ShortcutStore` and the one
|
||||||
|
inventory transaction/busy owner over J3's canonical `ClientObjectTable`.
|
||||||
|
- `RuntimeCharacterState` owns favorite spells, spellbook filters, and desired
|
||||||
|
component levels on its exact `Spellbook`.
|
||||||
|
- Retained toolbar and spell controllers initiate typed Runtime commands; they
|
||||||
|
no longer construct or reconstruct another mutable shortcut, favorite, or
|
||||||
|
component collection.
|
||||||
|
- `ItemInteractionController` requires the Runtime-owned
|
||||||
|
`InventoryTransactionState`; its compatibility fallback and ownership flag
|
||||||
|
are deleted.
|
||||||
|
- One allocation-free `RuntimeGameplayOwnershipSnapshot` covers inventory,
|
||||||
|
character, and communication owner/subscriber convergence.
|
||||||
|
|
||||||
|
The command seam preserves the named-retail local/send order:
|
||||||
|
|
||||||
|
- toolbar shortcut add/remove sends first and then mutates `PlayerModule`;
|
||||||
|
- favorite add/remove and filter changes mutate locally before sending;
|
||||||
|
- desired-component set/clear sends first and then mutates locally;
|
||||||
|
- an explicit desired-component value of zero remains an entry until the
|
||||||
|
complete list is cleared.
|
||||||
|
|
||||||
|
The retail trace and pseudocode are recorded in
|
||||||
|
[`2026-07-26-slice-j4-5-retail-local-command-order.md`](2026-07-26-slice-j4-5-retail-local-command-order.md).
|
||||||
|
|
||||||
|
## Failure and parity evidence
|
||||||
|
|
||||||
|
- Graphical command adapters and direct no-window owner commands produce equal
|
||||||
|
inventory/character snapshots, revisions, shortcuts, favorites, filters,
|
||||||
|
and desired-component values.
|
||||||
|
- Invalid and stale-generation commands neither publish nor mutate.
|
||||||
|
- Outbound exceptions preserve retail's already-committed local side of each
|
||||||
|
operation.
|
||||||
|
- A failing UI/subscriber callback cannot skip another observer or strand a
|
||||||
|
half-disposed Runtime root. Terminal disposal reports the failure only after
|
||||||
|
every owned suffix has run and the combined ledger has converged.
|
||||||
|
- Two independent Runtime graphs remain isolated and Runtime's dependency
|
||||||
|
closure loads no App, UI, Silk.NET, OpenAL, Arch, or ImGui assembly.
|
||||||
|
|
||||||
|
## Automated evidence
|
||||||
|
|
||||||
|
- Runtime suite: 175 passed.
|
||||||
|
- App suite: 3,780 passed / 3 established skips.
|
||||||
|
- Core suite: 3,306 passed / 2 established skips.
|
||||||
|
- Core.Net suite: 600 passed.
|
||||||
|
- UI abstractions: 545 passed.
|
||||||
|
- Content: 119 passed.
|
||||||
|
- Bake: 15 passed.
|
||||||
|
- CLI: 4 passed.
|
||||||
|
- Complete Release solution: 8,544 passed / 5 established skips.
|
||||||
|
- Final incremental Release build: zero warnings and zero errors.
|
||||||
|
- `git diff --check`: pass.
|
||||||
|
|
||||||
|
## Exact-binary connected evidence
|
||||||
|
|
||||||
|
`logs/connected-world-gate-20260726-095654/report.json` passed on exact source
|
||||||
|
and embedded binary
|
||||||
|
`89e6b207f81946b40c38c8dc6597817ad99fc6e0`:
|
||||||
|
|
||||||
|
- six capped login/outdoor/dungeon/facility/revisit checkpoints;
|
||||||
|
- one fresh-process uncapped reconnect checkpoint;
|
||||||
|
- 247.294-second capped route and 61.424-second reconnect route;
|
||||||
|
- both clients exited gracefully with code zero;
|
||||||
|
- zero failures, render-shadow mismatches, pending deltas, or stranded owner
|
||||||
|
work.
|
||||||
|
|
||||||
|
`logs/connected-r6-soak-20260726-100235.report.json` passed on the same exact
|
||||||
|
source/binary commit:
|
||||||
|
|
||||||
|
- all nine Caul/Sawato/Rynthid/Aerlinthe/Holtburg/revisit/plateau checkpoints;
|
||||||
|
- camera-turn samples at every location and movement/jump/combat exercises at
|
||||||
|
Caul, Holtburg, and Caul return;
|
||||||
|
- 515.083 seconds, graceful code-zero exit, zero failures, and
|
||||||
|
`BinaryMatchesSource=true`.
|
||||||
|
|
||||||
|
Its six warnings are the established live-world diagnostics: small
|
||||||
|
authoritative/transient entity, particle, script, and retained cache
|
||||||
|
differences at the Caul plateau, 32 missing DAT VFX messages, and 25 expected
|
||||||
|
world-edge empty-landblock misses. None is a J4 ownership failure.
|
||||||
|
|
||||||
|
An earlier post-commit run was deliberately discarded before acceptance when
|
||||||
|
the soak harness proved its executable still carried the prior commit stamp.
|
||||||
|
The retained gates above ran only after a clean App rebuild and exact
|
||||||
|
source/binary identity verification.
|
||||||
|
|
||||||
|
## Divergence audit
|
||||||
|
|
||||||
|
J4.5 changes ownership and faithfully ports existing local command ordering.
|
||||||
|
It introduces no gameplay approximation, asynchronous command queue, or
|
||||||
|
presentation difference. No divergence-register row was added or retired.
|
||||||
|
|
||||||
|
## Rollback
|
||||||
|
|
||||||
|
```text
|
||||||
|
git revert 89e6b207f81946b40c38c8dc6597817ad99fc6e0
|
||||||
|
```
|
||||||
|
|
||||||
|
Revert J4.5 before J4.4 when unwinding gameplay-state extraction. Do not
|
||||||
|
revert J3's canonical entity/object lifetime to mask a J4 command or teardown
|
||||||
|
failure.
|
||||||
|
|
||||||
|
## Next boundary
|
||||||
|
|
||||||
|
J5 moves presentation-free movement, physics, selection/approach/use, combat
|
||||||
|
intent, projectiles, and outbound cadence by coherent lifetime groups. Camera,
|
||||||
|
input devices, selection graphics, combat/spell bars, animated poses, sound,
|
||||||
|
particles, and all retained UI remain in App.
|
||||||
Loading…
Add table
Add a link
Reference in a new issue