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)
Installation
Details
Usage
After installing, this skill will be available to your AI coding assistant.
Verify installation:
skills listSkill Instructions
name: session-execution description: 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)
Session Execution
Read docs/SESSION_EXECUTION.md before working in this area. It explains the architecture for reliable command execution with stdout/stderr separation.
Key Concepts
Two execution modes:
- Foreground (exec): Runs in main shell, state persists. Uses temp files for output capture.
- Background (execStream/startProcess): Runs in subshell via FIFOs. Labelers prefix output in background.
Binary prefix contract:
- Stdout:
\x01\x01\x01prefix per line - Stderr:
\x02\x02\x02prefix per line - Log parser reconstructs streams from these prefixes
Completion signaling:
- Exit code written to
<id>.exitfile via atomictmp+mv - Hybrid fs.watch + polling detects completion (robust on tmpfs/overlayfs)
- Background mode uses
labelers.donemarker to ensure output is fully captured
When Developing
- Understand why foreground uses temp files (bash waits for redirects to complete)
- Understand why background uses FIFOs (concurrent streaming without blocking shell)
- Test silent commands (cd, variable assignment) - these historically caused hangs
- Test large output - buffering issues can cause incomplete logs
When Reviewing
Correctness checks:
- Verify exit code handling is atomic (write to .tmp then mv)
- Check FIFO cleanup in error paths
- Ensure labelers.done is awaited before reading final output (background mode)
Race condition analysis:
Session execution has a mutex that serializes command execution per session. Before flagging race conditions:
- Check if operations happen within the same session (mutex protects)
- Check if operations are per-session vs cross-session (cross-session races are real)
- Refer to
docs/CONCURRENCY.mdfor the full concurrency model
Common false positives:
- "Concurrent reads/writes to session state" - mutex serializes these
- "FIFO operations might race" - labelers are per-command, not shared
Actual concerns to watch for:
- Cross-session operations without proper isolation
- Cleanup operations that might affect still-running commands
- File operations outside the mutex-protected section
Key Files
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
More by cloudflare
View allUse when creating git commits to ensure commit messages follow project standards. Applies the 7 rules for great commit messages with focus on conciseness and imperative mood.
Use when writing or running tests for this project. Covers unit vs E2E test decisions, test file locations, mock patterns, and project-specific testing conventions. (project)
Builds AI agents on Cloudflare using the Agents SDK with state management,real-time WebSockets, scheduled tasks, tool integration, and chat capabilities.Generates production-ready agent code deployed to Workers.Use when: user wants to "build an agent", "AI agent", "chat agent", "statefulagent", mentions "Agents SDK", needs "real-time AI", "WebSocket AI", or asksabout agent "state management", "scheduled tasks", or "tool calling".
Builds remote MCP (Model Context Protocol) servers on Cloudflare Workerswith tools, OAuth authentication, and production deployment. Generatesserver code, configures auth providers, and deploys to Workers.Use when: user wants to "build MCP server", "create MCP tools", "remoteMCP", "deploy MCP", add "OAuth to MCP", or mentions Model Context Protocolon Cloudflare. Also triggers on "MCP authentication" or "MCP deployment".