While DataMind Oda works on a task, it can keep a bash or PowerShell shell alive between the commands it runs. It keeps its current folder, its exported variables and the work it started, so a multi-step task builds on what the last command did; a command that stands alone runs in a fresh process instead, as described in Shell commands.
The environment each command receives and the limits applied to it are described in The command environment.
Oda keeps one shell per agent and reuses it for every command that agent runs. The first command starts the shell; later commands join it.
A closed shell is not repaired: Oda starts a fresh one when the next command needs it. That command starts from the workspace folder with a fresh current directory and environment, and the result of the command that closed the shell carries this note:
The persistent bash shell was reset; the next bash call starts from the workspace with a fresh current directory and environment.
The PowerShell shell reports the same, naming pwsh.
The shell closes when:
exit.A command stopped by its time limit or by a memory problem keeps the output it had produced so far. Its result starts with this line and then shows that partial output:
Your command timed out after <n> seconds or experienced an OOM error.
A settled command keeps its output, and its result usually ends with a short note saying how it went. The shell's own prompt and the echo of the command are not part of the result.
| Note | What it means |
|---|---|
[Command finished with exit code N] | The command finished and reported this exit code. Zero means it succeeded; any other code means it reported a failure. In the PowerShell shell this note reads [exit code: N], and only when the code is not zero. |
[shell exited: code N] | The shell itself ended with this code, for example when a command ran exit. The result also carries the reset note, and the next command starts a new shell. |
[shell killed by signal: SIG] | The shell was ended by a signal. |
[shell exited] | The shell ended without reporting a code or a signal. |
[Command timed out or OOM] | The bash shell marks a command that reached its time limit or ran out of memory. The shell resets. |
The shell keeps a limited amount of a command's output (16,000 characters by default). When a command produces more:
<response clipped> with a note that only part was shown and how to search within it for the rest.Treat what you see as partial; ask Oda to write the output to a file if you need all of it.
Rarely, Oda reports that a command did not run:
bash requires an owning agent session (the PowerShell shell words it for pwsh): the command was not attached to an agent, so it did not run. Start the task from a chat and try again; if it repeats, send the message to your administrator.Yes. The shell stays alive, so a folder change, an exported variable and running work from one command are still in effect for the next. They are cleared only when the shell resets.
When a task needs several commands that build on one another, in the same folder or with the same variables, Oda keeps one shell so each command starts where the last one left off. A command that stands alone runs in a fresh process; see Shell commands.
Some outcomes close the shell: a command ended it (for example with exit), it reached its time limit, it ran out of memory, or you stopped it. Oda does not repair a closed shell; the next command starts from the workspace with a fresh current directory and environment.
[Command finished with exit code N] mean?The command finished and reported this exit code. Zero means it succeeded; any other code means it reported a failure. In the PowerShell shell the same note reads [exit code: N] and appears only when the code is not zero.
[shell exited: code N] mean?The shell itself ended with this code, usually because a command ran exit. The result also carries the reset note, and the next command starts a new shell.
It did not finish within its time limit (five minutes by default), or it ran out of memory. Oda stops it, keeps the output it had produced so far, and closes the shell; the next command starts fresh from the workspace.
No. Nothing can hand your typing to a waiting program, so such a command blocks until its time limit stops it, and the shell resets. For an interactive shell you drive yourself, see The terminal.
The terminal keeps a limited amount of output. If it had to drop the beginning, the result says the shown text is the earliest retained part. Treat what you see as partial.
The shell keeps a limited window of output (16,000 characters by default) and marks the rest as clipped. If you need the missing part, ask Oda to write the output to a file.
No. Each of Oda's agents gets its own shell, and nothing is shared between them: another chat starts its own shell, fresh from the workspace, and a helper Oda starts for part of the task gets its own too.
No. The terminal in the side panel is yours: you open it and you drive it, and Oda does not type in it or read its output. The shells on this page are Oda's own, kept for the commands it runs while working. See The terminal.
bash requires an owning agent session mean?The command was not attached to an agent, so it did not run. Start the task from a chat and try again; if it repeats, send the message to your administrator.