docs(architecture): record GameWindow automated closeout
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>
This commit is contained in:
parent
69650b1946
commit
5c955c36ec
11 changed files with 239 additions and 201 deletions
|
|
@ -26,29 +26,13 @@ What does NOT go here:
|
|||
|
||||
## Current queue — 2026-07-22
|
||||
|
||||
- **Active structural work:** `GameWindow` decomposition. Slices 1–7 and Slice
|
||||
8 checkpoints A–H are complete; I.1–I.7 now own the executable ordered
|
||||
startup path through retained UI and live presentation, including the
|
||||
canonical runtime/world, selection/radar, landblock publishers, and
|
||||
portal/sky/particle resources.
|
||||
I.7 now owns streaming/session/hydration/local-player/teleport startup and
|
||||
every late edge explicitly. I.8a now owns the focused session factory,
|
||||
command targets, and sole gameplay input subscriber before frame publication.
|
||||
I.8b now owns the complete update/render construction, exact atomic frame
|
||||
publication, and lifecycle resource snapshot source. I.8c makes session
|
||||
start the terminal `OnLoad` operation. I.9 corrected the production root to
|
||||
invoke the exact tested pipeline and made every consumed platform/settings
|
||||
result explicit. Checkpoint J moves the exact retryable shutdown graph into
|
||||
`GameWindowLifetime`, including typed roots, hard session/GPU barriers,
|
||||
reportable physical detach, structured terminal state, and native-window-last
|
||||
release. `GameWindow.OnUpdate` and `GameWindow.OnRender` are typed
|
||||
orchestration handoffs and the class is 1,625 raw lines. Checkpoints K–L—the
|
||||
canonical soak snapshots and final closeout—remain active in
|
||||
[`docs/architecture/code-structure.md`](architecture/code-structure.md).
|
||||
This is the behavior-preserving prerequisite before new M4 feature bodies.
|
||||
- **Connected-gate fidelity:** `#232` adds canonical managed/GPU/cache-owner
|
||||
snapshots to the nine-stop soak so process-residency variance cannot be
|
||||
mistaken for an owner leak or silently waved away.
|
||||
- **Structural handoff:** all eight `GameWindow` decomposition slices and the
|
||||
automated closeout are complete. The 1,622-line native shell has typed
|
||||
startup, frame, callback, and shutdown owners; 293 focused tests, the
|
||||
7,823/5 Release suite, the lifecycle/reconnect route, two canonical
|
||||
nine-stop soaks, and the Slice-7 framebuffer comparison pass. Only the
|
||||
user's final connected visual matrix remains before the campaign is marked
|
||||
complete in [`docs/architecture/code-structure.md`](architecture/code-structure.md).
|
||||
- **Separate rendering gate:** `#225`, lifestone/particle alpha ordering. Its
|
||||
connected performance, lifetime, and unattended portal routes pass.
|
||||
- **Carried behavior debt:** `#153` far-teleport unstreamed-edge arrival and
|
||||
|
|
@ -122,7 +106,7 @@ attributes remain safely projected as zero.
|
|||
|
||||
## #232 — Nine-stop soak process-memory gate lacks canonical owner snapshots
|
||||
|
||||
**Status:** OPEN
|
||||
**Status:** DONE (2026-07-22, `bca41487` + `6c5e0604`)
|
||||
**Severity:** LOW
|
||||
**Filed:** 2026-07-22
|
||||
**Component:** connected automation / resource diagnostics
|
||||
|
|
@ -135,13 +119,17 @@ growth of +240.9 MiB and +497.4 MiB; a third unchanged run passed at +85.7 MiB
|
|||
(private +59.3 MiB). Earlier Slice 6 development history also contains both a
|
||||
coarse-memory failure and subsequent clean runs.
|
||||
|
||||
**Root cause / status:** The current soak samples only process working set and
|
||||
private bytes plus coarse world/title counters. Those totals combine live .NET
|
||||
objects, committed-but-free GC segments, native allocations, mapped pages, and
|
||||
GPU-driver residency, so a failed total cannot identify the owner that grew.
|
||||
This is a diagnostic blind spot, not evidence that the threshold should be
|
||||
raised. The unchanged gate produced a clean required closeout pass; no runtime
|
||||
workaround or tolerance change was made.
|
||||
**Root cause / status:** The old soak sampled only process working set/private
|
||||
bytes plus coarse world/title counters. Those totals combine live .NET objects,
|
||||
committed-but-free GC segments, native allocations, mapped pages, and GPU
|
||||
driver residency, so a failed total could not identify the owner that grew.
|
||||
Deferred acknowledged render-frame checkpoints now record the exact frame
|
||||
outcome and canonical managed/GPU/cache/VFX/pending-work owners. Two fresh
|
||||
403-second routes pass all nine ordered checkpoints, zero pending/staged/warmup
|
||||
work, no unconfounded owner growth, graceful close, and the unchanged process
|
||||
and performance limits. Legitimate owner retirement is allowed; growth becomes
|
||||
a hard failure when workload is stable and a named warning when authoritative
|
||||
or visible workload changed.
|
||||
|
||||
**Files:** `tools/run-connected-r6-soak.ps1`;
|
||||
`src/AcDream.App/Diagnostics/WorldLifecycleAutomationController.cs`;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue