Chat recovery after a crash

DataMind Oda keeps each chat's record as a session log file on your computer, and it saves as the chat works. This page explains what happens when Oda stops suddenly, for example in a power cut or a forced restart: what was already saved, what gets repaired, and what you need to do. Where the files live is on Chat logs on disk; a chat that will not open because its log was written by another version is a different case, covered on Opening older chats.

What is already saved when the app stops

The half-written end of a log

Note

A torn tail is a notice, not a failure. The chat opens with the complete part of its record, and you do not have to do anything.

A turn interrupted by the stop

A command cancelled as it was being saved

When a save cannot be written

Branched chats and inherited calls

Questions, answered

How much of my chat survives a sudden stop?

Everything that was saved. Oda saves the chat's events before it sends a model request, before it runs a command or another tool action, and at the end of each step. The chat reopens at the last point that was saved, and anything after it is done again.

Do I need to do anything to recover a chat?

No. DataMind Oda repairs the chat by itself when it is opened or continued; there is no recovery command and nothing to start.

Does a torn tail mean my chat is damaged?

No. It means Oda found an incomplete piece at the end of the chat's log, usually from a stop in the middle of a save. The chat opens with every complete record, and the next time it records something new the incomplete bytes are cleared.

What do the repair marks TOOL_NOT_STARTED and TOOL_OUTCOME_UNKNOWN mean?

They mark a tool call caught by the stop. TOOL_NOT_STARTED means the call had not been recorded as started, so nothing ran and it can be asked again safely. TOOL_OUTCOME_UNKNOWN means the call had started but its result was never saved, so Oda cannot tell whether it finished, and it checks before repeating the action.

Does recovery run my interrupted command again?

No. Recovery never repeats an interrupted call by itself. A call that had started is marked as an unknown outcome, and the note Do not retry blindly. tells Oda to check what the action did before repeating it.

After a crash, does Oda undo what a command had already changed?

No. Oda cannot tell whether a command ran or what it changed, so recovery does not undo anything. The call's outcome is marked as unknown, and Oda checks the action's effect before repeating it.

What is the note about the parent chat in a branched chat?

It is a repair note on a tool call the branch inherited without a result. The note The parent session may have executed it after the fork point. means the parent chat may have run the call after the branch was cut, so the branch cannot know the outcome from its own record.

Why did my turn stop when a save failed?

Oda will not carry on from unsaved state: when a save cannot be written, the step is refused and the turn fails instead of running half-finished. Retrying the request is safe, because a failed save is rolled back and cannot repeat events that were already saved.

Is a compressed chat log recovered the same way?

Yes. With compression on, the last compressed piece contributes only its complete records; the incomplete part is skipped and cleared on the next save. Complete records are always kept.