docs(runtime): close Slice J and activate Slice K
Record the shared graphical/no-window reset architecture, deterministic lifecycle evidence, exact rollback point, and synchronized project guidance before beginning the Linux headless host. Co-authored-by: Codex <noreply@openai.com>
This commit is contained in:
parent
a9a822f206
commit
953c469cac
12 changed files with 210 additions and 35 deletions
|
|
@ -1,6 +1,6 @@
|
|||
# acdream — strategic roadmap
|
||||
|
||||
**Status:** Living document. Updated 2026-07-27. **M3 landed; M4 is active.** M3's retail casting/UI, R6 locomotion/collision/projectile/teleport/radar rebaseline, deterministic fresh-login/portal world lifecycle, and final two-client portal observer flow are user-gated. All eight slices of the behavior-preserving ownership campaign in [`docs/architecture/code-structure.md`](../architecture/code-structure.md), their automated closeout, and the user's connected visual matrix are complete. Modern Runtime J3 canonical entity/object lifetime and J4 gameplay-state ownership are closed at `89e6b207`; J5.1 canonical selection/combat/target-mode ownership is closed at `b298f99f`, J5.2 interaction transactions at `f5f7b417`, J5.3 combat/magic intent at `20df9d15`, J5.4 local movement/outbound cadence at `aa3f4a60`, J5.5 per-session physics/remote simulation at `7e6033d0`, J5.6 projectile simulation at `2aee3356`, and J5.7 combined simulation closeout at `cdee7a4b`. J6.1 world-environment ownership is closed at `902076c0`; J6.2 canonical reveal generation and typed destination readiness is closed at `a6860d55` plus `acb845d8`; J6.3 exact F751/Position destination correlation is closed at `6a063a27`; J6.4 exact graphical-host acknowledgement and owner cleanup is closed at `18d17d8b`. J7's one graphical `GameRuntime` root is closed at `ce41efb9`, including the user's 2026-07-27 exact post-cutover visual acceptance. J8 no-window integration is active. Issue #225's lifestone/particle alpha comparison remains a separate rendering visual gate.
|
||||
**Status:** Living document. Updated 2026-07-27. **M3 landed; M4 is active.** M3's retail casting/UI, R6 locomotion/collision/projectile/teleport/radar rebaseline, deterministic fresh-login/portal world lifecycle, and final two-client portal observer flow are user-gated. All eight slices of the behavior-preserving ownership campaign in [`docs/architecture/code-structure.md`](../architecture/code-structure.md), their automated closeout, and the user's connected visual matrix are complete. Modern Runtime J3 canonical entity/object lifetime and J4 gameplay-state ownership are closed at `89e6b207`; J5.1 canonical selection/combat/target-mode ownership is closed at `b298f99f`, J5.2 interaction transactions at `f5f7b417`, J5.3 combat/magic intent at `20df9d15`, J5.4 local movement/outbound cadence at `aa3f4a60`, J5.5 per-session physics/remote simulation at `7e6033d0`, J5.6 projectile simulation at `2aee3356`, and J5.7 combined simulation closeout at `cdee7a4b`. J6.1 world-environment ownership is closed at `902076c0`; J6.2 canonical reveal generation and typed destination readiness is closed at `a6860d55` plus `acb845d8`; J6.3 exact F751/Position destination correlation is closed at `6a063a27`; J6.4 exact graphical-host acknowledgement and owner cleanup is closed at `18d17d8b`. J7's one graphical `GameRuntime` root is closed at `ce41efb9`, including the user's 2026-07-27 exact post-cutover visual acceptance. J8 closed Slice J at `a9a822f2` with one shared graphical/no-window root and generation-reset transaction. Slice K Linux headless/multi-session work is active. Issue #225's lifestone/particle alpha comparison remains a separate rendering visual gate.
|
||||
**Purpose:** One source of truth for where the project is and where it's going. Every observed defect or missing feature has a named phase that owns it; when something looks wrong in-game, look here to find the phase that'll address it. Implementation details live in per-phase specs under `docs/superpowers/specs/`, not in this file.
|
||||
|
||||
---
|
||||
|
|
@ -1797,8 +1797,10 @@ port in any phase — no separate listing here.
|
|||
> Runtime tests, 3,716 App tests / 3 skips, 8,642-test / 5-skip complete Release
|
||||
> suite, and exact-binary lifecycle/reconnect route pass with zero ownership
|
||||
> debt at every checkpoint. J7 completed at `ce41efb9`; the user accepted its
|
||||
> exact post-cutover visual matrix on 2026-07-27. J8 no-window integration and
|
||||
> Slice-J closeout are active.
|
||||
> exact post-cutover visual matrix on 2026-07-27. J8 closed Slice J at
|
||||
> `a9a822f2`: 395 Runtime tests, 3,731 App tests / 3 skips, 8,696 complete-
|
||||
> solution tests / 5 skips, lifecycle/reconnect, and canonical nine-stop gates
|
||||
> pass. Slice K Linux headless/multi-session implementation is active.
|
||||
> The historical exact cutover
|
||||
> rollback remains
|
||||
> `git revert ef1d263337997bb030eadb7b8e71d73dc659907a`. Slice H is complete:
|
||||
|
|
|
|||
|
|
@ -273,8 +273,13 @@ residency is `0/0/0` at every stable checkpoint and teardown converges. Slice I
|
|||
/ 5 skips, and exact-binary lifecycle/reconnect route pass with every
|
||||
environment/transit/host ledger at zero. J7 composition-root convergence
|
||||
completed at `ce41efb9`; the user accepted its exact post-cutover visual
|
||||
matrix on 2026-07-27. J8 is active under
|
||||
[`2026-07-25-modern-runtime-slice-j.md`](2026-07-25-modern-runtime-slice-j.md).
|
||||
matrix on 2026-07-27. J8 closed Slice J at `a9a822f2`: graphical and
|
||||
no-window hosts share one `GameRuntime`, one canonical generation-reset
|
||||
transaction, and one gameplay-owner graph. Its 395 Runtime tests, 3,731 App
|
||||
tests / 3 skips, 8,696 complete-solution tests / 5 skips, exact-binary
|
||||
lifecycle/reconnect route, and canonical nine-stop route pass. Slice K is
|
||||
active under
|
||||
[`2026-07-26-modern-runtime-slice-k.md`](2026-07-26-modern-runtime-slice-k.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
|
||||
|
|
|
|||
|
|
@ -25,8 +25,9 @@ J6 completed at `18d17d8b`: Runtime owns world environment, canonical reveal
|
|||
generation/readiness, exact F751/Position destination correlation, and the
|
||||
generation/cell-scoped graphical-host acknowledgement suffix. J7 completed
|
||||
at `ce41efb9` with its automated gates and the user's 2026-07-27
|
||||
physical-display acceptance. J8 no-window integration and Slice-J closeout are
|
||||
active.
|
||||
physical-display acceptance. J8 and Slice J closed at `a9a822f2`: graphical
|
||||
and direct hosts share one `GameRuntime`, one retryable generation-reset
|
||||
transaction, and one canonical gameplay-owner graph. Slice K is active.
|
||||
|
||||
**Scope:** Reconcile and sequence the existing Modern Pipeline (`MP`) and
|
||||
Linux/headless (`LH`) tracks using the 2026-07-24 connected performance audit.
|
||||
|
|
@ -1065,7 +1066,7 @@ host-parity tests after each move.
|
|||
|
||||
**Prepared execution plan:**
|
||||
[`2026-07-26-modern-runtime-slice-k.md`](2026-07-26-modern-runtime-slice-k.md).
|
||||
Implementation begins after Slice J's no-window closeout.
|
||||
Implementation began after Slice J's no-window closeout at `a9a822f2`.
|
||||
|
||||
**Purpose:** Deliver efficient automated bots.
|
||||
|
||||
|
|
@ -1304,8 +1305,10 @@ projection stages and App owns only retryable resource receipts. Its 365
|
|||
Runtime tests, 3,716 App tests / 3 skips, 8,642-test / 5-skip complete Release
|
||||
suite, and exact-binary lifecycle/reconnect gate pass with zero ownership debt
|
||||
at every stable checkpoint. J7 completed at `ce41efb9`, and the user accepted
|
||||
its exact post-cutover visual matrix on 2026-07-27. J8 is the current execution
|
||||
point.
|
||||
its exact post-cutover visual matrix on 2026-07-27. J8 closed Slice J at
|
||||
`a9a822f2`; 395 Runtime tests, 3,731 App tests / 3 skips, 8,696 complete-
|
||||
solution tests / 5 skips, lifecycle/reconnect, and canonical nine-stop gates
|
||||
pass. Slice K 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
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# Modern runtime Slice J — presentation-independent runtime
|
||||
|
||||
**Status:** J0–J7 COMPLETE; J8 ACTIVE
|
||||
**Status:** COMPLETE 2026-07-27
|
||||
**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
|
||||
|
|
@ -416,7 +416,7 @@ git revert ce41efb9e5938f79a7580476b949d172f52a1e69
|
|||
|
||||
**Detailed execution plan:**
|
||||
[`2026-07-26-modern-runtime-slice-j8.md`](2026-07-26-modern-runtime-slice-j8.md).
|
||||
Implementation is active after J7's 2026-07-27 physical-display acceptance.
|
||||
Completed at `a9a822f2` after J7's 2026-07-27 physical-display acceptance.
|
||||
|
||||
- Build a transport/content test host that constructs Runtime directly.
|
||||
- Connect, enter world, receive chat/inventory/world updates, move, use,
|
||||
|
|
@ -433,6 +433,16 @@ integration, resource teardown, packet/order/timing parity, and the user visual
|
|||
matrix all pass. Slice K may then build the Linux multi-session host without
|
||||
another gameplay extraction.
|
||||
|
||||
J8 passes 395 Runtime tests, 3,731 App tests / 3 skips, 8,696 complete-solution
|
||||
tests / 5 skips, the exact-binary lifecycle/reconnect route, and the canonical
|
||||
nine-stop route. Graphical and direct hosts share one `GameRuntime`, one
|
||||
retryable canonical-generation reset transaction, and the same gameplay-owner
|
||||
graph. Exact rollback:
|
||||
|
||||
```text
|
||||
git revert a9a822f206cc6021bc099988144488f3bd7c397b
|
||||
```
|
||||
|
||||
## 5. Commit order
|
||||
|
||||
1. `arch(runtime): establish presentation-independent boundary`
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# Modern runtime Slice J8 — no-window integration and Slice J closeout
|
||||
|
||||
**Status:** ACTIVE — J7 ENTRY GATE PASSED 2026-07-27
|
||||
**Status:** COMPLETE 2026-07-27 — SLICE J CLOSED
|
||||
**Parent:** `2026-07-25-modern-runtime-slice-j.md`, J8
|
||||
**Authorization:** the user approved Slices F–L, including the J gameplay-owner
|
||||
gates, on 2026-07-24
|
||||
|
|
@ -139,6 +139,11 @@ increasing within a generation and restart only when the generation changes.
|
|||
|
||||
### J8.1 — one direct root host
|
||||
|
||||
**Complete at `a9a822f2`.** `RuntimeGenerationReset` is the single retryable
|
||||
canonical-generation reset transaction. Graphical App reset borrows that
|
||||
transaction and retains only its presentation stages; the no-window host uses
|
||||
the same Runtime root and reset owner directly.
|
||||
|
||||
- Add the Runtime-owned generation-reset transaction and its narrow borrowed
|
||||
host-retirement acknowledgement.
|
||||
- Replace the child-by-child canonical portions of App's reset bindings with
|
||||
|
|
@ -162,6 +167,11 @@ generation, and converges without a presentation assembly or duplicate owner.
|
|||
|
||||
### J8.2 — deterministic transport/content lifecycle
|
||||
|
||||
**Complete at `a9a822f2`.** `NoWindowGameRuntimeHost` drives the production
|
||||
root through connect, enter, decoded state, movement, use, combat, casting,
|
||||
projectile work, portal completion, stop, reconnect, stale-route rejection,
|
||||
GUID reuse, and terminal convergence.
|
||||
|
||||
- Build deterministic session operations and in-memory transport.
|
||||
- Bind the exact session lifecycle order:
|
||||
reset → attach inbound → connect → select identity → enter → activate
|
||||
|
|
@ -180,6 +190,11 @@ root, accepted ordering is stable, and old-generation routes are inert.
|
|||
|
||||
### J8.3 — cancellation, faults, isolation, and credentials
|
||||
|
||||
**Complete at `a9a822f2`.** Focused gates cover reset retry/no-replay,
|
||||
portal cancellation before and after readiness, observer failure containment,
|
||||
two simultaneous isolated roots, stale-generation routes, and
|
||||
credential-safe traces.
|
||||
|
||||
- Cancel during connect, after inbound attach, during portal readiness, and
|
||||
with a host acknowledgement pending.
|
||||
- Inject route-construction, route-detach, observer, projection
|
||||
|
|
@ -196,6 +211,24 @@ credential-safe.
|
|||
|
||||
### J8.4 — complete Slice J gate
|
||||
|
||||
**Complete.** The exact committed binary passed:
|
||||
|
||||
- 395/395 Runtime tests;
|
||||
- 3,731 App tests / 3 skips;
|
||||
- 8,696 complete-solution tests / 5 intentional skips;
|
||||
- connected lifecycle/reconnect:
|
||||
`logs/connected-world-gate-20260727-004418/report.json`;
|
||||
- canonical nine-stop route:
|
||||
`logs/connected-r6-soak-20260727-004942.report.json`;
|
||||
- the already accepted J7 physical-display matrix.
|
||||
|
||||
The no-window process loads no App, UI, renderer, audio, Silk.NET, OpenAL,
|
||||
Arch, or ImGui assembly. The dependency and divergence audits found no new
|
||||
retail deviation. Retail chat-history research also confirmed that session
|
||||
end does not clear the bounded transcript: `CPlayerSystem::OnEndCharacterSession`
|
||||
at `0x00562870` reinitializes the character session, while the explicit
|
||||
`ClientCommunicationSystem::DoClear` at `0x0056E600` owns chat-buffer clearing.
|
||||
|
||||
- Run focused Runtime tests.
|
||||
- Run the Release solution build.
|
||||
- Run the complete Release suite.
|
||||
|
|
@ -254,10 +287,14 @@ extracting gameplay again.
|
|||
|
||||
## 7. Commit and rollback discipline
|
||||
|
||||
J8 implementation lands as one test/integration closeout commit after the J7
|
||||
visual entry gate, followed by one documentation closeout commit if needed.
|
||||
The full production SHA and exact `git revert <sha>` are recorded here before
|
||||
Slice K starts. J8 must not modify the J7 rollback point:
|
||||
J8 implementation landed as one test/integration closeout commit after the J7
|
||||
visual entry gate. Its exact rollback is:
|
||||
|
||||
```text
|
||||
git revert a9a822f206cc6021bc099988144488f3bd7c397b
|
||||
```
|
||||
|
||||
J8 did not modify the J7 rollback point:
|
||||
|
||||
```text
|
||||
git revert ce41efb9e5938f79a7580476b949d172f52a1e69
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# Modern runtime Slice K — Linux headless and multi-session host
|
||||
|
||||
**Status:** PREPARED — BEGINS AFTER SLICE J CLOSEOUT
|
||||
**Status:** ACTIVE 2026-07-27 — SLICE J ENTRY GATE PASSED
|
||||
**Parent:** `2026-07-24-modern-runtime-architecture.md`, Slice K
|
||||
**Authorization:** the user approved Slices F–L on 2026-07-24
|
||||
**Purpose:** run efficient automated clients on Linux without a display, GPU,
|
||||
|
|
@ -9,10 +9,14 @@ prove 30 isolated sessions can share immutable content safely in one process.
|
|||
|
||||
## 1. Entry contract
|
||||
|
||||
Slice K starts only after J8 proves one direct `GameRuntime` can connect, enter
|
||||
Slice K starts after J8 proves one direct `GameRuntime` can connect, enter
|
||||
world, receive authoritative state, move, use, fight/cast, portal, stop,
|
||||
reconnect, and converge without presentation assemblies.
|
||||
|
||||
That entry gate passed at `a9a822f2`: 395 Runtime tests, 3,731 App tests /
|
||||
3 skips, 8,696 complete-solution tests / 5 skips, exact-binary connected
|
||||
lifecycle/reconnect, and canonical nine-stop routes all pass.
|
||||
|
||||
K adds a production host over that same root. It does not move gameplay out of
|
||||
App again and does not create a bot-specific world model.
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue