acdream/memory/project_modern_runtime_headless.md
2026-07-27 12:00:10 +02:00

97 lines
3.7 KiB
Markdown

# Modern Runtime headless continuation
## Current checkpoint
Slice J and Slice K are closed. K4 completed through `776482da`.
K3's production closeout commit is `3f340125`. Its automated predecessors are
`12b500d3`, `9569dadb`, and `b6547ff3`.
K4 commits after the telemetry/CPU checkpoint are:
- `97c174fb`: 1/5/10/30-root content sharing, same-GUID isolation, portal,
reconnect, and 480,000-frame-per-root two-hour simulated endurance;
- `bd236ce5`: death during the endurance route plus five randomized
30-session cancellation-edge runs;
- `776482da`: committed diagnostic-only 30-session resource ceilings,
per-sample evaluation, named failures, and exact running/terminal ownership
checks.
Windows and native Ubuntu Headless tests pass 67/67; the complete Release
suite passes 8,784 / 5 skips.
The Windows visible-terminal host and native Linux/WSL host both connected to
local ACE without loading presentation assemblies. Linux completed the
Aerlinthe/Caul/Rynthid/lifestone route, accepted external `teleallto`
destinations, remained visible to a retail observer, turned and ran smoothly,
and shut down through ACE-confirmed graceful logout. The user accepted the
observer movement gate on 2026-07-27.
## Important connected correction
`RuntimeLiveEntitySessionController` passes the exact accepted
`PositionTimestampDisposition` to the direct world projection.
- Normal `Apply` echoes update canonical state but do not reset the local
headless movement controller.
- `ForcePosition` uses `BlipPosition`, preserves active movement semantics, and
sends an immediate autonomous-position acknowledgement.
- A real teleport performs one full synchronization from
`PrepareDestination`.
Do not reintroduce full local-player synchronization for every accepted
Position packet; it stops movement and causes retail observers to see repeated
run/snap-back rubberbanding.
Collision `[snap]` output is high volume and must remain behind the explicit
`PhysicsEngine.DiagnosticLog` sink.
## Automation seam
Graphical automation and headless policies use `IGameRuntimeView`,
`IGameRuntimeCommands`, `IRuntimeEventSource`, and the same
`RuntimeLocalPlayerFrameController`/outbound serializers. The route and
observer policies are diagnostic consumers, not a second bot world or
movement implementation.
The user requires optional direct single-session CLI launch with
`-user`/`-password` or the long-form aliases. Multi-session configuration
continues to use credential providers.
## Final connected closeout
The exact `776482da` native Linux process ran both available accounts for ten
minutes. Twenty consecutive periodic samples passed the committed envelope
with zero fault/reconnect debt. SIGINT produced ACE-confirmed graceful logout
for both accounts. The final `disposed` sample had two converged Runtime roots,
zero entities/inventory/host/content leases, disposed shared content, and
`withinCeilings=true`.
## Next work
Slice L is active under
`docs/plans/2026-07-26-modern-runtime-slice-l.md`. L0 completed at
`66f114b2`: the shared path owner, graphical platform/native manifest,
factory-selected Linux wait, portable persistence/plugins, RID-safe publish,
and Ubuntu graphical package gate pass. Continue from
`memory/project_linux_graphical.md`; L1 must prove the actual Linux
window/context/input/audio lifecycle rather than revisiting headless
ownership.
Final K3 automated counts: Runtime 412, Headless 47, App 3,722 / 3 skips,
complete Release 8,764 / 5 skips.
K3 connected-closeout rollback:
```text
git revert 3f3401257c83bdd9f557eb577ba08cf2e5ec9a06
```
K4 rollbacks, newest first:
```text
git revert 776482da8225d88a7c6128022d137d26f9266a87
git revert bd236ce553718cfb1248703f4a2b17b35733b11c
git revert 97c174fbb2d72fb94e2fe07448bb257989ed8941
git revert cb512fd0
```