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
69
CLAUDE.md
69
CLAUDE.md
|
|
@ -113,57 +113,24 @@ and the final two-client portal-out/materialization observer flow are
|
|||
user-gated. Deterministic world-lifecycle automation protects fresh login,
|
||||
outdoor/world-edge/dungeon travel, same-location revisit, exact graceful
|
||||
disconnect, and uncapped fresh-process reconnect with JSON/PNG artifacts.
|
||||
Release builds; Checkpoint H passes 61 focused ownership tests, 3,236 App tests
|
||||
/ 3 skips, and 7,606 complete-solution tests / 5 skips.
|
||||
Release builds; the automated structural closeout passes 293 focused tests,
|
||||
3,451 App tests / 3 skips, and 7,823 complete-solution tests / 5 skips.
|
||||
|
||||
**Active prerequisite before new M4 subsystem work:** continue the
|
||||
behavior-preserving `GameWindow` decomposition reconciled on 2026-07-21.
|
||||
Selection/interaction Slice 1, live-animation-presentation Slice 2, complete
|
||||
live-session ownership Slice 3, and live-entity App integration Slice 4 are
|
||||
landed. Focused hydration, teardown, inbound-authority, network-update, and
|
||||
motion-runtime owners now sit over canonical `LiveEntityRuntime` without a
|
||||
second GUID dictionary. Slices 5–7 are complete: landblock presentation,
|
||||
update-frame orchestration, and render-frame orchestration all have typed
|
||||
owners. `GameWindow.OnUpdate` and `GameWindow.OnRender` are one-handoff methods;
|
||||
the frame owners have no direct window or anonymous callback-bag ownership.
|
||||
Slice 8 checkpoints A–H are also complete: dead host residue is removed,
|
||||
native-window callback intake has reversible lifetime ownership, and
|
||||
`LiveSessionHost` owns reset/binding composition over the sole canonical
|
||||
session controller. `WorldEnvironmentController` solely owns the clock, DAT
|
||||
sky/day group, weather, synchronization, and AdminEnvirons state.
|
||||
`CameraPointerInputController` and `FramebufferResizeController` now own raw
|
||||
camera input/focus/scroll and physical framebuffer publication. Silk,
|
||||
dispatcher, retained-UI, and devtools device edges are reversible,
|
||||
transactional, and terminal after disposal; live-session retirement precedes
|
||||
physical callback removal. `GameplayInputActionRouter` now owns the sole
|
||||
semantic action-priority
|
||||
graph; typed owners route combat, diagnostics, and remaining commands, and the
|
||||
retained-root item-drop edge is reversible. `GameWindow` was 4,057 raw lines /
|
||||
198 fields / 54 methods at F. Checkpoint G adds the sole pre-window/runtime
|
||||
settings owner, one immutable startup snapshot, ordered one-shot startup
|
||||
application, and inert late target binding. `GameWindow` is now 3,663 raw lines /
|
||||
162 fields / 37 methods, down 12,060 lines (76.7%) from the 15,723-line campaign
|
||||
baseline. The 7,553-test / 5-skip Checkpoint G Release suite, 315.6-second
|
||||
lifecycle/reconnect gate, and 395.2-second synchronized nine-stop soak pass.
|
||||
Checkpoint H adds sole terrain/sky render-resource roots, one retained
|
||||
Host/runtime lease, an atomic update/render frame-root pair, prepared portal
|
||||
fallback/transfer, and checked retryable GL construction/state boundaries.
|
||||
Checkpoint I now routes production through the same executable nine-phase
|
||||
pipeline as its failure oracle, carries exact platform/settings results through
|
||||
typed phase inputs, atomically publishes frame roots, and makes session start
|
||||
terminal. `GameWindow` is 1,945 raw lines, down 13,778 lines (87.6%) from
|
||||
baseline. App Release passes 3,431 tests / 3 skips and the complete Release
|
||||
suite passes 7,803 / 5 skips. Checkpoint J moves the exact shutdown dependency
|
||||
graph into `GameWindowLifetime`: immutable typed roots, retry/no-replay state,
|
||||
hard session/GPU barriers, reportable physical callback cleanup, structured
|
||||
terminal reporting, and native-window-last release now live outside the shell.
|
||||
`GameWindow` is 1,625 raw lines, down 14,098 lines (89.7%) from baseline. App
|
||||
Release passes 3,441 tests / 3 skips and the complete Release suite passes
|
||||
7,813 / 5 skips. Checkpoints K–L—canonical soak snapshots and final connected
|
||||
closeout—remain active.
|
||||
**Structural prerequisite before new M4 subsystem work:** all eight
|
||||
behavior-preserving `GameWindow` decomposition slices and the automated
|
||||
closeout landed 2026-07-22. The class is now a 1,622-line native
|
||||
composition/callback shell, down 14,101 lines (89.7%) from baseline. Ordered
|
||||
startup, update/render frame graphs, native/input callbacks, settings,
|
||||
session/reset wiring, canonical checkpoint capture, and retryable shutdown are
|
||||
owned by focused typed collaborators without a service locator or stored
|
||||
window back-reference. All 293 focused tests, App Release 3,451/3, the complete
|
||||
Release suite 7,823/5, connected lifecycle/reconnect, two fresh-process
|
||||
canonical nine-stop soaks, three corrected-diff reviews, and the exact Slice-7
|
||||
framebuffer comparison pass. Issue #232 is closed without loosening process
|
||||
limits. Only the user's final connected visual matrix remains before M4 feature
|
||||
bodies resume.
|
||||
See `docs/plans/2026-07-22-gamewindow-slice-8-composition-lifecycle.md` and
|
||||
`docs/architecture/code-structure.md`. **Carried:** #232, #153,
|
||||
#116, remaining
|
||||
`docs/architecture/code-structure.md`. **Carried:** #153, #116, remaining
|
||||
R6 ownership cleanup, TS-50/TS-51/TS-53, Modern Pipeline MP1b+, and #225's
|
||||
lifestone/particle alpha visual gate.
|
||||
|
||||
|
|
@ -206,8 +173,8 @@ and to stop `GameWindow.cs` from continuing to grow into a 10k-line
|
|||
god object. The full rationale + the extraction sequence we're
|
||||
pursuing live in [`docs/architecture/code-structure.md`](docs/architecture/code-structure.md).
|
||||
|
||||
1. **No new substantial feature bodies in `GameWindow.cs`.** It is
|
||||
already over 10,000 lines and owns runtime wiring. New runtime
|
||||
1. **No new substantial feature bodies in `GameWindow.cs`.** It is now the
|
||||
roughly 1,600-line native composition/callback shell. New runtime
|
||||
work goes into a dedicated controller / sink / orchestrator class
|
||||
in `src/AcDream.App/` (or deeper in `AcDream.Core` when it's pure
|
||||
logic). Adding a handful of fields and a one-paragraph method to
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue