Changed files and comparisons

When DataMind Oda changes files in a turn, the end of the answer shows the changed-files card, and each listed file can be compared with its state before the turn. This page explains what Oda records, what stays out of the list, and how long the comparisons stay available.

The changed-files card

How Oda records a turn

Oda records changes for the chat you are working in, once per turn:

  1. When a turn starts, Oda notes the current state of the folder the chat works in.
  2. Before Oda changes a file with its own file tools, it keeps a copy of the file as it was. Each file is copied once per turn, so several edits to one file count once.
  3. When the turn ends, Oda compares the folder with its state at the turn's start and builds the list of changed files.
  4. The list arrives in the chat as the card, and the content behind each comparison is stored for later viewing.
Note

These records are Oda's own. Taking them never changes your repository or your saved work, and work you had already saved before the turn started never enters the list.

What appears on the list

When a file cannot be compared

What Oda keeps, and for how long

If part of the recording cannot run

Oda writes a line about it in its logs. These are the lines to know:

Limits at a glance

The standard setup uses these limits:

Questions, answered

Why did my turn show no changed files?

The list records changes in the folder the chat works in, once per turn. No card appears when the turn changed nothing, when a file was changed back to its earlier state by the turn's end, or when edits came only from commands in a folder Git does not track.

Which of my own edits appear on the card?

Edits made while a turn runs count towards that turn, including edits you make yourself. Work you had already changed and saved before the turn started never enters the list.

Are edits from terminal commands recorded?

Inside a Git repository, yes: Oda compares the whole repository when the turn ends, so an edit from a command appears like any other change. Outside Git, only files changed with Oda's own file tools are recorded, and Oda notes this in its logs. Files in the system's temporary area stay out either way, unless they sit inside the repository.

Why does a file have no line counts?

The file is binary or too large. A binary file cannot be compared line by line, and a file larger than 2 MiB is listed without counts and without a comparison. Both are still listed, so you can see that they changed.

Why does a comparison show the whole file replaced?

When a line comparison takes longer than 100 ms, Oda falls back to a simplified view: every old line shown as removed, every new line shown as added. Very large or complex changes can land here.

Why can't I open the comparison of an older turn?

Oda keeps the content behind comparisons for the 100 most recent turns of a chat and for 30 days from when a turn was recorded. When content is retired, the card stays in the chat, and the comparison reports that the contents are no longer available.

Do the cards survive restarting Oda?

With Oda's permanent storage in place, yes: reopen the conversation and its cards are there, and comparisons open again while their content is within the limits. If Oda runs without the permanent store, cards last only while the conversation stays open; without the content folder, a card returns after a restart but its comparison cannot be opened.

Does recording changes touch my Git repository?

No. Oda records changes through its own copies and comparisons. Your repository and your saved work stay as they are, and work you had uncommitted before the turn never enters the list.

Another chat shares my folder. Why is its change not on my card?

Each chat records its own changes. An edit the other chat makes with Oda's file tools is not added to this chat's card unless this chat changed the same file.

Why do changes inside a submodule not appear?

Changes inside a nested repository or a submodule are never listed; the nested folder itself can appear as a single changed entry, but what changed inside it is hidden.