acdream/tests/AcDream.App.Tests/Streaming
Erik 2bc81480d4 feat(ui): AD-109 — arm the login wormhole at the char-select Enter click
USER-DIRECTED deviation from retail (register row AD-109, same commit):
retail presents the empty pre-player gameplay screen — black behind the
retained UI — from the Enter click (CPlayerSystem::LogOnCharacter
@0x0055F890 -> CM_Login::SendNotice_BeginEnterWorld @0x006AD810, UI mode
0x10000008) until CreatePlayer raises SmartBox::teleport_in_progress
@0x00451C20 and gmSmartBoxUI::UseTime @0x004D6EAB begins TAS_TUNNEL. The
user prefers the tunnel to cover that whole wait.

- ILocalPlayerTeleportNetworkSink.ArmLoginTunnel: begins the login
  wormhole presentation at the Enter click, consuming the sequencer's
  begin-edge events SYNCHRONOUSLY (the Enter command blocks the update
  thread for the whole ServerReady round trip, so a deferred first tick
  would leave exactly the black window this deviation removes). The
  enter cue plays at the click: retail's own rule is cue-at-animation-
  begin (Sound_UI_EnterPortal @0x004D638E, unconditional inside
  BeginTeleportAnimation), and the animation begin moved to the click.
- Armed pre-reveal pump: tunnel animates across the round trip
  (worldReady pinned false, sequencer holds in Tunnel); the hold clock
  accumulates from the click.
- Adoption: the Runtime login reveal ADOPTS the running presentation
  (no re-Begin, no second cue); rejected EnterWorld (lifecycle back to
  AwaitingSelection) disarms and retires the tunnel.
- Wired at the ONE host edge every entry route shares:
  ILiveSessionLifecycleHost.ApplySelectedCharacter (direct connect,
  roster Enter, enter-after-create) via
  LiveSessionSelectionBindings.ArmLoginTunnel (default no-op keeps
  headless and every existing construction site unchanged).
- ILocalPlayerLoginLifecycleSource: typed seam (not a stored delegate —
  the frame-phase owner delegate-field guard) projecting the Runtime
  character-selection lifecycle for the disarm edge.
- Frame contract update: [login-frames] over a login is tunnel -> world
  from the click — no void, and no black between click and world.

Tests: 4 new armed-tunnel tests (arm/adopt/disarm/frame-shape); App
suite live-DAT 5516 passed / 3 skipped (baseline 5512/3 + 4 new).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-17 13:42:30 +02:00
..
GpuWorldStateActivatorTests.cs refactor(streaming): compose landblock presentation transaction 2026-07-21 21:45:16 +02:00
GpuWorldStateAnimatedIndexTests.cs fix(rendering): bound portal resource lifetime 2026-07-18 21:35:16 +02:00
GpuWorldStateCollisionResidencyTests.cs refactor(physics): remove parsed collision graphs 2026-07-25 18:21:19 +02:00
GpuWorldStateRenderTraversalTests.cs test(app): put every strict-zero site on the probe (#250) 2026-07-29 03:49:13 +02:00
GpuWorldStateVisibilityTests.cs fix(streaming): stop replaying committed recenter retirements 2026-08-02 20:53:11 +02:00
GraphicalRemotePlacementServiceWindowTests.cs feat(physics): C4 route 4b-1 — remote placement infrastructure (dormant) 2026-08-04 04:08:19 +02:00
LandblockBuildFactoryTests.cs refactor(physics): remove parsed collision graphs 2026-07-25 18:21:19 +02:00
LandblockBuildOriginTests.cs test: FarLoad strip test asserts each build config's designed outcome 2026-08-13 08:52:12 +02:00
LandblockConcretePresentationPipelineTests.cs refactor(runtime): own per-session physics simulation 2026-07-26 13:39:57 +02:00
LandblockPhysicsPublisherTests.cs fix(physics): S2 — static publication emits authored Spheres as Spheres (AP-155 narrowed) 2026-08-07 08:07:02 +02:00
LandblockPresentationPipelineTests.cs fix(streaming): stop replaying committed recenter retirements 2026-08-02 20:53:11 +02:00
LandblockRenderPublisherTests.cs perf(streaming): cursor publication across frame budgets 2026-07-24 19:10:18 +02:00
LandblockRetirementCoordinatorTests.cs fix(streaming): stop replaying committed recenter retirements 2026-08-02 20:53:11 +02:00
LandblockStaticPresentationPublisherTests.cs refactor(runtime): own per-session physics simulation 2026-07-26 13:39:57 +02:00
LocalPlayerTeleportControllerTests.cs feat(ui): AD-109 — arm the login wormhole at the char-select Enter click 2026-08-17 13:42:30 +02:00
RuntimeTeleportDestinationAdapterTests.cs refactor(runtime): own teleport destination correlation 2026-07-26 17:52:34 +02:00
StreamingCompletionQueueTests.cs fix(streaming): preserve portal destination ownership 2026-07-25 08:35:12 +02:00
StreamingControllerReadinessTests.cs fix(test): cover the atlas-tier seam the D-1 fix depends on; correct AP-150's citation 2026-08-06 07:54:03 +02:00
StreamingFrameControllerTests.cs refactor(physics): delete legacy PhysicsEngine.Resolve/ResolvePlacement/HasCellSurface (C5a, AP-1/AD-1) 2026-08-05 14:11:31 +02:00
StreamingWorkBudgetTests.cs fix(streaming): preserve portal destination ownership 2026-07-25 08:35:12 +02:00
TeleportLandblockTransitionTests.cs fix(world): remove non-retail portal exit fade 2026-07-15 23:20:52 +02:00
WorldGenerationQuiescenceTests.cs refactor(runtime): acknowledge exact world host projections 2026-07-26 18:27:41 +02:00
WorldRevealCoordinatorTests.cs fix(streaming): derive the portal reveal window from the live streaming radii (#280) 2026-08-05 23:54:59 +02:00
WorldRevealDerivedWindowIntegrationTests.cs fix(streaming): make a demoted landblock render-ready like a published one (#280 D-1) 2026-08-06 07:27:28 +02:00
WorldRevealReadinessBarrierTests.cs fix(streaming): make a demoted landblock render-ready like a published one (#280 D-1) 2026-08-06 07:27:28 +02:00