docs(runtime): close canonical entity object lifetime

This commit is contained in:
Erik 2026-07-26 07:35:42 +02:00
parent 119b7c1151
commit 77c013998b
11 changed files with 249 additions and 43 deletions

View file

@ -1,7 +1,6 @@
# Modern runtime Slice J — presentation-independent runtime
**Status:** J0J2 COMPLETE; J3.1J3.5 COMPLETE; J3.6 adversarial lifetime
hardening and zero-owner closeout are active
**Status:** J0J3 COMPLETE; J4 gameplay-state lifetime groups are active
**Parent:** `2026-07-24-modern-runtime-architecture.md`, Slice J
**Authorization:** the user approved Slices FL, including the otherwise-frozen
Slice J gameplay-owner moves, on 2026-07-24
@ -183,20 +182,21 @@ git revert 75930787741db40a83eab8663e4464dce8d687ba
**Detailed execution plan:**
[`2026-07-25-modern-runtime-slice-j3.md`](2026-07-25-modern-runtime-slice-j3.md).
**Current checkpoint:** J3.1J3.5 are complete. Runtime owns accepted entity
**Completed 2026-07-26.** Runtime owns accepted entity
wire state and the only canonical identity/incarnation/local-ID directory.
App's `LiveEntityProjectionStore` and every materialized presentation/spatial
workset are keyed by exact `RuntimeEntityKey`; the temporary GUID-shaped
compatibility view is deleted. `RuntimeEntityObjectLifetime` now owns the
exact entity directory and live `ClientObjectTable`; App, routing, interaction,
and UI borrow both. Exact J3.5 binary `ce3ac310` now publishes one committed
and UI borrow both. Exact J3.5 binary `ce3ac310` publishes one committed
per-generation Runtime entity/object delta stream, issues identity before App
hydration, and supplies direct allocation-free views to graphical and
no-window hosts. App reconstructs neither entity nor inventory state/events.
Its 8,472 Release tests / 5 skips and exact seven-checkpoint connected gate at
`logs/connected-world-gate-20260726-064324/report.json` pass. J3.6 now
failure-injects the complete lifetime and proves every reset/disposal owner
converges to zero.
J3.6 at `119b7c11` makes every canonical commit, callback, teardown receipt,
reset, and direct disposal failure-safe and proves the full owner ledger
converges to zero. Its 8,484 Release tests / 5 skips, exact seven-checkpoint
lifecycle/reconnect gate, and canonical nine-stop route pass. Evidence:
[`../research/2026-07-26-slice-j3-6-lifetime-closeout.md`](../research/2026-07-26-slice-j3-6-lifetime-closeout.md).
- Strip renderer, particle, Wb, and streaming components from the canonical
record into an App projection store keyed only by local identity/incarnation.
@ -213,6 +213,8 @@ match current traces; App has no server-GUID ownership.
### J4 — chat, inventory, magic, and gameplay-state services
**Active 2026-07-26.**
- Move canonical chat history/channel state, inventory transactions, spell and
component state, enchantments, vitals, skills/attributes, and gameplay
cooldown state by coherent owner groups.
@ -224,6 +226,23 @@ match current traces; App has no server-GUID ownership.
Gate: deterministic command/response traces and graphical ViewModel revisions
match; no Runtime type references UI abstractions.
Detailed execution begins with a source-ownership inventory. Move one coherent
lifetime group at a time in this order:
1. chat history/channel/command state;
2. inventory transaction and gameplay item-use state that is not already
canonical in `RuntimeEntityObjectLifetime`;
3. learned spells, formulas/components, enchantments, and cast/cooldown state;
4. vitals, skills, attributes, advancement, and target/combat gameplay state;
5. plugin/bot borrowed views and typed commands over those same owners;
6. delete every replaced App owner/adapter, then run the combined no-window,
graphical parity, teardown, Release, lifecycle/reconnect, and nine-stop
gates.
Panel trees, text layout, icons, 3-D paperdolls, status bars, and animation/VFX
remain App presentation. The inventory object collection already moved in J3;
J4 must borrow it rather than create another inventory model.
### J5 — movement, physics, interaction, and combat group
- Move presentation-free movement interpretation, authoritative/predicted