While DataMind Oda works on a task, it can open a terminal session: an interactive shell that Oda types into and reads as it works. A session is one of Oda's own shells, not the terminal in your side panel, which you type in yourself. This page covers what Oda can do in a session, what busy, idle and unknown mean, how signals reach the work running in a session, and how a session closes.
The commands Oda runs on your computer are a separate surface; Command environment and containment covers them. For the shell Oda keeps for those commands, see Persistent PowerShell shell.
started terminal session <id> (<name>) [type: <type>], with the session's id, its name and its type.TERM setting.terminal process has exited.Oda watches whether a session is busy or idle, so it can tell quiet from working. The state is idle, busy or unknown, and each report carries a revision that moves on when what Oda sees changes.
Oda can signal the work running in a session. The signal goes to the session's foreground process group: normally the command the shell is running right now.
closed terminal session <id>.terminal session <id> was already closing and changes nothing.Busy means Oda can see work running in the session. Idle means Oda can see the session sitting quietly with nothing else running in it, so the work it was doing appears to be finished. Unknown means Oda cannot observe the session clearly enough to say, and an unclear observation is never called idle.
Oda reports idle only when it can observe the session clearly, and an incomplete observation is never passed off as idle. A shell other than the plain interactive bash or zsh sessions Oda can watch, a custom signal trap or prompt handler, and Windows all answer unknown.
It means Oda can see nothing running in the session at that moment, so the work appears to be done. The reading is only as fresh as the moment it was taken: once Oda types into the session, the earlier answer no longer stands and the next report is taken fresh.
On Windows, only interrupt, terminate and force reach a session, and a request for suspend or hangup is refused. An interrupt arrives the way a Ctrl-C is typed: as keyboard input to the program running in the session.
A signal goes to the session's foreground process group, which is normally the command the shell is running right now. The session stays open after the signal, ready for what comes next.
Once the shell has exited, the session is over, so typing into it or resizing it is refused, and the result says terminal process has exited. The attempt is refused rather than silently dropped.
Closing stops the session and everything running in it. Oda stops what the session is running first, then the shell itself: it asks the processes to stop, and forces anything still running after a short grace period.
Closing is safe to repeat. Once a session is already on its way out, a second close reads terminal session <id> was already closing and changes nothing; the close already in flight finishes on its own.