acp-runtime
AgentThe ACP runtime is the domain service that serves the ACP API contract. It owns the host-scoped dependencies needed to run…
- `packages/core/src/services/pty/` — terminal env construction, shell resolution, spawning, and session registry - `packages/core/src/runtimes/terminals/` — interactive terminal lifecycle and Wire component - `packages/core/src/runtimes/scripts/` — lifecycle script execution
the host and consumes them before logging output. Keep replies aligned with the renderer's actual capabilities; never filter user input or invent support for protocols such as XTVERSION. Direct PTYs retain renderer negotiation.
Do not mute all snapshot replies: initial snapshots can contain outstanding queries from a process started before subscription. Other queries keep their existing renderer behavior. Let xterm own write buffering and scheduling.
an interrupted escape sequence or string; test display and replies against xterm
host process captures it, spawning runtimes receive a parent-owned source and resolve that source exactly once per spawn, never as an ambient fallback or immutable worker config
environment (including absent and empty variables). Never rely on the shared server's inherited task environment or change its global environment to launch a task. Preserve tmux's terminal metadata.
The tmux launcher carries them in its own environment and a private FIFO, so spawn with the `env` that `resolveLocalPtySpawn` returns. Do not use `new-session -e` or `set-environment` for task values: their arguments are visible too, and `-e` needs tmux 3.2 and fails beyond tmux's command size limit.
the moment the request arrives, queued or not: hold it for the session that spawns with it, release it once nothing holds it and no start carrying it is pending, and release it when that session's process ends or the session is evicted (`SessionGitCredentialChannels`); a tmux client's exit does not end the tmux session, so a tmux-backed session keeps its channel until it is killed or evicted; the desktop server reuses a live session's channel and never evicts one to make room
so proxies and the user's curlrc cannot reroute them and the nonce never enters argv; pass `windows` when the command runs under Git for Windows' sh, whose native curl cannot read the POSIX form's `/dev/fd/3` config
Emdash is the Open-Source Agentic Development Environment (🧡 YC W26). Run multiple coding agents in parallel. Use any provider.
The ACP runtime is the domain service that serves the ACP API contract. It owns the host-scoped dependencies needed to run…
This page defines the target organization of `packages/core/src/`. Core is organized by module type so that shared domain APIs…
Git is split into a transport contract and a host-scoped runtime. Renderer, desktop, and workspace-server code share the Wire…
The main process is organized into domain modules under `src/main/core/`. Each domain typically has a `controller.ts` (RPC…
`@emdash/core/primitives/path/api` is the source of truth for portable file identity and lexical path operations. The detailed…
Validates project structure against co-location and architecture patterns defined in AGENTS.md
Deprecated placeholder. Do not use; follow root AGENTS.md and package instructions instead.
Use this agent when you need to create or update technical documentation that helps developers understand the deep patterns,…
Orchestration patterns learned from experience. Review at startup and before heartbeat responses.