refactor(input): own gameplay action routing

Move the sole semantic action-priority graph, combat and diagnostic commands, and retained-root item-drop lifetime behind focused typed owners. Preserve retail toggle behavior, explicit auto-wield cancellation, shutdown quiescence, and symmetric callback cleanup.

Co-authored-by: Codex <codex@openai.com>
This commit is contained in:
Erik 2026-07-22 12:43:05 +02:00
parent 8b8afeefa3
commit 4eae9b4f5a
25 changed files with 2608 additions and 418 deletions

View file

@ -625,11 +625,12 @@ The accepted host order above is preserved as TS-53; it is not overclaimed as
the exact retail `Client::UseTime` order. See the completed Slice 6 ledger and
`memory/project_gamewindow_decomposition.md`.
The render callback currently owns the GPU frame boundary and draw graph. Slice
7 extracts that graph without changing its order: per-resource frame begins and
render-thread uploads; world/PView and its two shared-alpha scopes; portal and
paperdoll private viewports; retained gameplay UI; ImGui devtools; screenshot;
then the GPU-flight close in `finally`. Both UI stacks coexist in the same frame.
`GameWindow.OnRender` likewise owns only one handoff to the shipped
`RenderFrameOrchestrator`. Its frozen graph begins per-resource frames and
render-thread uploads; draws world/PView and its two shared-alpha scopes;
renders portal and paperdoll private viewports, retained gameplay UI, ImGui
devtools, and screenshots; then closes the GPU-flight transaction in
`finally`. Both UI stacks coexist in the same frame.
---
@ -828,10 +829,11 @@ Current movement/collision ownership:
routers; Slice 4 moved hydration, teardown, inbound authority, network
updates, and reusable motion-runtime policy over canonical
`LiveEntityRuntime`. Slices 57 complete landblock presentation and the
update/render frame graphs. Slice 8 checkpoints AE now own the native
update/render frame graphs. Slice 8 checkpoints AF now own the native
callback shell, live-session composition, world environment, reversible
input/pointer lifetime, and physical framebuffer publication. Gameplay action
routing is the next checkpoint. The reconciled ledger and sequence live in
input/pointer lifetime, physical framebuffer publication, the sole gameplay
action-priority graph, typed commands, and the retained-root item-drop edge.
Two-phase runtime settings is the next checkpoint. The reconciled ledger and sequence live in
`docs/architecture/code-structure.md`. This decision does not reclassify the
remaining L.2 conformance work or Track LH.