fix(runtime): restore interaction completion ownership

Preserve prepublication local motion completion, require the PartArray enter-world lifecycle port, and balance deferred Use busy ownership across dispatch and cancellation. Reconcile the completed GameWindow connected gates and add regression coverage.

Co-authored-by: Codex <codex@openai.com>
This commit is contained in:
Erik 2026-07-23 05:51:51 +02:00
parent 5c955c36ec
commit f9736ece6c
26 changed files with 675 additions and 68 deletions

View file

@ -6,8 +6,8 @@ All eight behavior-preserving App ownership slices and their automated closeout
are complete. `GameWindow.cs` moved from the 2026-07-21 baseline of 15,723
lines / 278 fields / 205 methods to a 1,622-line native
composition/callback shell: 14,101 lines (89.7%) were removed without changing
accepted gameplay or rendering behavior. Only the user's final connected
visual matrix remains before the campaign is marked complete.
accepted gameplay or rendering behavior. The user's final connected visual
matrix passed 2026-07-23; the campaign is complete.
| Slice | Ownership moved out | Closeout size |
|---|---|---:|
@ -209,12 +209,12 @@ review rule live in `docs/architecture/code-structure.md`.
## Next work
Run the final connected visual matrix: first login/radar; movement, mouse,
resize, focus, and combat; shared inventory/skills/spellbook panel; outdoor,
building, dungeon, portal, paperdoll, particle, and alpha presentation; then
graceful close and fresh reconnect. After user confirmation, mark Checkpoint L
and the campaign complete and resume M4. Full `GameEntity` aggregation remains
a separate migration and must not be folded into the visual handoff.
Resume M4 feature work through the extracted owners. The connected matrix
passed first login/radar; movement, mouse, resize, focus, and combat; the shared
inventory/skills/spellbook panel; outdoor, building, dungeon, recall/portal,
paperdoll, and particle presentation; then graceful reconnect. Full
`GameEntity` aggregation remains a separate migration and must not be folded
into ordinary M4 work.
## Do not retry