acdream/docs/research/2026-07-25-slice-j3-2-canonical-entity-directory-closeout.md
Erik e18df84437 docs(runtime): close J3.2 canonical identity gate
Record the exact f46ddb5c rollback, 8,441-test Release gate, and seven-checkpoint connected lifecycle/reconnect pass. Update the canonical project state and pin J3.3's exact-key App projection-store execution plan.

Co-authored-by: Codex <codex@openai.com>
2026-07-25 20:14:29 +02:00

79 lines
2.8 KiB
Markdown

# Modern runtime J3.2 canonical entity directory closeout
## Result
J3.2 is complete at production commit
`f46ddb5cdb1e145752bea49aeb1d62bfe71284d3`.
`AcDream.Runtime.Entities.RuntimeEntityDirectory` now owns the only:
- active server-GUID to exact-incarnation map;
- exact-incarnation teardown tombstone map;
- Runtime local-ID allocation and reverse lookup;
- accepted inbound snapshot/timestamp owner;
- parent-relation owner;
- session lifetime epoch and per-GUID operation versions.
`RuntimeEntityRecord` owns the presentation-free canonical spawn, `INSTANCE_TS`,
cell/state authority, retail object clock, authority versions, and the
PhysicsBody/physics-host facts deliberately carried until J5.
App's `LiveEntityRecord` is now a graphical sidecar over that canonical record.
Its temporary dictionary-shaped `ActiveRecordView` stores no GUID map: it asks
Runtime for the current canonical record and resolves the sidecar by record
reference. J3.3 replaces that compatibility seam with an exact
`RuntimeEntityKey` projection store.
No renderer, UI, Silk.NET, ImGui, OpenAL, or App type entered Runtime. No
asynchronous queue or input-frame delay was added.
## Automated acceptance
At the production commit:
- Runtime tests: 110 passed;
- App tests: 3,758 passed / 3 skipped;
- complete Release solution: 8,441 passed / 5 skipped;
- Release solution build: pass.
Coverage includes active-incarnation uniqueness, exact old-generation
tombstones, local-ID wrap/reverse lookup, stale identity release, session epoch
replacement, accepted snapshot authority, separate delete/teardown edges,
resource registration rollback, reentrant clear/delete, GUID reuse, and source
guards that reject presentation/backend state on the canonical record.
## Connected lifecycle acceptance
Raw evidence:
`logs/connected-world-gate-20260725-200749/report.json`.
Result: PASS on the exact production commit.
- Capped process: login, Aerlinthe, Rynthid, Facility Hub, Holtburg after the
dungeon, and Aerlinthe revisit all completed.
- Fresh uncapped process: reconnect completed.
- Seven of seven checkpoints passed.
- Both processes exited gracefully with exit code zero.
- Every checkpoint reported zero render-shadow mismatches and zero pending
render deltas.
- No gate failure was recorded.
- The only warning was 25 expected world-edge landblock misses.
This proves that moving identity, incarnation, tombstone, accepted-wire, and
local-ID ownership into Runtime preserved connected object creation,
same-location revisit, dungeon/outdoor replacement, packet routing, rendering,
and graceful teardown on the exact binary.
## Exact rollback
```text
git revert f46ddb5cdb1e145752bea49aeb1d62bfe71284d3
```
J3.1 remains independently reversible with:
```text
git revert f7442d13e9ae7d5b077ffecb1f8a10899ad46edd
```
When reverting both, revert J3.2 before J3.1.