summaryrefslogtreecommitdiff
path: root/continuedev
diff options
context:
space:
mode:
Diffstat (limited to 'continuedev')
-rw-r--r--continuedev/src/continuedev/core/autopilot.py5
-rw-r--r--continuedev/src/continuedev/core/context.py10
-rw-r--r--continuedev/src/continuedev/server/ide.py14
3 files changed, 20 insertions, 9 deletions
diff --git a/continuedev/src/continuedev/core/autopilot.py b/continuedev/src/continuedev/core/autopilot.py
index a3dd854e..f3a17d47 100644
--- a/continuedev/src/continuedev/core/autopilot.py
+++ b/continuedev/src/continuedev/core/autopilot.py
@@ -74,13 +74,16 @@ class Autopilot(ContinueBaseModel):
self.policy = override_policy
# Load documents into the search index
+ logger.debug("Starting context manager")
await self.context_manager.start(
self.continue_sdk.config.context_providers + [
HighlightedCodeContextProvider(ide=self.ide),
FileContextProvider(workspace_dir=self.ide.workspace_directory)
])
- await self.context_manager.load_index(self.ide.workspace_directory)
+ logger.debug("Loading index")
+ create_async_task(self.context_manager.load_index(
+ self.ide.workspace_directory))
self.started = True
class Config:
diff --git a/continuedev/src/continuedev/core/context.py b/continuedev/src/continuedev/core/context.py
index 20725216..f83cbd34 100644
--- a/continuedev/src/continuedev/core/context.py
+++ b/continuedev/src/continuedev/core/context.py
@@ -1,5 +1,7 @@
from abc import abstractmethod
+import asyncio
+import time
from typing import Dict, List
from meilisearch_python_async import Client
from pydantic import BaseModel
@@ -165,6 +167,8 @@ class ContextManager:
async def load_index(self, workspace_dir: str):
for _, provider in self.context_providers.items():
+ ti = time.time()
+
context_items = await provider.provide_context_items(workspace_dir)
documents = [
{
@@ -178,10 +182,14 @@ class ContextManager:
if len(documents) > 0:
try:
async with Client('http://localhost:7700') as search_client:
- await search_client.index(SEARCH_INDEX_NAME).add_documents(documents)
+ await asyncio.wait_for(search_client.index(SEARCH_INDEX_NAME).add_documents(documents), timeout=5)
except Exception as e:
logger.debug(f"Error loading meilisearch index: {e}")
+ tf = time.time()
+ logger.debug(
+ f"Loaded {len(documents)} documents into meilisearch in {tf - ti} seconds for context provider {provider.title}")
+
async def select_context_item(self, id: str, query: str):
"""
Selects the ContextItem with the given id.
diff --git a/continuedev/src/continuedev/server/ide.py b/continuedev/src/continuedev/server/ide.py
index 9797a8b7..e523d3aa 100644
--- a/continuedev/src/continuedev/server/ide.py
+++ b/continuedev/src/continuedev/server/ide.py
@@ -249,8 +249,10 @@ class IdeProtocolServer(AbstractIdeProtocolServer):
})
async def getSessionId(self):
- session_id = (await self.session_manager.new_session(
- self, self.session_id)).session_id
+ new_session = await asyncio.wait_for(self.session_manager.new_session(
+ self, self.session_id), timeout=5)
+ session_id = new_session.session_id
+ logger.debug(f"Sending session id: {session_id}")
await self._send_json("getSessionId", {
"sessionId": session_id
})
@@ -279,11 +281,9 @@ class IdeProtocolServer(AbstractIdeProtocolServer):
return any([r.accepted for r in responses])
def on_error(self, e: Exception) -> Coroutine:
- try:
- return self.session_manager.sessions[self.session_id].autopilot.continue_sdk.run_step(DisplayErrorStep(e=e))
- except:
- err_msg = '\n'.join(traceback.format_exception(e))
- return self.showMessage(f"Error in Continue server: {err_msg}")
+ err_msg = '\n'.join(traceback.format_exception(e))
+ e_title = e.__str__() or e.__repr__()
+ return self.showMessage(f"Error in Continue server: {e_title}\n {err_msg}")
def onAcceptRejectSuggestion(self, accepted: bool):
posthog_logger.capture_event("accept_reject_suggestion", {