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>
This commit is contained in:
parent
f46ddb5cdb
commit
e18df84437
8 changed files with 306 additions and 8 deletions
|
|
@ -0,0 +1,79 @@
|
|||
# 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.
|
||||
|
|
@ -8,6 +8,31 @@ The accepted J2 binary passes 8,428 Release tests with five skips and the
|
|||
seven-checkpoint connected lifecycle/reconnect gate at
|
||||
`logs/connected-world-gate-20260725-193936/report.json`.
|
||||
|
||||
## J3.2 ownership checkpoint
|
||||
|
||||
Commit `f46ddb5cdb1e145752bea49aeb1d62bfe71284d3` implements the first
|
||||
canonical split:
|
||||
|
||||
- `RuntimeEntityDirectory` owns the only active GUID map, exact-incarnation
|
||||
tombstones, reverse local-ID map, session lifetime epoch, per-GUID operation
|
||||
versions, accepted inbound snapshot owner, and parent-relation owner;
|
||||
- `RuntimeEntityRecord` owns the presentation-free canonical snapshot,
|
||||
`INSTANCE_TS`, authoritative cell/state/timestamp versions, object clock,
|
||||
PhysicsBody/physics-host facts carried for J5, and Runtime-issued local ID;
|
||||
- App's `LiveEntityRecord` is now a projection sidecar around that canonical
|
||||
record;
|
||||
- the temporary `ActiveRecordView` is dictionary-shaped only to preserve the
|
||||
large synchronous App call surface during J3.2. It stores no GUID map and
|
||||
resolves every lookup through `RuntimeEntityDirectory`; J3.3 deletes it;
|
||||
- Runtime-only ownership/lifetime tests and App source guards protect the
|
||||
boundary.
|
||||
|
||||
The checkpoint passes 110 Runtime tests, 3,758 App tests with three skips, and
|
||||
8,441 complete Release tests with five skips. Its exact-binary connected gate
|
||||
also passes all seven checkpoints with graceful exits, zero render-shadow
|
||||
mismatches, and zero pending deltas:
|
||||
`logs/connected-world-gate-20260725-200749/report.json`.
|
||||
|
||||
At this baseline:
|
||||
|
||||
- `LiveEntityRuntime.cs` is 2,866 lines and is referenced by roughly 100 App
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue