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:
Erik 2026-07-27 01:01:41 +02:00
parent a9a822f206
commit 953c469cac
12 changed files with 210 additions and 35 deletions

View 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.