diff --git a/.cursor/settings.json b/.cursor/settings.json new file mode 100644 index 000000000..b459ee22e --- /dev/null +++ b/.cursor/settings.json @@ -0,0 +1,7 @@ +{ + "plugins": { + "posthog": { + "enabled": true + } + } +} diff --git a/apps/cli/src/components/screens/cookie-sync-confirm-screen.tsx b/apps/cli/src/components/screens/cookie-sync-confirm-screen.tsx index ed26ead75..6a77f29e0 100644 --- a/apps/cli/src/components/screens/cookie-sync-confirm-screen.tsx +++ b/apps/cli/src/components/screens/cookie-sync-confirm-screen.tsx @@ -61,10 +61,16 @@ export const CookieSyncConfirmScreen = ({ const confirm = () => { const keys = [...selectedKeys]; setCookieBrowserKeys(keys); - trackEvent("cookies:browser_selection", { - selected_count: keys.length, - browsers: keys.join(","), + trackEvent("cookies:sync_choice", { + choice: keys.length > 0 ? "use_cookies" : "skip_cookies", }); + if (keys.length > 0) { + trackEvent("cookies:browser_selection", { + selected_count: keys.length, + browsers: keys.join(","), + }); + trackEvent("cookies:toggled", { enabled: true }); + } if (changesFor && instruction) { setScreen( screenForTestingOrPortPicker({ diff --git a/apps/cli/src/components/screens/main-menu-screen.tsx b/apps/cli/src/components/screens/main-menu-screen.tsx index afe77137b..a748a0683 100644 --- a/apps/cli/src/components/screens/main-menu-screen.tsx +++ b/apps/cli/src/components/screens/main-menu-screen.tsx @@ -234,6 +234,7 @@ export const MainMenu = ({ gitState }: MainMenuProps) => { if (cookieBrowserKeys.length > 0) { clearCookieBrowserKeys(); trackEvent("cookies:cleared"); + trackEvent("cookies:toggled", { enabled: false }); } else { setScreen(Screen.CookieSyncConfirm({})); } diff --git a/apps/cli/src/data/execution-atom.ts b/apps/cli/src/data/execution-atom.ts index 13bd79384..0a8d323bf 100644 --- a/apps/cli/src/data/execution-atom.ts +++ b/apps/cli/src/data/execution-atom.ts @@ -189,7 +189,16 @@ export const executeFn = cliAtomRuntime.fn()((input) => Effect.tapError((error) => Effect.gen(function* () { const analytics = yield* Analytics; - const errorTag = error instanceof Error ? error.constructor.name : "UnknownError"; + const errorTag = + typeof error === "object" && + error !== null && + "_tag" in error && + typeof error._tag === "string" + ? error._tag + : // ignore for now + (error as any) instanceof Error + ? (error as any).constructor.name + : "UnknownError"; yield* analytics.capture("run:failed", { plan_id: "direct", error_tag: errorTag,