docs(headless): close K3 connected gates

This commit is contained in:
Erik 2026-07-27 10:28:53 +02:00
parent 3f3401257c
commit 827a039760
7 changed files with 183 additions and 44 deletions

View file

@ -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 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.
**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 closed at `3f340125` after the shared-content/collision/isolation checkpoint, visible-terminal Windows and native Linux production runs, four-stop portal route, external-teleport handling, and user-accepted retail-observer movement. K4 30-session resource and stability 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.
---
@ -1805,10 +1805,10 @@ port in any phase — no separate listing here.
> single-session Windows/Linux host closed at `f8cb840f` after both platforms
> completed the same real ACE connect, portal, graceful reconnect, and terminal
> teardown gate. K2's absolute-deadline scheduler and full typed bot-command/
> event parity closed at `7e8acb74` plus `38e83640`; K3's automated
> shared-content/collision/isolation checkpoint landed at `12b500d3`,
> `9569dadb`, and `b6547ff3`. Its visible-terminal Windows and Linux/WSL
> production gates remain.
> event parity closed at `7e8acb74` plus `38e83640`; K3 closed at
> `3f340125` after the shared-content/collision/isolation checkpoint, visible
> Windows and native Linux production runs, exact portal routing, graceful
> teardown, and user-accepted retail-observer movement. K4 is active.
> The historical exact cutover
> rollback remains
> `git revert ef1d263337997bb030eadb7b8e71d73dc659907a`. Slice H is complete:
@ -1854,8 +1854,8 @@ hitch and follows.
> **PROMOTED TO ACTIVE MODERN RUNTIME SLICES K/L.** Slice K now executes the
> no-window Linux host and approximately 30-session target from
> [`2026-07-26-modern-runtime-slice-k.md`](2026-07-26-modern-runtime-slice-k.md);
> Slice L executes the graphical Linux/platform work. K0-K2 are complete and
> K3 is active. The historical LH rows below remain the stable outcome map.
> Slice L executes the graphical Linux/platform work. K0-K3 are complete and
> K4 is active. The historical LH rows below remain the stable outcome map.
The governing architectural rule is that a game session must not be a hidden
`GameWindow`. Authentication, networking, world state, movement, inventory,

View file

@ -294,14 +294,17 @@ residency is `0/0/0` at every stable checkpoint and teardown converges. Slice I
absolute-deadline scheduler, the shared Runtime local-player frame sequence,
complete generation-gated bot commands, and lifecycle/entity/inventory/chat/
movement/portal/combat/command events pass 411 Runtime, 31 Headless, 3,732
App / 3 skips, and 8,744 complete Release tests / 5 skips. K3's automated
checkpoint landed across `12b500d3`, `9569dadb`, and `b6547ff3`: exact
App / 3 skips, and 8,744 complete Release tests / 5 skips. K3 completed
across `12b500d3`, `9569dadb`, `b6547ff3`, and `3f340125`: 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.
same-GUID/portal/reconnect isolation, and policy-fault quarantine are joined
by the visible-terminal Windows and native Linux/WSL production gates.
Direct launch, four-stop portal routing, external `teleallto`, retail-client
observer movement, graceful logout, and the corrected normal-position versus
ForcePosition routing pass. Final gates report 412 Runtime, 47 Headless,
3,722 App / 3 skips, and 8,764 complete Release tests / 5 skips. K4
1/5/10/30-session resource-ceiling and stress work is active.
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

View file

@ -1,6 +1,6 @@
# Modern runtime Slice K — Linux headless and multi-session host
**Status:** K0K2 COMPLETE; K3 AUTOMATED CHECKPOINT COMPLETE, CONNECTED GATE ACTIVE 2026-07-27
**Status:** K0K3 COMPLETE; K4 ACTIVE 2026-07-27
**Parent:** `2026-07-24-modern-runtime-architecture.md`, Slice K
**Authorization:** the user approved Slices FL on 2026-07-24
**Purpose:** run efficient automated clients on Linux without a display, GPU,
@ -171,11 +171,14 @@ Support non-interactive providers suitable for local automation:
- standard-input secret stream;
- credential file with an explicit user-only-permission check on Linux.
Do not accept a plaintext password directly on the command line because process
lists expose it. `ToString`, validation errors, logs, checkpoints, crash
reports, and metrics contain only redacted credential IDs. Secrets are cleared
from retained buffers when the session is disposed where the BCL representation
allows it.
The user additionally requires an explicit `-user`/`-password` (and long-form
alias) launch override for local single-session automation. It is accepted only
for `run` with exactly one configured session and intentionally carries the
ordinary process-list exposure of command-line arguments. Configuration-based
multi-session production continues to use the providers above. `ToString`,
validation errors, logs, checkpoints, crash reports, and metrics never echo the
password, and the session wraps the value in the same disposable credential
owner used by provider-based launch.
## 6. Bot surface
@ -293,7 +296,7 @@ not busy-loop.
### K3 — shared immutable content and isolation
**Automated checkpoint complete at `12b500d3`, `9569dadb`, and `b6547ff3`.**
**Complete at `12b500d3`, `9569dadb`, `b6547ff3`, and `3f340125`.**
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
@ -301,8 +304,26 @@ 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:
Release solution 8,758/5 skips.
The connected closeout adds explicit portal-route and long-lived observer
policies as consumers of the same `IGameRuntimeView` /
`IGameRuntimeCommands` seam used by graphical automation. It also aligns the
direct host with retail position routing: ordinary accepted position echoes no
longer re-run teleport placement or stop local motion, `ForcePosition` uses
`BlipPlayer` semantics plus an immediate position acknowledgement, and a real
teleport performs exactly one destination placement. High-volume collision
snap diagnostics are now explicitly opt-in.
The visible Windows production terminal passed connect, collision hydration,
lifestone recall, graceful reconnect, second-generation materialization, and
terminal teardown. The native Linux/WSL executable then passed direct CLI
launch, exact Aerlinthe/Caul/Rynthid/lifestone routing, external `teleallto`
portal generations, and a retail-client observer gate. The user saw the
headless character turn and run smoothly without rubberbanding; three accepted
external portal generations completed before ACE confirmed graceful logout.
The final Release gate passes 412 Runtime tests, 47 Headless tests, 3,722 App
tests / 3 skips, and 8,764 complete-solution tests / 5 skips. 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.
@ -402,9 +423,10 @@ git revert 38e83640d907ee3e0819f3b38ca117ca60914d6b
git revert 7e8acb74dd20931d5ba88430fd100cd074a32e4d
```
K3 automated-checkpoint rollback, newest first:
K3 rollback, newest first:
```text
git revert 3f3401257c83bdd9f557eb577ba08cf2e5ec9a06
git revert b6547ff38c375328417855200f41c8af6436f246
git revert 9569dadb578b299b24e30aec85eee86ec0c2b3fb
git revert 12b500d38362e8aae0a23a4f9712b86367006f76