# Slice J6.2 — canonical reveal-generation ownership **Date:** 2026-07-26 **Production commits:** `a6860d5563ae845a2cbb916abacf2b4aee515cdb`, `acb845d812574206da1693fb379fec8a6f175fcb` **Exact rollback, newest first:** ```text git revert acb845d812574206da1693fb379fec8a6f175fcb git revert a6860d5563ae845a2cbb916abacf2b4aee515cdb ``` ## Outcome `AcDream.Runtime.World.RuntimeWorldTransitState` now owns one canonical login/portal reveal lifetime: - monotonically increasing generation and exact destination cell; - typed destination-readiness acknowledgement and atomic accepted latch; - materialization and world-simulation availability; - normal-world viewport observation; - completion, cancellation, and session reset; - the retail five-second wait cue; - portal materialization count and invariant diagnostics. `WorldRevealLifecycleTelemetry` and its App snapshot were deleted. App's `WorldRevealCoordinator` now reports graphical readiness and performs streaming/render-resource, selection, audio, and viewport side effects over the same Runtime owner. `WorldGenerationAvailabilityState` is a read-only projection and `CurrentGameRuntimeViewAdapter` borrows the Runtime portal view directly instead of reconstructing it. Runtime rejects stale generations, wrong destination cells, invalid indoor/radius shapes, early materialization, early viewport reveal, premature completion, and post-cancel work. Accepted readiness is sticky: graphical readiness is a sampled host fact and may legitimately fall after Runtime has accepted the atomic destination edge. ## Retail ordering - `SmartBox::TeleportPlayer @ 0x00453910` - `SmartBox::UseTime @ 0x00455410` - `gmSmartBoxUI::EndTeleportAnimation @ 0x004D65A0` The Runtime transition preserves retail's ordering: destination materialization resumes world simulation while portal space still covers the world; the normal viewport is observed later; completion follows the authored WorldFadeIn/LoginComplete tail. No timeout or forced reveal was introduced. ## Automated evidence - Runtime: 349 passed. - App: 3,716 passed / 3 skipped. - Complete solution: 8,626 passed / 5 skipped. - Release build: zero errors; 17 pre-existing test-project warnings tracked by issue #228. - Ownership/source guards: one production Runtime transit construction, no App lifecycle owner, no reconstructed portal view. - Adversarial fixtures: wrong/stale generation, wrong destination, malformed readiness, reordered edges, duplicate acknowledgement, post-ready sampling, supersession, cancellation, session reset, generation reuse, two-instance isolation, unhydratable destination, and throwing diagnostics. One cold parallel full-suite run tripped the existing `PortalProjectionTests.ProjectToClipLease_ReusesPooledWorkWithoutResultArrays` allocation threshold by 2,008 bytes. The test passed immediately in isolation and the complete suite then passed unchanged. ## Connected evidence Accepted report: `logs/connected-world-gate-20260726-171724/report.json` The report records exact source and embedded binary commit `acb845d812574206da1693fb379fec8a6f175fcb`. - Capped process: 243.942 seconds, six checkpoints, graceful code-zero exit. - Uncapped fresh-process reconnect: 61.625 seconds, one checkpoint, graceful code-zero exit. - Route: fresh login, Aerlinthe, Rynthid world edge, Facility Hub dungeon, Holtburg, Aerlinthe revisit, then fresh-process reconnect. - Failures: zero. - Reveal invariant failures: zero. - Expected warning: 25 instrumented world-edge landblock misses. The earlier report `logs/connected-world-gate-20260726-171020/report.json` is deliberately rejected. It proved that graphical readiness may fall after accepted materialization and exposed an incorrect diagnostic classification in `a6860d55`; `acb845d8` keeps the accepted latch but treats later sampled readiness as non-authoritative. No new retail divergence was introduced.