One ACP session: its id, its conversation, the renderer state and the running prompt.
The sessionId is an opaque string (acp_...), not the conversation id. Editors such as Zed store
it and send it back on session/load, possibly after a restart, so the mapping lives in
SuperPi.Gateway.Sessions (a table), per principal.
Summary
Functions
Cancels the turn. The order is load-bearing: pending prompts first, then the machine.
Creates a session and its conversation. harness is the harness module.
Forks the conversation at its latest visible entry into a new session (_superpi/session/fork).
session/load resumes, so a fork is a separate custom method.
Finds an existing session. Returns {:ok, session} or :error.
The modes a client may pick: up to the remote ceiling and the harness ceiling.
The harness named in _meta.harness of a request, or the default.
The history of the session as session/update payloads, for session/load.
Sets the mode. The mode must be one of modes/1.
Types
Functions
@spec cancel(t()) :: :ok
Cancels the turn. The order is load-bearing: pending prompts first, then the machine.
Creates a session and its conversation. harness is the harness module.
Forks the conversation at its latest visible entry into a new session (_superpi/session/fork).
session/load resumes, so a fork is a separate custom method.
Finds an existing session. Returns {:ok, session} or :error.
The modes a client may pick: up to the remote ceiling and the harness ceiling.
The harness named in _meta.harness of a request, or the default.
The history of the session as session/update payloads, for session/load.
Sets the mode. The mode must be one of modes/1.