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
|
|
@ -2,11 +2,12 @@
|
|||
|
||||
## Current state
|
||||
|
||||
The behavior-preserving App ownership campaign is complete through Slice 7 and
|
||||
Slice 8 checkpoints A–H. `GameWindow.cs` moved from the 2026-07-21 baseline of
|
||||
15,723 lines / 278 fields / 205 methods to 3,689 lines / 162 fields / 37
|
||||
methods: 12,034 lines (76.5%) were removed without changing accepted gameplay
|
||||
or rendering behavior.
|
||||
All eight behavior-preserving App ownership slices and their automated closeout
|
||||
are complete. `GameWindow.cs` moved from the 2026-07-21 baseline of 15,723
|
||||
lines / 278 fields / 205 methods to a 1,622-line native
|
||||
composition/callback shell: 14,101 lines (89.7%) were removed without changing
|
||||
accepted gameplay or rendering behavior. Only the user's final connected
|
||||
visual matrix remains before the campaign is marked complete.
|
||||
|
||||
| Slice | Ownership moved out | Closeout size |
|
||||
|---|---|---:|
|
||||
|
|
@ -21,6 +22,9 @@ or rendering behavior.
|
|||
| 8 F | sole gameplay action route, typed commands, retained-root callback lifetime | 4,057 / 198 / 54 |
|
||||
| 8 G | pre-window/runtime settings ownership, one startup snapshot, inert late target binding | 3,663 / 162 / 37 |
|
||||
| 8 H | render/UI/frame/portal resource roots plus checked retryable GL leaves | 3,689 / 162 / 37 |
|
||||
| 8 I | executable ordered startup composition and terminal session start | 1,945 / startup shell |
|
||||
| 8 J | retryable typed lifetime/shutdown owner | 1,625 / lifetime shell |
|
||||
| 8 K–L | acknowledged canonical soak capture and automated closeout | 1,622 / native shell |
|
||||
|
||||
Slice 8 is an ordered checkpoint campaign rather than another feature-body
|
||||
move. A froze/pruned the shell boundary; B gave all nine native window callback
|
||||
|
|
@ -141,6 +145,23 @@ review rule live in `docs/architecture/code-structure.md`.
|
|||
|
||||
## Accepted verification
|
||||
|
||||
- Final automated closeout: 293 focused Slice 8 tests pass; App Release passes
|
||||
3,451 / 3 intentional skips; the complete Release suite passes 7,823 / 5.
|
||||
The Release build retains only the 17 pre-existing test-project warnings
|
||||
tracked by #228. Behavior/retail, architecture/ownership, and adversarial
|
||||
failure reviews are clean.
|
||||
- Checkpoint K (`bca41487`, `6c5e0604`): two fresh-process 403-second
|
||||
nine-stop soaks produce the exact ordered same-frame canonical checkpoints,
|
||||
zero pending teardown/retirement/staging/warmup work, no unconfounded owner
|
||||
growth, unchanged process/performance gates, and graceful exits. #232 is
|
||||
closed.
|
||||
- Checkpoint L connected lifecycle/reconnect passes in 314.4 seconds with six
|
||||
valid PNGs and graceful capped/uncapped exits. The uncapped final checkpoint
|
||||
is 174.74 FPS / 5.72 ms. Frames reconstructed from exact Slice 7 commit
|
||||
`9d7df1bf` preserve deterministic geometry, UI/paperdoll layering, private
|
||||
viewports, depth/alpha, and world reveal; remaining differences are live
|
||||
entities, particles, vitals, and sub-frame camera timing.
|
||||
|
||||
- Slice 8 Checkpoint H: 61 focused ownership/lifetime tests pass; App Release
|
||||
passes 3,236 tests / 3 intentional skips. Four corrected-diff cycles closed
|
||||
every architecture, retail, and adversarial finding; all three final reviews
|
||||
|
|
@ -177,11 +198,10 @@ review rule live in `docs/architecture/code-structure.md`.
|
|||
all movement/jump/combat exercises, and graceful exit passed; update p95 was
|
||||
at or below 0.8 ms. Caul return → plateau working/private delta was
|
||||
+85.7/+59.3 MiB, inside the unchanged gate.
|
||||
- Two immediately preceding identical-binary runs exceeded the coarse process-
|
||||
residency threshold while deterministic ownership/lifecycle/timing checks
|
||||
passed. #232 adds canonical resource-owner snapshots; do not solve this by
|
||||
loosening the process-memory threshold or treating residency alone as an
|
||||
identified owner leak.
|
||||
- Two Slice-7 identical-binary runs exceeded the coarse process-residency
|
||||
threshold while deterministic ownership/lifecycle/timing checks passed.
|
||||
Checkpoint K closed #232 by adding canonical owner snapshots; it did not
|
||||
loosen the process threshold or treat residency alone as an identified leak.
|
||||
- The 18–33 missing VFX table/emitter diagnostics are known DAT-driven records,
|
||||
not a Slice 7 regression.
|
||||
- TS-50, TS-51, and TS-53 remain registered; Slice 7 introduced no new retail
|
||||
|
|
@ -189,13 +209,12 @@ review rule live in `docs/architecture/code-structure.md`.
|
|||
|
||||
## Next work
|
||||
|
||||
Slice 8 checkpoints I–L group the remaining ordered startup composition,
|
||||
shutdown wiring, canonical soak snapshots, and closeout and reduce Silk callbacks to
|
||||
narrow calls into input, update, render, resize, focus, and shutdown owners.
|
||||
It removes leftover feature state only where Slices 1–7 already established a
|
||||
canonical owner; it does not redesign gameplay, rendering, or resource lifetime.
|
||||
The reviewed A–L execution ledger is
|
||||
`docs/plans/2026-07-22-gamewindow-slice-8-composition-lifecycle.md`.
|
||||
Run the final connected visual matrix: first login/radar; movement, mouse,
|
||||
resize, focus, and combat; shared inventory/skills/spellbook panel; outdoor,
|
||||
building, dungeon, portal, paperdoll, particle, and alpha presentation; then
|
||||
graceful close and fresh reconnect. After user confirmation, mark Checkpoint L
|
||||
and the campaign complete and resume M4. Full `GameEntity` aggregation remains
|
||||
a separate migration and must not be folded into the visual handoff.
|
||||
|
||||
## Do not retry
|
||||
|
||||
|
|
@ -207,7 +226,9 @@ The reviewed A–L execution ledger is
|
|||
- Do not add a second GUID, session, spatial, or resource owner.
|
||||
- Do not fold full `GameEntity` aggregation into this campaign; evaluate it
|
||||
after Slice 8.
|
||||
- Do not loosen the soak process-memory threshold to hide #232. Add canonical
|
||||
owner snapshots and preserve process residency as a secondary guard.
|
||||
- Do not revert Checkpoint K to exact cache equality: normal retirement may
|
||||
shrink owners, and visible/server workload changes may change populations.
|
||||
Hard-fail owner growth only when workload is stable, name workload-confounded
|
||||
growth explicitly, and preserve the unchanged process-residency limits.
|
||||
- Small value/policy callbacks and diagnostics are acceptable only when they do
|
||||
not call a substantial window body or hide mutable ownership.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue