mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-24 23:51:48 +00:00
fix(anthropic): strip host otel env from claude cli
This commit is contained in:
@@ -149,5 +149,8 @@ describe("normalizeClaudeBackendConfig", () => {
|
||||
expect(backend.config.clearEnv).toContain("CLAUDE_CODE_PLUGIN_SEED_DIR");
|
||||
expect(backend.config.clearEnv).toContain("CLAUDE_CODE_REMOTE");
|
||||
expect(backend.config.clearEnv).toContain("CLAUDE_CODE_USE_COWORK_PLUGINS");
|
||||
expect(backend.config.clearEnv).toContain("OTEL_METRICS_EXPORTER");
|
||||
expect(backend.config.clearEnv).toContain("OTEL_EXPORTER_OTLP_PROTOCOL");
|
||||
expect(backend.config.clearEnv).toContain("OTEL_SDK_DISABLED");
|
||||
});
|
||||
});
|
||||
|
||||
@@ -46,7 +46,7 @@ export const CLAUDE_CLI_HOST_MANAGED_ENV = {
|
||||
// Claude Code honors provider-routing, auth, and config-root env before
|
||||
// consulting its local login state, so inherited shell overrides must not
|
||||
// steer OpenClaw-managed Claude CLI runs toward a different provider,
|
||||
// endpoint, token source, or plugin/config tree.
|
||||
// endpoint, token source, plugin/config tree, or telemetry bootstrap mode.
|
||||
export const CLAUDE_CLI_CLEAR_ENV = [
|
||||
"ANTHROPIC_API_KEY",
|
||||
"ANTHROPIC_API_KEY_OLD",
|
||||
@@ -67,6 +67,22 @@ export const CLAUDE_CLI_CLEAR_ENV = [
|
||||
"CLAUDE_CODE_USE_BEDROCK",
|
||||
"CLAUDE_CODE_USE_FOUNDRY",
|
||||
"CLAUDE_CODE_USE_VERTEX",
|
||||
"OTEL_EXPORTER_OTLP_ENDPOINT",
|
||||
"OTEL_EXPORTER_OTLP_HEADERS",
|
||||
"OTEL_EXPORTER_OTLP_LOGS_ENDPOINT",
|
||||
"OTEL_EXPORTER_OTLP_LOGS_HEADERS",
|
||||
"OTEL_EXPORTER_OTLP_LOGS_PROTOCOL",
|
||||
"OTEL_EXPORTER_OTLP_METRICS_ENDPOINT",
|
||||
"OTEL_EXPORTER_OTLP_METRICS_HEADERS",
|
||||
"OTEL_EXPORTER_OTLP_METRICS_PROTOCOL",
|
||||
"OTEL_EXPORTER_OTLP_PROTOCOL",
|
||||
"OTEL_EXPORTER_OTLP_TRACES_ENDPOINT",
|
||||
"OTEL_EXPORTER_OTLP_TRACES_HEADERS",
|
||||
"OTEL_EXPORTER_OTLP_TRACES_PROTOCOL",
|
||||
"OTEL_LOGS_EXPORTER",
|
||||
"OTEL_METRICS_EXPORTER",
|
||||
"OTEL_SDK_DISABLED",
|
||||
"OTEL_TRACES_EXPORTER",
|
||||
] as const;
|
||||
|
||||
const CLAUDE_LEGACY_SKIP_PERMISSIONS_ARG = "--dangerously-skip-permissions";
|
||||
|
||||
@@ -338,7 +338,7 @@ describe("runCliAgent spawn path", () => {
|
||||
expect(input.env?.SAFE_OVERRIDE).toBe("from-override");
|
||||
});
|
||||
|
||||
it("clears claude-cli provider-routing and auth env while keeping host-managed hardening", async () => {
|
||||
it("clears claude-cli provider-routing, auth, and telemetry env while keeping host-managed hardening", async () => {
|
||||
const runCliAgent = await setupCliRunnerTestModule();
|
||||
vi.stubEnv("ANTHROPIC_BASE_URL", "https://proxy.example.com/v1");
|
||||
vi.stubEnv("CLAUDE_CODE_USE_BEDROCK", "1");
|
||||
@@ -346,6 +346,11 @@ describe("runCliAgent spawn path", () => {
|
||||
vi.stubEnv("CLAUDE_CODE_OAUTH_TOKEN", "env-oauth-token");
|
||||
vi.stubEnv("CLAUDE_CODE_REMOTE", "1");
|
||||
vi.stubEnv("ANTHROPIC_UNIX_SOCKET", "/tmp/anthropic.sock");
|
||||
vi.stubEnv("OTEL_LOGS_EXPORTER", "none");
|
||||
vi.stubEnv("OTEL_METRICS_EXPORTER", "none");
|
||||
vi.stubEnv("OTEL_TRACES_EXPORTER", "none");
|
||||
vi.stubEnv("OTEL_EXPORTER_OTLP_PROTOCOL", "none");
|
||||
vi.stubEnv("OTEL_SDK_DISABLED", "true");
|
||||
mockSuccessfulCliRun();
|
||||
|
||||
await runCliAgent({
|
||||
@@ -386,6 +391,11 @@ describe("runCliAgent spawn path", () => {
|
||||
expect(input.env?.CLAUDE_CODE_OAUTH_TOKEN).toBeUndefined();
|
||||
expect(input.env?.CLAUDE_CODE_REMOTE).toBeUndefined();
|
||||
expect(input.env?.ANTHROPIC_UNIX_SOCKET).toBeUndefined();
|
||||
expect(input.env?.OTEL_LOGS_EXPORTER).toBeUndefined();
|
||||
expect(input.env?.OTEL_METRICS_EXPORTER).toBeUndefined();
|
||||
expect(input.env?.OTEL_TRACES_EXPORTER).toBeUndefined();
|
||||
expect(input.env?.OTEL_EXPORTER_OTLP_PROTOCOL).toBeUndefined();
|
||||
expect(input.env?.OTEL_SDK_DISABLED).toBeUndefined();
|
||||
});
|
||||
|
||||
it("prepends bootstrap warnings to the CLI prompt body", async () => {
|
||||
|
||||
Reference in New Issue
Block a user