docs(runtime): close J1 contract gate

Record the exact-binary connected lifecycle/reconnect acceptance, synchronized active pointers, rollback, and durable evidence before session ownership moves in J2.
This commit is contained in:
Erik 2026-07-25 19:16:30 +02:00
parent 854d9e9cd1
commit f84624b1e9
9 changed files with 146 additions and 16 deletions

View file

@ -192,8 +192,17 @@ cutover rollback is
is `git revert 82f8d4f82e24ad85042ac3e25c4f6464bebce758`. is `git revert 82f8d4f82e24ad85042ac3e25c4f6464bebce758`.
Slice J0 is complete at `b632672e`: `AcDream.Runtime` now provides the enforced Slice J0 is complete at `b632672e`: `AcDream.Runtime` now provides the enforced
presentation-independent assembly boundary without moving gameplay behavior. presentation-independent assembly boundary without moving gameplay behavior.
Four dependency guards pass. J1 is active. J0's rollback is Four dependency guards pass. J1 is complete at `854d9e9c`: borrowed runtime
views, typed synchronous commands, ordered deltas, the instance clock,
generation/lifecycle contracts, and teardown acknowledgements project the same
canonical App owners without a mirror or extra frame. Runtime tests pass 13/13,
App tests pass 3,838/3 skips, the complete Release suite passes 8,424/5 skips,
and the exact-binary seven-checkpoint connected lifecycle/reconnect gate passes
with graceful exits. J2 session lifetime and ordered transport extraction is
active. J0's rollback is
`git revert b632672e5ccabfb44c551e08f1c411ab2669c44a`. `git revert b632672e5ccabfb44c551e08f1c411ab2669c44a`.
J1's rollback is
`git revert 854d9e9cd13092bd5aaa3cf025d73eeb4600e9f8`.
Slice H's retained UI/frame, bounded-light, and pooled/borrowed/direct network Slice H's retained UI/frame, bounded-light, and pooled/borrowed/direct network
work is complete; the exact seven-checkpoint connected lifecycle/reconnect gate work is complete; the exact seven-checkpoint connected lifecycle/reconnect gate
passes. Slice I is closed in passes. Slice I is closed in
@ -209,7 +218,8 @@ the portal-warmup corrections. Evidence:
`docs/research/2026-07-25-slice-i4-flat-bsp-differential.md` and `docs/research/2026-07-25-slice-i4-flat-bsp-differential.md` and
`docs/research/2026-07-25-slice-i5-dual-collision-shadow.md` and `docs/research/2026-07-25-slice-i5-dual-collision-shadow.md` and
`docs/research/2026-07-25-slice-i6-flat-production-cutover.md` and `docs/research/2026-07-25-slice-i6-flat-production-cutover.md` and
`docs/research/2026-07-25-slice-i7-closeout.md`. `docs/research/2026-07-25-slice-i7-closeout.md` and
`docs/research/2026-07-25-slice-j1-runtime-contract-closeout.md`.
**Structural prerequisite before new M4 subsystem work:** all eight **Structural prerequisite before new M4 subsystem work:** all eight
behavior-preserving `GameWindow` decomposition slices and the automated behavior-preserving `GameWindow` decomposition slices and the automated

View file

