From 8b8bb158663d9dd991921d3b5d846a1c8ce61a78 Mon Sep 17 00:00:00 2001 From: Debanjum Singh Solanky Date: Wed, 8 Nov 2023 17:59:02 -0800 Subject: [PATCH] Keep sync state in memory, initialized to false in Desktop app Prevent deadlock if desktop app killed in middle of syncing --- src/interface/desktop/main.js | 9 +++++---- src/khoj/routers/api.py | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/interface/desktop/main.js b/src/interface/desktop/main.js index e6524d73..ef46ce00 100644 --- a/src/interface/desktop/main.js +++ b/src/interface/desktop/main.js @@ -67,6 +67,7 @@ const schema = { } }; +const syncing = false; var state = {} const store = new Store({ schema }); @@ -111,12 +112,12 @@ function filenameToMimeType (filename) { function pushDataToKhoj (regenerate = false) { // Don't sync if token or hostURL is not set or if already syncing - if (store.get('khojToken') === '' || store.get('hostURL') === '' || store.get('syncing') === true) { + if (store.get('khojToken') === '' || store.get('hostURL') === '' || syncing === true) { const win = BrowserWindow.getAllWindows()[0]; if (win) win.webContents.send('update-state', state); return; } else { - store.set('syncing', true); + syncing = true; } let filesToPush = []; @@ -201,13 +202,13 @@ function pushDataToKhoj (regenerate = false) { }) .finally(() => { // Syncing complete - store.set('syncing', false); + syncing = false; const win = BrowserWindow.getAllWindows()[0]; if (win) win.webContents.send('update-state', state); }); } else { // Syncing complete - store.set('syncing', false); + syncing = false; const win = BrowserWindow.getAllWindows()[0]; if (win) win.webContents.send('update-state', state); } diff --git a/src/khoj/routers/api.py b/src/khoj/routers/api.py index 08596646..81e805c6 100644 --- a/src/khoj/routers/api.py +++ b/src/khoj/routers/api.py @@ -61,7 +61,7 @@ api = APIRouter() logger = logging.getLogger(__name__) -def map_config_to_object(content_source: DbEntry.EntrySource): +def map_config_to_object(content_source: str): if content_source == DbEntry.EntrySource.GITHUB: return GithubConfig if content_source == DbEntry.EntrySource.GITHUB: