Live tests vs your real gateway
Live suites and ad hoc smokes must never disturb a gateway that is already serving real traffic (yours or another operator’s):- Bring your own gateway: use the in-process gateway (Layer 2 on
Live model smoke) or start a
dev instance with an isolated state dir (
OPENCLAW_STATE_DIR=<scratch>) and a free port. Do not bind the default gateway port (18789) while a real gateway is running on it. - Do not
openclaw gateway stop/restart(orlaunchctl/systemctl/tmux equivalents) a service you did not start in this session — that is the operator’s live instance. Get explicit approval first. - Need realistic data? Copy the live state/DB into your dev state dir and test against the copy. In-place migrations of a live gateway’s state also require explicit approval.
Credentials (never commit)
Live tests discover credentials the same way the CLI does. Practical implications:- If the CLI works, live tests should find the same keys.
-
If a live test says “no creds”, debug the same way you’d debug
openclaw models list/ model selection. -
An OpenClaw live suite that cannot resolve its credentials must skip visibly in the reporter with Vitest test-context
skip(reason)or fail; it must never pass green without reaching the provider, because a green run that did not reach the provider is not live evidence. -
Per-agent auth profiles: SQLite credential rows in
~/.openclaw/agents/<agentId>/agent/openclaw-agent.sqlite(this is what “profile keys” means in the live tests) -
Config:
~/.openclaw/openclaw.json(orOPENCLAW_CONFIG_PATH) -
Legacy OAuth dir:
~/.openclaw/credentials/(copied into the staged live home when present, but not the main profile-key store) -
Local live runs copy the active config (with
agents.*.workspace/agentDiroverrides stripped) and stage each agent’s canonical SQLite auth credential/state rows through the auth-store reader/writer APIs, not by copying its database or the rest of its directory. Agent sessions,workspace/, andsandboxes/data are not staged. The runner also copies the legacycredentials/dir and supported external CLI auth files/dirs (.claude.json,.claude/.credentials.json,.claude/settings*.json,.claude/backups,.codex/auth.json,.codex/config.toml,.gemini,.minimax) into a temp test home.
OPENCLAW_PROFILE_FILE.
Where each section moved
Every section heading from the previous single-page version keeps its anchor here, so an existing link such as/help/testing-live#live-codex-app-server-harness-smoke still resolves. Each
entry points at the page that now holds the content.
- Live: local smoke commands
- Live: Android node capability sweep
- Live: model smoke (profile keys)
- Layer 1: Direct model completion (no gateway)
- Layer 2: Gateway + dev agent smoke
- Live: CLI backend smoke (Claude, Gemini, or other local CLIs)
- Live: APNs HTTP/2 proxy reachability
- Live: ACP bind smoke
- Live: Codex app-server harness smoke
- Live: OpenAI long context
- Long-context hard oracles
- Recommended live recipes
- Live: model matrix (what we cover)
- Aggregators / alternate gateways
- Deepgram live (audio transcription)
- BytePlus coding plan live
- ComfyUI workflow media live
- Image generation live
- Music generation live
- Video generation live
- Media live harness