docs(headless): record K4 resource envelope

This commit is contained in:
Erik 2026-07-27 11:21:44 +02:00
parent 776482da82
commit b2ab0956f2
7 changed files with 208 additions and 97 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 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 resource and stability work is active; `cb512fd0` adds process-level CPU/memory/GC/descriptor/ownership/scheduler telemetry and corrects both pre-connect deadline arming and the Linux sub-millisecond scheduler busy loop. 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 is implemented through `776482da`: resource telemetry/wait correction, 1/5/10/30-root isolation and two-hour simulated endurance, death/randomized cancellation, and a committed diagnostic-only resource/ownership envelope all pass. The exact `776482da` two-account Rynthid soak is active; graceful terminal convergence is the final Slice-K gate. 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.
---
@ -1808,12 +1808,14 @@ port in any phase — no separate listing here.
> 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;
> `cb512fd0` adds one process-level resource/ownership sampling deadline,
> exact scheduler lateness/wakeup accounting, terminal convergence reporting,
> post-connect deadline rebasing, and the Linux sub-millisecond busy-wait
> correction. Windows/native-Ubuntu Headless tests pass 56/56 and the complete
> Release suite passes 8,773 / 5 skips.
> teardown, and user-accepted retail-observer movement. K4 is implemented
> through `776482da`: one process-level resource/ownership sampler, exact
> scheduler lateness/wakeup accounting, deadline/wait correction, 1/5/10/30
> root isolation and two-hour simulated endurance, death/randomized
> cancellation, and a committed numeric envelope. Windows/native-Ubuntu
> Headless tests pass 67/67 and the complete Release suite passes 8,784 / 5
> skips. The exact two-account connected soak is active; graceful terminal
> convergence remains.
> The historical exact cutover
> rollback remains
> `git revert ef1d263337997bb030eadb7b8e71d73dc659907a`. Slice H is complete:
@ -1860,9 +1862,11 @@ hitch and follows.
> 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-K3 are complete and
> K4 is active. Its telemetry/CPU checkpoint is `cb512fd0`; exact fixed-binary
> connected baselines and automated 5/10/30-root endurance gates remain. The
> historical LH rows below remain the stable outcome map.
> K4 is implemented through `776482da`. Its automated 1/5/10/30-root
> isolation, two-hour simulated endurance, death/cancellation, and committed
> resource-envelope gates pass; the exact two-account connected process is
> running inside the envelope and only its graceful terminal convergence
> remains. 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

@ -303,16 +303,17 @@ residency is `0/0/0` at every stable checkpoint and teardown converges. Slice I
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. Its
`cb512fd0` telemetry checkpoint adds one process-level sampling deadline,
structured CPU/memory/GC/thread/descriptor/socket/ownership/content/
scheduler metrics, exact terminal convergence, post-connect deadline
rebasing, and the Linux sub-millisecond busy-wait correction without adding
per-session workers or timers. Windows and native Ubuntu Headless tests pass
56/56 and the complete Release suite passes 8,773 tests / 5 skips. The
exact-fixed-binary one/two-account baseline and automated 5/10/30-root
endurance gates remain.
3,722 App / 3 skips, and 8,764 complete Release tests / 5 skips. K4 is
implemented through `776482da`: process-level resource telemetry and the
deadline/wait correction (`cb512fd0`), 1/5/10/30-root content/isolation/
portal/reconnect plus two-hour simulated endurance (`97c174fb`), death and
randomized cancellation (`bd236ce5`), and committed diagnostic-only
per-process/per-session ceilings with exact running/terminal ownership
checks (`776482da`). Windows and native Ubuntu Headless tests pass 67/67 and
the complete Release suite passes 8,784 tests / 5 skips. The exact
`776482da` two-account Rynthid soak is active with zero faults and every
sampled resource dimension inside its ceiling; graceful terminal
convergence remains the final Slice-K closeout gate.
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,7 @@
# Modern runtime Slice K — Linux headless and multi-session host
**Status:** K0K3 COMPLETE; K4 ACTIVE 2026-07-27
**Status:** K0K3 COMPLETE; K4 IMPLEMENTED, CONNECTED TERMINAL GATE 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,
@ -341,16 +342,37 @@ disposes only after the final host acknowledgement.
### K4 — 30-session stress and closeout
K4 telemetry checkpoint `cb512fd0` is complete. One process-level
absolute-deadline sampler now reports CPU, private/resident/managed memory,
GC, threads, handles, Linux descriptors/sockets, session/ownership debt,
K4 implementation is complete through `776482da`. One process-level
absolute-deadline sampler reports CPU, private/resident/managed memory, GC,
threads, handles, Linux descriptors/sockets, session/ownership debt,
shared-content leases, scheduler wakeups, and deadline lateness without adding
per-session workers or timers. The first native Linux two-account run exposed
and corrected both pre-connect deadline arming and a sub-millisecond
`Task.Delay` busy loop. Windows and native Ubuntu Headless tests pass 56/56;
the complete Release suite passes 8,773 tests / 5 skips. The user requested
that the active two-client observer process remain running, so the exact fixed-
binary connected baseline and numeric ceilings remain next. Evidence:
`Task.Delay` busy loop.
The automated 1/5/10/30-root gate opens one exact process-content owner,
isolates equal GUIDs, portal/reconnect generations, mutable Runtime/physics
state, and policy faults, and converges every root and content lease. Its
30-root workload advances 480,000 frames per root (two simulated hours),
14.4 million turns total, with recurring movement, use, combat, casting, chat,
portal, death, and reconnect. Five additional 30-root runs cancel at
randomized connect/entry/activity/portal/reconnect/teardown edges.
The committed `k4-linux-30-session` envelope is diagnostic-only. It scales
private/resident memory, managed live/heap memory, CPU, handles, descriptors,
and sockets by configured session count while bounding threads, scheduler
wakeups/catch-ups, and deadline lateness process-wide. It names every
violation and requires exact Runtime/content convergence in the final
`disposed` sample; it never changes simulation, networking, scheduling, or
teardown.
Windows and native Ubuntu Headless tests pass 67/67; the complete Release
suite passes 8,784 tests / 5 skips. The exact `776482da` native Linux process
has both available accounts in-world at Rynthid, zero faults/reconnect debt,
bounded wakeups and CPU, and every sampled dimension inside the committed
ceiling. The user requested that it remain running for observation; its
graceful `disposed` sample is the sole remaining K4/Slice-K closeout gate.
Evidence:
`docs/research/2026-07-27-slice-k4-resource-telemetry-checkpoint.md`.
- Measure a 1-session warm baseline, then 5, 10, and 30 sessions.
@ -443,3 +465,12 @@ git revert b6547ff38c375328417855200f41c8af6436f246
git revert 9569dadb578b299b24e30aec85eee86ec0c2b3fb
git revert 12b500d38362e8aae0a23a4f9712b86367006f76
```
K4 rollback, newest first:
```text
git revert 776482da8225d88a7c6128022d137d26f9266a87
git revert bd236ce553718cfb1248703f4a2b17b35733b11c
git revert 97c174fbb2d72fb94e2fe07448bb257989ed8941
git revert cb512fd0916fbf49285c9b64df1630c5a69a0d20
```