acdream/docs/research/2026-07-27-slice-j8-no-window-closeout.md
Erik 953c469cac 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>
2026-07-27 01:01:41 +02:00

3.7 KiB

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:

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.