From 1e866c8f993efdb4404d0fba041513ee9e127669 Mon Sep 17 00:00:00 2001 From: Will Chen Date: Mon, 28 Apr 2025 13:14:51 -0700 Subject: [PATCH] Graduate Supabase integration from experiments (#29) --- src/components/SupabaseIntegrationSwitch.tsx | 64 -------------------- src/ipc/handlers/chat_stream_handlers.ts | 23 ++++--- src/lib/schemas.ts | 3 +- src/main/settings.ts | 4 +- src/pages/app-details.tsx | 4 +- src/pages/settings.tsx | 9 +-- 6 files changed, 16 insertions(+), 91 deletions(-) delete mode 100644 src/components/SupabaseIntegrationSwitch.tsx diff --git a/src/components/SupabaseIntegrationSwitch.tsx b/src/components/SupabaseIntegrationSwitch.tsx deleted file mode 100644 index 26bb726..0000000 --- a/src/components/SupabaseIntegrationSwitch.tsx +++ /dev/null @@ -1,64 +0,0 @@ -import { useState, useEffect } from "react"; -import { Switch } from "@/components/ui/switch"; -import { useSettings } from "@/hooks/useSettings"; -import { showSuccess, showError } from "@/lib/toast"; - -interface SupabaseIntegrationSwitchProps { - showToast?: boolean; -} - -export function SupabaseIntegrationSwitch({ - showToast = true, -}: SupabaseIntegrationSwitchProps) { - const { settings, updateSettings, refreshSettings } = useSettings(); - const [isEnabled, setIsEnabled] = useState(false); - const [isUpdating, setIsUpdating] = useState(false); - - useEffect(() => { - if (settings) { - setIsEnabled(settings.experiments?.enableSupabaseIntegration || false); - } - }, [settings]); - - const handleToggle = async () => { - try { - setIsUpdating(true); - const newValue = !isEnabled; - - await updateSettings({ - experiments: { - enableSupabaseIntegration: newValue, - }, - }); - - setIsEnabled(newValue); - if (showToast) { - showSuccess( - `Supabase integration ${newValue ? "enabled" : "disabled"}` - ); - } - refreshSettings(); - } catch (error) { - console.error("Error toggling Supabase integration:", error); - if (showToast) { - showError("Failed to update Supabase integration setting"); - } - } finally { - setIsUpdating(false); - } - }; - - return ( -
- - -
- ); -} diff --git a/src/ipc/handlers/chat_stream_handlers.ts b/src/ipc/handlers/chat_stream_handlers.ts index a40de37..4835abc 100644 --- a/src/ipc/handlers/chat_stream_handlers.ts +++ b/src/ipc/handlers/chat_stream_handlers.ts @@ -154,19 +154,18 @@ export function registerChatStreamHandlers() { content: message.content, })); let systemPrompt = SYSTEM_PROMPT; - if (readSettings().experiments?.enableSupabaseIntegration) { - if (updatedChat.app?.supabaseProjectId) { - systemPrompt += - "\n\n" + - SUPABASE_AVAILABLE_SYSTEM_PROMPT + - "\n\n" + - (await getSupabaseContext({ - supabaseProjectId: updatedChat.app.supabaseProjectId, - })); - } else { - systemPrompt += "\n\n" + SUPABASE_NOT_AVAILABLE_SYSTEM_PROMPT; - } + if (updatedChat.app?.supabaseProjectId) { + systemPrompt += + "\n\n" + + SUPABASE_AVAILABLE_SYSTEM_PROMPT + + "\n\n" + + (await getSupabaseContext({ + supabaseProjectId: updatedChat.app.supabaseProjectId, + })); + } else { + systemPrompt += "\n\n" + SUPABASE_NOT_AVAILABLE_SYSTEM_PROMPT; } + const { textStream } = streamText({ maxTokens: 8_000, temperature: 0, diff --git a/src/lib/schemas.ts b/src/lib/schemas.ts index 39f0d07..7885203 100644 --- a/src/lib/schemas.ts +++ b/src/lib/schemas.ts @@ -90,7 +90,8 @@ export const SupabaseSchema = z.object({ export type Supabase = z.infer; export const ExperimentsSchema = z.object({ - enableSupabaseIntegration: z.boolean().optional(), + // Deprecated + enableSupabaseIntegration: z.boolean().describe("DEPRECATED").optional(), }); export type Experiments = z.infer; diff --git a/src/main/settings.ts b/src/main/settings.ts index 397ecc1..d02686b 100644 --- a/src/main/settings.ts +++ b/src/main/settings.ts @@ -16,9 +16,7 @@ const DEFAULT_SETTINGS: UserSettings = { telemetryConsent: "unset", telemetryUserId: uuidv4(), hasRunBefore: false, - experiments: { - enableSupabaseIntegration: false, - }, + experiments: {}, }; const SETTINGS_FILE = "user-settings.json"; diff --git a/src/pages/app-details.tsx b/src/pages/app-details.tsx index bbc260a..f0f3127 100644 --- a/src/pages/app-details.tsx +++ b/src/pages/app-details.tsx @@ -249,9 +249,7 @@ export default function AppDetailsPage() { - {appId && settings?.experiments?.enableSupabaseIntegration && ( - - )} + {appId && } {/* Rename Dialog */} diff --git a/src/pages/settings.tsx b/src/pages/settings.tsx index d24512e..42943bc 100644 --- a/src/pages/settings.tsx +++ b/src/pages/settings.tsx @@ -6,7 +6,6 @@ import { IpcClient } from "@/ipc/ipc_client"; import { showSuccess, showError } from "@/lib/toast"; import { AutoApproveSwitch } from "@/components/AutoApproveSwitch"; import { TelemetrySwitch } from "@/components/TelemetrySwitch"; -import { SupabaseIntegrationSwitch } from "@/components/SupabaseIntegrationSwitch"; import { useSettings } from "@/hooks/useSettings"; import { Button } from "@/components/ui/button"; import { ArrowLeft } from "lucide-react"; @@ -152,13 +151,7 @@ export default function SettingsPage() { Experiments
-
- -
- Enable integration with Supabase for auth, database and server - function support. -
-
+ There are no experiments currently available.