@ -190,8 +190,17 @@ cutover rollback is
is `git revert 82f8d4f82e24ad85042ac3e25c4f6464bebce758`. is `git revert 82f8d4f82e24ad85042ac3e25c4f6464bebce758`.
Slice J0 is complete at `b632672e`: `AcDream.Runtime` now provides the enforced Slice J0 is complete at `b632672e`: `AcDream.Runtime` now provides the enforced
presentation-independent assembly boundary without moving gameplay behavior. presentation-independent assembly boundary without moving gameplay behavior.
Four dependency guards pass. J1 is active. J0's rollback is Four dependency guards pass. J1 is complete at `854d9e9c`: borrowed runtime
views, typed synchronous commands, ordered deltas, the instance clock,
generation/lifecycle contracts, and teardown acknowledgements project the same
canonical App owners without a mirror or extra frame. Runtime tests pass 13/13,
App tests pass 3,838/3 skips, the complete Release suite passes 8,424/5 skips,
and the exact-binary seven-checkpoint connected lifecycle/reconnect gate passes
with graceful exits. J2 session lifetime and ordered transport extraction is
active. J0's rollback is
`git revert b632672e5ccabfb44c551e08f1c411ab2669c44a`. `git revert b632672e5ccabfb44c551e08f1c411ab2669c44a`.
J1's rollback is
`git revert 854d9e9cd13092bd5aaa3cf025d73eeb4600e9f8`.
Slice H's retained UI/frame, bounded-light, and pooled/borrowed/direct network Slice H's retained UI/frame, bounded-light, and pooled/borrowed/direct network
work is complete; the exact seven-checkpoint connected lifecycle/reconnect gate work is complete; the exact seven-checkpoint connected lifecycle/reconnect gate
passes. Slice I is closed in passes. Slice I is closed in
@ -207,7 +216,8 @@ the portal-warmup corrections. Evidence:
`docs/research/2026-07-25-slice-i4-flat-bsp-differential.md` and `docs/research/2026-07-25-slice-i4-flat-bsp-differential.md` and
`docs/research/2026-07-25-slice-i5-dual-collision-shadow.md` and `docs/research/2026-07-25-slice-i5-dual-collision-shadow.md` and
`docs/research/2026-07-25-slice-i6-flat-production-cutover.md` and `docs/research/2026-07-25-slice-i6-flat-production-cutover.md` and
`docs/research/2026-07-25-slice-i7-closeout.md`. `docs/research/2026-07-25-slice-i7-closeout.md` and
`docs/research/2026-07-25-slice-j1-runtime-contract-closeout.md`.
**Structural prerequisite before new M4 subsystem work:** all eight **Structural prerequisite before new M4 subsystem work:** all eight
behavior-preserving `GameWindow` decomposition slices and the automated behavior-preserving `GameWindow` decomposition slices and the automated

View file

@ -63,7 +63,9 @@ What does NOT go here:
production parsed collision graphs after exact flat differential and user production parsed collision graphs after exact flat differential and user
collision acceptance; 8,413 Release tests / 5 skips and both exact-binary collision acceptance; 8,413 Release tests / 5 skips and both exact-binary
connected routes pass with `0/0/0` graph residency. J0's enforced connected routes pass with `0/0/0` graph residency. J0's enforced
presentation-independent project boundary is live and J1 is active from presentation-independent project boundary and J1's borrowed
view/command/event/lifecycle contract are live; J2 session lifetime and
ordered transport extraction is active from
[`plans/2026-07-25-modern-runtime-slice-j.md`](plans/2026-07-25-modern-runtime-slice-j.md). [`plans/2026-07-25-modern-runtime-slice-j.md`](plans/2026-07-25-modern-runtime-slice-j.md).
The [documentation map](README.md) defines how this tactical ledger relates to The [documentation map](README.md) defines how this tactical ledger relates to

View file

@ -204,7 +204,10 @@ src/
Messages/ -> done (CreateObject, MoveToState, etc.) Messages/ -> done (CreateObject, MoveToState, etc.)
AcDream.Runtime/ presentation-independent client kernel boundary AcDream.Runtime/ presentation-independent client kernel boundary
RuntimeAssemblyMarker.cs -> J0 dependency boundary; J1 contracts active RuntimeAssemblyMarker.cs -> J0 dependency boundary
GameRuntime*.cs -> J1 borrowed views, synchronous commands,
ordered deltas, clock, generation + teardown
-> J2 session lifetime and ordered transport extraction active
-> may reference Core, Core.Net, Content, and Plugin.Abstractions only -> may reference Core, Core.Net, Content, and Plugin.Abstractions only
-> must never reference App, UI, Silk.NET, OpenAL, Arch, or ImGui -> must never reference App, UI, Silk.NET, OpenAL, Arch, or ImGui

View file

