diff --git a/apps/web/src/context/Supabase/SupabaseContextProvider.tsx b/apps/web/src/context/Supabase/SupabaseContextProvider.tsx index 310658e81..98d0177de 100644 --- a/apps/web/src/context/Supabase/SupabaseContextProvider.tsx +++ b/apps/web/src/context/Supabase/SupabaseContextProvider.tsx @@ -32,9 +32,9 @@ const useSupabaseContextInternal = ({ const decoded = jwtDecode(token || accessToken); const expiresAtDecoded = (decoded as { exp?: number } | undefined)?.exp ?? 0; const expiresAtMs = millisecondsFromUnixTimestamp(expiresAtDecoded); - const msUntilExpiry = Math.max(0, expiresAtMs - Date.now()); - return msUntilExpiry; + return expiresAtMs; } catch { + console.error('Error decoding token', token); // If token is missing/invalid, report that it is effectively expired now return 0; } @@ -126,6 +126,7 @@ const useSupabaseContextInternal = ({ }); return { access_token: fallbackToken, isTokenValid: true }; } + console.error('Error refreshing session', err); throw err; } } @@ -155,6 +156,7 @@ const useSupabaseContextInternal = ({ const setupRefreshTimer = () => { const expiresInMs = getExpiresAt(); const refreshBuffer = PREEMTIVE_REFRESH_MINUTES * 60000; // Refresh minutes before expiration + const timeUntilRefresh = Math.max(0, expiresInMs - refreshBuffer); if (refreshTimerRef.current) { @@ -181,14 +183,16 @@ const useSupabaseContextInternal = ({ // Keep access token in sync with Supabase client (captures auto-refresh events) const { data: subscription } = supabase.auth.onAuthStateChange((event, session) => { const newToken = session?.access_token; - if (event === 'SIGNED_OUT' || !newToken) { + if (event === 'SIGNED_OUT' || (!newToken && event !== 'INITIAL_SESSION')) { setAccessToken(''); if (refreshTimerRef.current) { clearTimeout(refreshTimerRef.current); } return; } - void onUpdateToken({ accessToken: newToken, expiresAt: session?.expires_at ?? 0 }); + if (newToken) { + void onUpdateToken({ accessToken: newToken, expiresAt: session?.expires_at ?? 0 }); + } }); return () => { diff --git a/packages/ai/src/agents/analyst-agent/analyst-agent-instructions.ts b/packages/ai/src/agents/analyst-agent/analyst-agent-instructions.ts index 6c8d3daab..bc2178c4e 100644 --- a/packages/ai/src/agents/analyst-agent/analyst-agent-instructions.ts +++ b/packages/ai/src/agents/analyst-agent/analyst-agent-instructions.ts @@ -287,7 +287,7 @@ Today's date is ${new Date().toISOString().split('T')[0]}. export const getAnalystInstructions = async ({ runtimeContext, }: { runtimeContext: RuntimeContext }): Promise => { - const userId = runtimeContext.get('userId'); + const _userId = runtimeContext.get('userId'); const dataSourceSyntax = runtimeContext.get('dataSourceSyntax'); // Get dialect-specific guidance diff --git a/packages/ai/src/agents/think-and-prep-agent/think-and-prep-instructions.ts b/packages/ai/src/agents/think-and-prep-agent/think-and-prep-instructions.ts index 7737d11a8..719bab41c 100644 --- a/packages/ai/src/agents/think-and-prep-agent/think-and-prep-instructions.ts +++ b/packages/ai/src/agents/think-and-prep-agent/think-and-prep-instructions.ts @@ -497,7 +497,7 @@ Today's date is ${new Date().toLocaleDateString()}. export const getThinkAndPrepInstructions = async ({ runtimeContext, }: { runtimeContext: RuntimeContext }): Promise => { - const userId = runtimeContext.get('userId'); + const _userId = runtimeContext.get('userId'); const dataSourceSyntax = runtimeContext.get('dataSourceSyntax'); // Get dialect-specific guidance diff --git a/packages/ai/src/steps/analyst-step.ts b/packages/ai/src/steps/analyst-step.ts index a28a08c91..9d7a919bb 100644 --- a/packages/ai/src/steps/analyst-step.ts +++ b/packages/ai/src/steps/analyst-step.ts @@ -271,7 +271,7 @@ const analystExecution = async ({ .join('\n---\n'); // Get dialect-specific guidance - const sqlDialectGuidance = getSqlDialectGuidance(dataSourceSyntax); + const _sqlDialectGuidance = getSqlDialectGuidance(dataSourceSyntax); // Create dataset system message const createDatasetSystemMessage = (databaseContext: string): string => { diff --git a/packages/ai/src/steps/think-and-prep-step.ts b/packages/ai/src/steps/think-and-prep-step.ts index 3b492511e..66edce614 100644 --- a/packages/ai/src/steps/think-and-prep-step.ts +++ b/packages/ai/src/steps/think-and-prep-step.ts @@ -186,7 +186,7 @@ const thinkAndPrepExecution = async ({ .join('\n---\n'); // Get dialect-specific guidance - const sqlDialectGuidance = getSqlDialectGuidance(dataSourceSyntax); + const _sqlDialectGuidance = getSqlDialectGuidance(dataSourceSyntax); // Create dataset system message const createDatasetSystemMessage = (databaseContext: string): string => {