Loading the documentation…
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.
Developer tools shows internal diagnostics and raw session data. The switch itself says to turn it on only while troubleshooting.
The toolbar heads the view, above the timeline.
Above the ledger, the Trajectory timeline draws the same activity in three lanes: Input, Model and Tools.
TTFT 500 ms · Decoding 1,500 ms.No timing data.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}.
Failed, Pending or Completed. A call with no recorded result yet shows as Pending while it runs, and one that was cut off is kept as Interrupted.2 steps · 6 tool calls, and a closed answer names the tools it called.Images ×2 or Files ×1.#1, #2, so rows keep their room.Selecting a row opens Event details beside the ledger. On a narrow window the panel covers the view instead.
Not recorded or First token unavailable, instead of estimating; a figure can also be missing while the part of the record it is measured from is still on an older page you have not loaded.Usage not reported.No payload captured, No result captured, Schema unavailable, No output.A long chat opens at its newest records, so the oldest part of the record is not loaded at first.
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:
/ export in the message box and send it.Session download started; the ZIP it saves holds the chat's log as a file at its top level.Session log download requested. instead of starting a second download.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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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., Your password changed. 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.
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.
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.