---
description: Server testing must use isolated bind address and non-default ports
alwaysApply: true
---

# Server testing — isolated bind only

## Never use the user's ports

Do NOT start servers on:

- Ports from the project's `.env` (e.g. `PORT=4447`)
- Well-known or project defaults (`4443`, `8080`, `3000`, etc.)
- `0.0.0.0` when the user's server may already be running there

Do NOT leave test servers running in the background (`&`, `nohup`, etc.). Stop them before ending the turn.

## OK for agent runtime tests

When a live test is truly needed:

- Bind to **`127.0.0.2`** (or another non-default loopback alias), not `127.0.0.1` / `0.0.0.0`
- Use a **high ephemeral port** (e.g. `19443`, `38447`) — never the project's configured port
- Override via env, e.g. `BIND_ADDRESS=127.0.0.2 PORT=19443 ./build/jtlsrv`
- Kill the test process when done

Prefer compile-only verification (`make`) when that is enough.

If the user is already running the real server, ask them to test and share logs rather than starting another listener.
