Reconcile the architecture, roadmap, milestones, issue ledger, session instructions, and durable memory with the 1,622-line native shell, canonical soak evidence, connected framebuffer comparison, and sole remaining user visual gate. Co-authored-by: Codex <codex@openai.com>
8.3 KiB
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,
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:
- Behavior/retail boundary: no input, session, update/render, UI, camera, settings, teleport, or gameplay behavior was silently redesigned; every retained adaptation remains registered.
- 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.
- 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:
- focused Slice 8 composition, callback, settings, frame, lifetime, automation, and source-boundary tests;
- App Release;
dotnet build AcDream.slnx -c Release --no-restore;- the complete Release suite;
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;- 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;
- compare the six current lifecycle/reconnect PNGs with the accepted Slice 7
9d7df1bfbaseline. 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, andmemory/project_gamewindow_decomposition.mdwith 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
GameWindowback-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
9d7df1bfin 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.