# Slice G5 production closeout — 2026-07-25 ## Status Complete. Normal production consumes retained `RenderFrameView` route ranges for both mesh submission and attached-particle ownership and does not build `InteriorEntityPartition`. The former partition remains only for standalone tests and explicitly enabled diagnostic/oracle probes. The connected retained-path visual gate is also complete. The user accepted stable server objects and paperdoll state across travel, restored distant interaction, and retail-shaped `/ls` plus spell-recall materialization without character pop or recall-animation tail. ## Exact implementation | Commit | Purpose | |---|---| | `10ccce3f2dc38d1ff8ce5d0fbc962156a50b022d` | Retire the production `InteriorEntityPartition`; derive all five production mesh routes and attached-particle owner sets from the retained frame product. | | `14fbe92b08a74326e59b085eba34d7b772e9c940` | Treat active-monitor refresh telemetry as temporarily unavailable during Windows console/RDP topology replacement, preventing a GLFW monitor-query exception from escaping the native move callback. | `RenderFrameRouteOwnerSelector` supports exact-route replace/union and all-range exclusion without warm-frame allocation. It supplies the landscape-static, outside-dynamic, look-in, cell-static, and dynamic-last particle passes. `RetailPViewRenderer` constructs the legacy partition only when no retained product exists in a standalone test or when a legacy comparison/probe explicitly requires it. Production diagnostics copy retained source and route counts before arena release and therefore do not resurrect the old enumeration. ## Connected correctness and lifecycle matrix All reports identify the checked-out source and measured binary exactly and end through graceful client shutdown. | Gate | Exact commit | Result | Evidence | |---|---|---|---| | Capped canonical nine-stop | `10ccce3f` | Pass, 0 failures | `logs/connected-r6-soak-20260725-105133.report.json` | | Uncapped canonical nine-stop | `10ccce3f` | Pass, 0 failures | `logs/connected-r6-soak-20260725-121035.report.json` | | Dense Arwic, 15,530 entities / 111 animated | `10ccce3f` | Pass, 0 failures | `logs/connected-dense-town-20260725-123107.report.json` | | Fresh login, outdoor/dungeon/facility/revisit, graceful logout, fresh uncapped reconnect | `14fbe92b` | Pass, 0 failures, 7 checkpoints | `logs/connected-world-gate-20260725-131552/report.json` | | Exact post-fix dense redrive | `14fbe92b` | Pass, 0 failures | `logs/connected-dense-town-20260725-134935.report.json` | The lifecycle gate's only warning is the canonical route's 25 expected world-edge landblock misses. DAT-driven missing-emitter diagnostics remain the known VFX-content warnings in the soak reports; no fallback effect is created. The final dense redrive changed from the physical console to RDP before its stationary sample, so its absolute timing is diagnostic only. It still proves dense-scene construction, route completion, resource cleanup, and graceful shutdown on the exact post-fix binary. ## Ordinary production profile A separate Release client ran uncapped with: - no UI probe or automation route; - no automation artifact owner or screenshot/current-path oracle; - no developer tools; - no WB diagnostic comparison; - only the permanent frame profiler and frame-history recorder. The physical-display capture stayed at the normal Aerlinthe scene for its final stable minute. The retained frame product was the sole production draw source. | Metric | Final stable 60 seconds | |---|---:| | Frames / throughput | 31,180 / 519.7 FPS | | CPU frame p50 / p95 / p99 / max | 1.869 / 2.306 / 2.484 / 6.727 ms | | GPU frame p50 / p95 / p99 / max | 1.096 / 1.108 / 1.136 / 1.342 ms | | Update p50 / p95 / p99 | 0.239 / 0.274 / 0.366 ms | | Frame-thread allocation p50 / p95 / p99 | 22,880 / 24,056 / 24,216 B | External five-second CPU and three-sample Windows GPU counters measured: | Resource | Value | |---|---:| | Process CPU | 9.74% of 16 logical processors, about 1.56 cores while uncapped | | Working set | 652.1 MiB | | Private bytes | 928.3 MiB | | Threads / handles | 35 / 755 | | GPU 3-D engine | 32.11% average, 64.37% maximum | | Dedicated / shared GPU process memory | 449.8 / 17.3 MiB | Evidence: `logs/g5-production-uncapped-20260725-134345.frame.csv` and `logs/g5-production-uncapped-20260725-134345.out.log`. This is not presented as a capped-versus-uncapped memory comparison: scene, camera, pacing, and cache age must match before making that claim. It is an honest ordinary-production absolute point. Relative to Slice H's separate ordinary-production frame-thread baseline, median allocation fell from 25.6 KiB to 22.34 KiB (12.7%), CPU p95 improved from 2.5–2.8 ms to 2.306 ms, and GPU median improved from 1.2–1.3 ms to 1.096 ms. ## Remaining allocation owner G5 removed the retained current-render partition identified by Slice H. Ordinary production still allocates 22.34 KiB/frame, above the program's initial 4 KiB/frame whole-client target. The prior allocation-tick stacks and the four-mover Slice-I baseline identify reset-complete `Transition` collision/query scratch as the next dominant owner. That storage/lifetime change is intentionally Slice I1, where differential trajectory tests can prove that reusing scratch changes no retail collision decision or float. G5 therefore closes its render-scene ownership contract without weakening the program-level allocation target. Slice I owns the measured remainder. ## Verification - Focused display-pacing/callback/settings suite: 70 passed. - Release solution build: pass; 16 already tracked test-project warnings. - Complete invariant-culture Release suite: 8,335 passed / 5 skipped. - Connected lifecycle/reconnect: pass on exact `14fbe92b`, both sessions exit code 0 and graceful logout confirmed. - User visual acceptance: pass on 2026-07-25. - No new retail divergence was introduced.