session_id is the spine. Spend, type, episodes, touches, path-product, and scope all hang on it.
The list
Dashboard → Sessions. Each row is a sitting: type, product / objective, tokens, cost. Filters:- principal
- window
- type
- objective
- touches
- who opened it (
initiated=subagent) - minimum cost
The timeline
Open a sitting. You get the conversation, turn by turn, with per-turn cost joined from the ledger. The header carries the whole sitting’s Tokens / Cost.- Human and agent messages are open. Long ones clamp.
- Tool calls fold behind a computed heading (counts and tool names).
- Agent reasoning folds.
- Subagent messages fold. A briefing an agent wrote to a subagent is captured with the human role because it is the user side of that subagent’s conversation. It is not a person. The control Show human subagent messages reveals them. They are on the page either way.
Set type from the page
Click the type value and type. Enter saves. Escape or click away abandons.- A sitting with no type reads
unannotatedand is editable the same way. - The write is declared-family. It outranks judge and heuristic.
- Re-typing replaces. Emptying does nothing. Deleting is a different act.
- Minted shares, snapshots, and embedded hosts do not get the writer.
Share
The share control is top-right of the session page, when sharing is configured. See Share.CLI
transcripts show is the store inspection form. turns is the debug timeline. The dashboard is the readable one.