GET /api/supervision/sessions lists sessions with their owner, so an operator can audit
what ran on the platform rather than guessing from logs. The same entitlement governs the
session trace route.
Each row carries session_id, app_name, agent_name, user_id, create_time,
update_time, a preview of the opening question, and counts: steps, tool_calls,
has_error. The preview is what makes the list scannable — without it, hundreds of runs
of the same agent read identically. Paginate with limit (200 by default) and offset;
total is the unpaginated count.
Who sees what
In this edition, each person sees their own sessions. That is not a limitation to work
around — it is the only default the core can honestly hold.
Reading someone else’s sessions is a privilege, and the core cannot decide who holds it:
the notion of a platform owner lives in a table owned by a commercial brick, and the core
must never name one. So it asks, through a registry hook. With no brick registered, the
answer is no.
Being an administrator is not, on its own, entitlement to read another account’s
sessions. Earlier builds gated supervision on is_admin, which meant every
administrator saw every agent on the platform — including colleagues who are
administrators for operational reasons rather than platform owners. The boundary is the
platform owner, and only a brick can hold it.
Grouping sessions
Group and filter by app_name, never by agent_name. app_name is derived from the
agent’s id (agent<id>), so it identifies one agent and one owner. agent_name is a
label and is not unique across the platform — the same name can belong to several
accounts — so grouping on it merges unrelated people’s sessions into one row.
Verifying the scope
A supervision call that returns only your own sessions proves nothing on its own: it is
the correct answer both when no brick is registered and when one is registered and refuses
you. To tell the two apart, check whether the brick is loaded, not merely installed —
they are separate steps, and an extension present on disk but absent from the loaded set
answers exactly like an extension that was never installed.
See Editions & Extensions.