# GameWindow Slice 8 Checkpoint L — campaign closeout **Status:** Automated closeout complete 2026-07-22; final user visual matrix pending. **Parent:** [`2026-07-22-gamewindow-slice-8-composition-lifecycle.md`](2026-07-22-gamewindow-slice-8-composition-lifecycle.md), Checkpoint L. **Integrated baseline:** `6c5e0604`; Checkpoints A–K are implemented. `GameWindow.cs` is 1,622 raw lines, App Release passes 3,451 tests / 3 intentional skips, and the complete Release suite passes 7,823 tests / 5 intentional skips. Two fresh-process canonical nine-stop soaks pass with graceful exits and the unchanged residency/performance limits. **Behavior rule:** L proves and records the shipped ownership state. It may correct documentation, test/gate coverage, or a defect demonstrated by the audit, but it does not add gameplay, alter retail behavior, loosen a gate, or perform the separately deferred `GameEntity` aggregation. ## 1. Outcome Close the eight-slice thin-`GameWindow` campaign only after every exit criterion has current evidence: - the host is a native construction/callback shell with no AC gameplay algorithm, entity scan, packet builder, DAT landblock builder, animation-part composer, or draw-graph body; - update, render, input, session, framebuffer, and shutdown callbacks are narrow typed handoffs; - startup and shutdown have one ordered, transactional, retryable ownership graph without a service locator or callback facade into the host; - extracted owners have focused tests and symmetric teardown; - the Release build/test, connected lifecycle/reconnect, canonical soak, and framebuffer gates preserve the accepted behavior; - architecture, roadmap, milestones, issues, divergence bookkeeping, durable memory, and both session instruction files agree with the code. Line count is reported as a structural signal, not substituted for those ownership requirements. ## 2. Completion audit ### 2.1 Host boundary and dependency direction Measure raw lines, fields, methods, and the remaining callback bodies from the actual source. Run the Slice 8 boundary/source-shape suites and inspect every remaining `GameWindow` method. Search for prohibited network packet assembly, entity/world scans, DAT build loops, part-transform composition, render graph bodies, direct environment reads, and anonymous device subscriptions. Any substantial body or callback into the host reopens the responsible checkpoint; it is not waived because the file is below the target size. Verify the composed owners and their tests cover: - ordered partial-load rollback and terminal session start; - exact frame-pair publication and one update/render handoff; - logical callback cutoff before session retirement and physical detach; - hard session/GPU shutdown barriers, soft physical-cleanup reporting, retry/no-replay progress, and native-window-last release; - deferred checkpoint acknowledgement, same-frame post-diagnostics capture, FIFO order, cancellation, and shutdown. ### 2.2 Three corrected-diff review passes Review the complete Slice 8 diff and final source in three independent passes: 1. **Behavior/retail boundary:** no input, session, update/render, UI, camera, settings, teleport, or gameplay behavior was silently redesigned; every retained adaptation remains registered. 2. **Architecture/ownership:** no duplicate canonical state, broad runtime bag, window back-reference, leaked subscription, conflicting disposer, or layer inversion; all ownership transfer and teardown paths are symmetric. 3. **Adversarial failure:** partial acquisition at every phase, callback concurrency, repeated/reentrant close, failed detach, session/GPU barrier failure, deferred render failure, checkpoint cancellation, and process/GUID reuse cannot strand or replay work. Confirmed findings are fixed at their owner and all affected gates are rerun. ## 3. Automated and connected gates Run, in order: 1. focused Slice 8 composition, callback, settings, frame, lifetime, automation, and source-boundary tests; 2. App Release; 3. `dotnet build AcDream.slnx -c Release --no-restore`; 4. the complete Release suite; 5. `tools/run-connected-world-lifecycle-gate.ps1 -SkipBuild`, requiring the capped six-stop lifecycle, exact semantic checkpoints, five capped PNGs, code-zero authoritative graceful close, and immediate uncapped fresh-process reconnect with its sixth PNG; 6. consume the two Checkpoint-K fresh-process nine-stop reports, requiring exact nine-name/sequence/process identity, zero pending teardown/retirement, staging and warmup work, no unconfounded canonical owner growth, unchanged process/update/allocation limits, and graceful exit; 7. compare the six current lifecycle/reconnect PNGs with the accepted Slice 7 `9d7df1bf` baseline. If the old generated artifacts are absent, reconstruct them from that exact commit in an isolated disposable worktree rather than inventing a new baseline. Accept only live weather/particle timing, authoritative vitals, and sub-frame camera-settling differences; geometry, UI/paperdoll layering, private viewports, alpha/depth, and world reveal must remain equivalent. Generated logs and the isolated baseline worktree are evidence only and remain untracked. The user's unrelated `TransitionTypes.cs` edit remains untouched. ## 4. Reconciliation and handoff After all nonvisual evidence is green: - mark K and the automated portion of L in the parent ledger; - close #232 with both canonical soak reports and preserve #225, #153, #116, #228, TS-50/TS-51/TS-53, and other carried work at their true scope; - update `code-structure.md`, the architecture, roadmap, milestones, `AGENTS.md`, `CLAUDE.md`, and `memory/project_gamewindow_decomposition.md` with the same counts, commits, gates, next-work boundary, and do-not-retry lessons; - audit the retail divergence register and add/remove no row unless runtime behavior actually changed; - commit the evidence/doc closeout as a bisectable unit and rerun final source/status checks. The sole remaining pause is the user's connected visual matrix: first login and radar; movement/mouse/resize/focus/combat; the shared inventory/skills/ spellbook panel; outdoor/building/dungeon/portal/paperdoll/particle/alpha presentation; graceful close and fresh reconnect. Only that confirmation marks L and the overall structural campaign complete. ## 5. Automated closeout evidence - The final host is 1,622 raw lines. Source-boundary inspection finds no AC algorithm, packet builder, entity scan, render graph, animation-part composer, or stored `GameWindow` back-reference in an extracted owner. - All 293 focused Slice 8 ownership, composition, callback, frame, lifetime, automation, and source-boundary tests pass. App Release passes 3,451 tests / 3 intentional skips; the complete Release suite passes 7,823 / 5. The build's 17 test-project warnings are the unchanged #228 set. - The connected lifecycle/reconnect gate passed in 314.4 seconds with graceful capped and uncapped exits. Its uncapped reconnect reached 174.74 FPS / 5.72 ms at the final checkpoint. All six PNG artifacts are valid; the only route warning is the expected 25 world-edge empty-landblock misses. - Both Checkpoint-K nine-stop reports passed in about 403 seconds, produced the exact names/sequences/process identity, and found no unconfounded canonical owner growth under the unchanged residency/performance limits. - The six current lifecycle PNGs were compared against artifacts rebuilt from exact accepted Slice 7 commit `9d7df1bf` in an isolated worktree. The five deterministic destinations preserve geometry, UI/paperdoll layering, private viewports, depth/alpha, and world reveal. Facility Hub was nearly pixel-identical (mean absolute RGB delta 0.91/255); the Aerlinthe captures were 3.42 and 3.87/255. Holtburg and reconnect differences are live entities, particles, vitals, and sub-frame camera timing. Capped login used a different server-saved location and was checked only for complete rendering and presentation layering. - Three corrected-diff reviews are clean: behavior/retail boundary, architecture/ownership, and adversarial lifecycle/failure handling. The divergence audit found no new runtime behavior in K or L and requires no register change. The generated reports, screenshots, and disposable baseline worktree are untracked evidence. The user's unrelated `TransitionTypes.cs` edit was not modified or staged.