4.1 KiB
Slice J7 — graphical GameRuntime root cutover evidence
Production commit:
ce41efb9e5938f79a7580476b949d172f52a1e69
Status: COMPLETE — automated and physical-display gates passed 2026-07-27.
Outcome
GameWindow now constructs and stores exactly one presentation-independent
GameRuntime. App composition records and graphical adapters borrow that
root's session, clock, identity, entity/object/physics, gameplay, movement,
environment, and transit owners. They no longer construct or reconstruct
parallel Runtime owners.
The synchronous frame contract is unchanged: input, commands, simulation, UI projection, and rendering still execute in the existing host frame. The cutover adds no command queue, worker hop, snapshot copy, or frame of latency.
Ownership and teardown
LocalPlayerIdentityState,UpdateFrameClock, andWorldEnvironmentControllerare graphical wrappers over root children.- Live presentation borrows the root transit owner.
- Session composition borrows the root session.
- The superseded App view and event adapters are deleted.
- The graphical host owns one explicit root lease.
- Shutdown first stops session ingress, then retires App UI/render borrowers, releases the host lease, and disposes the root once.
- The terminal gate verifies that
GameRuntime.CaptureOwnership()converges.
Construction and shutdown failure tests prove App rollback does not dispose a borrowed root, callback re-entrancy retains the exact retryable suffix, and no route, subscription, publication, entity, physics, gameplay, transit, session, or host-lease debt survives terminal disposal.
Automated gates
- Runtime: 383 passed.
- App: 3,717 passed / 3 skipped.
- Release solution build: passed.
- Complete Release suite: 8,661 passed / 5 skipped.
- Connected lifecycle/reconnect:
logs/connected-world-gate-20260726-190919/report.json.- exact source and binary commit match;
- six capped checkpoints in 242.324 seconds;
- one fresh uncapped reconnect checkpoint in 61.332 seconds;
- both processes exit gracefully with code zero;
- all seven stable checkpoints have zero host projections, pending host acknowledgements, live teardowns, and landblock retirements.
- Canonical nine-stop route:
logs/connected-r6-soak-20260726-191605.report.json.- all destinations, movement, jump, combat, revisit, portal, and graceful shutdown gates pass;
- no shutdown convergence, host-lease, retry, or abandoned-work diagnostic appears.
Against the last J5.7 canonical baseline
logs/connected-r6-soak-20260726-161406.report.json, median turn
CPU/GPU/update p95 improves from 22.9/9.7/2.3 ms to 16.4/1.3/0.7 ms, and turn
allocation p50 improves from 5,812.9 to 75.1 KiB. Median stationary
CPU/GPU/update p95 improves from 21.4/7.0/1.3 ms to 15.2/1.1/0.6 ms. Peak
working set falls about 16%, from 2,326.8 to 1,953.2 MiB; peak private bytes
remain effectively flat.
The route retained only bounded diagnostics already covered by the existing performance and DAT-VFX ledgers: a two-landblock Caul visibility variation, one additional tracked texture (40,960 bytes), a transient 27-particle difference, 32 known DAT-driven VFX diagnostics, and 25 expected world-edge load misses.
Visual gate
Captured physical-display login, facility-hub, Holtburg-after-dungeon, and
fresh reconnect frames are intact. On 2026-07-27 the user accepted the exact
post-cutover descendant Release build at source 456c7223:
- radar objects and coordinates;
- inventory paperdoll;
- near and distant Use/approach;
- combat facing before bow fire;
/lsand spell-recall tunnel, materialization, and exit presentation.
All checks passed: world objects, radar blips/coordinates, inventory
paperdoll, near/distant Use and busy release, combat facing before bow fire,
and both /ls and spell-recall tunnel/materialization/exit presentation.
Retail and divergence audit
This is an ownership/composition refactor. It changes no AC algorithm, packet ordering, input semantics, simulation cadence, or visual effect. No new retail divergence is introduced, so the divergence register requires no new row.
Exact rollback
git revert ce41efb9e5938f79a7580476b949d172f52a1e69