refactor(app): close ordered startup composition

This commit is contained in:
Erik 2026-07-22 19:20:20 +02:00
parent 54244d31f1
commit 530b4bd8f5
16 changed files with 537 additions and 215 deletions

View file

@ -36,11 +36,11 @@ What does NOT go here:
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. `GameWindow.OnUpdate` and
`GameWindow.OnRender` are typed orchestration handoffs and the class is
1,910 raw lines. I.9 plus the remaining
shutdown/closeout
cleanup is active in
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. `GameWindow.OnUpdate` and `GameWindow.OnRender` are typed
orchestration handoffs and the class is 1,945 raw lines. Checkpoint I is
complete; the shutdown/lifetime cutover and 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

View file

@ -739,12 +739,14 @@ diagnostic command targets, and sole gameplay input subscriber into Phase 7
before frame publication. I.8b moves the complete update/render construction
body into `FrameRootCompositionPhase`, publishes the pair through an exact
lease, and gives lifecycle resource sampling a focused source. `GameWindow` is
1,910 raw lines after I.8c makes live-session start the terminal `OnLoad`
operation. I.9L remain active, with the complete Checkpoint-I audit next. The
App gate passes 3,430 tests / 3 intentional skips and the complete Release suite
passes 7,802 tests / 5 intentional skips. The clean solution build retains only
the 17 test-project warnings tracked by #228; the I.8c corrected-diff review is
clean.
1,945 raw lines after I.9 corrects production to invoke the same executable
pipeline as the failure oracle, carries exact platform/settings results through
the typed contract, and keeps live-session start terminal. Checkpoint I is
complete; JL remain active with lifetime/shutdown extraction next. The App gate
passes 3,431 tests / 3 intentional skips and the complete Release suite passes
7,803 tests / 5 intentional skips. The clean solution build retains only the 17
test-project warnings tracked by #228; the complete Checkpoint-I behavior,
architecture, and adversarial corrected-diff passes are clean.
### 4.4 Exit criteria

View file

@ -104,11 +104,12 @@ controllers, selection/radar, landblock publishers, and portal/sky/particle
resources have transactional phase ownership and exact-owner late bindings.
I.7 adds the complete streaming/session/hydration/local-player/teleport phase,
including explicit reversible ownership for every late edge. `GameWindow` is
now 1,910 raw lines after I.8c, which makes session start the terminal `OnLoad`
operation. I.9, shutdown, canonical soak snapshots, and closeout checkpoints
JL remain. The App gate passes 3,430 tests / 3 intentional skips, the complete
Release suite passes 7,802 tests / 5 skips, and the I.8c corrected-diff review
is clean.
now 1,945 raw lines after I.9 makes production invoke the same typed pipeline
as the failure oracle and keeps session start terminal. Checkpoint I is
complete; shutdown, canonical soak snapshots, and closeout checkpoints JL
remain. The App gate passes 3,431 tests / 3 intentional skips, the complete
Release suite passes 7,803 tests / 5 skips, and the complete Checkpoint-I
corrected-diff review is clean.
This is a behavior-preserving structural program. Severe regressions still get
root-cause fixes in separate commits; ordinary feature work resumes with M4

View file

@ -63,11 +63,13 @@ named reversible late edges. I.8a adds the focused live-session runtime factory
and attaches command/input owners before frame publication. I.8b composes and
atomically publishes the complete frame pair and extracts lifecycle resource
sampling. I.8c makes session start the terminal `OnLoad` operation.
`GameWindow` is 1,910 raw lines. I.9 and checkpoints JL remain active. Issue
#232 tracks
`GameWindow` is 1,945 raw lines after I.9 routes production through the exact
tested pipeline with explicit prior-result dependencies. Checkpoint I is
complete and checkpoints JL remain active. Issue #232 tracks
process-residency variance in the soak without loosening its leak threshold.
The App gate passes 3,430 tests / 3 skips, the complete Release suite passes
7,802 tests / 5 skips, and the I.8c corrected-diff review is clean.
The App gate passes 3,431 tests / 3 skips, the complete Release suite passes
7,803 tests / 5 skips, and the complete Checkpoint-I corrected-diff review is
clean.
Carried:
#153 far-teleport residual, #116 slide-response, the remaining R6 ownership cleanup plus

