docs(runtime): close Slice J and activate Slice K
Record the shared graphical/no-window reset architecture, deterministic lifecycle evidence, exact rollback point, and synchronized project guidance before beginning the Linux headless host. Co-authored-by: Codex <noreply@openai.com>
This commit is contained in:
parent
a9a822f206
commit
953c469cac
12 changed files with 210 additions and 35 deletions
|
|
@ -35,14 +35,15 @@ banner cannot silently override the current program state.
|
|||
in `#225`; its connected resource-lifetime and performance routes pass.
|
||||
- **Carried behavior debt:** `#153` (far teleport onto an unstreamed edge),
|
||||
`#116` (two narrowed slide-response cases), and divergence rows TS-50/TS-51.
|
||||
- **Active engineering track:** complete Slice J's world handshake,
|
||||
composition root, and no-window closeout, then build the approved
|
||||
Linux/headless multi-session host in Slice K. J5.7's exact rollback is
|
||||
`git revert cdee7a4b49addb5e1500753f6a885f7c899bd0f0`.
|
||||
- **Active engineering track:** Slice J's presentation-independent runtime,
|
||||
composition root, shared generation reset, and no-window closeout are
|
||||
complete. Build the approved Linux/headless multi-session host in Slice K.
|
||||
J8's exact rollback is
|
||||
`git revert a9a822f206cc6021bc099988144488f3bd7c397b`.
|
||||
- **Divergence audit:** 178 active rows — IA 17, AD 37, AP 85, TS 34,
|
||||
and UN 5 — plus the retained retired TS-37 history note.
|
||||
- **Latest automated baseline:** Release build succeeds; 8,596 tests pass and
|
||||
five are intentionally skipped. The exact J5.7 lifecycle/reconnect and
|
||||
- **Latest automated baseline:** Release build succeeds; 8,696 tests pass and
|
||||
five are intentionally skipped. The exact J8 lifecycle/reconnect and
|
||||
canonical nine-stop gates match embedded binary/source commit, converge
|
||||
every backlog, and complete with graceful zero-code exits and zero failures.
|
||||
|
||||
|
|
|
|||
|
|
@ -241,7 +241,8 @@ src/
|
|||
World/
|
||||
RuntimeWorldEnvironmentState.cs -> canonical calendar/time/weather owner
|
||||
RuntimeWorldTransitState.cs -> canonical reveal generation/readiness owner
|
||||
-> J3–J6 complete; J7 composition-root convergence active
|
||||
RuntimeGenerationReset.cs -> one retryable canonical-generation reset
|
||||
-> Slice J complete; graphical and no-window hosts share one GameRuntime
|
||||
-> may reference Core, Core.Net, Content, and Plugin.Abstractions only
|
||||
-> must never reference App, UI, Silk.NET, OpenAL, Arch, or ImGui
|
||||
|
||||
|
|
|
|||
|
|
@ -479,7 +479,7 @@ useful ordering seam, but its ownership status is **partial**.
|
|||
| 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`). |
|
||||
| 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 J7** | 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 moved world environment, reveal-generation truth, exact F751/Position destination correlation, and typed graphical-host acknowledgement into Runtime. J7 now composes those already-proven owners behind one `GameRuntime` root without adding another state layer. |
|
||||
| Unified `GameEntity` | **Slice J complete** | Canonical identity, retained-object lifetime, direct views, ordered entity/object deltas, gameplay state, action/combat/magic/movement/physics/remote/projectile simulation, world environment, reveal/transit truth, and host acknowledgement share failure-safe Runtime owners while exact graphical sidecars stay in App. One `GameRuntime` composes the graph. `RuntimeGenerationReset` is the sole retryable canonical-generation reset for graphical and no-window hosts; the deterministic direct host proves lifecycle, commands, portal, reconnect, GUID reuse, fault recovery, isolation, and terminal convergence without presentation assemblies (`a9a822f2`). |
|
||||
|
||||
### 4.3 Revised extraction sequence
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# acdream — strategic roadmap
|
||||
|
||||
**Status:** Living document. Updated 2026-07-27. **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.1 world-environment ownership is closed at `902076c0`; J6.2 canonical reveal generation and typed destination readiness is closed at `a6860d55` plus `acb845d8`; J6.3 exact F751/Position destination correlation is closed at `6a063a27`; J6.4 exact graphical-host acknowledgement and owner cleanup is closed at `18d17d8b`. J7's one graphical `GameRuntime` root is closed at `ce41efb9`, including the user's 2026-07-27 exact post-cutover visual acceptance. J8 no-window integration is active. Issue #225's lifestone/particle alpha comparison remains a separate rendering visual gate.
|
||||
**Status:** Living document. Updated 2026-07-27. **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.1 world-environment ownership is closed at `902076c0`; J6.2 canonical reveal generation and typed destination readiness is closed at `a6860d55` plus `acb845d8`; J6.3 exact F751/Position destination correlation is closed at `6a063a27`; J6.4 exact graphical-host acknowledgement and owner cleanup is closed at `18d17d8b`. J7's one graphical `GameRuntime` root is closed at `ce41efb9`, including the user's 2026-07-27 exact post-cutover visual acceptance. J8 closed Slice J at `a9a822f2` with one shared graphical/no-window root and generation-reset transaction. Slice K Linux headless/multi-session work 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.
|
||||
|
||||
---
|
||||
|
|
@ -1797,8 +1797,10 @@ port in any phase — no separate listing here.
|
|||
> Runtime tests, 3,716 App tests / 3 skips, 8,642-test / 5-skip complete Release
|
||||
> suite, and exact-binary lifecycle/reconnect route pass with zero ownership
|
||||
> debt at every checkpoint. J7 completed at `ce41efb9`; the user accepted its
|
||||
> exact post-cutover visual matrix on 2026-07-27. J8 no-window integration and
|
||||
> Slice-J closeout are active.
|
||||
> exact post-cutover visual matrix on 2026-07-27. J8 closed Slice J at
|
||||
> `a9a822f2`: 395 Runtime tests, 3,731 App tests / 3 skips, 8,696 complete-
|
||||
> solution tests / 5 skips, lifecycle/reconnect, and canonical nine-stop gates
|
||||
> pass. Slice K Linux headless/multi-session implementation is active.
|
||||
> The historical exact cutover
|
||||
> rollback remains
|
||||
> `git revert ef1d263337997bb030eadb7b8e71d73dc659907a`. Slice H is complete:
|
||||
|
|
|
|||
|
|
@ -273,8 +273,13 @@ residency is `0/0/0` at every stable checkpoint and teardown converges. Slice I
|
|||
/ 5 skips, and exact-binary lifecycle/reconnect route pass with every
|
||||
environment/transit/host ledger at zero. J7 composition-root convergence
|
||||
completed at `ce41efb9`; the user accepted its exact post-cutover visual
|
||||
matrix on 2026-07-27. J8 is active under
|
||||
[`2026-07-25-modern-runtime-slice-j.md`](2026-07-25-modern-runtime-slice-j.md).
|
||||
matrix on 2026-07-27. J8 closed Slice J at `a9a822f2`: graphical and
|
||||
no-window hosts share one `GameRuntime`, one canonical generation-reset
|
||||
transaction, and one gameplay-owner graph. Its 395 Runtime tests, 3,731 App
|
||||
tests / 3 skips, 8,696 complete-solution tests / 5 skips, exact-binary
|
||||
lifecycle/reconnect route, and canonical nine-stop route pass. Slice K is
|
||||
active under
|
||||
[`2026-07-26-modern-runtime-slice-k.md`](2026-07-26-modern-runtime-slice-k.md).
|
||||
Slice-I closeout evidence is
|
||||
[`../research/2026-07-25-slice-i7-closeout.md`](../research/2026-07-25-slice-i7-closeout.md).
|
||||
Slice-J2 closeout evidence is
|
||||
|
|
|
|||
|
|
@ -25,8 +25,9 @@ J6 completed at `18d17d8b`: Runtime owns world environment, canonical reveal
|
|||
generation/readiness, exact F751/Position destination correlation, and the
|
||||
generation/cell-scoped graphical-host acknowledgement suffix. J7 completed
|
||||
at `ce41efb9` with its automated gates and the user's 2026-07-27
|
||||
physical-display acceptance. J8 no-window integration and Slice-J closeout are
|
||||
active.
|
||||
physical-display acceptance. J8 and Slice J closed at `a9a822f2`: graphical
|
||||
and direct hosts share one `GameRuntime`, one retryable generation-reset
|
||||
transaction, and one canonical gameplay-owner graph. Slice K is active.
|
||||
|
||||
**Scope:** Reconcile and sequence the existing Modern Pipeline (`MP`) and
|
||||
Linux/headless (`LH`) tracks using the 2026-07-24 connected performance audit.
|
||||
|
|
@ -1065,7 +1066,7 @@ host-parity tests after each move.
|
|||
|
||||
**Prepared execution plan:**
|
||||
[`2026-07-26-modern-runtime-slice-k.md`](2026-07-26-modern-runtime-slice-k.md).
|
||||
Implementation begins after Slice J's no-window closeout.
|
||||
Implementation began after Slice J's no-window closeout at `a9a822f2`.
|
||||
|
||||
**Purpose:** Deliver efficient automated bots.
|
||||
|
||||
|
|
@ -1304,8 +1305,10 @@ projection stages and App owns only retryable resource receipts. Its 365
|
|||
Runtime tests, 3,716 App tests / 3 skips, 8,642-test / 5-skip complete Release
|
||||
suite, and exact-binary lifecycle/reconnect gate pass with zero ownership debt
|
||||
at every stable checkpoint. J7 completed at `ce41efb9`, and the user accepted
|
||||
its exact post-cutover visual matrix on 2026-07-27. J8 is the current execution
|
||||
point.
|
||||
its exact post-cutover visual matrix on 2026-07-27. J8 closed Slice J at
|
||||
`a9a822f2`; 395 Runtime tests, 3,731 App tests / 3 skips, 8,696 complete-
|
||||
solution tests / 5 skips, lifecycle/reconnect, and canonical nine-stop gates
|
||||
pass. Slice K is the current execution point.
|
||||
Evidence:
|
||||
[`../research/2026-07-25-slice-g5-production-profile.md`](../research/2026-07-25-slice-g5-production-profile.md)
|
||||
and
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# Modern runtime Slice J — presentation-independent runtime
|
||||
|
||||
**Status:** J0–J7 COMPLETE; J8 ACTIVE
|
||||
**Status:** COMPLETE 2026-07-27
|
||||
**Parent:** `2026-07-24-modern-runtime-architecture.md`, Slice J
|
||||
**Authorization:** the user approved Slices F–L, including the otherwise-frozen
|
||||
Slice J gameplay-owner moves, on 2026-07-24
|
||||
|
|
@ -416,7 +416,7 @@ git revert ce41efb9e5938f79a7580476b949d172f52a1e69
|
|||
|
||||
**Detailed execution plan:**
|
||||
[`2026-07-26-modern-runtime-slice-j8.md`](2026-07-26-modern-runtime-slice-j8.md).
|
||||
Implementation is active after J7's 2026-07-27 physical-display acceptance.
|
||||
Completed at `a9a822f2` after J7's 2026-07-27 physical-display acceptance.
|
||||
|
||||
- Build a transport/content test host that constructs Runtime directly.
|
||||
- Connect, enter world, receive chat/inventory/world updates, move, use,
|
||||
|
|
@ -433,6 +433,16 @@ integration, resource teardown, packet/order/timing parity, and the user visual
|
|||
matrix all pass. Slice K may then build the Linux multi-session host without
|
||||
another gameplay extraction.
|
||||
|
||||
J8 passes 395 Runtime tests, 3,731 App tests / 3 skips, 8,696 complete-solution
|
||||
tests / 5 skips, the exact-binary lifecycle/reconnect route, and the canonical
|
||||
nine-stop route. Graphical and direct hosts share one `GameRuntime`, one
|
||||
retryable canonical-generation reset transaction, and the same gameplay-owner
|
||||
graph. Exact rollback:
|
||||
|
||||
```text
|
||||
git revert a9a822f206cc6021bc099988144488f3bd7c397b
|
||||
```
|
||||
|
||||
## 5. Commit order
|
||||
|
||||
1. `arch(runtime): establish presentation-independent boundary`
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# Modern runtime Slice J8 — no-window integration and Slice J closeout
|
||||
|
||||
**Status:** ACTIVE — J7 ENTRY GATE PASSED 2026-07-27
|
||||
**Status:** COMPLETE 2026-07-27 — SLICE J CLOSED
|
||||
**Parent:** `2026-07-25-modern-runtime-slice-j.md`, J8
|
||||
**Authorization:** the user approved Slices F–L, including the J gameplay-owner
|
||||
gates, on 2026-07-24
|
||||
|
|
@ -139,6 +139,11 @@ increasing within a generation and restart only when the generation changes.
|
|||
|
||||
### J8.1 — one direct root host
|
||||
|
||||
**Complete at `a9a822f2`.** `RuntimeGenerationReset` is the single retryable
|
||||
canonical-generation reset transaction. Graphical App reset borrows that
|
||||
transaction and retains only its presentation stages; the no-window host uses
|
||||
the same Runtime root and reset owner directly.
|
||||
|
||||
- Add the Runtime-owned generation-reset transaction and its narrow borrowed
|
||||
host-retirement acknowledgement.
|
||||
- Replace the child-by-child canonical portions of App's reset bindings with
|
||||
|
|
@ -162,6 +167,11 @@ generation, and converges without a presentation assembly or duplicate owner.
|
|||
|
||||
### J8.2 — deterministic transport/content lifecycle
|
||||
|
||||
**Complete at `a9a822f2`.** `NoWindowGameRuntimeHost` drives the production
|
||||
root through connect, enter, decoded state, movement, use, combat, casting,
|
||||
projectile work, portal completion, stop, reconnect, stale-route rejection,
|
||||
GUID reuse, and terminal convergence.
|
||||
|
||||
- Build deterministic session operations and in-memory transport.
|
||||
- Bind the exact session lifecycle order:
|
||||
reset → attach inbound → connect → select identity → enter → activate
|
||||
|
|
@ -180,6 +190,11 @@ root, accepted ordering is stable, and old-generation routes are inert.
|
|||
|
||||
### J8.3 — cancellation, faults, isolation, and credentials
|
||||
|
||||
**Complete at `a9a822f2`.** Focused gates cover reset retry/no-replay,
|
||||
portal cancellation before and after readiness, observer failure containment,
|
||||
two simultaneous isolated roots, stale-generation routes, and
|
||||
credential-safe traces.
|
||||
|
||||
- Cancel during connect, after inbound attach, during portal readiness, and
|
||||
with a host acknowledgement pending.
|
||||
- Inject route-construction, route-detach, observer, projection
|
||||
|
|
@ -196,6 +211,24 @@ credential-safe.
|
|||
|
||||
### J8.4 — complete Slice J gate
|
||||
|
||||
**Complete.** The exact committed binary passed:
|
||||
|
||||
- 395/395 Runtime tests;
|
||||
- 3,731 App tests / 3 skips;
|
||||
- 8,696 complete-solution tests / 5 intentional skips;
|
||||
- connected lifecycle/reconnect:
|
||||
`logs/connected-world-gate-20260727-004418/report.json`;
|
||||
- canonical nine-stop route:
|
||||
`logs/connected-r6-soak-20260727-004942.report.json`;
|
||||
- the already accepted J7 physical-display matrix.
|
||||
|
||||
The no-window process loads no App, UI, renderer, audio, Silk.NET, OpenAL,
|
||||
Arch, or ImGui assembly. The dependency and divergence audits found no new
|
||||
retail deviation. Retail chat-history research also confirmed that session
|
||||
end does not clear the bounded transcript: `CPlayerSystem::OnEndCharacterSession`
|
||||
at `0x00562870` reinitializes the character session, while the explicit
|
||||
`ClientCommunicationSystem::DoClear` at `0x0056E600` owns chat-buffer clearing.
|
||||
|
||||
- Run focused Runtime tests.
|
||||
- Run the Release solution build.
|
||||
- Run the complete Release suite.
|
||||
|
|
@ -254,10 +287,14 @@ extracting gameplay again.
|
|||
|
||||
## 7. Commit and rollback discipline
|
||||
|
||||
J8 implementation lands as one test/integration closeout commit after the J7
|
||||
visual entry gate, followed by one documentation closeout commit if needed.
|
||||
The full production SHA and exact `git revert <sha>` are recorded here before
|
||||
Slice K starts. J8 must not modify the J7 rollback point:
|
||||
J8 implementation landed as one test/integration closeout commit after the J7
|
||||
visual entry gate. Its exact rollback is:
|
||||
|
||||
```text
|
||||
git revert a9a822f206cc6021bc099988144488f3bd7c397b
|
||||
```
|
||||
|
||||
J8 did not modify the J7 rollback point:
|
||||
|
||||
```text
|
||||
git revert ce41efb9e5938f79a7580476b949d172f52a1e69
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# Modern runtime Slice K — Linux headless and multi-session host
|
||||
|
||||
**Status:** PREPARED — BEGINS AFTER SLICE J CLOSEOUT
|
||||
**Status:** ACTIVE 2026-07-27 — SLICE J ENTRY GATE PASSED
|
||||
**Parent:** `2026-07-24-modern-runtime-architecture.md`, Slice K
|
||||
**Authorization:** the user approved Slices F–L on 2026-07-24
|
||||
**Purpose:** run efficient automated clients on Linux without a display, GPU,
|
||||
|
|
@ -9,10 +9,14 @@ prove 30 isolated sessions can share immutable content safely in one process.
|
|||
|
||||
## 1. Entry contract
|
||||
|
||||
Slice K starts only after J8 proves one direct `GameRuntime` can connect, enter
|
||||
Slice K starts after J8 proves one direct `GameRuntime` can connect, enter
|
||||
world, receive authoritative state, move, use, fight/cast, portal, stop,
|
||||
reconnect, and converge without presentation assemblies.
|
||||
|
||||
That entry gate passed at `a9a822f2`: 395 Runtime tests, 3,731 App tests /
|
||||
3 skips, 8,696 complete-solution tests / 5 skips, exact-binary connected
|
||||
lifecycle/reconnect, and canonical nine-stop routes all pass.
|
||||
|
||||
K adds a production host over that same root. It does not move gameplay out of
|
||||
App again and does not create a bot-specific world model.
|
||||
|
||||
|
|
|
|||
94
docs/research/2026-07-27-slice-j8-no-window-closeout.md
Normal file
94
docs/research/2026-07-27-slice-j8-no-window-closeout.md
Normal file
|
|
@ -0,0 +1,94 @@
|
|||
# Slice J8 no-window integration and Slice J closeout
|
||||
|
||||
## Outcome
|
||||
|
||||
Slice J closed at `a9a822f206cc6021bc099988144488f3bd7c397b`.
|
||||
The graphical client and direct no-window host now construct and borrow the
|
||||
same `GameRuntime`, canonical gameplay owners, generation token, and retryable
|
||||
generation-reset transaction. No gameplay model or GUID map was duplicated.
|
||||
|
||||
Exact rollback:
|
||||
|
||||
```text
|
||||
git revert a9a822f206cc6021bc099988144488f3bd7c397b
|
||||
```
|
||||
|
||||
## Canonical reset ownership
|
||||
|
||||
`RuntimeGenerationReset` owns the exact-generation reset order for transit,
|
||||
commands, containers, actions, movement, object tables, character, item mana,
|
||||
social state, entity retirement, host-projection acknowledgement, canonical
|
||||
entity completion, chat identity, snapshots, and player identity.
|
||||
|
||||
The reset is a retained-cursor transaction:
|
||||
|
||||
- completed stages never replay after a callback failure;
|
||||
- entity retirement uses exact `RuntimeEntityKey` incarnations;
|
||||
- canonical identity clears only after Runtime and host projections converge;
|
||||
- duplicate completed reset is inert;
|
||||
- re-entry or host replacement for an active generation is rejected.
|
||||
|
||||
The graphical reset manifest invokes this transaction once and retains only
|
||||
App presentation cleanup. `NoWindowGameRuntimeHost` invokes the same Runtime
|
||||
transaction without loading App or a presentation backend.
|
||||
|
||||
## Direct-host proof
|
||||
|
||||
The deterministic no-window scenario covers:
|
||||
|
||||
- connect, character selection, enter world, and outbound activation;
|
||||
- entity/object/inventory/chat/vital/environment/movement state;
|
||||
- movement, use, attack, cast, projectile, and portal operations;
|
||||
- portal host acknowledgement;
|
||||
- graceful stop, reconnect, stale-route rejection, and GUID reuse;
|
||||
- reset retry/no-replay and portal cancellation before/after readiness;
|
||||
- observer-failure containment;
|
||||
- two simultaneous roots with isolated credentials, clocks, GUIDs, items,
|
||||
chat, spells, projectiles, portals, and teardown;
|
||||
- credential-safe traces with no password text;
|
||||
- terminal zero ownership and backlog convergence.
|
||||
|
||||
The direct test process loads no App, UI, renderer, audio, Silk.NET, OpenAL,
|
||||
Arch, or ImGui assembly.
|
||||
|
||||
## Retail chat-history decision
|
||||
|
||||
The integrated reconnect trace retains the bounded chat transcript while
|
||||
clearing active command targets and character identity. This matches the named
|
||||
retail ownership:
|
||||
|
||||
- `CPlayerSystem::OnEndCharacterSession` at `0x00562870` ends and begins the
|
||||
character session.
|
||||
- `ClientUISystem::OnEndCharacterSession` at `0x00564AD0` calls
|
||||
`ClientUISystem::CleanUpGameUI` at `0x005648A0`.
|
||||
- That cleanup clears trade, vendor, ground-container, and selection state;
|
||||
it does not clear the chat buffer.
|
||||
- Explicit `ClientCommunicationSystem::DoClear` at `0x0056E600` owns the
|
||||
clear-chat-buffer notice.
|
||||
|
||||
No reconnect-time chat purge was added.
|
||||
|
||||
## Acceptance evidence
|
||||
|
||||
- Runtime tests: 395/395.
|
||||
- App tests: 3,731 pass / 3 intentional skips.
|
||||
- Complete Release solution: 8,696 pass / 5 intentional skips.
|
||||
- Connected lifecycle/reconnect:
|
||||
`logs/connected-world-gate-20260727-004418/report.json`.
|
||||
- Canonical nine-stop:
|
||||
`logs/connected-r6-soak-20260727-004942.report.json`.
|
||||
- J7's exact graphical visual matrix was accepted by the user on 2026-07-27.
|
||||
|
||||
The connected routes exited gracefully with zero failures and no pending
|
||||
publication, retirement, upload, warmup, or ownership backlog. Population-
|
||||
sensitive object/particle counts and missing-DAT VFX diagnostics were recorded
|
||||
but did not violate the route invariants.
|
||||
|
||||
## Audits
|
||||
|
||||
- Dependency closure: pass.
|
||||
- Presentation/backend assembly isolation: pass.
|
||||
- Duplicate canonical constructors/maps: none.
|
||||
- Mutable process-wide session state: none introduced.
|
||||
- Teardown ledger convergence: pass.
|
||||
- Retail divergence register: no new behavioral divergence.
|
||||
Loading…
Add table
Add a link
Reference in a new issue