refactor(app): extract focused window lifetime
Move the exact retryable shutdown manifest, typed root snapshot, terminal reporting, and native-window-last release out of GameWindow. Keep session and GPU convergence as hard barriers while reporting persistent physical callback cleanup without stranding dependent owners. Co-authored-by: Codex <codex@openai.com>
This commit is contained in:
parent
5a55d08106
commit
31e6e192b3
21 changed files with 1297 additions and 572 deletions
|
|
@ -32,7 +32,7 @@ audit.
|
|||
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
|
||||
- [x] J — move the exact retryable shutdown manifest to a focused lifetime
|
||||
owner and prove all partial-load/reentrant/retry paths. Detailed plan:
|
||||
[`2026-07-22-gamewindow-slice-8-checkpoint-j-lifetime-shutdown.md`](2026-07-22-gamewindow-slice-8-checkpoint-j-lifetime-shutdown.md).
|
||||
- [ ] K — in a separate #232 commit, add canonical owner snapshots to every soak
|
||||
|
|
@ -41,6 +41,12 @@ audit.
|
|||
lifecycle/soak, framebuffer comparison, documentation, memory, and final
|
||||
visual handoff.
|
||||
|
||||
Checkpoint J leaves `GameWindow.cs` at 1,625 raw lines. The focused lifetime
|
||||
owner now holds the typed shutdown roots, exact 18-stage dependency manifest,
|
||||
retry/no-replay state, structured soft-cleanup failures, hard-barrier fallback,
|
||||
and native-window-last release. App Release passes 3,441 tests / 3 skips and
|
||||
the complete Release suite passes 7,813 / 5 skips. Checkpoint K is next.
|
||||
|
||||
Each checked checkpoint lands as a bisectable commit. A checkpoint is not done
|
||||
while a new class delegates a substantial body back into `GameWindow`, stores
|
||||
`GameWindow`, or replaces 196 fields with one runtime/service-locator bag.
|
||||
|
|
@ -656,6 +662,15 @@ correction; Checkpoint L retains the connected lifecycle and soak gates.
|
|||
after native fallback the terminal abandoned state makes repeated Dispose
|
||||
inert.
|
||||
|
||||
Result: `GameWindowLifetime` owns the typed root snapshot, 18-stage manifest,
|
||||
transaction progress, terminal report, and native window. Clean, soft-failure,
|
||||
hard-failure, native-failure, retry, reentrant, and never-run paths are pinned.
|
||||
The UI host remains explicitly rooted through failed physical detach until the
|
||||
native edge is gone; successful finalization releases the completed lifetime
|
||||
graph, while abandonment retains it. No shutdown stage remains in `GameWindow`,
|
||||
which is now 1,625 raw lines. App Release passes 3,441 tests / 3 skips and the
|
||||
complete Release suite passes 7,813 / 5 skips.
|
||||
|
||||
### K — canonical soak checkpoints (#232, separate commit)
|
||||
|
||||
- Extract `WorldLifecycleResourceSnapshotSource` from the window and reuse the
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue