acp-runtime
AgentThe ACP runtime is the domain service that serves the ACP API contract. It owns the host-scoped dependencies needed to run…
The main process is organized into domain modules under `src/main/core/`. Each domain typically has a `controller.ts` (RPC handlers) and service/implementation files.
The main process is organized into domain modules under `src/main/core/`. Each domain typically has a `controller.ts` (RPC handlers) and service/implementation files.
service
`src/core/manifests/shared/desktop-wire-contract.ts`.
shared desktop contract remains a hand-composed renderer-safe manifest of slice API contracts.
`getPathForFile`.
Open-in app detection (`src/main/core/app/installed-apps.ts`) checks exactly what launch uses, in the environment launch uses: LaunchServices for `open -a`/`open -b` targets, an in-process PATH lookup after the login-shell env capture for CLIs, and vswhere/Spotlight only for the apps that launch through them. `app-path-lookup.ts` owns the shared vswhere/Spotlight path resolution and 30-second timeout for both detection and launch; LaunchServices retains its 5-second timeout. Keep renderer request deadlines longer than the lookups they await. Keep every lookup noninteractive; never use AppleScript's `id of application`, which prompts, beeps, and blocks for a missing app. When adding an app, its `checkCommands`, `bundleIds`, and `appNames` must name exactly what its `openCommands` launch; `open-in-apps.test.ts` enforces this. Detection and launch log with the `[open-in]` prefix; complete scan results log at info level (`--debug-logs`).
The menu bar/system tray icon is controlled by the desktop app setting `interface.showTrayIcon` (Settings → Interface → Application icon, enabled by default). Create it only after settings load in the services boot phase; Wire settings updates and resets apply visibility immediately through `SettingsRuntimePort`. Hiding it leaves the app running; activation or launching the app again restores the main window.
Project attachment initialization has a 60-second total deadline, including at most one retry for a local Wire timeout. Remote connection recovery remains owned by the Host supervisor. Cancellation stops initialization at stage boundaries and releases partial repo-facts subscriptions and fetch services without tearing down task sessions. Failed initialization logs its stage and elapsed time; late completion must never publish or leave an unowned background fetch running.
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…
`@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.