diff --git a/surfsense_backend/app/tasks/connector_indexers/google_calendar_indexer.py b/surfsense_backend/app/tasks/connector_indexers/google_calendar_indexer.py index 2365ff984..31796b4cd 100644 --- a/surfsense_backend/app/tasks/connector_indexers/google_calendar_indexer.py +++ b/surfsense_backend/app/tasks/connector_indexers/google_calendar_indexer.py @@ -191,10 +191,10 @@ async def index_google_calendar_events( ) else: calculated_start_date = datetime.now() - timedelta( - days=30 - ) # Use 30 days as default for calendar events + days=365 + ) # Use 365 days as default for calendar events (matches frontend) logger.info( - f"No last_indexed_at found, using {calculated_start_date.strftime('%Y-%m-%d')} (30 days ago) as start date" + f"No last_indexed_at found, using {calculated_start_date.strftime('%Y-%m-%d')} (365 days ago) as start date" ) # Use calculated dates if not provided diff --git a/surfsense_backend/app/utils/document_converters.py b/surfsense_backend/app/utils/document_converters.py index 279b1dbf6..d7e1db71d 100644 --- a/surfsense_backend/app/utils/document_converters.py +++ b/surfsense_backend/app/utils/document_converters.py @@ -11,7 +11,13 @@ def get_model_context_window(model_name: str) -> int: """Get the total context window size for a model (input + output tokens).""" try: model_info = get_model_info(model_name) - context_window = model_info.get("max_input_tokens", 4096) # Default fallback + context_window = model_info.get("max_input_tokens") + # Handle case where key exists but value is None + if context_window is None: + print( + f"Warning: max_input_tokens is None for {model_name}, using default 4096 tokens." + ) + return 4096 # Conservative fallback return context_window except Exception as e: print( diff --git a/surfsense_web/lib/apis/connectors-api.service.ts b/surfsense_web/lib/apis/connectors-api.service.ts index 567db38de..10e08dc71 100644 --- a/surfsense_web/lib/apis/connectors-api.service.ts +++ b/surfsense_web/lib/apis/connectors-api.service.ts @@ -49,12 +49,14 @@ class ConnectorsApiService { throw new ValidationError(`Invalid request: ${errorMessage}`); } - // Transform query params to be string values + // Transform query params to be string values, filtering out undefined/null const transformedQueryParams = parsedRequest.data.queryParams ? Object.fromEntries( - Object.entries(parsedRequest.data.queryParams).map(([k, v]) => { - return [k, String(v)]; - }) + Object.entries(parsedRequest.data.queryParams) + .filter(([_, v]) => v !== undefined && v !== null) + .map(([k, v]) => { + return [k, String(v)]; + }) ) : undefined; @@ -102,11 +104,13 @@ class ConnectorsApiService { const { data, queryParams } = parsedRequest.data; - // Transform query params to be string values + // Transform query params to be string values, filtering out undefined/null const transformedQueryParams = Object.fromEntries( - Object.entries(queryParams).map(([k, v]) => { - return [k, String(v)]; - }) + Object.entries(queryParams) + .filter(([_, v]) => v !== undefined && v !== null) + .map(([k, v]) => { + return [k, String(v)]; + }) ); const queryString = new URLSearchParams(transformedQueryParams).toString(); @@ -174,11 +178,13 @@ class ConnectorsApiService { const { connector_id, queryParams, body } = parsedRequest.data; - // Transform query params to be string values + // Transform query params to be string values, filtering out undefined/null const transformedQueryParams = Object.fromEntries( - Object.entries(queryParams).map(([k, v]) => { - return [k, String(v)]; - }) + Object.entries(queryParams) + .filter(([_, v]) => v !== undefined && v !== null) + .map(([k, v]) => { + return [k, String(v)]; + }) ); const queryString = new URLSearchParams(transformedQueryParams).toString();