AI-Ascension
Architecture

Six tiers, read from the bottom up.

This diagram and boundary table preserve the 2026-09-02 foundation snapshot used by the pinned proof. They are not a current inventory: later repositories contain runtime executables, managed loading, bounded campaign/replay records, and a read-only coordinator-synchronization profile. See the dated update and its limits. The host keeps authority throughout.

proposed topology · confirmed per-tier seams, in memory · unverified runtime, host, game

Topologybottom to top

Runtime topology

Runtime topology, bottom to top Six nodes stacked vertically: game host at the bottom (authority), then sts2-game-mod, sts2-gateway, sts2-mcp-server, sts2-harness, and model/provider at the top. Arrows between nodes are labelled with what crosses. sts2-game-core and sts2-protocol sit beside the stack, not on the path. model / providerendpoint · none in this proof ModelRequest / ModelResponse (provider port) sts2-harnessepisodes · retry · record/replay · lineage tools/call sts2_get_state (JSON-RPC) sts2-mcp-serverone call → one gateway request GET /v1/instances/{id}/state + lease proof sts2-gatewaylease · epoch fence · fixed routes · limits forward via TransportPort (foundation fake) sts2-game-modbounded queue · ABI check · admission HostRequest on the main thread (foundation fake host) game hostauthority stays here · not connected authority beside the ascent (no runtime tier) sts2-game-coredomain · beside sts2-protocolmetadata · beside read bottom to top ↑

What crosses each arrow is source-derived from the repositories' README and ARCHITECTURE documents. The historical foundation tests ended at injected fakes; later bounded campaign/replay records cross the harness-to-host stack, while the coordinator profile reports metadata with zero downstream game connections. Neither establishes full autonomous coverage or native multiplayer.

Boundaries

Boundary table

RepositoryOwnsDoes not ownHistorical foundation testsUnverified
sts2-game-coreHost-independent domain: typed Identity/Generation/Phase/State/Action/Request; pure validate; policy rules with no I/OAny host, loader, HTTP, MCP, gateway, provider, save formatPure validate returning an accepted proposal or structured rejection; golden vectors reproducible ×64Any host, loader, HTTP, MCP, gateway, provider, save-format, or game-mechanics compatibility
sts2-game-modGame-process adapter: host port, bounded main-thread queue, dispatcher, versioned ABI descriptor, transport-free HTTP admission guard, composition seamA managed loader, a real host adapter, a route catalog, domain behavior, packagingQueue, dispatcher, ABI validation, admission guard; source-only .NET 9 ↔ Rust C-ABI experimentGame launched, loader discovered, host assembly stored, listener exposed, real main-thread mutation
sts2-gatewayIn-memory control plane: allocate/reconcile/renew/release/cleanup/expire/shutdown; one lease per instance with epoch fencing; fixed routes; byte limitsListener, process supervisor, game connection, auth at an external boundaryFencing (WrongInstance, Missing, Expired, WrongCaller, WrongSession, WrongLease, StaleEpoch); routes ReadOnly/Command/Receipt; body/response limits; fail-closed on process, readiness, transport faults; fresh lease epoch is 1Listener, process supervisor, game connection, auth at an external boundary, isolation under real concurrency, host compatibility, release
sts2-mcp-serverJSON-RPC framing; initialize/tools/list/tools/call; single tool sts2_get_stateGateway policy, game state, any transportMaps to exactly one gateway request GET /v1/instances/{id}/state with x-mcp-request-id/x-mcp-session-id; rejects malformed JSON (-32700), invalid params (-32602), unsupported capability (-32601) before gateway access; gateway Unauthorized → -32001Live MCP transport, gateway connection, game load, provider call, deployment
sts2-harnessPure coordinator ports (router, provider, record, replay, artifact); retry/idempotency; record/replay; artifact lineage; bounded shutdownAny provider, MCP or gateway exchange, game actionThe ports and seams above, against deterministic fakesProvider execution, MCP/gateway exchange, game action, replay fidelity vs a game, scoring, training, packaged runtime
sts2-protocolNeutral identity/correlation/lineage metadata; version/profile/digest descriptors; lifecycle/deadline metadata; error envelope; manifestAny transport, host, gateway, MCP, model, storage, runtimeSchema + golden fixtures + conformance testAny transport, host, gateway, MCP, model, storage, or runtime behavior

This frozen foundation table describes only the pinned revisions. Later implementations and reported host checks are listed separately in the current evidence update.

Definitions

Four terms

Lease
The gateway's record that one caller, in one session, currently holds one instance. It carries an instance id, caller id, session id, lease id, an epoch, and an expiry tick. A forward request must present a proof of that lease.
Epoch fencing
Each lease has an epoch that starts at 1 and rises whenever the lease is renewed or replaced. A request whose proof carries an older epoch is denied as StaleEpoch, before any transport call. A proof naming a different instance is denied as WrongInstance. The fence runs first; the transport never sees a fenced request.
Fixed route
A forward names one of three routes — ReadOnly, Command, Receipt — rather than an arbitrary path. There is no route catalog to extend at runtime.
Fail closed
When a process, readiness, or transport port reports a fault, the gateway refuses further work on that instance instead of guessing. Shutdown closes admission. Denial is the default outcome of doubt.

The proof replay demonstrates lease fencing, fixed routes, size limits, and release. Additional failure cases are mapped to source tests on the evidence page; not every definition is exercised by the eight-step replay.