summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--continuedev/src/continuedev/core/autopilot.py5
-rw-r--r--continuedev/src/continuedev/core/context.py36
-rw-r--r--continuedev/src/continuedev/core/sdk.py5
-rw-r--r--continuedev/src/continuedev/libs/chroma/query.py19
-rw-r--r--continuedev/src/continuedev/libs/util/create_async_task.py6
-rw-r--r--continuedev/src/continuedev/libs/util/logging.py30
-rw-r--r--continuedev/src/continuedev/libs/util/step_name_to_steps.py3
-rw-r--r--continuedev/src/continuedev/libs/util/telemetry.py6
-rw-r--r--continuedev/src/continuedev/models/generate_json_schema.py2
-rw-r--r--continuedev/src/continuedev/plugins/steps/main.py3
-rw-r--r--continuedev/src/continuedev/server/gui.py17
-rw-r--r--continuedev/src/continuedev/server/ide.py30
-rw-r--r--continuedev/src/continuedev/server/main.py41
-rw-r--r--continuedev/src/continuedev/server/meilisearch_server.py5
-rw-r--r--continuedev/src/continuedev/server/session_manager.py9
-rw-r--r--extension/package-lock.json4
-rw-r--r--extension/package.json2
17 files changed, 123 insertions, 100 deletions
diff --git a/continuedev/src/continuedev/core/autopilot.py b/continuedev/src/continuedev/core/autopilot.py
index 42a58423..931cfb75 100644
--- a/continuedev/src/continuedev/core/autopilot.py
+++ b/continuedev/src/continuedev/core/autopilot.py
@@ -21,6 +21,7 @@ from ..libs.util.traceback_parsers import get_python_traceback, get_javascript_t
from openai import error as openai_errors
from ..libs.util.create_async_task import create_async_task
from ..libs.util.telemetry import posthog_logger
+from ..libs.util.logging import logger
def get_error_title(e: Exception) -> str:
@@ -153,7 +154,7 @@ class Autopilot(ContinueBaseModel):
await self.update_subscribers()
except Exception as e:
- print(e)
+ logger.debug(e)
def handle_manual_edits(self, edits: List[FileEditWithFullContents]):
for edit in edits:
@@ -258,7 +259,7 @@ class Autopilot(ContinueBaseModel):
e)
# Attach an InternalErrorObservation to the step and unhide it.
- print(
+ logger.error(
f"Error while running step: \n{error_string}\n{error_title}")
posthog_logger.capture_event('step error', {
'error_message': error_string, 'error_title': error_title, 'step_name': step.name, 'params': step.dict()})
diff --git a/continuedev/src/continuedev/core/context.py b/continuedev/src/continuedev/core/context.py
index 12908e02..78a747b2 100644
--- a/continuedev/src/continuedev/core/context.py
+++ b/continuedev/src/continuedev/core/context.py
@@ -7,7 +7,7 @@ from pydantic import BaseModel
from .main import ChatMessage, ContextItem, ContextItemDescription, ContextItemId
from ..server.meilisearch_server import check_meilisearch_running
-
+from ..libs.util.logging import logger
SEARCH_INDEX_NAME = "continue_context_items"
@@ -57,16 +57,22 @@ class ContextProvider(BaseModel):
Default implementation uses the search index to get the item.
"""
async with Client('http://localhost:7700') as search_client:
- result = await search_client.index(
- SEARCH_INDEX_NAME).get_document(id.to_string())
- return ContextItem(
- description=ContextItemDescription(
- name=result["name"],
- description=result["description"],
- id=id
- ),
- content=result["content"]
- )
+ try:
+ result = await search_client.index(
+ SEARCH_INDEX_NAME).get_document(id.to_string())
+ return ContextItem(
+ description=ContextItemDescription(
+ name=result["name"],
+ description=result["description"],
+ id=id
+ ),
+ content=result["content"]
+ )
+ except Exception as e:
+ logger.warning(
+ f"Error while retrieving document from meilisearch: {e}")
+
+ return None
async def delete_context_with_ids(self, ids: List[ContextItemId]):
"""
@@ -100,8 +106,8 @@ class ContextProvider(BaseModel):
if item.description.id.item_id == id.item_id:
return
- new_item = await self.get_item(id, query)
- self.selected_items.append(new_item)
+ if new_item := await self.get_item(id, query):
+ self.selected_items.append(new_item)
class ContextManager:
@@ -146,7 +152,7 @@ class ContextManager:
meilisearch_running = False
if not meilisearch_running:
- print(
+ logger.warning(
"MeiliSearch not running, avoiding any dependent context providers")
context_providers = list(
filter(lambda cp: cp.title == "code", context_providers))
@@ -170,7 +176,7 @@ class ContextManager:
async with Client('http://localhost:7700') as search_client:
await search_client.index(SEARCH_INDEX_NAME).add_documents(documents)
except Exception as e:
- print("Error loading meilisearch index: ", e)
+ logger.debug(f"Error loading meilisearch index: {e}")
# def compile_chat_messages(self, max_tokens: int) -> List[Dict]:
# """
diff --git a/continuedev/src/continuedev/core/sdk.py b/continuedev/src/continuedev/core/sdk.py
index 264a6852..d75aac00 100644
--- a/continuedev/src/continuedev/core/sdk.py
+++ b/continuedev/src/continuedev/core/sdk.py
@@ -19,6 +19,7 @@ from ..plugins.steps.core.core import *
from ..libs.llm.proxy_server import ProxyServer
from ..libs.util.telemetry import posthog_logger
from ..libs.util.paths import getConfigFilePath
+from ..libs.util.logging import logger
class Autopilot:
@@ -161,7 +162,7 @@ class ContinueSDK(AbstractContinueSDK):
config = sdk._load_config_dot_py()
sdk.config = config
except Exception as e:
- print(e)
+ logger.debug(e)
sdk.config = ContinueConfig()
msg_step = MessageStep(
name="Invalid Continue Config File", message=e.__repr__())
@@ -273,7 +274,7 @@ class ContinueSDK(AbstractContinueSDK):
return config.config
except Exception as e:
- print("Error loading config.py: ", e)
+ logger.debug(f"Error loading config.py: {e}")
return ContinueConfig() if self._last_valid_config is None else self._last_valid_config
def get_code_context(self, only_editing: bool = False) -> List[RangeInFileWithContents]:
diff --git a/continuedev/src/continuedev/libs/chroma/query.py b/continuedev/src/continuedev/libs/chroma/query.py
index c27329f0..f09b813a 100644
--- a/continuedev/src/continuedev/libs/chroma/query.py
+++ b/continuedev/src/continuedev/libs/chroma/query.py
@@ -5,6 +5,7 @@ from llama_index import GPTVectorStoreIndex, StorageContext, load_index_from_sto
from llama_index.langchain_helpers.text_splitter import TokenTextSplitter
import os
from .update import filter_ignored_files, load_gpt_index_documents
+from ..util.logging import logger
from functools import cached_property
@@ -56,7 +57,8 @@ class ChromaIndexManager:
try:
text_chunks = text_splitter.split_text(doc.text)
except:
- print("ERROR (probably found special token): ", doc.text)
+ logger.warning(
+ f"ERROR (probably found special token): {doc.text}")
continue
filename = doc.extra_info["filename"]
chunks[filename] = len(text_chunks)
@@ -79,7 +81,7 @@ class ChromaIndexManager:
index.storage_context.persist(persist_dir=self.index_dir)
- print("Codebase index created")
+ logger.debug("Codebase index created")
def get_modified_deleted_files(self) -> Tuple[List[str], List[str]]:
"""Get a list of all files that have been modified since the last commit."""
@@ -121,7 +123,7 @@ class ChromaIndexManager:
del metadata["chunks"][file]
- print(f"Deleted {file}")
+ logger.debug(f"Deleted {file}")
for file in modified_files:
@@ -132,7 +134,7 @@ class ChromaIndexManager:
for i in range(num_chunks):
index.delete(f"{file}::{i}")
- print(f"Deleted old version of {file}")
+ logger.debug(f"Deleted old version of {file}")
with open(file, "r") as f:
text = f.read()
@@ -145,19 +147,20 @@ class ChromaIndexManager:
metadata["chunks"][file] = len(text_chunks)
- print(f"Inserted new version of {file}")
+ logger.debug(f"Inserted new version of {file}")
metadata["commit"] = self.current_commit
with open(f"{self.index_dir}/metadata.json", "w") as f:
json.dump(metadata, f, indent=4)
- print("Codebase index updated")
+ logger.debug("Codebase index updated")
def query_codebase_index(self, query: str) -> str:
"""Query the codebase index."""
if not self.check_index_exists():
- print("No index found for the codebase at ", self.index_dir)
+ logger.debug(
+ f"No index found for the codebase at {self.index_dir}")
return ""
storage_context = StorageContext.from_defaults(
@@ -180,4 +183,4 @@ class ChromaIndexManager:
documents = [Document(info)]
index = GPTVectorStoreIndex(documents)
index.save_to_disk(f'{self.index_dir}/additional_index.json')
- print("Additional index replaced")
+ logger.debug("Additional index replaced")
diff --git a/continuedev/src/continuedev/libs/util/create_async_task.py b/continuedev/src/continuedev/libs/util/create_async_task.py
index 2473c638..00e87445 100644
--- a/continuedev/src/continuedev/libs/util/create_async_task.py
+++ b/continuedev/src/continuedev/libs/util/create_async_task.py
@@ -1,6 +1,7 @@
from typing import Coroutine, Union
import traceback
from .telemetry import posthog_logger
+from .logging import logger
import asyncio
import nest_asyncio
nest_asyncio.apply()
@@ -14,8 +15,9 @@ def create_async_task(coro: Coroutine, unique_id: Union[str, None] = None):
try:
future.result()
except Exception as e:
- print("Exception caught from async task: ",
- '\n'.join(traceback.format_exception(e)))
+ formatted_tb = '\n'.join(traceback.format_exception(e))
+ logger.critical(
+ f"Exception caught from async task: {formatted_tb}")
posthog_logger.capture_event("async_task_error", {
"error_title": e.__str__() or e.__repr__(), "error_message": '\n'.join(traceback.format_exception(e))
})
diff --git a/continuedev/src/continuedev/libs/util/logging.py b/continuedev/src/continuedev/libs/util/logging.py
new file mode 100644
index 00000000..668d313f
--- /dev/null
+++ b/continuedev/src/continuedev/libs/util/logging.py
@@ -0,0 +1,30 @@
+import logging
+
+from .paths import getLogFilePath
+
+# Create a logger
+logger = logging.getLogger(__name__)
+logger.setLevel(logging.DEBUG)
+
+# Create a file handler
+file_handler = logging.FileHandler(getLogFilePath())
+file_handler.setLevel(logging.DEBUG)
+
+# Create a console handler
+console_handler = logging.StreamHandler()
+console_handler.setLevel(logging.DEBUG)
+
+# Create a formatter
+formatter = logging.Formatter(
+ '[%(asctime)s] [%(levelname)s] %(message)s')
+
+# Add the formatter to the handlers
+file_handler.setFormatter(formatter)
+console_handler.setFormatter(formatter)
+
+# Add the handlers to the logger
+logger.addHandler(file_handler)
+logger.addHandler(console_handler)
+
+# Log a test message
+logger.debug('Testing logs')
diff --git a/continuedev/src/continuedev/libs/util/step_name_to_steps.py b/continuedev/src/continuedev/libs/util/step_name_to_steps.py
index baa25da6..ed1e79b7 100644
--- a/continuedev/src/continuedev/libs/util/step_name_to_steps.py
+++ b/continuedev/src/continuedev/libs/util/step_name_to_steps.py
@@ -14,6 +14,7 @@ from ...plugins.steps.on_traceback import DefaultOnTracebackStep
from ...plugins.steps.clear_history import ClearHistoryStep
from ...plugins.steps.open_config import OpenConfigStep
from ...plugins.steps.help import HelpStep
+from ...libs.util.logging import logger
# This mapping is used to convert from string in ContinueConfig json to corresponding Step class.
# Used for example in slash_commands and steps_on_startup
@@ -38,6 +39,6 @@ def get_step_from_name(step_name: str, params: Dict) -> Step:
try:
return step_name_to_step_class[step_name](**params)
except:
- print(
+ logger.error(
f"Incorrect parameters for step {step_name}. Parameters provided were: {params}")
raise
diff --git a/continuedev/src/continuedev/libs/util/telemetry.py b/continuedev/src/continuedev/libs/util/telemetry.py
index 6d1d4fed..7e538c59 100644
--- a/continuedev/src/continuedev/libs/util/telemetry.py
+++ b/continuedev/src/continuedev/libs/util/telemetry.py
@@ -3,6 +3,7 @@ from posthog import Posthog
import os
from dotenv import load_dotenv
from .commonregex import clean_pii_from_any
+from .logging import logger
load_dotenv()
in_codespaces = os.getenv("CODESPACES") == "true"
@@ -24,7 +25,8 @@ class PostHogLogger:
self.allow_anonymous_telemetry = allow_anonymous_telemetry or True
def capture_event(self, event_name: str, event_properties: Any):
- print("------- Logging event -------")
+ # logger.debug(
+ # f"Logging to PostHog: {event_name} ({self.unique_id}, {self.allow_anonymous_telemetry}): {event_properties}")
telemetry_path = os.path.expanduser("~/.continue/telemetry.log")
# Make sure the telemetry file exists
@@ -46,7 +48,5 @@ class PostHogLogger:
self.posthog.capture(self.unique_id, event_name,
clean_pii_from_any(event_properties))
- print("------- Event logged -------")
-
posthog_logger = PostHogLogger(api_key=POSTHOG_API_KEY)
diff --git a/continuedev/src/continuedev/models/generate_json_schema.py b/continuedev/src/continuedev/models/generate_json_schema.py
index 06614984..51869fdd 100644
--- a/continuedev/src/continuedev/models/generate_json_schema.py
+++ b/continuedev/src/continuedev/models/generate_json_schema.py
@@ -38,7 +38,7 @@ def main():
try:
json = schema_json_of(model, indent=2, title=title)
except Exception as e:
- print(f"Failed to generate json schema for {title}: ", e)
+ print(f"Failed to generate json schema for {title}: {e}")
continue
with open(f"{SCHEMA_DIR}/{title}.json", "w") as f:
diff --git a/continuedev/src/continuedev/plugins/steps/main.py b/continuedev/src/continuedev/plugins/steps/main.py
index a8752df2..f28d9660 100644
--- a/continuedev/src/continuedev/plugins/steps/main.py
+++ b/continuedev/src/continuedev/plugins/steps/main.py
@@ -13,6 +13,7 @@ from ...core.sdk import ContinueSDK, Models
from ...core.observation import Observation
from .core.core import DefaultModelEditCodeStep
from ...libs.util.calculate_diff import calculate_diff2
+from ...libs.util.logging import logger
class Policy(BaseModel):
@@ -105,7 +106,7 @@ class FasterEditHighlightedCodeStep(Step):
# Temporarily doing this to generate description.
self._prompt = prompt
self._completion = completion
- print(completion)
+ logger.debug(completion)
# ALTERNATIVE DECODING STEP HERE
raw_file_edits = []
diff --git a/continuedev/src/continuedev/server/gui.py b/continuedev/src/continuedev/server/gui.py
index 58e875b9..2adb680e 100644
--- a/continuedev/src/continuedev/server/gui.py
+++ b/continuedev/src/continuedev/server/gui.py
@@ -12,6 +12,7 @@ from .gui_protocol import AbstractGUIProtocolServer
from ..libs.util.queue import AsyncSubscriptionQueue
from ..libs.util.telemetry import posthog_logger
from ..libs.util.create_async_task import create_async_task
+from ..libs.util.logging import logger
router = APIRouter(prefix="/gui", tags=["gui"])
@@ -25,7 +26,7 @@ class AppStatus:
@staticmethod
def handle_exit(*args, **kwargs):
AppStatus.should_exit = True
- print("Shutting down")
+ logger.debug("Shutting down")
original_handler(*args, **kwargs)
@@ -96,7 +97,7 @@ class GUIProtocolServer(AbstractGUIProtocolServer):
elif message_type == "select_context_item":
self.select_context_item(data["id"], data["query"])
except Exception as e:
- print(e)
+ logger.debug(e)
def on_main_input(self, input: str):
# Do something with user input
@@ -162,10 +163,10 @@ class GUIProtocolServer(AbstractGUIProtocolServer):
@router.websocket("/ws")
async def websocket_endpoint(websocket: WebSocket, session: Session = Depends(websocket_session)):
try:
- print("Received websocket connection at url: ", websocket.url)
+ logger.debug(f"Received websocket connection at url: {websocket.url}")
await websocket.accept()
- print("Session started")
+ logger.debug("Session started")
session_manager.register_websocket(session.session_id, websocket)
protocol = GUIProtocolServer(session)
protocol.websocket = websocket
@@ -175,7 +176,7 @@ async def websocket_endpoint(websocket: WebSocket, session: Session = Depends(we
while AppStatus.should_exit is False:
message = await websocket.receive_text()
- print("Received GUI message", message)
+ logger.debug(f"Received GUI message {message}")
if type(message) is str:
message = json.loads(message)
@@ -186,14 +187,14 @@ async def websocket_endpoint(websocket: WebSocket, session: Session = Depends(we
protocol.handle_json(message_type, data)
except WebSocketDisconnect as e:
- print("GUI websocket disconnected")
+ logger.debug("GUI websocket disconnected")
except Exception as e:
- print("ERROR in gui websocket: ", e)
+ logger.debug(f"ERROR in gui websocket: {e}")
posthog_logger.capture_event("gui_error", {
"error_title": e.__str__() or e.__repr__(), "error_message": '\n'.join(traceback.format_exception(e))})
raise e
finally:
- print("Closing gui websocket")
+ logger.debug("Closing gui websocket")
if websocket.client_state != WebSocketState.DISCONNECTED:
await websocket.close()
diff --git a/continuedev/src/continuedev/server/ide.py b/continuedev/src/continuedev/server/ide.py
index e4c2d714..8a269cb7 100644
--- a/continuedev/src/continuedev/server/ide.py
+++ b/continuedev/src/continuedev/server/ide.py
@@ -19,6 +19,7 @@ from .gui import session_manager
from .ide_protocol import AbstractIdeProtocolServer
from ..libs.util.create_async_task import create_async_task
from .session_manager import SessionManager
+from ..libs.util.logging import logger
import nest_asyncio
nest_asyncio.apply()
@@ -37,7 +38,7 @@ class AppStatus:
@staticmethod
def handle_exit(*args, **kwargs):
AppStatus.should_exit = True
- print("Shutting down")
+ logger.debug("Shutting down")
original_handler(*args, **kwargs)
@@ -140,7 +141,7 @@ class IdeProtocolServer(AbstractIdeProtocolServer):
continue
message_type = message["messageType"]
data = message["data"]
- print("Received message while initializing", message_type)
+ logger.debug(f"Received message while initializing {message_type}")
if message_type == "workspaceDirectory":
self.workspace_directory = data["workspaceDirectory"]
elif message_type == "uniqueId":
@@ -154,9 +155,10 @@ class IdeProtocolServer(AbstractIdeProtocolServer):
async def _send_json(self, message_type: str, data: Any):
if self.websocket.application_state == WebSocketState.DISCONNECTED:
- print("Tried to send message, but websocket is disconnected", message_type)
+ logger.debug(
+ f"Tried to send message, but websocket is disconnected: {message_type}")
return
- print("Sending IDE message: ", message_type)
+ logger.debug(f"Sending IDE message: {message_type}")
await self.websocket.send_json({
"messageType": message_type,
"data": data
@@ -167,7 +169,7 @@ class IdeProtocolServer(AbstractIdeProtocolServer):
return await asyncio.wait_for(self.sub_queue.get(message_type), timeout=timeout)
except asyncio.TimeoutError:
raise Exception(
- "IDE Protocol _receive_json timed out after 20 seconds", message_type)
+ f"IDE Protocol _receive_json timed out after 20 seconds: {message_type}")
async def _send_and_receive_json(self, data: Any, resp_model: Type[T], message_type: str) -> T:
await self._send_json(message_type, data)
@@ -354,7 +356,7 @@ class IdeProtocolServer(AbstractIdeProtocolServer):
}, GetUserSecretResponse, "getUserSecret")
return resp.value
except Exception as e:
- print("Error getting user secret", e)
+ logger.debug(f"Error getting user secret: {e}")
return ""
async def saveFile(self, filepath: str):
@@ -437,15 +439,15 @@ class IdeProtocolServer(AbstractIdeProtocolServer):
async def websocket_endpoint(websocket: WebSocket, session_id: str = None):
try:
await websocket.accept()
- print("Accepted websocket connection from, ", websocket.client)
+ logger.debug(f"Accepted websocket connection from {websocket.client}")
await websocket.send_json({"messageType": "connected", "data": {}})
# Start meilisearch
try:
await start_meilisearch()
except Exception as e:
- print("Failed to start MeiliSearch")
- print(e)
+ logger.debug("Failed to start MeiliSearch")
+ logger.debug(e)
def handle_msg(msg):
message = json.loads(msg)
@@ -455,7 +457,7 @@ async def websocket_endpoint(websocket: WebSocket, session_id: str = None):
message_type = message["messageType"]
data = message["data"]
- print("Received IDE message: ", message_type)
+ logger.debug(f"Received IDE message: {message_type}")
create_async_task(
ideProtocolServer.handle_json(message_type, data))
@@ -473,16 +475,16 @@ async def websocket_endpoint(websocket: WebSocket, session_id: str = None):
message = await websocket.receive_text()
handle_msg(message)
- print("Closing ide websocket")
+ logger.debug("Closing ide websocket")
except WebSocketDisconnect as e:
- print("IDE wbsocket disconnected")
+ logger.debug("IDE wbsocket disconnected")
except Exception as e:
- print("Error in ide websocket: ", e)
+ logger.debug(f"Error in ide websocket: {e}")
posthog_logger.capture_event("gui_error", {
"error_title": e.__str__() or e.__repr__(), "error_message": '\n'.join(traceback.format_exception(e))})
raise e
finally:
- print("Closing ide websocket")
+ logger.debug("Closing ide websocket")
if websocket.client_state != WebSocketState.DISCONNECTED:
await websocket.close()
diff --git a/continuedev/src/continuedev/server/main.py b/continuedev/src/continuedev/server/main.py
index 1c7a135c..13f6b840 100644
--- a/continuedev/src/continuedev/server/main.py
+++ b/continuedev/src/continuedev/server/main.py
@@ -15,6 +15,7 @@ from .ide import router as ide_router
from .gui import router as gui_router
from .session_manager import session_manager
from ..libs.util.paths import getLogFilePath
+from ..libs.util.logging import logger
app = FastAPI()
@@ -33,7 +34,7 @@ app.add_middleware(
@app.get("/health")
def health():
- print("Health check")
+ logger.debug("Health check")
return {"status": "ok"}
@@ -56,31 +57,6 @@ class Logger(object):
return False
-def setup_logging():
- log_path = getLogFilePath()
- LOG_CONFIG = {
- 'version': 1,
- 'disable_existing_loggers': False,
- 'handlers': {
- 'file': {
- 'level': 'DEBUG',
- 'class': 'logging.FileHandler',
- 'filename': log_path,
- },
- },
- 'root': {
- 'level': 'DEBUG',
- 'handlers': ['file']
- }
- }
-
- logger = Logger(log_path)
- print(f"Log path: {log_path}")
- # sys.stdout = logger
- # sys.stderr = logger
- print("Testing logs")
-
-
try:
# add cli arg for server port
parser = argparse.ArgumentParser()
@@ -88,21 +64,19 @@ try:
type=int, default=65432)
args = parser.parse_args()
except Exception as e:
- print("Error parsing command line arguments: ", e)
+ logger.debug(f"Error parsing command line arguments: {e}")
raise e
def run_server():
- config = uvicorn.Config(app, host="0.0.0.0", port=args.port,
- # log_config=LOG_CONFIG
- )
+ config = uvicorn.Config(app, host="0.0.0.0", port=args.port)
server = uvicorn.Server(config)
server.run()
async def cleanup_coroutine():
- print("Cleaning up sessions")
+ logger.debug("Cleaning up sessions")
for session_id in session_manager.sessions:
await session_manager.persist_session(session_id)
@@ -121,7 +95,7 @@ def cpu_usage_report():
time.sleep(1)
# Call cpu_percent again to get the CPU usage over the interval
cpu_usage = process.cpu_percent(interval=None)
- print(f"CPU usage: {cpu_usage}%")
+ logger.debug(f"CPU usage: {cpu_usage}%")
atexit.register(cleanup)
@@ -139,9 +113,8 @@ if __name__ == "__main__":
# cpu_thread = threading.Thread(target=cpu_usage_loop)
# cpu_thread.start()
- setup_logging()
run_server()
except Exception as e:
- print("Error starting Continue server: ", e)
+ logger.debug(f"Error starting Continue server: {e}")
cleanup()
raise e
diff --git a/continuedev/src/continuedev/server/meilisearch_server.py b/continuedev/src/continuedev/server/meilisearch_server.py
index 00f692f5..7f460afc 100644
--- a/continuedev/src/continuedev/server/meilisearch_server.py
+++ b/continuedev/src/continuedev/server/meilisearch_server.py
@@ -5,6 +5,7 @@ import subprocess
from meilisearch_python_async import Client
from ..libs.util.paths import getServerFolderPath
+from ..libs.util.logging import logger
def ensure_meilisearch_installed() -> bool:
@@ -39,7 +40,7 @@ def ensure_meilisearch_installed() -> bool:
shutil.rmtree(p, ignore_errors=True)
# Download MeiliSearch
- print("Downloading MeiliSearch...")
+ logger.debug("Downloading MeiliSearch...")
subprocess.run(
f"curl -L https://install.meilisearch.com | sh", shell=True, check=True, cwd=serverPath)
@@ -82,6 +83,6 @@ async def start_meilisearch():
# Check if MeiliSearch is running
if not await check_meilisearch_running() or not was_already_installed:
- print("Starting MeiliSearch...")
+ logger.debug("Starting MeiliSearch...")
subprocess.Popen(["./meilisearch", "--no-analytics"], cwd=serverPath, stdout=subprocess.DEVNULL,
stderr=subprocess.STDOUT, close_fds=True, start_new_session=True)
diff --git a/continuedev/src/continuedev/server/session_manager.py b/continuedev/src/continuedev/server/session_manager.py
index 511dc070..d30411cd 100644
--- a/continuedev/src/continuedev/server/session_manager.py
+++ b/continuedev/src/continuedev/server/session_manager.py
@@ -15,6 +15,7 @@ from ..core.autopilot import Autopilot
from .ide_protocol import AbstractIdeProtocolServer
from ..libs.util.create_async_task import create_async_task
from ..libs.util.errors import SessionNotFound
+from ..libs.util.logging import logger
class Session:
@@ -61,7 +62,7 @@ class SessionManager:
return self.sessions[session_id]
async def new_session(self, ide: AbstractIdeProtocolServer, session_id: Union[str, None] = None) -> Session:
- print("New session: ", session_id)
+ logger.debug(f"New session: {session_id}")
full_state = None
if session_id is not None and os.path.exists(getSessionFilePath(session_id)):
@@ -86,7 +87,7 @@ class SessionManager:
return session
async def remove_session(self, session_id: str):
- print("Removing session: ", session_id)
+ logger.debug(f"Removing session: {session_id}")
if session_id in self.sessions:
if session_id in self.registered_ides:
ws_to_close = self.registered_ides[session_id].websocket
@@ -103,13 +104,13 @@ class SessionManager:
def register_websocket(self, session_id: str, ws: WebSocket):
self.sessions[session_id].ws = ws
- print("Registered websocket for session", session_id)
+ logger.debug(f"Registered websocket for session {session_id}")
async def send_ws_data(self, session_id: str, message_type: str, data: Any):
if session_id not in self.sessions:
raise SessionNotFound(f"Session {session_id} not found")
if self.sessions[session_id].ws is None:
- # print(f"Session {session_id} has no websocket")
+ # logger.debug(f"Session {session_id} has no websocket")
return
await self.sessions[session_id].ws.send_json({
diff --git a/extension/package-lock.json b/extension/package-lock.json
index 8380ab3e..34a8671b 100644
--- a/extension/package-lock.json
+++ b/extension/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "continue",
- "version": "0.0.218",
+ "version": "0.0.219",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "continue",
- "version": "0.0.218",
+ "version": "0.0.219",
"license": "Apache-2.0",
"dependencies": {
"@electron/rebuild": "^3.2.10",
diff --git a/extension/package.json b/extension/package.json
index 893d7822..ceaff7d9 100644
--- a/extension/package.json
+++ b/extension/package.json
@@ -14,7 +14,7 @@
"displayName": "Continue",
"pricing": "Free",
"description": "The open-source coding autopilot",
- "version": "0.0.218",
+ "version": "0.0.219",
"publisher": "Continue",
"engines": {
"vscode": "^1.67.0"