From a180bf5576dc424646ea55a81e37b16c1c84743c Mon Sep 17 00:00:00 2001 From: CREDO23 Date: Sat, 4 Apr 2026 09:39:20 +0200 Subject: [PATCH] fix merge conflicts --- ...=> 119_add_vision_llm_id_to_search_spaces.py} | 10 +++++----- .../app/services/vision_autocomplete_service.py | 4 ++-- .../src/modules/autocomplete/index.ts | 16 +++++++++++----- .../components/editor-panel/editor-panel.tsx | 3 --- .../layout/ui/tabs/DocumentTabContent.tsx | 3 --- 5 files changed, 18 insertions(+), 18 deletions(-) rename surfsense_backend/alembic/versions/{117_add_vision_llm_id_to_search_spaces.py => 119_add_vision_llm_id_to_search_spaces.py} (86%) diff --git a/surfsense_backend/alembic/versions/117_add_vision_llm_id_to_search_spaces.py b/surfsense_backend/alembic/versions/119_add_vision_llm_id_to_search_spaces.py similarity index 86% rename from surfsense_backend/alembic/versions/117_add_vision_llm_id_to_search_spaces.py rename to surfsense_backend/alembic/versions/119_add_vision_llm_id_to_search_spaces.py index 2bec374c6..8e41d5e67 100644 --- a/surfsense_backend/alembic/versions/117_add_vision_llm_id_to_search_spaces.py +++ b/surfsense_backend/alembic/versions/119_add_vision_llm_id_to_search_spaces.py @@ -1,7 +1,7 @@ -"""117_add_vision_llm_id_to_search_spaces +"""119_add_vision_llm_id_to_search_spaces -Revision ID: 117 -Revises: 116 +Revision ID: 119 +Revises: 118 Adds vision_llm_id column to search_spaces for vision/screenshot analysis LLM role assignment. Defaults to 0 (Auto mode), same convention as @@ -16,8 +16,8 @@ import sqlalchemy as sa from alembic import op -revision: str = "117" -down_revision: str | None = "116" +revision: str = "119" +down_revision: str | None = "118" branch_labels: str | Sequence[str] | None = None depends_on: str | Sequence[str] | None = None diff --git a/surfsense_backend/app/services/vision_autocomplete_service.py b/surfsense_backend/app/services/vision_autocomplete_service.py index 2ddb56f51..f24a5c848 100644 --- a/surfsense_backend/app/services/vision_autocomplete_service.py +++ b/surfsense_backend/app/services/vision_autocomplete_service.py @@ -220,6 +220,6 @@ async def stream_vision_autocomplete( logger.warning(f"Vision autocomplete: selected model does not support vision: {e}") yield streaming.format_error(vision_error_msg) else: - logger.error(f"Vision autocomplete streaming error: {e}") - yield streaming.format_error(str(e)) + logger.error(f"Vision autocomplete streaming error: {e}", exc_info=True) + yield streaming.format_error("Autocomplete failed. Please try again.") yield streaming.format_done() diff --git a/surfsense_desktop/src/modules/autocomplete/index.ts b/surfsense_desktop/src/modules/autocomplete/index.ts index 0d5073de4..01a4cf913 100644 --- a/surfsense_desktop/src/modules/autocomplete/index.ts +++ b/surfsense_desktop/src/modules/autocomplete/index.ts @@ -11,6 +11,7 @@ const SHORTCUT = 'CommandOrControl+Shift+Space'; let autocompleteEnabled = true; let savedClipboard = ''; let sourceApp = ''; +let lastSearchSpaceId: string | null = null; function isSurfSenseWindow(): boolean { const app = getFrontmostApp(); @@ -36,19 +37,24 @@ async function triggerAutocomplete(): Promise { return; } - const cursor = screen.getCursorScreenPoint(); - const win = createSuggestionWindow(cursor.x, cursor.y); - - let searchSpaceId = '1'; const mainWin = getMainWindow(); if (mainWin && !mainWin.isDestroyed()) { const mainUrl = mainWin.webContents.getURL(); const match = mainUrl.match(/\/dashboard\/(\d+)/); if (match) { - searchSpaceId = match[1]; + lastSearchSpaceId = match[1]; } } + if (!lastSearchSpaceId) { + console.warn('[autocomplete] No active search space. Open a search space first.'); + return; + } + + const searchSpaceId = lastSearchSpaceId; + const cursor = screen.getCursorScreenPoint(); + const win = createSuggestionWindow(cursor.x, cursor.y); + win.webContents.once('did-finish-load', () => { const sw = getSuggestionWindow(); setTimeout(() => { diff --git a/surfsense_web/components/editor-panel/editor-panel.tsx b/surfsense_web/components/editor-panel/editor-panel.tsx index 248fe68eb..c307b3cea 100644 --- a/surfsense_web/components/editor-panel/editor-panel.tsx +++ b/surfsense_web/components/editor-panel/editor-panel.tsx @@ -96,9 +96,6 @@ export function EditorPanelContent({ } try { - const response = await authenticatedFetch( - `${process.env.NEXT_PUBLIC_FASTAPI_BACKEND_URL}/api/v1/search-spaces/${searchSpaceId}/documents/${documentId}/editor-content`, - { method: "GET", signal: controller.signal } const url = new URL( `${process.env.NEXT_PUBLIC_FASTAPI_BACKEND_URL}/api/v1/search-spaces/${searchSpaceId}/documents/${documentId}/editor-content` ); diff --git a/surfsense_web/components/layout/ui/tabs/DocumentTabContent.tsx b/surfsense_web/components/layout/ui/tabs/DocumentTabContent.tsx index d2ce3cc64..97c5b7cd9 100644 --- a/surfsense_web/components/layout/ui/tabs/DocumentTabContent.tsx +++ b/surfsense_web/components/layout/ui/tabs/DocumentTabContent.tsx @@ -81,9 +81,6 @@ export function DocumentTabContent({ documentId, searchSpaceId, title }: Documen } try { - const response = await authenticatedFetch( - `${process.env.NEXT_PUBLIC_FASTAPI_BACKEND_URL}/api/v1/search-spaces/${searchSpaceId}/documents/${documentId}/editor-content`, - { method: "GET", signal: controller.signal } const url = new URL( `${process.env.NEXT_PUBLIC_FASTAPI_BACKEND_URL}/api/v1/search-spaces/${searchSpaceId}/documents/${documentId}/editor-content` );