View file

@ -1,6 +1,6 @@
# GameWindow Slice 8 Checkpoint I — ordered production composition
**Status:** Active 2026-07-22.
**Status:** Complete 2026-07-22.
**Parent:**
[`2026-07-22-gamewindow-slice-8-composition-lifecycle.md`](2026-07-22-gamewindow-slice-8-composition-lifecycle.md),
Checkpoint I.
@ -299,9 +299,19 @@ ledger only after the complete pipeline is live.
the pair through an exact owned slot lease, and moves lifecycle resource
sampling out of the window. I.8c makes the exact session start and its
existing diagnostics the terminal `OnLoad` operation. `GameWindow.cs` is
1,910 raw lines. I.9 corrected-diff review and documentation closeout is the
active cut.
Checkpoint I remains active until I.9 closes the complete nine-phase pipeline.
1,910 raw lines.
- I.9 found and corrected one structural defect: production manually repeated
the phase order instead of invoking the executable pipeline used by failure
tests, and several later phases received real platform/settings results only
through surrounding captures. Production now enters the same fixed pipeline;
platform and settings are explicit typed phase inputs and concrete phases
reject mismatched result instances. Session start remains the terminal
operation. Three corrected-diff passes covering behavior order, architecture/
ownership, and adversarial failure/reentrancy are clean. `GameWindow.cs` is
1,945 raw lines. App Release passes 3,431 tests / 3 intentional skips; the
complete Release suite passes 7,803 tests / 5 intentional skips with only the
17 pre-existing test-project warnings tracked by #228. No retail behavior or
divergence changed. Checkpoint I is complete; Checkpoint J is active.
## 6. Automated acceptance

View file

@ -28,9 +28,9 @@ audit.
- [x] G — extract two-phase persisted settings/display/quality ownership.
- [x] H — give terrain atlas, sky shader, retained `UiHost`, and both frame roots
explicit single ownership and transfer seams.
- [ ] I — group `OnLoad` into small ordered, fakeable composition phases with
transactional partial-acquisition rollback. I.1I.8 are complete; I.9
corrected-diff review and checkpoint closeout is active. Detailed plan:
- [x] I — group `OnLoad` into small ordered, fakeable composition phases with
transactional partial-acquisition rollback. Production and failure tests now
invoke the same pipeline and carry exact typed prior results. Detailed plan:
[`2026-07-22-gamewindow-slice-8-checkpoint-i-ordered-composition.md`](2026-07-22-gamewindow-slice-8-checkpoint-i-ordered-composition.md).
- [ ] J — move the exact retryable shutdown manifest to a focused lifetime
owner and prove all partial-load/reentrant/retry paths.
@ -627,6 +627,16 @@ corrected-diff reviews are clean. The complete Release suite passes 7,606 tests
teleport transfer, and frame-root publication. Each concrete phase also
proves transactional rollback of its internal acquisition prefix.
Result: all nine production phases now run through the same executable pipeline
as the prefix/failure oracle. Platform and settings results are explicit typed
inputs wherever consumed; phases reject mismatched instances, all long-lived
owners publish to focused lifetime slots, the frame pair publishes atomically,
and session start is terminal. `GameWindow.cs` is 1,945 raw lines. Three
corrected-diff passes are clean; App Release passes 3,431 tests / 3 skips and
the complete Release suite passes 7,803 tests / 5 skips with the existing 17
#228 warnings. No connected gate was required for the final structural
correction; Checkpoint L retains the connected lifecycle and soak gates.
### J — lifetime cutover and shutdown failure policy
- Move the teardown-only stage records and shutdown manifest out of GameWindow.