docs(headless): record K3 isolation checkpoint
This commit is contained in:
parent
b6547ff38c
commit
fd9559a063
6 changed files with 114 additions and 10 deletions
10
AGENTS.md
10
AGENTS.md
|
|
@ -364,8 +364,14 @@ Release suite passes 8,728/5 skips. K2 completed at `7e8acb74` plus
|
||||||
local-player frame sequence, complete generation-gated bot commands, and
|
local-player frame sequence, complete generation-gated bot commands, and
|
||||||
ordered lifecycle/entity/inventory/chat/movement/portal/combat/command event
|
ordered lifecycle/entity/inventory/chat/movement/portal/combat/command event
|
||||||
stream pass 411 Runtime tests, 31 Headless tests, 3,732 App tests / 3 skips,
|
stream pass 411 Runtime tests, 31 Headless tests, 3,732 App tests / 3 skips,
|
||||||
and 8,744 complete Release tests / 5 skips. K3 shared immutable process content
|
and 8,744 complete Release tests / 5 skips. K3's automated checkpoint landed
|
||||||
and per-session mutable isolation are active.
|
across `12b500d3`, `9569dadb`, and `b6547ff3`: exact process content leases,
|
||||||
|
immutable magic/terrain/bounded collision sharing, presentation-free
|
||||||
|
local-player/collision hydration, 1/5/10-session same-GUID/portal/reconnect
|
||||||
|
isolation, and policy-fault quarantine pass 412 Runtime, 42 Headless, 3,722 App
|
||||||
|
tests / 3 skips, and 8,758 complete Release tests / 5 skips. The
|
||||||
|
visible-terminal Windows and Linux/WSL production gates remain before K3
|
||||||
|
closes.
|
||||||
J0's rollback is
|
J0's rollback is
|
||||||
`git revert b632672e5ccabfb44c551e08f1c411ab2669c44a`.
|
`git revert b632672e5ccabfb44c551e08f1c411ab2669c44a`.
|
||||||
J1's rollback is
|
J1's rollback is
|
||||||
|
|
|
||||||
10
CLAUDE.md
10
CLAUDE.md
|
|
@ -362,8 +362,14 @@ Release suite passes 8,728/5 skips. K2 completed at `7e8acb74` plus
|
||||||
local-player frame sequence, complete generation-gated bot commands, and
|
local-player frame sequence, complete generation-gated bot commands, and
|
||||||
ordered lifecycle/entity/inventory/chat/movement/portal/combat/command event
|
ordered lifecycle/entity/inventory/chat/movement/portal/combat/command event
|
||||||
stream pass 411 Runtime tests, 31 Headless tests, 3,732 App tests / 3 skips,
|
stream pass 411 Runtime tests, 31 Headless tests, 3,732 App tests / 3 skips,
|
||||||
and 8,744 complete Release tests / 5 skips. K3 shared immutable process content
|
and 8,744 complete Release tests / 5 skips. K3's automated checkpoint landed
|
||||||
and per-session mutable isolation are active.
|
across `12b500d3`, `9569dadb`, and `b6547ff3`: exact process content leases,
|
||||||
|
immutable magic/terrain/bounded collision sharing, presentation-free
|
||||||
|
local-player/collision hydration, 1/5/10-session same-GUID/portal/reconnect
|
||||||
|
isolation, and policy-fault quarantine pass 412 Runtime, 42 Headless, 3,722 App
|
||||||
|
tests / 3 skips, and 8,758 complete Release tests / 5 skips. The
|
||||||
|
visible-terminal Windows and Linux/WSL production gates remain before K3
|
||||||
|
closes.
|
||||||
J0's rollback is
|
J0's rollback is
|
||||||
`git revert b632672e5ccabfb44c551e08f1c411ab2669c44a`.
|
`git revert b632672e5ccabfb44c551e08f1c411ab2669c44a`.
|
||||||
J1's rollback is
|
J1's rollback is
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# acdream — strategic roadmap
|
# 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 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; K0's tested no-presentation Windows/Linux boundary closed at `aada8a37`, K1's real portable single-session host closed at `f8cb840f`, and K2's deterministic scheduler plus complete shared bot command/event path closed at `7e8acb74` plus `38e83640`. K3 shared process content and per-session isolation are 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; K0's tested no-presentation Windows/Linux boundary closed at `aada8a37`, K1's real portable single-session host closed at `f8cb840f`, and K2's deterministic scheduler plus complete shared bot command/event path closed at `7e8acb74` plus `38e83640`. K3's shared-content, collision-hydration, 1/5/10-session isolation, and fault-quarantine automated checkpoint landed at `12b500d3`, `9569dadb`, and `b6547ff3`; its visible-terminal Windows and Linux/WSL production gates remain. 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.
|
**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.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
@ -1805,8 +1805,10 @@ port in any phase — no separate listing here.
|
||||||
> single-session Windows/Linux host closed at `f8cb840f` after both platforms
|
> single-session Windows/Linux host closed at `f8cb840f` after both platforms
|
||||||
> completed the same real ACE connect, portal, graceful reconnect, and terminal
|
> completed the same real ACE connect, portal, graceful reconnect, and terminal
|
||||||
> teardown gate. K2's absolute-deadline scheduler and full typed bot-command/
|
> teardown gate. K2's absolute-deadline scheduler and full typed bot-command/
|
||||||
> event parity closed at `7e8acb74` plus `38e83640`; K3 shared immutable
|
> event parity closed at `7e8acb74` plus `38e83640`; K3's automated
|
||||||
> process content and per-session mutable isolation are active.
|
> shared-content/collision/isolation checkpoint landed at `12b500d3`,
|
||||||
|
> `9569dadb`, and `b6547ff3`. Its visible-terminal Windows and Linux/WSL
|
||||||
|
> production gates remain.
|
||||||
> 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:
|
||||||
|
|
|
||||||
|
|
@ -294,8 +294,14 @@ residency is `0/0/0` at every stable checkpoint and teardown converges. Slice I
|
||||||
absolute-deadline scheduler, the shared Runtime local-player frame sequence,
|
absolute-deadline scheduler, the shared Runtime local-player frame sequence,
|
||||||
complete generation-gated bot commands, and lifecycle/entity/inventory/chat/
|
complete generation-gated bot commands, and lifecycle/entity/inventory/chat/
|
||||||
movement/portal/combat/command events pass 411 Runtime, 31 Headless, 3,732
|
movement/portal/combat/command events pass 411 Runtime, 31 Headless, 3,732
|
||||||
App / 3 skips, and 8,744 complete Release tests / 5 skips. K3 shared
|
App / 3 skips, and 8,744 complete Release tests / 5 skips. K3's automated
|
||||||
immutable process content and per-session mutable isolation are active.
|
checkpoint landed across `12b500d3`, `9569dadb`, and `b6547ff3`: exact
|
||||||
|
process content leases, immutable magic/terrain/bounded collision sharing,
|
||||||
|
presentation-free local-player/collision hydration, 1/5/10-session
|
||||||
|
same-GUID/portal/reconnect isolation, and policy-fault quarantine pass 412
|
||||||
|
Runtime, 42 Headless, 3,722 App / 3 skips, and 8,758 complete Release tests
|
||||||
|
/ 5 skips. The visible-terminal Windows and Linux/WSL production gates
|
||||||
|
remain before K3 closes.
|
||||||
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).
|
||||||
Slice-J2 closeout evidence is
|
Slice-J2 closeout evidence is
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Modern runtime Slice K — Linux headless and multi-session host
|
# Modern runtime Slice K — Linux headless and multi-session host
|
||||||
|
|
||||||
**Status:** K0–K2 COMPLETE; K3 ACTIVE 2026-07-27
|
**Status:** K0–K2 COMPLETE; K3 AUTOMATED CHECKPOINT COMPLETE, CONNECTED GATE ACTIVE 2026-07-27
|
||||||
**Parent:** `2026-07-24-modern-runtime-architecture.md`, Slice K
|
**Parent:** `2026-07-24-modern-runtime-architecture.md`, Slice K
|
||||||
**Authorization:** the user approved Slices F–L on 2026-07-24
|
**Authorization:** the user approved Slices F–L on 2026-07-24
|
||||||
**Purpose:** run efficient automated clients on Linux without a display, GPU,
|
**Purpose:** run efficient automated clients on Linux without a display, GPU,
|
||||||
|
|
@ -293,6 +293,18 @@ not busy-loop.
|
||||||
|
|
||||||
### K3 — shared immutable content and isolation
|
### K3 — shared immutable content and isolation
|
||||||
|
|
||||||
|
**Automated checkpoint complete at `12b500d3`, `9569dadb`, and `b6547ff3`.**
|
||||||
|
The process opens the exact DAT/pak/magic/terrain sources once, shares a
|
||||||
|
bounded immutable flat-collision cache, and gives each session its own
|
||||||
|
Runtime/physics/cache/movement/collision-neighborhood graph. The direct
|
||||||
|
accepted-state route now hydrates local-player movement and terrain, EnvCell,
|
||||||
|
building, stab, and procedural-scenery collision without loading presentation.
|
||||||
|
The 1/5/10-session same-GUID/portal/reconnect gate and policy-fault quarantine
|
||||||
|
pass. Runtime passes 412 tests, Headless 42, App 3,722/3 skips, and the complete
|
||||||
|
Release solution 8,758/5 skips. The remaining K3 work is the visible-terminal
|
||||||
|
Windows connected gate plus the matching Linux/WSL production gate. Evidence:
|
||||||
|
`docs/research/2026-07-27-slice-k3-shared-content-isolation-checkpoint.md`.
|
||||||
|
|
||||||
- Introduce a process content owner with leases and exact last-user disposal.
|
- Introduce a process content owner with leases and exact last-user disposal.
|
||||||
- Share mapped pak/DAT/immutable tables and flat collision payloads.
|
- Share mapped pak/DAT/immutable tables and flat collision payloads.
|
||||||
- Retain per-session mutable physics/cache/scratch/state.
|
- Retain per-session mutable physics/cache/scratch/state.
|
||||||
|
|
@ -389,3 +401,11 @@ K2 exact rollback, newest first:
|
||||||
git revert 38e83640d907ee3e0819f3b38ca117ca60914d6b
|
git revert 38e83640d907ee3e0819f3b38ca117ca60914d6b
|
||||||
git revert 7e8acb74dd20931d5ba88430fd100cd074a32e4d
|
git revert 7e8acb74dd20931d5ba88430fd100cd074a32e4d
|
||||||
```
|
```
|
||||||
|
|
||||||
|
K3 automated-checkpoint rollback, newest first:
|
||||||
|
|
||||||
|
```text
|
||||||
|
git revert b6547ff38c375328417855200f41c8af6436f246
|
||||||
|
git revert 9569dadb578b299b24e30aec85eee86ec0c2b3fb
|
||||||
|
git revert 12b500d38362e8aae0a23a4f9712b86367006f76
|
||||||
|
```
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,64 @@
|
||||||
|
# Slice K3 shared-content and isolation checkpoint
|
||||||
|
|
||||||
|
**Date:** 2026-07-27
|
||||||
|
**Status:** Automated checkpoint complete; connected Windows/Linux gate remains
|
||||||
|
**Commits:** `12b500d3`, `9569dadb`, `b6547ff3`
|
||||||
|
|
||||||
|
## Outcome
|
||||||
|
|
||||||
|
The production headless process now opens DAT and `acdream.pak` content once,
|
||||||
|
leases the exact owner to every configured session, and disposes the mapping
|
||||||
|
only after the final lease. Sessions share immutable magic/catalog, terrain
|
||||||
|
height, and bounded flat-collision payloads while retaining distinct
|
||||||
|
`GameRuntime`, entity, object, action, movement, physics-engine, data-cache,
|
||||||
|
scratch, and teardown owners.
|
||||||
|
|
||||||
|
The direct inbound route now projects accepted local-player spawn/position and
|
||||||
|
portal state into one per-session movement controller and a per-session
|
||||||
|
collision neighborhood. Terrain, EnvCell topology, buildings, stabs, and
|
||||||
|
retail-generated scenery use the same presentation-free content builder as the
|
||||||
|
graphical streaming path. Headless hydration deliberately skips visual bounds,
|
||||||
|
so it does not populate the graphical process-wide `GfxObjBounds` cache.
|
||||||
|
|
||||||
|
The scheduler quarantines a throwing policy, detaches it before canonical
|
||||||
|
teardown deltas, and continues healthy sessions. Headless startup rejects
|
||||||
|
process-global physics probes whose mutable capture cursors cannot be
|
||||||
|
attributed safely across sessions.
|
||||||
|
|
||||||
|
## Automated evidence
|
||||||
|
|
||||||
|
- Runtime tests: 412 passed.
|
||||||
|
- Headless tests: 42 passed.
|
||||||
|
- App tests: 3,722 passed / 3 skipped.
|
||||||
|
- Complete Release solution: 8,758 passed / 5 skipped.
|
||||||
|
- Streaming/collision focused gate: 277 passed.
|
||||||
|
- Parameterized 1/5/10-session gate:
|
||||||
|
- identical server GUIDs remain isolated;
|
||||||
|
- activity and portal completion remain per Runtime root;
|
||||||
|
- reconnect replaces only that session's incarnation/generation;
|
||||||
|
- every teardown ledger converges.
|
||||||
|
- Policy-fault gate: one failing policy is quarantined while the healthy
|
||||||
|
session continues ticking.
|
||||||
|
- Shared-content gate: exact DAT, package, magic catalog, height-table backing
|
||||||
|
array, and bounded collision source are shared; mutable physics/cache/
|
||||||
|
movement owners are not.
|
||||||
|
|
||||||
|
## Remaining K3 gate
|
||||||
|
|
||||||
|
1. Run the production Release executable against local ACE in a visible
|
||||||
|
terminal with no window, renderer, audio, or UI assemblies.
|
||||||
|
2. Observe initial collision hydration, lifestone recall, reconnect, and exact
|
||||||
|
final content-lease disposal.
|
||||||
|
3. Repeat the production gate on Linux/WSL.
|
||||||
|
4. Add the connected resource evidence and close K3 before deriving K4's
|
||||||
|
numeric 1/5/10/30-session ceilings.
|
||||||
|
|
||||||
|
## Exact rollback
|
||||||
|
|
||||||
|
Newest first:
|
||||||
|
|
||||||
|
```text
|
||||||
|
git revert b6547ff38c375328417855200f41c8af6436f246
|
||||||
|
git revert 9569dadb578b299b24e30aec85eee86ec0c2b3fb
|
||||||
|
git revert 12b500d38362e8aae0a23a4f9712b86367006f76
|
||||||
|
```
|
||||||
Loading…
Add table
Add a link
Reference in a new issue