diff --git a/scripts/lib/docker-e2e-scenarios.mjs b/scripts/lib/docker-e2e-scenarios.mjs index 2489d3b97a9d..c2ce5f216dde 100644 --- a/scripts/lib/docker-e2e-scenarios.mjs +++ b/scripts/lib/docker-e2e-scenarios.mjs @@ -298,7 +298,7 @@ export const mainLanes = [ "live-cli-backend-gemini", liveDockerScriptCommand( "test-live-cli-backend-docker.sh", - "OPENCLAW_LIVE_CLI_BACKEND_MODEL=google-gemini-cli/gemini-3-flash-preview", + "OPENCLAW_LIVE_CLI_BACKEND_ADVISORY=1 OPENCLAW_LIVE_CLI_BACKEND_ALLOW_PROVIDER_SKIP=1 OPENCLAW_LIVE_CLI_BACKEND_MODEL=google-gemini-cli/gemini-3-flash-preview", ), { cacheKey: "cli-backend-gemini", diff --git a/scripts/test-live-cli-backend-docker.sh b/scripts/test-live-cli-backend-docker.sh index 50fff78f2a7e..8f1a4a606709 100644 --- a/scripts/test-live-cli-backend-docker.sh +++ b/scripts/test-live-cli-backend-docker.sh @@ -487,6 +487,8 @@ DOCKER_RUN_ARGS+=(--rm -t \ -e OPENCLAW_LIVE_TEST=1 \ -e OPENCLAW_LIVE_CLI_BACKEND=1 \ -e OPENCLAW_LIVE_CLI_BACKEND_DEBUG="${OPENCLAW_LIVE_CLI_BACKEND_DEBUG:-}" \ + -e OPENCLAW_LIVE_CLI_BACKEND_ADVISORY="${OPENCLAW_LIVE_CLI_BACKEND_ADVISORY:-}" \ + -e OPENCLAW_LIVE_CLI_BACKEND_ALLOW_PROVIDER_SKIP="${OPENCLAW_LIVE_CLI_BACKEND_ALLOW_PROVIDER_SKIP:-}" \ -e OPENCLAW_CLI_BACKEND_LOG_OUTPUT="${OPENCLAW_CLI_BACKEND_LOG_OUTPUT:-}" \ -e OPENCLAW_TEST_CONSOLE="${OPENCLAW_TEST_CONSOLE:-}" \ -e OPENCLAW_LIVE_CLI_BACKEND_MODEL="$CLI_MODEL" \ diff --git a/test/scripts/docker-e2e-plan.test.ts b/test/scripts/docker-e2e-plan.test.ts index 481103bed1cb..a9adeb52fa9e 100644 --- a/test/scripts/docker-e2e-plan.test.ts +++ b/test/scripts/docker-e2e-plan.test.ts @@ -713,6 +713,17 @@ describe("scripts/lib/docker-e2e-plan", () => { } }); + it("marks the aggregate Gemini CLI backend lane advisory for auth drift", () => { + const plan = planFor({ selectedLaneNames: ["live-cli-backend-gemini"] }); + const lane = requireFirstLane(plan); + + expect(lane.command).toContain("OPENCLAW_LIVE_CLI_BACKEND_ADVISORY=1"); + expect(lane.command).toContain("OPENCLAW_LIVE_CLI_BACKEND_ALLOW_PROVIDER_SKIP=1"); + expect(lane.command).toContain( + "OPENCLAW_LIVE_CLI_BACKEND_MODEL=google-gemini-cli/gemini-3-flash-preview", + ); + }); + it("plans Codex harness Docker-all lanes for API-key Testbox auth", () => { for (const name of ["live-codex-harness", "live-codex-bind"]) { const plan = planFor({ selectedLaneNames: [name] }); diff --git a/test/scripts/test-live-cli-backend-docker.test.ts b/test/scripts/test-live-cli-backend-docker.test.ts index a032e49d010f..5fcaaa596db3 100644 --- a/test/scripts/test-live-cli-backend-docker.test.ts +++ b/test/scripts/test-live-cli-backend-docker.test.ts @@ -32,6 +32,13 @@ describe("scripts/test-live-cli-backend-docker.sh", () => { expect(forwardedVars).toContain("OPENCLAW_TEST_CONSOLE"); }); + it("forwards advisory provider-skip controls into the Docker container", () => { + const forwardedVars = readForwardedDockerEnvVars(); + + expect(forwardedVars).toContain("OPENCLAW_LIVE_CLI_BACKEND_ADVISORY"); + expect(forwardedVars).toContain("OPENCLAW_LIVE_CLI_BACKEND_ALLOW_PROVIDER_SKIP"); + }); + it("rejects invalid setup timeout values before metadata or Docker setup", () => { const result = spawnSync("bash", [SCRIPT_PATH], { encoding: "utf8",