docs(runtime): close exact world host ownership

This commit is contained in:
Erik 2026-07-26 18:41:24 +02:00
parent 18d17d8bb1
commit 75f9510e10
13 changed files with 240 additions and 43 deletions

View file

@ -241,7 +241,7 @@ src/
World/
RuntimeWorldEnvironmentState.cs -> canonical calendar/time/weather owner
RuntimeWorldTransitState.cs -> canonical reveal generation/readiness owner
-> J3J5 and J6.1J6.3 complete; J6.4 host acknowledgement active
-> J3J6 complete; J7 composition-root convergence active
-> may reference Core, Core.Net, Content, and Plugin.Abstractions only
-> must never reference App, UI, Silk.NET, OpenAL, Arch, or ImGui
@ -879,9 +879,16 @@ readiness may fall as resources transition without closing the accepted edge.
`WorldRevealCoordinator` is the graphical host adapter. It evaluates App's
`WorldRevealReadinessBarrier`, acknowledges that typed result to Runtime, and
owns only the streaming destination reservation, render-resource profile,
selection/audio projection edges, and viewport release. App's former lifecycle
telemetry/generation owner is deleted and
owns only generation-scoped graphical resource receipts: the streaming
destination reservation, render-resource profile, selection/audio projection
edges, and viewport release. Runtime issues an exact
`RuntimeWorldHostProjectionToken` for the reveal generation and destination
cell, then retains the typed registration, simulation-release,
reservation-release, and terminal acknowledgement suffix until App has
actually projected it. Wrong-generation/cell acknowledgements cannot consume
another reveal's work. Callback failure and re-entrancy preserve the exact
remaining suffix instead of duplicating or leaking a reservation. App's former
lifecycle telemetry/generation owner is deleted and
`WorldGenerationAvailabilityState` is a read-only Runtime projection. While the
normal world viewport is withheld, mesh and composite upload owners may admit
more small destination items per frame, but retain the ordinary 8 MiB byte,
@ -899,15 +906,15 @@ thread, never from the streaming worker. This is acdream's asynchronous equivale
`SmartBox::UseTime` holding position completion while
`CellManager::blocking_for_cells` is set.
`WorldRevealLifecycleTelemetry` is an observation seam owned by the
coordinator, not a second lifecycle state machine. It records generation-scoped
edges and rejects a normal-world viewport observed before canonical readiness.
`WorldLifecycleAutomationController` consumes only coordinator snapshots plus
resource counters; `FrameScreenshotController` performs the requested
default-framebuffer readback after world and retained UI draw on the render
thread. The external connected gate launches normal Release processes and
observes these artifacts, but never mutates streaming, physics, GL, or entity
state from a worker thread.
`RuntimeStateCheckpoint` is the normalized observation seam. It records the
canonical reveal snapshot plus environment and transit ownership ledgers; it is
not a second lifecycle state machine. `WorldLifecycleAutomationController`
consumes that borrowed Runtime checkpoint plus graphical resource counters and
rejects a stable checkpoint while any host acknowledgement remains.
`FrameScreenshotController` performs the requested default-framebuffer readback
after world and retained UI draw on the render thread. The external connected
gate launches normal Release processes and observes these artifacts, but never
mutates streaming, physics, GL, or entity state from a worker thread.
### Teleport cell identity at the streaming boundary