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

2.8 KiB

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

git revert f46ddb5cdb1e145752bea49aeb1d62bfe71284d3

J3.1 remains independently reversible with:

git revert f7442d13e9ae7d5b077ffecb1f8a10899ad46edd

When reverting both, revert J3.2 before J3.1.