docs(runtime): close J2 session lifetime gate
Record the canonical Runtime session/transport cutover, exact rollback, full Release evidence, and exact-binary lifecycle acceptance. Advance the active execution pointer and durable memory to J3 identity and object ownership. Validated by the existing 79 Runtime tests, 3,776 App tests with three skips, 8,428 complete Release tests with five skips, and logs/connected-world-gate-20260725-193936/report.json. Co-authored-by: Codex <codex@openai.com>
This commit is contained in:
parent
7593078774
commit
9496c01be1
10 changed files with 161 additions and 24 deletions
16
AGENTS.md
16
AGENTS.md
|
|
@ -198,11 +198,20 @@ 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
|
||||
with graceful exits. J2 is complete at `75930787`: the canonical
|
||||
`WorldSession` generation, connect/enter/tick/replace transaction, ordered
|
||||
inbound route, and retryable teardown acknowledgement now live in Runtime.
|
||||
App retains only option conversion, graphical callbacks, and one borrowed
|
||||
inertable UI command projection. Runtime tests pass 79/79, App tests pass
|
||||
3,776/3 skips, the complete Release suite passes 8,428/5 skips, and the exact-
|
||||
binary seven-checkpoint gate passes with graceful exits and zero render-shadow
|
||||
mismatches or pending deltas. J3 canonical identity, properties, and
|
||||
object-table extraction is active. J0's rollback is
|
||||
`git revert b632672e5ccabfb44c551e08f1c411ab2669c44a`.
|
||||
J1's rollback is
|
||||
`git revert 854d9e9cd13092bd5aaa3cf025d73eeb4600e9f8`.
|
||||
J2's rollback is
|
||||
`git revert 75930787741db40a83eab8663e4464dce8d687ba`.
|
||||
Slice H's retained UI/frame, bounded-light, and pooled/borrowed/direct network
|
||||
work is complete; the exact seven-checkpoint connected lifecycle/reconnect gate
|
||||
passes. Slice I is closed in
|
||||
|
|
@ -219,7 +228,8 @@ the portal-warmup corrections. Evidence:
|
|||
`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-i7-closeout.md` and
|
||||
`docs/research/2026-07-25-slice-j1-runtime-contract-closeout.md`.
|
||||
`docs/research/2026-07-25-slice-j1-runtime-contract-closeout.md` and
|
||||
`docs/research/2026-07-25-slice-j2-session-lifetime-closeout.md`.
|
||||
|
||||
**Structural prerequisite before new M4 subsystem work:** all eight
|
||||
behavior-preserving `GameWindow` decomposition slices and the automated
|
||||
|
|
|
|||
16
CLAUDE.md
16
CLAUDE.md
|
|
@ -196,11 +196,20 @@ 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
|
||||
with graceful exits. J2 is complete at `75930787`: the canonical
|
||||
`WorldSession` generation, connect/enter/tick/replace transaction, ordered
|
||||
inbound route, and retryable teardown acknowledgement now live in Runtime.
|
||||
App retains only option conversion, graphical callbacks, and one borrowed
|
||||
inertable UI command projection. Runtime tests pass 79/79, App tests pass
|
||||
3,776/3 skips, the complete Release suite passes 8,428/5 skips, and the exact-
|
||||
binary seven-checkpoint gate passes with graceful exits and zero render-shadow
|
||||
mismatches or pending deltas. J3 canonical identity, properties, and
|
||||
object-table extraction is active. J0's rollback is
|
||||
`git revert b632672e5ccabfb44c551e08f1c411ab2669c44a`.
|
||||
J1's rollback is
|
||||
`git revert 854d9e9cd13092bd5aaa3cf025d73eeb4600e9f8`.
|
||||
J2's rollback is
|
||||
`git revert 75930787741db40a83eab8663e4464dce8d687ba`.
|
||||
Slice H's retained UI/frame, bounded-light, and pooled/borrowed/direct network
|
||||
work is complete; the exact seven-checkpoint connected lifecycle/reconnect gate
|
||||
passes. Slice I is closed in
|
||||
|
|
@ -217,7 +226,8 @@ the portal-warmup corrections. Evidence:
|
|||
`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-i7-closeout.md` and
|
||||
`docs/research/2026-07-25-slice-j1-runtime-contract-closeout.md`.
|
||||
`docs/research/2026-07-25-slice-j1-runtime-contract-closeout.md` and
|
||||
`docs/research/2026-07-25-slice-j2-session-lifetime-closeout.md`.
|
||||
|
||||
**Structural prerequisite before new M4 subsystem work:** all eight
|
||||
behavior-preserving `GameWindow` decomposition slices and the automated
|
||||
|
|
|
|||
|
|
@ -64,8 +64,9 @@ What does NOT go here:
|
|||
collision acceptance; 8,413 Release tests / 5 skips and both exact-binary
|
||||
connected routes pass with `0/0/0` graph residency. J0's enforced
|
||||
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
|
||||
view/command/event/lifecycle contract are live. J2's canonical
|
||||
session/transport lifetime and ordered inbound route are complete at
|
||||
`75930787`; J3 identity, properties, and object-table extraction is active from
|
||||
[`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
|
||||
|
|
|
|||
|
|
@ -207,7 +207,9 @@ src/
|
|||
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
|
||||
Session/ -> J2 canonical session lifetime, ordered
|
||||
inbound routing + retryable teardown
|
||||
-> J3 identity, properties, and object-table extraction active
|
||||
-> may reference Core, Core.Net, Content, and Plugin.Abstractions only
|
||||
-> must never reference App, UI, Silk.NET, OpenAL, Arch, or ImGui
|
||||
|
||||
|
|
|
|||
|
|
@ -1678,14 +1678,19 @@ port in any phase — no separate listing here.
|
|||
> 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.
|
||||
> J2 moved the canonical session/transport generation, ordered inbound route,
|
||||
> and retryable teardown into Runtime at `75930787`. Its 79 Runtime tests,
|
||||
> 3,776 App tests / 3 skips, 8,428-test / 5-skip complete Release suite, and
|
||||
> exact-binary seven-checkpoint gate pass with graceful exits and zero render-
|
||||
> shadow mismatches. J3 canonical identity, properties, and object-table
|
||||
> extraction is now active.
|
||||
> The historical exact cutover
|
||||
> rollback remains
|
||||
> `git revert ef1d263337997bb030eadb7b8e71d73dc659907a`. Slice H is complete:
|
||||
> retained UI/frame work, exact bounded light selection, and
|
||||
> pooled/borrowed/direct network I/O pass 8,292 Release tests / 5 skips and the
|
||||
> connected lifecycle/reconnect gate. Slice I is closed in
|
||||
> [its detailed plan](2026-07-25-modern-runtime-slice-i.md); Slice J2 executes
|
||||
> [its detailed plan](2026-07-25-modern-runtime-slice-i.md); Slice J3 executes
|
||||
> 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
|
||||
|
|
|
|||
|
|
@ -153,10 +153,16 @@ residency is `0/0/0` at every stable checkpoint and teardown converges. Slice I
|
|||
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
|
||||
gracefully. J2 moved canonical session/transport lifetime and ordered
|
||||
inbound routing into Runtime at `75930787`; 79 Runtime tests, 3,776 App
|
||||
tests / 3 skips, 8,428 full Release tests / 5 skips, and its exact-binary
|
||||
seven-checkpoint gate pass with graceful exits. J3 canonical identity,
|
||||
properties, and object-table 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
|
||||
[`../research/2026-07-25-slice-i7-closeout.md`](../research/2026-07-25-slice-i7-closeout.md).
|
||||
Slice-J2 closeout evidence is
|
||||
[`../research/2026-07-25-slice-j2-session-lifetime-closeout.md`](../research/2026-07-25-slice-j2-session-lifetime-closeout.md).
|
||||
The historical exact G4 visual rollback remains
|
||||
`git revert ef1d263337997bb030eadb7b8e71d73dc659907a`.
|
||||
|
||||
|
|
|
|||
|
|
@ -2,12 +2,12 @@
|
|||
|
||||
**Date:** 2026-07-24
|
||||
|
||||
**Status:** Slices A–I are complete. Flat-authoritative collision, zero-
|
||||
**Status:** Slices A–I and J0–J2 are complete. Flat-authoritative collision, zero-
|
||||
allocation resolve scratch, parsed-graph removal, connected correctness/
|
||||
lifetime acceptance, and Slice-I closeout landed 2026-07-25. Slices F–L were
|
||||
explicitly approved 2026-07-24. Slice J0–J1 established the enforced Runtime
|
||||
boundary and the borrowed view/command/event seam without moving canonical
|
||||
gameplay owners; J2 is the active execution point.
|
||||
boundary and borrowed contract seam; J2 moved canonical session/transport
|
||||
lifetime and ordered inbound routing. J3 is the active execution point.
|
||||
|
||||
**Scope:** Reconcile and sequence the existing Modern Pipeline (`MP`) and
|
||||
Linux/headless (`LH`) tracks using the 2026-07-24 connected performance audit.
|
||||
|
|
@ -1246,7 +1246,9 @@ proved exact flat traversal, strict dual publication, and flat-authoritative
|
|||
gameplay before removing every production parsed collision graph. Slice I7
|
||||
passes 8,413 Release tests / 5 skips plus both exact-binary connected routes;
|
||||
every stable checkpoint reports zero retained parsed collision graphs. J1 is
|
||||
now the current execution point.
|
||||
complete with borrowed contracts, and J2 now owns canonical session/transport
|
||||
lifetime plus ordered inbound routing in Runtime. J3 is the current execution
|
||||
point.
|
||||
Evidence:
|
||||
[`../research/2026-07-25-slice-g5-production-profile.md`](../research/2026-07-25-slice-g5-production-profile.md)
|
||||
and
|
||||
|
|
@ -1258,7 +1260,9 @@ and
|
|||
and
|
||||
[`../research/2026-07-25-slice-i7-closeout.md`](../research/2026-07-25-slice-i7-closeout.md)
|
||||
and
|
||||
[`2026-07-25-modern-runtime-slice-i.md`](2026-07-25-modern-runtime-slice-i.md).
|
||||
[`../research/2026-07-25-slice-j2-session-lifetime-closeout.md`](../research/2026-07-25-slice-j2-session-lifetime-closeout.md)
|
||||
and
|
||||
[`2026-07-25-modern-runtime-slice-j.md`](2026-07-25-modern-runtime-slice-j.md).
|
||||
|
||||
The intended order is therefore:
|
||||
|
||||
|
|
@ -1272,7 +1276,7 @@ honest metrics + committed baselines (A — exit criteria block C)
|
|||
-> delta GPU submission (G)
|
||||
-> residual frame cleanup (H-a, H-b, H-c)
|
||||
-> flat collision assets (I — COMPLETE)
|
||||
-> presentation-independent runtime (J — CURRENT at J2)
|
||||
-> presentation-independent runtime (J — CURRENT at J3)
|
||||
-> Linux/headless/multi-session (K)
|
||||
-> evidence-gated GPU jobs (L)
|
||||
```
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
# Modern runtime Slice J — presentation-independent runtime
|
||||
|
||||
**Status:** J0–J1 COMPLETE — lifetime boundary plus borrowed view, command,
|
||||
event, clock, generation, and teardown contracts; J2 is ACTIVE
|
||||
**Status:** J0–J2 COMPLETE — boundary, borrowed contracts, and canonical
|
||||
session/transport lifetime; J3 is ACTIVE
|
||||
**Parent:** `2026-07-24-modern-runtime-architecture.md`, Slice J
|
||||
**Authorization:** the user approved Slices F–L, including the otherwise-frozen
|
||||
Slice J gameplay-owner moves, on 2026-07-24
|
||||
|
|
@ -143,6 +143,8 @@ git revert 854d9e9cd13092bd5aaa3cf025d73eeb4600e9f8
|
|||
|
||||
### J2 — session lifetime and ordered transport group
|
||||
|
||||
**Completed 2026-07-25 at `75930787`.**
|
||||
|
||||
**Detailed execution plan:**
|
||||
[`2026-07-25-modern-runtime-slice-j2.md`](2026-07-25-modern-runtime-slice-j2.md).
|
||||
|
||||
|
|
@ -160,6 +162,21 @@ Gate: connected login/logout/reconnect and malformed/reentrant lifecycle suites
|
|||
produce the same packet/order trace; no-window construction can connect and
|
||||
disconnect without loading App or a backend.
|
||||
|
||||
Result: Runtime now owns the one `WorldSession` generation, ordered inbound
|
||||
route, connect/enter/tick/replace transaction, and exact retryable teardown
|
||||
acknowledgement. App keeps only connection-option conversion, graphical
|
||||
callbacks, and one borrowed inertable UI command projection. The Release build,
|
||||
79 Runtime tests, 3,776 App tests / 3 skips, 8,428 complete tests / 5 skips,
|
||||
and the exact-binary seven-checkpoint connected gate pass with graceful exits.
|
||||
Evidence:
|
||||
[`../research/2026-07-25-slice-j2-session-lifetime-closeout.md`](../research/2026-07-25-slice-j2-session-lifetime-closeout.md).
|
||||
|
||||
Exact rollback:
|
||||
|
||||
```text
|
||||
git revert 75930787741db40a83eab8663e4464dce8d687ba
|
||||
```
|
||||
|
||||
### J3 — canonical identity, properties, and object-table group
|
||||
|
||||
- Strip renderer, particle, Wb, and streaming components from the canonical
|
||||
|
|
|
|||
|
|
@ -1,8 +1,9 @@
|
|||
# Modern runtime Slice J2 — session lifetime and ordered transport
|
||||
|
||||
**Status:** ACTIVE
|
||||
**Status:** COMPLETE 2026-07-25
|
||||
**Parent:** `2026-07-25-modern-runtime-slice-j.md`, J2
|
||||
**Production base:** `854d9e9cd13092bd5aaa3cf025d73eeb4600e9f8`
|
||||
**Production commit:** `75930787741db40a83eab8663e4464dce8d687ba`
|
||||
**J1 documentation:** `f84624b1e9b83f928debdbe65a5a1576b999ee34`
|
||||
|
||||
## 1. Objective
|
||||
|
|
@ -180,10 +181,22 @@ J2 changes no pixels, input feel, or retail algorithm. A separate user visual
|
|||
pause is therefore not required unless the connected gate exposes a
|
||||
presentation symptom.
|
||||
|
||||
## 6. Rollback
|
||||
## 6. Result and rollback
|
||||
|
||||
The exact J2 rollback commit is recorded here before its connected gate. J1
|
||||
remains independently reversible:
|
||||
All focused and complete gates passed: 79 Runtime tests, 3,776 App tests with
|
||||
three skips, 8,428 complete Release tests with five skips, and the exact-binary
|
||||
seven-checkpoint connected lifecycle/reconnect route. Both processes exited
|
||||
gracefully; every checkpoint had zero render-shadow mismatch and zero pending
|
||||
render delta. Evidence:
|
||||
[`../research/2026-07-25-slice-j2-session-lifetime-closeout.md`](../research/2026-07-25-slice-j2-session-lifetime-closeout.md).
|
||||
|
||||
Exact J2 rollback:
|
||||
|
||||
```text
|
||||
git revert 75930787741db40a83eab8663e4464dce8d687ba
|
||||
```
|
||||
|
||||
J1 remains independently reversible:
|
||||
|
||||
```text
|
||||
git revert 854d9e9cd13092bd5aaa3cf025d73eeb4600e9f8
|
||||
|
|
|
|||
|
|
@ -0,0 +1,69 @@
|
|||
# Modern runtime Slice J2 closeout
|
||||
|
||||
## Result
|
||||
|
||||
Slice J2 is complete at production commit
|
||||
`75930787741db40a83eab8663e4464dce8d687ba`.
|
||||
|
||||
The one canonical `WorldSession` generation and its connect, EnterWorld, tick,
|
||||
replacement, and retryable stop transaction now live in `AcDream.Runtime`.
|
||||
Runtime also owns the complete ordered inbound subscription set and exact
|
||||
teardown acknowledgement stages. The superseded App controller, lifecycle
|
||||
host, event router, and subscription owner were deleted.
|
||||
|
||||
App remains the graphical host. It converts `RuntimeOptions` into immutable
|
||||
Runtime connection options, supplies graphical/domain lifecycle callbacks, and
|
||||
projects one borrowed `ICommandBus` route for retained UI. That bridge stores
|
||||
no generation, transport, or in-world state; only one route can be active, and
|
||||
the old route becomes inert before inbound callbacks detach.
|
||||
|
||||
No AC wire behavior, pixels, input timing, or retail algorithm changed.
|
||||
|
||||
## Automated acceptance
|
||||
|
||||
At the production commit:
|
||||
|
||||
- Runtime tests: 79 passed;
|
||||
- App tests: 3,776 passed / 3 skipped;
|
||||
- complete Release solution: 8,428 passed / 5 skipped;
|
||||
- Release solution build: pass.
|
||||
|
||||
Coverage includes bind-before-connect and activate-after-EnterWorld ordering,
|
||||
stale generation rejection, malformed and reentrant lifecycle paths,
|
||||
construction rollback, exact retryable teardown suffixes, one-active-route
|
||||
graphical projection, stale-route inertness, and a Runtime-only
|
||||
connect/disconnect graph that loads no App, UI, Silk.NET, OpenAL, Arch, or
|
||||
ImGui assembly.
|
||||
|
||||
## Connected lifecycle acceptance
|
||||
|
||||
Raw evidence:
|
||||
`logs/connected-world-gate-20260725-193936/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 session/transport lifetime and inbound route ownership
|
||||
out of App preserved live connection, packet routing, world traversal,
|
||||
replacement, and graceful shutdown on the exact binary.
|
||||
|
||||
## Exact rollback
|
||||
|
||||
```text
|
||||
git revert 75930787741db40a83eab8663e4464dce8d687ba
|
||||
```
|
||||
|
||||
J1 remains independently reversible with:
|
||||
|
||||
```text
|
||||
git revert 854d9e9cd13092bd5aaa3cf025d73eeb4600e9f8
|
||||
```
|
||||
Loading…
Add table
Add a link
Reference in a new issue