@ -1673,14 +1673,19 @@ port in any phase — no separate listing here.
> skips plus both exact-binary connected routes; every stable checkpoint > skips plus both exact-binary connected routes; every stable checkpoint
> reports `0/0/0` graph residency while flat assets remain populated. J0 > reports `0/0/0` graph residency while flat assets remain populated. J0
> established the presentation-independent Runtime boundary with four enforced > established the presentation-independent Runtime boundary with four enforced
> dependency guards; J1 is now active. > dependency guards. J1 now provides borrowed views, typed press-time commands,
> ordered deltas, an instance clock, generation/lifecycle state, and teardown
> acknowledgements over the same canonical owners. Its 13 Runtime tests, 3,838
> App tests / 3 skips, 8,424-test / 5-skip complete Release suite, and exact-
> binary seven-checkpoint lifecycle/reconnect gate pass with graceful exits.
> J2 is now active.
> The historical exact cutover > The historical exact cutover
> rollback remains > rollback remains
> `git revert ef1d263337997bb030eadb7b8e71d73dc659907a`. Slice H is complete: > `git revert ef1d263337997bb030eadb7b8e71d73dc659907a`. Slice H is complete:
> retained UI/frame work, exact bounded light selection, and > retained UI/frame work, exact bounded light selection, and
> pooled/borrowed/direct network I/O pass 8,292 Release tests / 5 skips and the > pooled/borrowed/direct network I/O pass 8,292 Release tests / 5 skips and the
> connected lifecycle/reconnect gate. Slice I is closed in > connected lifecycle/reconnect gate. Slice I is closed in
> [its detailed plan](2026-07-25-modern-runtime-slice-i.md); Slice J1 executes > [its detailed plan](2026-07-25-modern-runtime-slice-i.md); Slice J2 executes
> from [its lifetime-group plan](2026-07-25-modern-runtime-slice-j.md). > from [its lifetime-group plan](2026-07-25-modern-runtime-slice-j.md).
**Spec:** `docs/superpowers/specs/2026-07-05-modern-pipeline-design.md` (the **Spec:** `docs/superpowers/specs/2026-07-05-modern-pipeline-design.md` (the

View file

@ -147,9 +147,14 @@ Following user collision acceptance, `82f8d4f8` removed every production
parsed collision graph. Slice I7 passes 8,413 Release tests / 5 skips and both parsed collision graph. Slice I7 passes 8,413 Release tests / 5 skips and both
exact-binary connected lifecycle/reconnect and nine-stop routes; parsed graph exact-binary connected lifecycle/reconnect and nine-stop routes; parsed graph
residency is `0/0/0` at every stable checkpoint and teardown converges. Slice I residency is `0/0/0` at every stable checkpoint and teardown converges. Slice I
is complete. Slice J0 established and enforced the presentation-independent is complete. Slice J0 established and enforced the presentation-independent
`AcDream.Runtime` boundary without moving behavior; J1 is active under `AcDream.Runtime` boundary. J1 added borrowed views, typed synchronous
[`2026-07-25-modern-runtime-slice-j.md`](2026-07-25-modern-runtime-slice-j.md). commands, ordered events, an instance clock, generation/lifecycle contracts,
and teardown acknowledgements without moving a canonical owner. Runtime
tests pass 13/13, App tests pass 3,838/3 skips, the full Release suite passes
8,424/5 skips, and the exact-binary seven-checkpoint connected gate exits
gracefully. J2 session lifetime and ordered transport extraction is active under
[`2026-07-25-modern-runtime-slice-j.md`](2026-07-25-modern-runtime-slice-j.md).
Slice-I closeout evidence is Slice-I closeout evidence is
[`../research/2026-07-25-slice-i7-closeout.md`](../research/2026-07-25-slice-i7-closeout.md). [`../research/2026-07-25-slice-i7-closeout.md`](../research/2026-07-25-slice-i7-closeout.md).
The historical exact G4 visual rollback remains The historical exact G4 visual rollback remains

View file

@ -5,8 +5,9 @@
**Status:** Slices AI are complete. Flat-authoritative collision, zero- **Status:** Slices AI are complete. Flat-authoritative collision, zero-
allocation resolve scratch, parsed-graph removal, connected correctness/ allocation resolve scratch, parsed-graph removal, connected correctness/
lifetime acceptance, and Slice-I closeout landed 2026-07-25. Slices FL were lifetime acceptance, and Slice-I closeout landed 2026-07-25. Slices FL were
explicitly approved 2026-07-24. Slice J0's dependency-boundary preparation is explicitly approved 2026-07-24. Slice J0J1 established the enforced Runtime
complete without moving gameplay owners; J1 is the active execution point. boundary and the borrowed view/command/event seam without moving canonical
gameplay owners; J2 is the active execution point.
**Scope:** Reconcile and sequence the existing Modern Pipeline (`MP`) and **Scope:** Reconcile and sequence the existing Modern Pipeline (`MP`) and
Linux/headless (`LH`) tracks using the 2026-07-24 connected performance audit. Linux/headless (`LH`) tracks using the 2026-07-24 connected performance audit.
@ -1271,7 +1272,7 @@ honest metrics + committed baselines (A — exit criteria block C)
-> delta GPU submission (G) -> delta GPU submission (G)
-> residual frame cleanup (H-a, H-b, H-c) -> residual frame cleanup (H-a, H-b, H-c)
-> flat collision assets (I — COMPLETE) -> flat collision assets (I — COMPLETE)
-> presentation-independent runtime (J — CURRENT at J1) -> presentation-independent runtime (J — CURRENT at J2)
-> Linux/headless/multi-session (K) -> Linux/headless/multi-session (K)
-> evidence-gated GPU jobs (L) -> evidence-gated GPU jobs (L)
``` ```

View file

@ -1,7 +1,7 @@
# Modern runtime Slice J — presentation-independent runtime # Modern runtime Slice J — presentation-independent runtime
**Status:** J0 COMPLETE — lifetime plan, project boundary, and dependency **Status:** J0J1 COMPLETE — lifetime boundary plus borrowed view, command,
guards; Slice I is closed and J1 is ACTIVE event, clock, generation, and teardown contracts; J2 is ACTIVE
**Parent:** `2026-07-24-modern-runtime-architecture.md`, Slice J **Parent:** `2026-07-24-modern-runtime-architecture.md`, Slice J
**Authorization:** the user approved Slices FL, including the otherwise-frozen **Authorization:** the user approved Slices FL, including the otherwise-frozen
Slice J gameplay-owner moves, on 2026-07-24 Slice J gameplay-owner moves, on 2026-07-24
@ -103,6 +103,8 @@ git revert b632672e5ccabfb44c551e08f1c411ab2669c44a
### J1 — read, command, event, clock, and lifecycle contracts ### J1 — read, command, event, clock, and lifecycle contracts
**Completed 2026-07-25 at `854d9e9c`.**
- Define `IGameRuntimeView`, typed command interfaces, ordered event/delta - Define `IGameRuntimeView`, typed command interfaces, ordered event/delta
records, instance clock, lifecycle states, generation tokens, and teardown records, instance clock, lifecycle states, generation tokens, and teardown
acknowledgements. acknowledgements.
@ -117,6 +119,28 @@ Gate: adapter and direct-host traces are identical over deterministic session,
entity, inventory, chat, movement, and portal fixtures; no canonical owner has entity, inventory, chat, movement, and portal fixtures; no canonical owner has
moved yet. moved yet.
Result:
- `AcDream.Runtime` owns immutable borrowed-view contracts, typed commands,
ordered deltas, an instance clock, generation tokens, lifecycle snapshots,
and retryable teardown acknowledgements.
- Focused App adapters borrow the current canonical owners. They create no
second GUID map, state store, command queue, or frame boundary.
- Startup plus press-time selection, movement, and combat input now traverse
the typed command seam synchronously and still mutate the exact same owners.
- Runtime tests pass 13/13, App tests pass 3,838 with three skips, and the
complete Release solution passes 8,424 tests with five skips.
- The exact-binary connected gate at
`logs/connected-world-gate-20260725-190953/report.json` passed six capped
world checkpoints plus a fresh uncapped reconnect. Both processes exited
gracefully with no failures.
Exact rollback:
```text
git revert 854d9e9cd13092bd5aaa3cf025d73eeb4600e9f8
```
### J2 — session lifetime and ordered transport group ### J2 — session lifetime and ordered transport group
- Remove App presentation dependencies from `LiveSessionController`, - Remove App presentation dependencies from `LiveSessionController`,

View file

@ -0,0 +1,70 @@
# 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
```