Sessions and trajectories
Watcher records what a coding agent does as a session made of messages, and organizes each session's messages into one or more trajectories. Graders review trajectories, so these two terms tell you exactly what a grade covers.
Sessions
A session is one recorded interaction with a coding agent: for example, a single Claude Code or Codex conversation on a developer's machine. The Watcher client's hooks upload the conversation to your Watcher deployment at the end of each agent turn, so a session is visible in the Analyzer while it is still in progress.
Each session records:
- The messages exchanged: user prompts, assistant replies, tool calls with their results, and the system prompt.
- Which agent produced it (Claude Code or Codex).
- The developer it belongs to.
Trajectories
A trajectory is one linear path through a session's conversation: an unbroken chain of messages, in order, ending at one of the session's latest messages. Most trajectories start at the session's first message; a restarted chain (see below) starts where the restart happened, so its trajectories do not include the messages before it.
A straightforward conversation produces a single trajectory. A session contains more than one trajectory when its message history stops being a single chain:
- Branching. The developer rewinds the conversation and continues from an earlier point. Watcher keeps both branches, each as its own trajectory, and they share the messages up to the branch point.
- Restarted chains. The agent restructures its own message history mid-session (context compaction, or a change of system prompt), which starts a new chain in the same session.
What a grade covers
Graders review a trajectory, not a whole session. Each grade attaches to one specific trajectory, identified by the last message the grader saw. A session accumulates grades over time: from different graders, from different models, and from re-grading the same trajectory.
While a session runs, review happens in two ways:
- Blocking review evaluates a tool call before it runs and can allow it, deny it, or escalate it to a human.
- Trailing review grades the session's latest trajectory on the server as the session is ingested, and settles it with a final pass once the session goes quiet.
Counting messages
A session's message count, as shown in session lists, is the length of its longest trajectory, not the total number of stored messages. A heavily branched session therefore holds more messages than its count shows.