docs(architecture): plan GameWindow campaign closeout

Pin the final host-boundary audit, three corrected-diff reviews, full Release and connected gates, exact Slice 7 framebuffer reconstruction, project reconciliation, and sole remaining user visual handoff.

Co-authored-by: Codex <codex@openai.com>
This commit is contained in:
Erik 2026-07-22 20:29:58 +02:00
parent 6c5e0604c9
commit 69650b1946
2 changed files with 128 additions and 1 deletions

View file

@ -0,0 +1,126 @@
# GameWindow Slice 8 Checkpoint L — campaign closeout
**Status:** Active 2026-07-22.
**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 AK 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.

View file

@ -40,7 +40,8 @@ audit.
[`2026-07-22-gamewindow-slice-8-checkpoint-k-canonical-soak.md`](2026-07-22-gamewindow-slice-8-checkpoint-k-canonical-soak.md). [`2026-07-22-gamewindow-slice-8-checkpoint-k-canonical-soak.md`](2026-07-22-gamewindow-slice-8-checkpoint-k-canonical-soak.md).
- [ ] L — corrected-diff reviews, focused and full Release gates, connected - [ ] L — corrected-diff reviews, focused and full Release gates, connected
lifecycle/soak, framebuffer comparison, documentation, memory, and final lifecycle/soak, framebuffer comparison, documentation, memory, and final
visual handoff. visual handoff. Detailed plan:
[`2026-07-22-gamewindow-slice-8-checkpoint-l-closeout.md`](2026-07-22-gamewindow-slice-8-checkpoint-l-closeout.md).
Checkpoint J leaves `GameWindow.cs` at 1,625 raw lines. The focused lifetime Checkpoint J leaves `GameWindow.cs` at 1,625 raw lines. The focused lifetime
owner now holds the typed shutdown roots, exact 18-stage dependency manifest, owner now holds the typed shutdown roots, exact 18-stage dependency manifest,