refactor(app): complete session startup composition
Move the live-session reset and routing graph, combat and diagnostic command targets, and the sole gameplay input subscriber into Phase 7 before frame publication. Add exact retryable ownership for late bindings so partial startup cannot strand session or component teardown edges. Co-authored-by: Codex <codex@openai.com>
This commit is contained in:
parent
7fa60971e2
commit
826f9ea9b5
22 changed files with 924 additions and 412 deletions
|
|
@ -32,9 +32,11 @@ What does NOT go here:
|
|||
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. `GameWindow.OnUpdate` and `GameWindow.OnRender`
|
||||
are typed orchestration handoffs and the class is 2,479 raw lines. I.8–I.9
|
||||
plus the remaining shutdown/closeout
|
||||
every late edge explicitly. I.8a now owns the focused session factory,
|
||||
command targets, and sole gameplay input subscriber before frame publication.
|
||||
`GameWindow.OnUpdate` and `GameWindow.OnRender` are typed orchestration
|
||||
handoffs and the class is 2,149 raw lines. I.8b–I.9 plus the remaining
|
||||
shutdown/closeout
|
||||
cleanup is active in
|
||||
[`docs/architecture/code-structure.md`](architecture/code-structure.md).
|
||||
This is the behavior-preserving prerequisite before new M4 feature bodies.
|
||||
|
|
|
|||
|
|
@ -734,11 +734,13 @@ owners without callbacks to the window. The old item-use and selection wrapper
|
|||
methods are deleted. I.7 now owns the complete streaming/session/hydration/
|
||||
local-player/teleport construction phase and every late edge through named
|
||||
exact-owner tokens; the former 432-line inline body and spawn-claim memo are
|
||||
gone. `GameWindow` is 2,479 raw lines after I.7. I.8–L remain active, with
|
||||
atomic frame-root publication and terminal session start next. The App gate
|
||||
passes 3,420 tests / 3 intentional skips and the complete Release suite passes
|
||||
7,792 tests / 5 intentional skips. The clean solution build retains only the
|
||||
17 test-project warnings tracked by #228; the I.7 behavior, architecture, and
|
||||
gone. I.8a moves the exact live-session reset/router graph, combat and
|
||||
diagnostic command targets, and sole gameplay input subscriber into Phase 7
|
||||
before frame publication. `GameWindow` is 2,149 raw lines after I.8a. I.8b–L
|
||||
remain active, with atomic frame-root publication next. The App gate passes
|
||||
3,424 tests / 3 intentional skips and the complete Release suite passes 7,796
|
||||
tests / 5 intentional skips. The clean solution build retains only the 17
|
||||
test-project warnings tracked by #228; the I.8a behavior, architecture, and
|
||||
adversarial reviews are clean.
|
||||
|
||||
### 4.4 Exit criteria
|
||||
|
|
|
|||
|
|
@ -104,10 +104,11 @@ 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 2,479 raw lines. I.8–I.9, shutdown, canonical soak snapshots, and closeout
|
||||
checkpoints J–L remain. The App gate passes 3,420 tests / 3 intentional skips,
|
||||
the complete Release suite passes 7,792 tests / 5 skips, and all three I.7
|
||||
corrected-diff reviews are clean.
|
||||
now 2,149 raw lines after I.8a, which composes the session factory, command
|
||||
targets, and sole gameplay input subscriber before frame publication. I.8b–I.9,
|
||||
shutdown, canonical soak snapshots, and closeout checkpoints J–L remain. The
|
||||
App gate passes 3,424 tests / 3 intentional skips, the complete Release suite
|
||||
passes 7,796 tests / 5 skips, and the I.8a 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
|
||||
|
|
|
|||
|
|
@ -59,11 +59,12 @@ runtime/world, presentation/effect controllers, selection/radar, landblock
|
|||
publishers, and portal/sky/particle resources have transactional phase
|
||||
ownership and exact-owner late bindings. I.7 now owns the complete streaming,
|
||||
session, hydration, local-player, combat, and teleport startup graph, including
|
||||
named reversible late edges. `GameWindow` is 2,479 raw lines. I.8–I.9 and
|
||||
checkpoints J–L remain active. Issue #232 tracks process-residency variance in
|
||||
the soak without loosening its leak threshold. The App gate passes 3,420 tests
|
||||
/ 3 skips, the complete Release suite passes 7,792 tests / 5 skips, and all
|
||||
three I.7 corrected-diff reviews are clean.
|
||||
named reversible late edges. I.8a adds the focused live-session runtime factory
|
||||
and attaches command/input owners before frame publication. `GameWindow` is
|
||||
2,149 raw lines. I.8b–I.9 and checkpoints J–L remain active. Issue #232 tracks
|
||||
process-residency variance in the soak without loosening its leak threshold.
|
||||
The App gate passes 3,424 tests / 3 skips, the complete Release suite passes
|
||||
7,796 tests / 5 skips, and the I.8a corrected-diff review is clean.
|
||||
|
||||
Carried:
|
||||
#153 far-teleport residual, #116 slide-response, the remaining R6 ownership cleanup plus
|
||||
|
|
|
|||
|
|
@ -293,6 +293,10 @@ ledger only after the complete pipeline is live.
|
|||
frame-root publication and terminal session start is the active cut. Its
|
||||
detailed session-binding, atomic-root, and terminal-start plan is
|
||||
[`2026-07-22-gamewindow-slice-8-checkpoint-i8-frame-roots-session-start.md`](2026-07-22-gamewindow-slice-8-checkpoint-i8-frame-roots-session-start.md).
|
||||
I.8a is complete: the session factory, command targets, and sole gameplay
|
||||
input subscriber now belong to Phase 7 and publish before any frame root;
|
||||
`GameWindow.cs` is 2,149 raw lines. I.8b atomic frame-root composition is the
|
||||
active cut.
|
||||
Checkpoint I remains active until I.9 closes the complete nine-phase pipeline.
|
||||
|
||||
## 6. Automated acceptance
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# GameWindow Slice 8 — Checkpoint I.8 Frame Roots and Session Start
|
||||
|
||||
**Status:** Active
|
||||
**Status:** Active — I.8a complete; I.8b frame-root composition next
|
||||
|
||||
**Parent:** `2026-07-22-gamewindow-slice-8-checkpoint-i-ordered-composition.md`
|
||||
|
||||
|
|
@ -27,6 +27,15 @@ unchanged, so no divergence-register row is added.
|
|||
|
||||
## 2. I.8a — complete session/player composition
|
||||
|
||||
**Completed 2026-07-22.** `LiveSessionRuntimeFactory` now owns the exact
|
||||
reset/router/command graph without a window reference. Phase 7 publishes the
|
||||
session host, exact-owner combat and diagnostic command bindings, and the sole
|
||||
gameplay input subscriber before Phase 8 can expose a frame root. Desired
|
||||
components have a focused canonical snapshot owner. The component-lifecycle
|
||||
handoff into the earlier live-presentation phase is an exact, retryable
|
||||
adoption lease, so any later Phase-7 fault rolls it back without stranding or
|
||||
replaying teardown.
|
||||
|
||||
### 2.1 Focused session runtime factory
|
||||
|
||||
Add `LiveSessionRuntimeFactory` under `AcDream.App/Net`. It owns the existing
|
||||
|
|
|
|||
|
|
@ -29,8 +29,8 @@ audit.
|
|||
- [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.1–I.7 are complete; I.8
|
||||
frame-root publication and terminal session start is active. Detailed plan:
|
||||
transactional partial-acquisition rollback. I.1–I.7 and I.8a are complete;
|
||||
I.8b atomic frame-root publication is active. 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.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue