Use when working on or reviewing session execution, command handling, shell state, FIFO-based streaming, or stdout/stderr separation. Relevant for session.ts, command handlers, exec/execStream, or anything involving shell process management. (project)
Read docs/SESSION_EXECUTION.md before working in this area. It explains the architecture for reliable command execution with stdout/stderr separation.
Two execution modes:
Binary prefix contract:
\x01\x01\x01 prefix per line\x02\x02\x02 prefix per lineCompletion signaling:
<id>.exit file via atomic tmp + mvlabelers.done marker to ensure output is fully capturedCorrectness checks:
Race condition analysis:
Session execution has a mutex that serializes command execution per session. Before flagging race conditions:
docs/CONCURRENCY.md for the full concurrency modelCommon false positives:
Actual concerns to watch for:
packages/sandbox-container/src/session.ts - Session class with exec/execStreampackages/sandbox-container/src/managers/SessionManager.ts - Mutex and lifecyclepackages/sandbox/src/clients/CommandClient.ts - SDK interface to session commands