Loading the documentation…

The Trajectory tab

Every chat keeps a record of its work, and the Trajectory tab beside Chat replays that record as a ledger: the turns, the requests Oda sent to the model, the tool calls it made, and the timings it measured while it worked. Open it to see exactly how something was produced, or to inspect what a single request carried. Reading it changes nothing: it replays recorded work and sends nothing to a model.

Open the Trajectory tab

  1. Open a chat and look at the pair of tabs at the top of the conversation.
  2. Select Trajectory next to Chat.
Note

Developer tools shows internal diagnostics and raw session data. The switch itself says to turn it on only while troubleshooting.

Use the toolbar

The toolbar heads the view, above the timeline.

Watch the timeline

Above the ledger, the Trajectory timeline draws the same activity in three lanes: Input, Model and Tools.

Read the ledger

The ledger lists the chat's recorded activity in order. Each turn starts with a header reading Turn 1, Turn 2 and so on, and rows gather under Message and Step {step} headings. A compaction that stands alone takes its own Between turns section, headed Compaction {seq}.

Inspect a record

Selecting a row opens Event details beside the ledger. On a narrow window the panel covers the view instead.

Page back through older history

A long chat opens at its newest records, so the oldest part of the record is not loaded at first.

  1. Select Load earlier history at the top of the ledger, or the … strip at the left of the timeline.
  2. While a page loads, the control is disabled and reads Loading earlier history….
  3. When the page arrives, the older records appear above, and the row you were reading stays in place with any selection you made.

Take the chat's log with you

Everything the Trajectory tab shows is kept in the chat's log on your computer, and the tab replays that same record. To take a copy:

  1. Open More actions at the top of the chat and choose Download session log, or type /export in the message box and send it.
  2. A dialog confirms the download, reading Session download started; the ZIP it saves holds the chat's log as a file at its top level.

When a log cannot be read

If a session log is damaged or was changed outside Oda, Oda refuses to read it rather than guess, and leaves the file as it is. The messages a damaged log can produce, and what to send your administrator, are collected in Session log problems and what they mean. Chats repaired after a sudden stop and logs written by older versions of Oda are covered in Chat recovery after a crash and Opening older chats.

Questions, answered

Why did the Trajectory tab switch back to Chat?

Because Developer tools was turned off while the view was open: the tab shows only while the switch is on, and an open Trajectory returns to Chat. Turn the switch back on in Settings > General to bring the tab back.

What does the Duration control change?

It changes what decides the width of each span in the timeline. By default every operation gets the same width, so the strip shows order and grouping. Press Duration and the spans follow each operation's recorded time instead, so a long call takes a longer span. The tooltip tells you what the press will do: Use actual duration or Use equal-width operations.

Why are some rows dimmed in the ledger?

Because you drew a range on the timeline: the ledger keeps the records active in that range lit and dims the rest. It is a focus, not a filter, and nothing is hidden. Select a span, select empty space, or press Escape or double-click the timeline to clear the range.

What is a SUBTOOL row?

A call Oda made from inside a program it ran. Such calls sit under the call that made them, tagged SUBTOOL, in the order they happened, so you can follow the program's own steps before its result.

Why does a row say Interrupted?

The call was still running when its step or turn closed, so Oda recorded it as an interrupted call and its result was never recorded. Open the row to see what was kept, and run the work again if it is still needed. Oda's steps and tool results shows how the same call looks in the chat itself.

What do Failed, Pending and Completed mean?

Completed means the record finished. Pending means it has not finished yet: a call with no recorded result, or a compaction still running. Failed means it ended in an error, and the failure is kept in the record's details.

What happens in the Trajectory tab while Oda is still working?

New records appear as the work happens, and the view follows them until you scroll up; from then on it stays where you are, so new output does not pull you away from what you are reading. A record that is still running shows that it is running, and the timeline gives it a start marker rather than a made-up duration.

What is a Compaction row?

When a long chat no longer fits the model's reading space, Oda shortens its older part and records that as a compaction. In the ledger it shows as a Compaction {seq} row, and one that stands outside a turn sits in Between turns. While it runs it reads Compacting context…; a finished one reads Context compacted; a failed one reads Compaction failed, and one cut off by the chat ending keeps Compaction was interrupted before completion. The chat keeps its full record; the compaction changes what is sent to the model. See System prompt, context and compaction.

Why does a tool record open a Payload tab instead of Code?

The Code tab needs the recorded program together with its arguments. When those arguments were not recorded in a readable form, the record offers Payload with the raw arguments instead of guessing. For a readable program, Code shows the numbered source and offers Copy code.

Why does a failed request show a short message instead of the model's error?

When the request needed your DataMind sign-in and it no longer worked, the ledger shows the short sentence Oda uses, such as Your DataMind sign-in ended. Sign in again., Your password changed. Sign in to DataMind again. or DataMind refused access: {reason} Ask your administrator. Sign in again, then send the request; your chats are kept. When a model request failed an authentication check instead, the record shows API key is invalid and never the model service's own text. The full set of messages is in Failures and recovery and Troubleshooting.

Why do the tags and turn numbers change in a narrow window?

To keep the rows readable: when the view is narrow, the kind tags collapse to small icons and turn headers shorten from Turn 1 to #1. Widen the window and the full labels return.

Why does the timeline say No timing data?

Because the chat has nothing recorded to draw yet. The timeline builds its spans from recorded start and time facts; until the chat records some, it shows this line instead of an empty strip.