Edit, rewind and retry a conversation
When you change something in the past of a chat, DataMind Oda cuts a new version of the conversation that continues from just before the message you changed, and keeps the earlier path as it was. This page covers what that version is and the rules around it; the actions themselves are on Edit, rewind and retry a message, and the basics of chatting are on Chat with Oda.
What Oda cuts when you change a message
- Oda cuts the new version at a point just before the replaced message's turn. What the new version starts with depends on the action: Edit runs your edited text with the message's attachments, Retry runs the same message again, and Rewind to here runs nothing, because the message goes back into the message box with its attachments. Conversation branches compares the three.
- Everything before the message is kept, and the version you were on stays as it was. Nothing earlier is written over.
- The new version becomes the one you continue in. It works in the same folder as the chat it was cut from.
- A version is not a separate chat: it never appears as its own row in your lists. The chat keeps one row, which follows the version you are on (Sessions: the list and lifecycle).
- Messages you queued but that had not started do not carry into the new version: waiting input is cleared when the version is cut (Stopping Oda and queued messages).
How a chat counts its versions
- Oda counts one for the version you started from, plus one for each version it has cut. A chat you have never changed is one version, and every edit, rewind or retry adds one more.
- You see that count on the chat's row and in the version switcher (Conversation branches).
What a rewind can put back
- When Oda kept copies it can put back, a rewind asks first: keep the box Restore files Oda changed after this message ticked to put them back. An Edit can offer the same choice; Retry never restores files.
- A restore covers only the files Oda changed with its own file steps after that message. It never undoes changes made by shell commands, memory, skills or scheduled tasks, and a file changed outside Oda is left as it is unless you ask for it. The choices and the report the chat shows afterwards are on Rewind and restore files.
When Oda cannot cut a version
- While a turn is still running, Oda refuses to branch; it answers
stop the running turn before branching. Stop the reply, or wait for it to finish, then repeat the edit, rewind or retry.
- The cut point must name a prompt of the chat, a message you sent that opened a turn. A point that is not a prompt of the chat is refused (
session/branch-unavailable).
- A cut point is a whole number of zero or more, and Oda validates it before reading anything from the chat. Any other value is refused outright.
- A helper chat Oda started cannot be branched; Oda answers
subagent Sessions cannot be branched. Versions belong to the chat you work in.
- An Edit needs visible text: an edit that carries none is refused (
an edited prompt must include non-whitespace text).
Half-finished turns and steps
- If a cut falls inside a turn that was still open, Oda closes that turn in the new version, so it does not begin with a half-finished turn.
- A step that had not finished when the cut happened is recorded with an unknown outcome, so it is not mistaken for a completed change.
How deep a chain of versions can go
- Oda follows a chain of versions up to 256 links deep. The limit is on the depth of the chain, a version cut from a version, not on how many versions a chat can hold.
Questions, answered
What happens behind the scenes when I create a version?
Oda cuts a new version of the chat that starts just before the message you changed and makes it the one you continue in. Everything before the message is kept, and the version you were on stays as it was, so nothing earlier is written over or lost.
Which message can a new version start from?
A message you sent that opened a turn. A point that is not a prompt of the chat is refused (session/branch-unavailable), and a cut point must be a whole number of zero or more; Oda validates it before reading anything from the chat. When you do not choose a point, Oda uses the latest finished turn.
How many versions does my chat have?
Oda counts one for the version you started from, plus one for each version it has cut. A chat you have never changed is one version, and every edit, rewind or retry adds one more.
What happens to messages I queued when I create a version?
They do not carry into the new version. Messages that were still waiting are cleared when the version is cut, so the new version starts without them (Stopping Oda and queued messages).
Why does Oda ask me to stop the running turn before branching?
A new version cannot be cut while a turn is running, so Oda refuses with stop the running turn before branching. Stop the reply, or wait for it to finish, then repeat the edit, rewind or retry.
What happens to a step that never finished when a version is cut?
If the cut lands inside a turn that was still open, Oda closes that turn in the new version, and a step that had not finished is recorded with an unknown outcome instead of a completed one.
Can a helper chat Oda started have its own versions?
No. Versions belong to the chat you work in, and a helper chat cannot be branched (subagent Sessions cannot be branched). Work a helper chat did still counts with the main chat, for example when a rewind puts back files.
How deep can a chain of versions go?
Oda follows a chain of versions up to 256 links deep. The limit is on the depth of the chain, a version cut from a version, not on how many versions a chat can hold.
Do my versions survive if I close and reopen Oda?
Yes. Oda records each version with the chat's stored record, so the chat comes back with its versions and the switcher works as before.