docs(runtime): close character projections
Record J4.4's canonical character settings, borrowed gameplay views, typed state-command seam, complete Release evidence, exact-binary lifecycle/reconnect acceptance, rollback, and the J4.5 combined closeout boundary. Synchronize architecture, roadmap, milestones, agent guidance, and durable memory. Co-authored-by: Codex <codex@openai.com>
This commit is contained in:
parent
dcb61efb5a
commit
ce6fae7b38
9 changed files with 194 additions and 22 deletions
15
AGENTS.md
15
AGENTS.md
|
|
@ -256,8 +256,14 @@ exact coupled spellbook/local-player graph; content, routing, retained UI,
|
||||||
reset, and shutdown borrow it, and the duplicate desired-component snapshot is
|
reset, and shutdown borrow it, and the duplicate desired-component snapshot is
|
||||||
deleted. Runtime tests pass 162/162, App tests pass 3,772/3 skips, the complete
|
deleted. Runtime tests pass 162/162, App tests pass 3,772/3 skips, the complete
|
||||||
Release suite passes 8,522/5 skips, and the exact-binary seven-checkpoint
|
Release suite passes 8,522/5 skips, and the exact-binary seven-checkpoint
|
||||||
lifecycle/reconnect gate passes with graceful exits and zero failures. J4.4
|
lifecycle/reconnect gate passes with graceful exits and zero failures. J4.4 is
|
||||||
character projections are active. J0's rollback is
|
complete at `dcb61efb`: Runtime owns character options and server run/jump
|
||||||
|
projections, exposes exact borrowed J4 gameplay views, and routes retained UI
|
||||||
|
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
|
||||||
|
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.
|
||||||
|
J0's rollback is
|
||||||
`git revert b632672e5ccabfb44c551e08f1c411ab2669c44a`.
|
`git revert b632672e5ccabfb44c551e08f1c411ab2669c44a`.
|
||||||
J1's rollback is
|
J1's rollback is
|
||||||
`git revert 854d9e9cd13092bd5aaa3cf025d73eeb4600e9f8`.
|
`git revert 854d9e9cd13092bd5aaa3cf025d73eeb4600e9f8`.
|
||||||
|
|
@ -280,6 +286,8 @@ J4.2's rollback is
|
||||||
`git revert 011efbeaa72509b35ea7f4a442e50a2377ae1ea4`.
|
`git revert 011efbeaa72509b35ea7f4a442e50a2377ae1ea4`.
|
||||||
J4.3's rollback is
|
J4.3's rollback is
|
||||||
`git revert d02a12ceac54d035797b4c58f2fc2f0ccad9a4d6`.
|
`git revert d02a12ceac54d035797b4c58f2fc2f0ccad9a4d6`.
|
||||||
|
J4.4's rollback is
|
||||||
|
`git revert dcb61efb5af6c12bd619369e28cf11bacc37bc73`.
|
||||||
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
|
||||||
|
|
@ -289,7 +297,8 @@ is `docs/research/2026-07-26-slice-j3-6-lifetime-closeout.md`; J4 executes from
|
||||||
`docs/plans/2026-07-26-modern-runtime-slice-j4.md`; J4.1 closeout is
|
`docs/plans/2026-07-26-modern-runtime-slice-j4.md`; J4.1 closeout is
|
||||||
`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`. The exact G4
|
`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
|
||||||
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:
|
||||||
|
|
|
||||||
15
CLAUDE.md
15
CLAUDE.md
|
|
@ -254,8 +254,14 @@ exact coupled spellbook/local-player graph; content, routing, retained UI,
|
||||||
reset, and shutdown borrow it, and the duplicate desired-component snapshot is
|
reset, and shutdown borrow it, and the duplicate desired-component snapshot is
|
||||||
deleted. Runtime tests pass 162/162, App tests pass 3,772/3 skips, the complete
|
deleted. Runtime tests pass 162/162, App tests pass 3,772/3 skips, the complete
|
||||||
Release suite passes 8,522/5 skips, and the exact-binary seven-checkpoint
|
Release suite passes 8,522/5 skips, and the exact-binary seven-checkpoint
|
||||||
lifecycle/reconnect gate passes with graceful exits and zero failures. J4.4
|
lifecycle/reconnect gate passes with graceful exits and zero failures. J4.4 is
|
||||||
character projections are active. J0's rollback is
|
complete at `dcb61efb`: Runtime owns character options and server run/jump
|
||||||
|
projections, exposes exact borrowed J4 gameplay views, and routes retained UI
|
||||||
|
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
|
||||||
|
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.
|
||||||
|
J0's rollback is
|
||||||
`git revert b632672e5ccabfb44c551e08f1c411ab2669c44a`.
|
`git revert b632672e5ccabfb44c551e08f1c411ab2669c44a`.
|
||||||
J1's rollback is
|
J1's rollback is
|
||||||
`git revert 854d9e9cd13092bd5aaa3cf025d73eeb4600e9f8`.
|
`git revert 854d9e9cd13092bd5aaa3cf025d73eeb4600e9f8`.
|
||||||
|
|
@ -278,6 +284,8 @@ J4.2's rollback is
|
||||||
`git revert 011efbeaa72509b35ea7f4a442e50a2377ae1ea4`.
|
`git revert 011efbeaa72509b35ea7f4a442e50a2377ae1ea4`.
|
||||||
J4.3's rollback is
|
J4.3's rollback is
|
||||||
`git revert d02a12ceac54d035797b4c58f2fc2f0ccad9a4d6`.
|
`git revert d02a12ceac54d035797b4c58f2fc2f0ccad9a4d6`.
|
||||||
|
J4.4's rollback is
|
||||||
|
`git revert dcb61efb5af6c12bd619369e28cf11bacc37bc73`.
|
||||||
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
|
||||||
|
|
@ -287,7 +295,8 @@ is `docs/research/2026-07-26-slice-j3-6-lifetime-closeout.md`; J4 executes from
|
||||||
`docs/plans/2026-07-26-modern-runtime-slice-j4.md`; J4.1 closeout is
|
`docs/plans/2026-07-26-modern-runtime-slice-j4.md`; J4.1 closeout is
|
||||||
`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`. The exact G4
|
`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
|
||||||
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:
|
||||||
|
|
|
||||||
|
|
@ -205,8 +205,9 @@ src/
|
||||||
|
|
||||||
AcDream.Runtime/ presentation-independent client kernel boundary
|
AcDream.Runtime/ presentation-independent client kernel boundary
|
||||||
RuntimeAssemblyMarker.cs -> J0 dependency boundary
|
RuntimeAssemblyMarker.cs -> J0 dependency boundary
|
||||||
GameRuntime*.cs -> J1 borrowed views, synchronous commands,
|
GameRuntime*.cs -> J1/J4 borrowed views, synchronous commands,
|
||||||
ordered deltas, clock, generation + teardown
|
ordered deltas/checkpoints, clock,
|
||||||
|
generation + teardown
|
||||||
Session/ -> J2 canonical session lifetime, ordered
|
Session/ -> J2 canonical session lifetime, ordered
|
||||||
inbound routing + retryable teardown
|
inbound routing + retryable teardown
|
||||||
Entities/
|
Entities/
|
||||||
|
|
@ -221,8 +222,9 @@ src/
|
||||||
RuntimeCommunicationState.cs -> one chat/social owner + ordered stream
|
RuntimeCommunicationState.cs -> one chat/social owner + ordered stream
|
||||||
RuntimeInventoryState.cs -> exact object-table borrower + inventory
|
RuntimeInventoryState.cs -> exact object-table borrower + inventory
|
||||||
transaction/session-state owner
|
transaction/session-state owner
|
||||||
RuntimeCharacterState.cs -> coupled spellbook/local-player owner
|
RuntimeCharacterState.cs -> coupled spellbook/local-player plus
|
||||||
-> J3 and J4.1–J4.3 complete; J4.4 character projections active
|
character-option/run-jump owner
|
||||||
|
-> J3 and J4.1–J4.4 complete; J4.5 combined closeout 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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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, and J4.3 magic/player-sheet ownership are closed; J4.4 character projections are 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'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.
|
||||||
**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.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
@ -1726,7 +1726,13 @@ port in any phase — no separate listing here.
|
||||||
> borrow it, and the duplicate desired-component snapshot is deleted. Its 162
|
> borrow it, and the duplicate desired-component snapshot is deleted. Its 162
|
||||||
> Runtime tests, 3,772 App tests / 3 skips, 8,522-test / 5-skip complete
|
> Runtime tests, 3,772 App tests / 3 skips, 8,522-test / 5-skip complete
|
||||||
> Release suite, and exact-binary seven-checkpoint lifecycle/reconnect gate
|
> Release suite, and exact-binary seven-checkpoint lifecycle/reconnect gate
|
||||||
> pass. J4.4 character projections are active.
|
> pass. J4.4 is complete at `dcb61efb`: Runtime owns character options and
|
||||||
|
> server run/jump projections, exposes the exact borrowed J4 inventory,
|
||||||
|
> character, and social views, and routes graphical/no-window state commands
|
||||||
|
> 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
|
||||||
|
> exact-binary seven-checkpoint lifecycle/reconnect gate pass. J4.5 combined
|
||||||
|
> failure, parity, teardown, connected, and nine-stop closeout 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:
|
||||||
|
|
|
||||||
|
|
@ -201,8 +201,13 @@ residency is `0/0/0` at every stable checkpoint and teardown converges. Slice I
|
||||||
spellbook/local-player graph, content and presentation borrow it, and the
|
spellbook/local-player graph, content and presentation borrow it, and the
|
||||||
duplicate desired-component snapshot is deleted. Its 162 Runtime tests,
|
duplicate desired-component snapshot is deleted. Its 162 Runtime tests,
|
||||||
3,772 App tests / 3 skips, 8,522 full Release tests / 5 skips, and
|
3,772 App tests / 3 skips, 8,522 full Release tests / 5 skips, and
|
||||||
exact-binary seven-checkpoint lifecycle/reconnect route pass. J4.4 character
|
exact-binary seven-checkpoint lifecycle/reconnect route pass. J4.4 is
|
||||||
projections are active under
|
complete at `dcb61efb`: Runtime owns character options and server run/jump
|
||||||
|
projections, exposes exact borrowed J4 gameplay views, and routes retained
|
||||||
|
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
|
||||||
|
tests / 5 skips, and exact-binary seven-checkpoint lifecycle/reconnect route
|
||||||
|
pass. J4.5 combined closeout 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).
|
||||||
|
|
@ -220,6 +225,8 @@ Slice-J3.6 closeout evidence is
|
||||||
[`../research/2026-07-26-slice-j3-6-lifetime-closeout.md`](../research/2026-07-26-slice-j3-6-lifetime-closeout.md).
|
[`../research/2026-07-26-slice-j3-6-lifetime-closeout.md`](../research/2026-07-26-slice-j3-6-lifetime-closeout.md).
|
||||||
Slice-J4.3 closeout evidence is
|
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
|
||||||
|
[`../research/2026-07-26-slice-j4-4-character-projections.md`](../research/2026-07-26-slice-j4-4-character-projections.md).
|
||||||
The historical exact G4 visual rollback remains
|
The historical exact G4 visual rollback remains
|
||||||
`git revert ef1d263337997bb030eadb7b8e71d73dc659907a`.
|
`git revert ef1d263337997bb030eadb7b8e71d73dc659907a`.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -13,8 +13,9 @@ App, and one ordered canonical entity/object stream plus direct views to all
|
||||||
hosts and closed the failure-safe owner ledger. J4.1 moved communication and
|
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 character projections are the active
|
owner into Runtime at `d02a12ce`; J4.4 moved character settings/projections
|
||||||
execution point.
|
and the shared typed state-command seam at `dcb61efb`; J4.5 combined closeout
|
||||||
|
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.
|
||||||
|
|
|
||||||
|
|
@ -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.3 COMPLETE; J4.4 character projections active
|
**Status:** J0–J3 COMPLETE; J4.1–J4.4 COMPLETE; J4.5 combined closeout 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
|
||||||
|
|
@ -244,8 +244,13 @@ lifecycle/reconnect gate pass. J4.3 completed at `d02a12ce`:
|
||||||
content, routing, retained UI, reset, and shutdown borrow it, and the duplicate
|
content, routing, retained UI, reset, and shutdown borrow it, and the duplicate
|
||||||
desired-component snapshot is gone. Its 162 Runtime tests, 3,772 App tests / 3
|
desired-component snapshot is gone. Its 162 Runtime tests, 3,772 App tests / 3
|
||||||
skips, 8,522 complete Release tests / 5 skips, and exact-binary
|
skips, 8,522 complete Release tests / 5 skips, and exact-binary
|
||||||
seven-checkpoint lifecycle/reconnect gate pass. J4.4 character projections are
|
seven-checkpoint lifecycle/reconnect gate pass. J4.4 completed at `dcb61efb`:
|
||||||
active.
|
Runtime owns character options and server run/jump projections, exposes exact
|
||||||
|
borrowed J4 gameplay views, and routes retained UI plus future no-window hosts
|
||||||
|
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
|
||||||
|
exact-binary seven-checkpoint lifecycle/reconnect gate pass. J4.5 combined
|
||||||
|
failure, parity, teardown, connected, and nine-stop closeout is active.
|
||||||
|
|
||||||
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:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Modern runtime Slice J4 — gameplay-state lifetime groups
|
# Modern runtime Slice J4 — gameplay-state lifetime groups
|
||||||
|
|
||||||
**Status:** J4.1–J4.3 COMPLETE; J4.4 ACTIVE
|
**Status:** J4.1–J4.4 COMPLETE; J4.5 ACTIVE
|
||||||
**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
|
||||||
|
|
@ -24,8 +24,8 @@ ordering and its existing retail-derived algorithms.
|
||||||
| J4.1 communication/social | complete | `c9d25ade50c0a5c4f7db5b6cca680e01e35cc18e`; 152 Runtime tests, 3,765 App tests / 3 skips, 8,494 complete Release tests / 5 skips, and `logs/connected-world-gate-20260726-075109/report.json` pass |
|
| J4.1 communication/social | complete | `c9d25ade50c0a5c4f7db5b6cca680e01e35cc18e`; 152 Runtime tests, 3,765 App tests / 3 skips, 8,494 complete Release tests / 5 skips, and `logs/connected-world-gate-20260726-075109/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.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 | active | move remaining character options/skill-derived state and expose the borrowed J4 view/command surface |
|
| 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 | pending | combined failure, no-window, connected, and nine-stop closeout |
|
| J4.5 combined cleanup | active | combined failure, no-window, connected, and nine-stop closeout |
|
||||||
|
|
||||||
## Current ownership inventory
|
## Current ownership inventory
|
||||||
|
|
||||||
|
|
@ -144,6 +144,8 @@ only mutable component-count owner. Exact evidence is recorded in
|
||||||
|
|
||||||
### J4.4 — character settings and player-state projections
|
### J4.4 — character settings and player-state projections
|
||||||
|
|
||||||
|
**Completed 2026-07-26 at `dcb61efb`.**
|
||||||
|
|
||||||
- Move remaining presentation-independent character options and skill-derived
|
- Move remaining presentation-independent character options and skill-derived
|
||||||
state needed by commands/bots.
|
state needed by commands/bots.
|
||||||
- Keep controller/body/camera/input application in App/J5.
|
- Keep controller/body/camera/input application in App/J5.
|
||||||
|
|
@ -153,6 +155,14 @@ only mutable component-count owner. Exact evidence is recorded in
|
||||||
Gate: character replacement, settings isolation, two Runtime instances in one
|
Gate: character replacement, settings isolation, two Runtime instances in one
|
||||||
process, no static mutable session state, and no backend load.
|
process, no static mutable session state, and no backend load.
|
||||||
|
|
||||||
|
Result: the Runtime character graph owns both option bitfields and the
|
||||||
|
server-authoritative run/jump projection; the two former App owners are
|
||||||
|
deleted. Exact borrowed inventory/character/social views and synchronous
|
||||||
|
generation-gated state commands are shared by graphical UI and future
|
||||||
|
no-window hosts. Normalized checkpoints now cover the J4 state. Exact evidence
|
||||||
|
is recorded in
|
||||||
|
[`../research/2026-07-26-slice-j4-4-character-projections.md`](../research/2026-07-26-slice-j4-4-character-projections.md).
|
||||||
|
|
||||||
### J4.5 — combined cleanup and closeout
|
### J4.5 — combined cleanup and closeout
|
||||||
|
|
||||||
- Delete temporary App owner fields, reset branches, reconstructed runtime
|
- Delete temporary App owner fields, reset branches, reconstructed runtime
|
||||||
|
|
@ -216,3 +226,9 @@ J4.3 is independently reversible with:
|
||||||
```text
|
```text
|
||||||
git revert d02a12ceac54d035797b4c58f2fc2f0ccad9a4d6
|
git revert d02a12ceac54d035797b4c58f2fc2f0ccad9a4d6
|
||||||
```
|
```
|
||||||
|
|
||||||
|
J4.4 is independently reversible with:
|
||||||
|
|
||||||
|
```text
|
||||||
|
git revert dcb61efb5af6c12bd619369e28cf11bacc37bc73
|
||||||
|
```
|
||||||
|
|
|
||||||
117
docs/research/2026-07-26-slice-j4-4-character-projections.md
Normal file
117
docs/research/2026-07-26-slice-j4-4-character-projections.md
Normal file
|
|
@ -0,0 +1,117 @@
|
||||||
|
# Modern runtime J4.4 — character projections and typed state commands
|
||||||
|
|
||||||
|
**Status:** COMPLETE
|
||||||
|
**Production commit:** `dcb61efb5af6c12bd619369e28cf11bacc37bc73`
|
||||||
|
**Parent plan:** `../plans/2026-07-26-modern-runtime-slice-j4.md`
|
||||||
|
|
||||||
|
## Result
|
||||||
|
|
||||||
|
`RuntimeCharacterState` now owns the remaining presentation-independent local
|
||||||
|
character state: both character-option bitfields and the server-authoritative
|
||||||
|
run/jump skill projection. The App-owned `PlayerCharacterOptionsState` and
|
||||||
|
`LocalPlayerSkillState` were deleted. The graphical movement controller
|
||||||
|
borrows and applies the Runtime values when its body is constructed or
|
||||||
|
reconstructed.
|
||||||
|
|
||||||
|
The current-runtime boundary exposes borrowed, immutable projections over the
|
||||||
|
exact J4 owners:
|
||||||
|
|
||||||
|
- inventory request/busy state, complete item-or-spell shortcuts, and item
|
||||||
|
mana;
|
||||||
|
- character options, movement skills, vitals, attributes, skills, learned
|
||||||
|
spells, favorites, filters, desired components, enchantment counts, and
|
||||||
|
revisions;
|
||||||
|
- friends, squelch counts/revisions, and negotiated chat-room state.
|
||||||
|
|
||||||
|
Synchronous, generation-gated typed commands now cover shortcut mutation,
|
||||||
|
spell favorites/filter/forget/component preferences, advancement, character
|
||||||
|
options, friends, and squelch. The retained graphical UI uses this same seam.
|
||||||
|
The adapter publishes into the existing generation-scoped `ICommandBus`; the
|
||||||
|
exact live-session router performs the established `WorldSession` sends and
|
||||||
|
becomes inert before session detachment. No asynchronous queue, second state
|
||||||
|
collection, or extra frame was introduced.
|
||||||
|
|
||||||
|
Normalized checkpoints now include J4 inventory, character, and social
|
||||||
|
revisions/counts, so later graphical-versus-no-window parity gates cannot pass
|
||||||
|
while ignoring the newly exposed state.
|
||||||
|
|
||||||
|
## Retail basis
|
||||||
|
|
||||||
|
J4.4 changes ownership and command routing, not game behavior. The retained
|
||||||
|
defaults come from the named retail client:
|
||||||
|
|
||||||
|
```text
|
||||||
|
PlayerModule::PlayerModule @ 0x005D51F0
|
||||||
|
options_ = 0x50C4A54A
|
||||||
|
options2_ = 0x00948700
|
||||||
|
spell_filters_ = 0x00003FFF
|
||||||
|
```
|
||||||
|
|
||||||
|
`PlayerModule::Clear @ 0x005D48A0` clears the per-character shortcut,
|
||||||
|
desired-component, generic-option, and gameplay-option objects. Because one
|
||||||
|
modern Runtime owner survives successive character sessions, its session reset
|
||||||
|
restores the equivalent freshly constructed option bitfields. Existing
|
||||||
|
PlayerDescription replacement and `SetCharacterOptions (0x01A1)` packing are
|
||||||
|
unchanged.
|
||||||
|
|
||||||
|
Controller/body/camera/input application remains in App and is intentionally
|
||||||
|
outside J4; J5 owns that later boundary.
|
||||||
|
|
||||||
|
## Automated evidence
|
||||||
|
|
||||||
|
- Runtime suite: 169 passed.
|
||||||
|
- App suite: 3,777 passed / 3 established skips.
|
||||||
|
- Core suite: 3,305 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,534 passed / 5 established skips.
|
||||||
|
- Release build: pass, zero warnings and zero errors on the final incremental
|
||||||
|
build.
|
||||||
|
- `git diff --check`: pass.
|
||||||
|
|
||||||
|
Focused coverage proves the retail defaults, partial run/jump updates,
|
||||||
|
character replacement/reset, full item and spell shortcut observation,
|
||||||
|
borrowed owner identity, typed command/generation routing, displaced-session
|
||||||
|
inertness, normalized checkpoint coverage, two independent Runtime instances,
|
||||||
|
absence of static mutable session state, and deletion of both App owner paths.
|
||||||
|
|
||||||
|
## Exact-binary connected evidence
|
||||||
|
|
||||||
|
`logs/connected-world-gate-20260726-091340/report.json` passed on exact source
|
||||||
|
and embedded binary commit
|
||||||
|
`dcb61efb5af6c12bd619369e28cf11bacc37bc73`:
|
||||||
|
|
||||||
|
- six capped checkpoints through login, outdoor/dungeon/facility travel and
|
||||||
|
revisit plus one fresh-process uncapped reconnect checkpoint;
|
||||||
|
- 243.602-second capped route and 61.262-second reconnect route;
|
||||||
|
- both sessions exited gracefully with code zero;
|
||||||
|
- zero failures, render-shadow mismatches, pending deltas, or stranded owner
|
||||||
|
work.
|
||||||
|
|
||||||
|
Its only warning is the established set of 25 expected world-edge landblock
|
||||||
|
misses.
|
||||||
|
|
||||||
|
## Divergence audit
|
||||||
|
|
||||||
|
The slice preserves existing retail-derived packet order, option defaults,
|
||||||
|
movement-skill application, and command builders while changing only lifetime
|
||||||
|
ownership and the host boundary. No divergence row was added or retired.
|
||||||
|
|
||||||
|
## Rollback
|
||||||
|
|
||||||
|
```text
|
||||||
|
git revert dcb61efb5af6c12bd619369e28cf11bacc37bc73
|
||||||
|
```
|
||||||
|
|
||||||
|
Revert J4.4 before J4.3 if the gameplay-state groups must be unwound. Do not
|
||||||
|
revert J3's canonical entity/object ownership to mask a J4 state or command
|
||||||
|
failure.
|
||||||
|
|
||||||
|
## Next boundary
|
||||||
|
|
||||||
|
J4.5 removes the remaining compatibility paths, proves graphical and
|
||||||
|
no-window command/state parity under injected failures, and runs the combined
|
||||||
|
Release, connected lifecycle/reconnect, and canonical nine-stop closeout.
|
||||||
Loading…
Add table
Add a link
Reference in a new issue