diff options
Diffstat (limited to 'continuedev')
-rw-r--r-- | continuedev/src/continuedev/core/autopilot.py | 5 | ||||
-rw-r--r-- | continuedev/src/continuedev/core/context.py | 10 | ||||
-rw-r--r-- | continuedev/src/continuedev/server/ide.py | 14 |
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", { |