Apps & urls. Git worktrees separate files. Tunnels give those worktrees separate running apps, so the checkout agent cannot take over the catalog agent’s port.
Like separate paths through a nest: each worker reaches its own app.

ready means you can use it
Section titled “ready means you can use it”In the shop, each worker runs a Vite storefront and a Node API. antil picks their ports, starts the API first, and waits for its /health check. Then it starts the storefront. An app gets a live address only after antil verifies its process owns the port and its readiness check passes.
This catches an easy mistake: a server that ignores its assigned port must not borrow a successful health response from somebody else’s server.
an address belongs to a worker
Section titled “an address belongs to a worker”Each app has a direct loopback address and a named local HTTP URL. Your browser or agent reads it from status --json. An ended or unready worker does not keep serving through its named URL. These addresses work on this machine; HTTPS over your private network is coming.
Tunnels use chambers for data and will give seals the running environment behind a test. The foundation keeps the same state available to a replacement agent.