Canonical source: libs/oshun/analytics/src/v3-cold-join-budget.ts
Evidence artifact: V3/validation/cold-join-validation.json
Manifest version: v3-cold-join-budget.v1
The Lilith native UE cold-join gate validates the path from the "join room" tap
to a fully-rendered standard-fidelity Atrium scene. The deterministic harness
uses 96 cold-asset-cache samples for the native_ue client, a Class-tier
standard-fidelity visible set of 32 entities, a 60 fps render target, and the
5,000 ms p95 launch budget from V3/V3_TODOS.md §66.11.
| Phase | Budget | p50 | p95 | Max |
|---|---|---|---|---|
tap_to_room_ticket |
500 ms | 444 ms | 467 ms | 469 ms |
room_ticket_to_world_shard |
650 ms | 552 ms | 585 ms | 589 ms |
world_shard_to_initial_snapshot |
750 ms | 656 ms | 695 ms | 699 ms |
snapshot_to_standard_fidelity_assets |
1.7 s | 1.50 s | 1.58 s | 1.59 s |
assets_to_avatar_spawn |
650 ms | 559 ms | 595 ms | 599 ms |
avatar_spawn_to_fully_rendered_frame |
900 ms | 790 ms | 835 ms | 839 ms |
| Join tap to fully-rendered scene | 5.0 s | 4.51 s | 4.62 s | 4.68 s |
The gate is anchored to apps/v3/lilith-world-server/src/lib.rs, where
simulate_native_ue_cold_join exercises the actual room spawn, room join, and
authoritative initial snapshot broadcast path before calculating the cold-join
percentiles. It is also mirrored in V3/ue/Source/V3World/Private/V3World.cpp
and covered by the UE automation test
V3.World.Atrium.ColdJoinStandardFidelityUnderFiveSeconds, which validates the
same phase budgets, render milestones, and 5 s fully-rendered scene threshold.
pnpm verify:v3 cold-join fails closed when the native UE profile is missing,
the budget is weakened, the run count is below 96, standard fidelity or the
authoritative snapshot is not present, the first fully-rendered frame is not
presented, any phase p95 exceeds its budget, total p95 or max exceeds 5 s,
percentiles are inconsistent, or the source/doc/evidence/UE automation wiring is
missing.