telemetry on version used on app load (#610)

This commit is contained in:
Will Chen
2025-07-10 10:24:30 -07:00
committed by GitHub
parent 9d69a6d688
commit 742e754431

View File

@@ -4,6 +4,7 @@ import { userSettingsAtom, envVarsAtom } from "@/atoms/appAtoms";
import { IpcClient } from "@/ipc/ipc_client"; import { IpcClient } from "@/ipc/ipc_client";
import { type UserSettings } from "@/lib/schemas"; import { type UserSettings } from "@/lib/schemas";
import { usePostHog } from "posthog-js/react"; import { usePostHog } from "posthog-js/react";
import { useAppVersion } from "./useAppVersion";
const TELEMETRY_CONSENT_KEY = "dyadTelemetryConsent"; const TELEMETRY_CONSENT_KEY = "dyadTelemetryConsent";
const TELEMETRY_USER_ID_KEY = "dyadTelemetryUserId"; const TELEMETRY_USER_ID_KEY = "dyadTelemetryUserId";
@@ -24,6 +25,7 @@ export function useSettings() {
const [envVars, setEnvVarsAtom] = useAtom(envVarsAtom); const [envVars, setEnvVarsAtom] = useAtom(envVarsAtom);
const [loading, setLoading] = useState(true); const [loading, setLoading] = useState(true);
const [error, setError] = useState<Error | null>(null); const [error, setError] = useState<Error | null>(null);
const appVersion = useAppVersion();
const loadInitialData = useCallback(async () => { const loadInitialData = useCallback(async () => {
setLoading(true); setLoading(true);
try { try {
@@ -34,9 +36,10 @@ export function useSettings() {
ipcClient.getEnvVars(), ipcClient.getEnvVars(),
]); ]);
processSettingsForTelemetry(userSettings); processSettingsForTelemetry(userSettings);
if (!isInitialLoad) { if (!isInitialLoad && appVersion) {
posthog.capture("app:initial-load", { posthog.capture("app:initial-load", {
isPro: Boolean(userSettings.providerSettings?.auto?.apiKey?.value), isPro: Boolean(userSettings.providerSettings?.auto?.apiKey?.value),
appVersion,
}); });
isInitialLoad = true; isInitialLoad = true;
} }
@@ -49,7 +52,7 @@ export function useSettings() {
} finally { } finally {
setLoading(false); setLoading(false);
} }
}, [setSettingsAtom, setEnvVarsAtom]); }, [setSettingsAtom, setEnvVarsAtom, appVersion]);
useEffect(() => { useEffect(() => {
// Only run once on mount, dependencies are stable getters/setters // Only run once on mount, dependencies are stable getters/setters