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>
94 lines
3.7 KiB
Markdown
94 lines
3.7 KiB
Markdown
# 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.
|