Loading the documentation…

The task list and standing plan

While DataMind Oda works through a task with several steps, it keeps a task list: one item per concrete step, marked as the work moves. Oda breaks the work into steps and records the list itself; the list belongs to the chat that recorded it, and the chat shows it as the plan while the work runs.

How an update works

The three states

StateMeaning
pendingNot started.
in_progressBeing worked on now.
completedFinished.

Every item carries exactly one of the three, and each update states the state of every item in the list. In the chat they read Pending, In progress and Completed.

One task in progress, or several

Who owns the list

What an update row shows

Every recorded update appears in your chat as a step row, holding the whole list as it stood at that moment.

Read the list and what changed

  1. Expand the row: click it, or focus it and press Enter or Space. The shared step row is described on Oda's steps and tool results.
  2. The card is a read-only checklist: one line per task with its state, Completed, In progress or Pending. It carries no request block.
  3. Each changed task is marked and named: Added, Status changed, Reordered or Removed.
  4. A new task carries a +, one that left the list carries a −, and a task that changed state shows where it came from, reading Pending → In progress.
  5. Tasks that did not move fold behind a footer, for example 2 unchanged; open the footer to see them.
  6. The card names what it compares: Initial list for the first recorded list, Changes since the previous list afterwards. An update with no tasks and no earlier list to compare reads The to-do list is empty.

If the update's record cannot be read at all, the row opens as a plain block instead of the checklist, the same fallback as other steps; Step cards in chat covers it.

Where current progress shows

When a comparison is missing

When an update does not finish

Messages an update can return

A recorded update answers with the counts of the whole list; a refusal arrives with an Error: prefix and leaves the list as it was.

MessageWhat it means
Updated todo list: <pending> pending, <inProgress> in progress, <completed> completed.The update was recorded, and the counts describe the whole list.
Error: invalid todo: `content` must be a non-empty stringAn item had no text left once it was trimmed.
Error: invalid todos: duplicate content "<content>"The same task text appears twice in the list.
Error: invalid todos: at most one task may be in_progress (got <n>)The one-active rule is on, and the update marks more than one item in progress.
Error: todo_write requires an owning agent sessionThe update came from a run with no chat to record into.

The list and plan mode

The task list is not plan mode. Plan mode is a posture you switch on before work: Oda presents a plan and waits for your approval before carrying it out, covered on Plan mode. The task list is the running checklist of steps while Oda works. The two are separate features.

Questions, answered

Who decides what goes on the list?

Oda does: it breaks the work into concrete steps and records them itself as it goes. The list is its plan for the task, not something you fill in.

Does every task get a list?

No. The list is for work with several steps; a task with one obvious step can run without one.

Can a single task be edited on its own?

No. Every update sends the entire list and replaces the previous one, so there are no partial updates and no per-item edits: to change one task, Oda sends the complete list again, and to drop one, it sends the list without it.

Can I change or reorder the list myself?

No. The list is Oda's own record of the task, and the card is read-only. Ask for the change in the chat, and Oda records a new update with it.

Why are several tasks in progress at once?

That is Oda working in parallel, for example a background command or a helper agent, in a setup that allows it. Oda marks every task it is actively working on; the row names the first and counts the rest, for example +2.

Why was my update refused for two tasks in progress?

The one-active rule is on in your setup: at most one item may be in progress at a time. An update that marks two is refused with Error: invalid todos: at most one task may be in_progress (got <n>), and nothing is recorded.

Why was a task refused for empty or repeated text?

Every task text must have real content once trimmed, and no text may appear twice in one list. An item with nothing left after trimming is refused with Error: invalid todo: `content` must be a non-empty string; a repeated text is refused with Error: invalid todos: duplicate content "<content>". In both cases nothing is recorded.

Why did the Steps chip disappear?

The chip shows the current list, not a permanent one. It keeps showing the finished list after a turn ends, then clears when the next turn begins; it returns with the next update Oda records. Every update stays in the chat as its own row, so nothing is lost.

Why does an update say Previous list unavailable?

The list recorded before it is not loaded yet, so there is nothing to compare this update against. The comparison appears by itself when the earlier part of the chat loads.

Can another chat or a helper agent see the list?

No. The list belongs to the chat that recorded it: nothing is shared between chats, and each helper agent keeps its own list.

What happens to the list when I reopen the chat?

The list stays with the chat's record, so reopening the chat brings the latest list back, and the most recent update is the list that counts. Expand any earlier row to read the list as it stood at that update.

Is the task list the same as plan mode?

No. Plan mode is a posture you switch on before work: Oda presents a plan and waits for your approval, covered on Plan mode. The task list is the running checklist of steps while Oda works.