Per-Lane Environment
Each lane runs in its own isolated environment, preventing port conflicts and environment variable leakage between parallel workstreams.Port Allocation
ADE assigns each lane a unique port lease from a configured range (default: 3001–3099). Lane A might get port 3001, Lane B port 3002, and so on. The port is available as the$ADE_PORT environment variable inside the lane’s process environment, and is also exposed as a clickable preview URL in the lane detail header.
When a lane is deleted or archived, its port lease is released back to the pool.
Environment Variable Overlays
Lanes support per-lane environment variable overlays. These are key-value pairs applied on top of the project-level environment when processes run in that lane. Common uses:- Setting
DATABASE_URLto a lane-specific test database - Pointing
API_BASE_URLto a lane-specific mock server - Enabling feature flags only for this lane’s work
Startup Commands
Each lane can have a startup command (e.g.,npm run dev, python manage.py runserver) that ADE runs automatically when the lane initializes. This is configured via a Lane Profile in .ade/ade.yaml.
Preview URLs
When a startup command is configured and the lane’s process is running, ADE generates a preview URL (http://<lane-name>.localhost:<port>) that you can open directly from the lane detail header. The Lane Proxy routes requests through ADE’s reverse proxy to the correct lane’s port.
Screenshot: Lane detail header showing a preview URL badge (e.g., “http://auth-refactor.localhost:3001”) next to the branch name, with a green “Running” indicator and a clickable external link icon.
Lane Runtime Isolation
ADE provides full runtime isolation for production-grade parallel development:Lane Environment Init with Overlay Policies
Lane Environment Init with Overlay Policies
Lane environments are initialized from a base environment with an explicit overlay policy. Policies control which project-level variables are inherited, which are overridden, and which are blocked entirely. This prevents accidental access to production secrets in development lanes.
Per-Lane Hostname Isolation
Per-Lane Hostname Isolation
Each lane gets a dedicated
.localhost subdomain routed through ADE’s reverse proxy. This enables cookie isolation, OAuth redirect handling, and realistic preview URL testing without port juggling.Auth Redirect Handling
Auth Redirect Handling
OAuth flows started in a lane are automatically routed back to the same lane’s callback URL. The
state parameter in OAuth flows carries the lane identifier, and ADE’s proxy resolves it to the correct lane’s callback handler. This means you can run multiple OAuth-authenticated services in parallel lanes without conflicts.Port Allocation and Lease Management
Port Allocation and Lease Management
Ports are leased atomically from a central allocator to prevent races when multiple lanes are created simultaneously. Leases have a TTL and are automatically reclaimed if a lane is deleted or ADE is restarted with orphaned leases.
Runtime Diagnostics
Runtime Diagnostics
Each lane’s runtime environment exposes a health panel in the right inspector with traffic-light indicators for: process running, port bound, environment loaded, and preview URL reachable. A one-click Fallback Mode restarts the lane in a minimal environment for debugging startup failures.