Define the exact Runtime/App ownership boundary, lifecycle ordering, teardown suffix, no-window gate, and deletion criteria before moving transport ownership.
69 lines
2.3 KiB
Markdown
69 lines
2.3 KiB
Markdown
# Modern runtime Slice J1 closeout
|
|
|
|
## Result
|
|
|
|
Slice J1 is complete at production commit
|
|
`854d9e9cd13092bd5aaa3cf025d73eeb4600e9f8`.
|
|
|
|
`AcDream.Runtime` now defines the presentation-independent seams required
|
|
before ownership moves:
|
|
|
|
- borrowed immutable entity, inventory, chat, movement, and portal views;
|
|
- generation-gated typed session, selection, combat, movement, chat, and
|
|
portal commands;
|
|
- ordered typed deltas and normalized parity traces;
|
|
- an instance-scoped frame/simulation clock;
|
|
- lifecycle snapshots, generation tokens, and retryable teardown
|
|
acknowledgements.
|
|
|
|
The App implementation is deliberately an adapter over current canonical
|
|
owners. It does not copy mutable collections, add a command queue, own a
|
|
second GUID map, or add a frame of input latency. Startup and press-time input
|
|
reach the same session, selection, movement, and combat owners synchronously.
|
|
No gameplay owner moved in J1.
|
|
|
|
## Automated acceptance
|
|
|
|
At the production commit:
|
|
|
|
- Runtime contract tests: 13 passed;
|
|
- App tests: 3,838 passed / 3 skipped;
|
|
- complete Release solution: 8,424 passed / 5 skipped;
|
|
- Release solution build: pass.
|
|
|
|
The tests cover clock normalization/freeze and instance isolation, generation
|
|
and teardown semantics, event-sequencer isolation, trace normalization,
|
|
connected start through the adapter, borrowed live entity/inventory/chat/
|
|
portal views, same-owner command mutation, ordered domain traces, stale
|
|
generation rejection, and complete stop acknowledgement.
|
|
|
|
## Connected lifecycle acceptance
|
|
|
|
Raw evidence:
|
|
`logs/connected-world-gate-20260725-190953/report.json`.
|
|
|
|
Result: PASS on the exact production commit.
|
|
|
|
- Capped process: login plus Aerlinthe, Rynthid, Facility Hub, Holtburg after
|
|
dungeon, and Aerlinthe revisit all completed.
|
|
- Fresh uncapped process: reconnect completed.
|
|
- Seven of seven checkpoints passed.
|
|
- Both processes exited gracefully with exit code zero.
|
|
- No gate failure was recorded.
|
|
- The only warning was 25 expected world-edge landblock misses.
|
|
|
|
This connected run proves that routing the startup command through the J1 seam
|
|
did not alter live connection, world traversal, replacement, or shutdown
|
|
behavior.
|
|
|
|
## Exact rollback
|
|
|
|
```text
|
|
git revert 854d9e9cd13092bd5aaa3cf025d73eeb4600e9f8
|
|
```
|
|
|
|
J0 remains independently reversible with:
|
|
|
|
```text
|
|
git revert b632672e5ccabfb44c551e08f1c411ab2669c44a
|
|
```
|