Sessions and the log
A session is one ordered log of records: the opening configuration, the messages, every inference and tool call, and their outcomes. Nothing in it is ever rewritten.
A session’s lifetime
Section titled “A session’s lifetime”A session is live while it lands records. Once it has been quiet past its
idle window (an hour by default), it rests: the log lands a
trellis.idled record and moves the session out of the box’s working set into
the object store. Resting is not an end. Reading a resting session, asking
its status or listing it leaves it at rest; the next message reopens it, with
every earlier record exactly as it was, and the conversation carries on. A
client that goes quiet for a week can simply send again.
A session ends only when it is archived: from the console’s end-session,
or the SDK’s archive(). The trellis.archived record is its last, and
nothing lands after it.
In the SDK’s event stream a rest appears as { type: "idled" }, which ends
nothing; { type: "archived" } is the end. The console’s session list shows
when a session last went to rest.