






















@@ -13,14 +13,10 @@ For quick start, QA runners, unit/integration suites, and Docker flows, see
1313suites: model matrix, CLI backends, ACP, and media-provider live tests, plus
1414credential handling.
151516-## Live: local profile smoke commands
16+## Live: local smoke commands
171718-Source `~/.profile` before ad hoc live checks so provider keys and local tool
19-paths match your shell:
20-21-```bash
22-source ~/.profile
23-```
18+Export the needed provider key in the process environment before ad hoc live
19+checks.
24202521Safe media smoke:
2622@@ -275,9 +271,9 @@ Docker notes:
275271- The Docker runner lives at `scripts/test-live-acp-bind-docker.sh`.
276272- By default, it runs the ACP bind smoke against the aggregate live CLI agents in sequence: `claude`, `codex`, then `gemini`.
277273- Use `OPENCLAW_LIVE_ACP_BIND_AGENTS=claude`, `OPENCLAW_LIVE_ACP_BIND_AGENTS=codex`, `OPENCLAW_LIVE_ACP_BIND_AGENTS=droid`, `OPENCLAW_LIVE_ACP_BIND_AGENTS=gemini`, or `OPENCLAW_LIVE_ACP_BIND_AGENTS=opencode` to narrow the matrix.
278-- It sources `~/.profile`, stages the matching CLI auth material into the container, then installs the requested live CLI (`@anthropic-ai/claude-code`, `@openai/codex`, Factory Droid via `https://app.factory.ai/cli`, `@google/gemini-cli`, or `opencode-ai`) if missing. The ACP backend itself is the embedded `acpx/runtime` package from the official `acpx` plugin.
274+- It stages the matching CLI auth material into the container, then installs the requested live CLI (`@anthropic-ai/claude-code`, `@openai/codex`, Factory Droid via `https://app.factory.ai/cli`, `@google/gemini-cli`, or `opencode-ai`) if missing. The ACP backend itself is the embedded `acpx/runtime` package from the official `acpx` plugin.
279275- The Droid Docker variant stages `~/.factory` for settings, forwards `FACTORY_API_KEY`, and requires that API key because local Factory OAuth/keyring auth is not portable into the container. It uses ACPX's built-in `droid exec --output-format acp` registry entry.
280-- The OpenCode Docker variant is a strict single-agent regression lane. It writes a temporary `OPENCODE_CONFIG_CONTENT` default model from `OPENCLAW_LIVE_ACP_BIND_OPENCODE_MODEL` (default `opencode/kimi-k2.6`) after sourcing `~/.profile`, and `pnpm test:docker:live-acp-bind:opencode` requires a bound assistant transcript instead of accepting the generic post-bind skip.
276+- The OpenCode Docker variant is a strict single-agent regression lane. It writes a temporary `OPENCODE_CONFIG_CONTENT` default model from `OPENCLAW_LIVE_ACP_BIND_OPENCODE_MODEL` (default `opencode/kimi-k2.6`), and `pnpm test:docker:live-acp-bind:opencode` requires a bound assistant transcript instead of accepting the generic post-bind skip.
281277- Direct `acpx` CLI calls are only a manual/workaround path for comparing behavior outside the Gateway. The Docker ACP bind smoke exercises OpenClaw's embedded `acpx` runtime backend.
282278283279## Live: Codex app-server harness smoke
@@ -309,7 +305,6 @@ Docker notes:
309305Local recipe:
310306311307```bash
312-source ~/.profile
313308OPENCLAW_LIVE_CODEX_HARNESS=1 \
314309 OPENCLAW_LIVE_CODEX_HARNESS_IMAGE_PROBE=1 \
315310 OPENCLAW_LIVE_CODEX_HARNESS_MCP_PROBE=1 \
@@ -321,15 +316,14 @@ OPENCLAW_LIVE_CODEX_HARNESS=1 \
321316Docker recipe:
322317323318```bash
324-source ~/.profile
325319pnpm test:docker:live-codex-harness
326320```
327321328322Docker notes:
329323330324- The Docker runner lives at `scripts/test-live-codex-harness-docker.sh`.
331-- It sources the mounted `~/.profile`, passes `OPENAI_API_KEY`, copies Codex CLI
332-auth files when present, installs `@openai/codex` into a writable mounted npm
325+- It passes `OPENAI_API_KEY`, copies Codex CLI auth files when present, installs
326+`@openai/codex` into a writable mounted npm
333327 prefix, stages the source tree, then runs only the Codex-harness live test.
334328- Docker enables the image, MCP/tool, and Guardian probes by default. Set
335329`OPENCLAW_LIVE_CODEX_HARNESS_IMAGE_PROBE=0` or
@@ -357,7 +351,6 @@ Narrow, explicit allowlists are fastest and least flaky:
357351- Antigravity (OAuth): `OPENCLAW_LIVE_GATEWAY_MODELS="google-antigravity/claude-opus-4-6-thinking,google-antigravity/gemini-3-pro-high" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts`
358352359353- Google adaptive thinking smoke:
360-- If local keys live in shell profile: `source ~/.profile`
361354- Gemini 3 dynamic default: `pnpm openclaw qa manual --provider-mode live-frontier --model google/gemini-3.1-pro-preview --alt-model google/gemini-3.1-pro-preview --message '/think adaptive Reply exactly: GEMINI_ADAPTIVE_OK' --timeout-ms 180000`
362355- Gemini 2.5 dynamic budget: `pnpm openclaw qa manual --provider-mode live-frontier --model google/gemini-2.5-flash --alt-model google/gemini-2.5-flash --message '/think adaptive Reply exactly: GEMINI25_ADAPTIVE_OK' --timeout-ms 180000`
363356@@ -440,7 +433,8 @@ Live tests discover credentials the same way the CLI does. Practical implication
440433- Legacy state dir: `~/.openclaw/credentials/` (copied into the staged live home when present, but not the main profile-key store)
441434- Live local runs copy the active config, per-agent `auth-profiles.json` files, legacy `credentials/`, and supported external CLI auth dirs into a temp test home by default; staged live homes skip `workspace/` and `sandboxes/`, and `agents.*.workspace` / `agentDir` path overrides are stripped so probes stay off your real host workspace.
442435443-If you want to rely on env keys (e.g. exported in your `~/.profile`), run local tests after `source ~/.profile`, or use the Docker runners below (they can mount `~/.profile` into the container).
436+If you want to rely on env keys, export them before local tests or use the
437+Docker runners below with an explicit `OPENCLAW_PROFILE_FILE`.
444438445439## Deepgram live (audio transcription)
446440@@ -469,7 +463,7 @@ If you want to rely on env keys (e.g. exported in your `~/.profile`), run local
469463- Harness: `pnpm test:live:media image`
470464- Scope:
471465- Enumerates every registered image-generation provider plugin
472-- Loads missing provider env vars from your login shell (`~/.profile`) before probing
466+- Uses already-exported provider env vars before probing
473467- Uses live/env API keys ahead of stored auth profiles by default, so stale test keys in `auth-profiles.json` do not mask real shell credentials
474468- Skips providers with no usable auth/profile/model
475469- Runs each configured provider through the shared image-generation runtime:
@@ -517,7 +511,7 @@ request. Plugin dependencies are expected to be present before runtime load.
517511- Scope:
518512- Exercises the shared bundled music-generation provider path
519513- Currently covers Google and MiniMax
520-- Loads provider env vars from your login shell (`~/.profile`) before probing
514+- Uses already-exported provider env vars before probing
521515- Uses live/env API keys ahead of stored auth profiles by default, so stale test keys in `auth-profiles.json` do not mask real shell credentials
522516- Skips providers with no usable auth/profile/model
523517- Runs both declared runtime modes when available:
@@ -542,7 +536,7 @@ request. Plugin dependencies are expected to be present before runtime load.
542536- Exercises the shared bundled video-generation provider path
543537- Defaults to the release-safe smoke path: non-FAL providers, one text-to-video request per provider, one-second lobster prompt, and a per-provider operation cap from `OPENCLAW_LIVE_VIDEO_GENERATION_TIMEOUT_MS` (`180000` by default)
544538- Skips FAL by default because provider-side queue latency can dominate release time; pass `--video-providers fal` or `OPENCLAW_LIVE_VIDEO_GENERATION_PROVIDERS="fal"` to run it explicitly
545-- Loads provider env vars from your login shell (`~/.profile`) before probing
539+- Uses already-exported provider env vars before probing
546540- Uses live/env API keys ahead of stored auth profiles by default, so stale test keys in `auth-profiles.json` do not mask real shell credentials
547541- Skips providers with no usable auth/profile/model
548542- Runs only `generate` by default
@@ -573,7 +567,7 @@ request. Plugin dependencies are expected to be present before runtime load.
573567- Command: `pnpm test:live:media`
574568- Purpose:
575569- Runs the shared image, music, and video live suites through one repo-native entrypoint
576-- Auto-loads missing provider env vars from `~/.profile`
570+- Uses already-exported provider env vars
577571- Auto-narrows each suite to providers that currently have usable auth by default
578572- Reuses `scripts/test-live.mjs`, so heartbeat and quiet-mode behavior stay consistent
579573- Examples:
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。