refactor(ui): extract retained runtime composition

This commit is contained in:
Erik 2026-07-11 00:03:45 +02:00
parent 5d9e98c118
commit ff06aa3107
7 changed files with 727 additions and 605 deletions

View file

@ -293,12 +293,19 @@ tests pass; full suite green: 4,549 passed, 5 skipped.
### 2.5 Extract the composition block
- [ ] Create `RetailUiRuntime` and focused binding records.
- [ ] Move DAT import, window creation, controller construction, registry, and
- [x] Create `RetailUiRuntime` and focused binding records.
- [x] Move DAT import, window creation, controller construction, registry, and
persistence wiring out of `GameWindow.OnLoad`.
- [ ] Keep GL resolver construction and delegate supply in `GameWindow`; target a
- [x] Keep GL resolver construction and delegate supply in `GameWindow`; target a
short, declarative mount call and one tick/draw/dispose path.
**Acceptance (2026-07-11):** the Debug live-world gate passed after two graceful
restart cycles. Vitals, radar, chat, toolbar, character, inventory/paperdoll,
saved layouts, cursor/input, and window controls remained responsive with no
double dispatch. `GameWindow` now supplies one typed mount graph and delegates
retained tick/draw/restore/dispose to `RetailUiRuntime`.
Full suite green: 4,549 passed, 5 skipped.
**Gate:** move/resize/toggle every window, restart at two resolutions, switch
characters, verify exact restore and global lock; chat maximize/minimize must resize
chrome and content together; full suite and user visual gate.