diff --git a/src/interface/desktop/chat.html b/src/interface/desktop/chat.html
index 78df9d4c..b3083168 100644
--- a/src/interface/desktop/chat.html
+++ b/src/interface/desktop/chat.html
@@ -1246,7 +1246,7 @@
margin: 0;
}
.chat-message-text-response {
- margin-bottom: -16px;
+ margin-bottom: 0px;
}
/* Spinner symbol when the chat message is loading */
diff --git a/src/khoj/database/adapters/__init__.py b/src/khoj/database/adapters/__init__.py
index 250e1b65..c39dc14b 100644
--- a/src/khoj/database/adapters/__init__.py
+++ b/src/khoj/database/adapters/__init__.py
@@ -397,12 +397,17 @@ class ConversationAdapters:
user: KhojUser, client_application: ClientApplication = None, conversation_id: int = None
):
if conversation_id:
- conversation = Conversation.objects.filter(user=user, client=client_application, id=conversation_id)
- if not conversation_id or not conversation.exists():
- conversation = Conversation.objects.filter(user=user, client=client_application).order_by("-updated_at")
- if conversation.exists():
- return conversation.first()
- return Conversation.objects.create(user=user, client=client_application)
+ conversation = (
+ Conversation.objects.filter(user=user, client=client_application, id=conversation_id)
+ .order_by("-updated_at")
+ .first()
+ )
+ else:
+ conversation = (
+ Conversation.objects.filter(user=user, client=client_application).order_by("-updated_at").first()
+ )
+
+ return conversation or Conversation.objects.create(user=user, client=client_application)
@staticmethod
def get_conversation_sessions(user: KhojUser, client_application: ClientApplication = None):
@@ -435,10 +440,14 @@ class ConversationAdapters:
):
if conversation_id:
conversation = Conversation.objects.filter(user=user, client=client_application, id=conversation_id)
- else:
+ elif slug:
conversation = Conversation.objects.filter(user=user, client=client_application, slug=slug)
+ else:
+ conversation = Conversation.objects.filter(user=user, client=client_application).order_by("-updated_at")
+
if await conversation.aexists():
return await conversation.afirst()
+
return await Conversation.objects.acreate(user=user, client=client_application, slug=slug)
@staticmethod
@@ -517,11 +526,17 @@ class ConversationAdapters:
):
slug = user_message.strip()[:200] if user_message else None
if conversation_id:
- conversation = Conversation.objects.filter(user=user, client=client_application, id=conversation_id)
+ conversation = Conversation.objects.filter(user=user, client=client_application, id=conversation_id).first()
else:
- conversation = Conversation.objects.filter(user=user, client=client_application)
- if conversation.exists():
- conversation.update(conversation_log=conversation_log, slug=slug, updated_at=datetime.now(tz=timezone.utc))
+ conversation = (
+ Conversation.objects.filter(user=user, client=client_application).order_by("-updated_at").first()
+ )
+
+ if conversation:
+ conversation.conversation_log = conversation_log
+ conversation.slug = slug
+ conversation.updated_at = datetime.now(tz=timezone.utc)
+ conversation.save()
else:
Conversation.objects.create(
user=user, conversation_log=conversation_log, client=client_application, slug=slug
diff --git a/src/khoj/interface/web/chat.html b/src/khoj/interface/web/chat.html
index 8b0635a5..0a154603 100644
--- a/src/khoj/interface/web/chat.html
+++ b/src/khoj/interface/web/chat.html
@@ -1312,7 +1312,7 @@ To get started, just start typing below. You can also type / to see a list of co
margin: 0;
}
.chat-message-text-response {
- margin-bottom: -16px;
+ margin-bottom: 0px;
}
/* Spinner symbol when the chat message is loading */