# IPython Shell Execution This project exposes persistent Python environments through web and model-facing adapters. The glossary keeps the long-lived execution environment distinct from each individual code execution. ## Execution **Shell**: A persistent, isolated Python environment that retains its namespace and execution state across calls. _Avoid_: Session, request, call **Call**: One request to execute code in one shell. A call has its own identity and lifecycle, can emit ordered events, can pause for input, and eventually produces a result or error. _Avoid_: Shell, session, task **Call ID**: The application-facing identity of one call, used to associate its events, input requests, and final result. Any execution ID used internally by a transport is not part of this identity. _Avoid_: Execution count, kernel ID **Call Event**: An ordered observable part of a call, such as standard output, standard error, display data, an input request, or an execution error. _Avoid_: Log line, transport message **App**: The owner of the available shells and calls. It resolves shell selectors such as `new`, `last`, or a named shell and routes each call to its target shell. _Avoid_: Server, session **Shell Name**: A user-facing selector for a shell. `new` requests a fresh shell, `last` selects the most recently selected shell, and any other name identifies a reusable named shell. _Avoid_: Shell ID, kernel name