diff --git a/src/services/error/providers/PostHogErrorProvider.ts b/src/services/error/providers/PostHogErrorProvider.ts index ebef3bf74b..ca9c3fe8f6 100644 --- a/src/services/error/providers/PostHogErrorProvider.ts +++ b/src/services/error/providers/PostHogErrorProvider.ts @@ -3,10 +3,11 @@ import { StateManager } from "@/core/storage/StateManager" import { HostProvider } from "@/hosts/host-provider" import { getDistinctId } from "@/services/logging/distinctId" import { PostHogClientProvider } from "@/services/telemetry/providers/posthog/PostHogClientProvider" +import { fetch } from "@/shared/net" import { Setting } from "@/shared/proto/index.host" import { Logger } from "@/shared/services/Logger" import * as pkg from "../../../../package.json" -import { PostHogClientValidConfig } from "../../../shared/services/config/posthog-config" +import type { PostHogClientValidConfig } from "../../../shared/services/config/posthog-config" import { getErrorLevelFromString } from ".." import { ClineError } from "../ClineError" import type { ErrorSettings, IErrorProvider } from "./IErrorProvider" @@ -24,9 +25,9 @@ export class PostHogErrorProvider implements IErrorProvider { private readonly isSharedClient = false constructor(clientConfig: PostHogClientValidConfig) { - // Use shared PostHog client if provided, otherwise create a new one this.client = new PostHog(clientConfig.errorTrackingApiKey, { host: clientConfig.host, + fetch: (url, options) => fetch(url, options), enableExceptionAutocapture: false, // NOTE: Re-enable it once the api key is set to env var before_send: (event) => PostHogClientProvider.eventFilter(event), }) diff --git a/src/services/feature-flags/providers/PostHogFeatureFlagsProvider.ts b/src/services/feature-flags/providers/PostHogFeatureFlagsProvider.ts index 54972f92e1..5c41a65c24 100644 --- a/src/services/feature-flags/providers/PostHogFeatureFlagsProvider.ts +++ b/src/services/feature-flags/providers/PostHogFeatureFlagsProvider.ts @@ -1,5 +1,6 @@ import { PostHog } from "posthog-node" import { getDistinctId } from "@/services/logging/distinctId" +import { fetch } from "@/shared/net" import { Logger } from "@/shared/services/Logger" import { posthogConfig } from "../../../shared/services/config/posthog-config" import type { FeatureFlagsAndPayloads, FeatureFlagsSettings, IFeatureFlagsProvider } from "./IFeatureFlagsProvider" @@ -26,6 +27,7 @@ export class PostHogFeatureFlagsProvider implements IFeatureFlagsProvider { } this.client = new PostHog(posthogConfig.apiKey, { host: posthogConfig.host, + fetch: (url, options) => fetch(url, options), }) } diff --git a/src/services/telemetry/providers/posthog/PostHogClientProvider.ts b/src/services/telemetry/providers/posthog/PostHogClientProvider.ts index 9897ebe046..ba3f6c31e8 100644 --- a/src/services/telemetry/providers/posthog/PostHogClientProvider.ts +++ b/src/services/telemetry/providers/posthog/PostHogClientProvider.ts @@ -1,5 +1,6 @@ -import { EventMessage, PostHog } from "posthog-node" +import { type EventMessage, PostHog } from "posthog-node" import { ClineEndpoint } from "@/config" +import { fetch } from "@/shared/net" import { posthogConfig } from "@/shared/services/config/posthog-config" import { Logger } from "@/shared/services/Logger" @@ -30,6 +31,7 @@ export class PostHogClientProvider { this.client = posthogConfig.apiKey ? new PostHog(posthogConfig.apiKey, { host: posthogConfig.host, + fetch: (url, options) => fetch(url, options), enableExceptionAutocapture: false, // This is only enabled for error services before_send: (event) => PostHogClientProvider.eventFilter(event), }) diff --git a/src/services/telemetry/providers/posthog/PostHogTelemetryProvider.ts b/src/services/telemetry/providers/posthog/PostHogTelemetryProvider.ts index 8fe8fc2221..271525daa8 100644 --- a/src/services/telemetry/providers/posthog/PostHogTelemetryProvider.ts +++ b/src/services/telemetry/providers/posthog/PostHogTelemetryProvider.ts @@ -3,6 +3,7 @@ import { StateManager } from "@/core/storage/StateManager" import { HostProvider } from "@/hosts/host-provider" import { getErrorLevelFromString } from "@/services/error" import { getDistinctId, setDistinctId } from "@/services/logging/distinctId" +import { fetch } from "@/shared/net" import { Setting } from "@/shared/proto/index.host" import { Logger } from "@/shared/services/Logger" import { posthogConfig } from "../../../../shared/services/config/posthog-config" @@ -33,6 +34,7 @@ export class PostHogTelemetryProvider implements ITelemetryProvider { } this.client = new PostHog(posthogConfig.apiKey, { host: posthogConfig.host, + fetch: (url, options) => fetch(url, options), }) }