diff options
author | Nate Sesti <sestinj@gmail.com> | 2023-08-01 14:42:48 -0700 |
---|---|---|
committer | Nate Sesti <sestinj@gmail.com> | 2023-08-01 14:42:48 -0700 |
commit | fa34214012d14385d231a1ac4f16006aaf4331fb (patch) | |
tree | 7b9142f7b90fd6ea1908190381af812439dee03f | |
parent | 74a52c8399b3ccf2d2100b088b79e65c6ca6ad7e (diff) | |
download | sncontinue-fa34214012d14385d231a1ac4f16006aaf4331fb.tar.gz sncontinue-fa34214012d14385d231a1ac4f16006aaf4331fb.tar.bz2 sncontinue-fa34214012d14385d231a1ac4f16006aaf4331fb.zip |
fix: :bug: fix bugs when selecting code to edit
7 files changed, 18 insertions, 56 deletions
diff --git a/continuedev/src/continuedev/core/autopilot.py b/continuedev/src/continuedev/core/autopilot.py index 99b9185f..0b296432 100644 --- a/continuedev/src/continuedev/core/autopilot.py +++ b/continuedev/src/continuedev/core/autopilot.py @@ -1,7 +1,7 @@ from functools import cached_property import traceback import time -from typing import Any, Callable, Coroutine, Dict, List, Union +from typing import Callable, Coroutine, Dict, List, Union from aiohttp import ClientPayloadError from pydantic import root_validator @@ -66,6 +66,8 @@ class Autopilot(ContinueBaseModel): _user_input_queue = AsyncSubscriptionQueue() _retry_queue = AsyncSubscriptionQueue() + started: bool = False + async def start(self): self.continue_sdk = await ContinueSDK.create(self) if override_policy := self.continue_sdk.config.policy_override: @@ -79,6 +81,7 @@ class Autopilot(ContinueBaseModel): ]) await self.context_manager.load_index(self.ide.workspace_directory) + self.started = True class Config: arbitrary_types_allowed = True @@ -201,7 +204,7 @@ class Autopilot(ContinueBaseModel): await self.update_subscribers() async def set_editing_at_ids(self, ids: List[str]): - self.context_manager.context_providers["code"].set_editing_at_ids(ids) + await self.context_manager.context_providers["code"].set_editing_at_ids(ids) await self.update_subscribers() async def _run_singular_step(self, step: "Step", is_future_step: bool = False) -> Coroutine[Observation, None, None]: diff --git a/continuedev/src/continuedev/server/gui.py b/continuedev/src/continuedev/server/gui.py index 57ecceb2..7c89c5c2 100644 --- a/continuedev/src/continuedev/server/gui.py +++ b/continuedev/src/continuedev/server/gui.py @@ -93,8 +93,8 @@ class GUIProtocolServer(AbstractGUIProtocolServer): self.on_delete_context_with_ids(data["ids"]) elif message_type == "toggle_adding_highlighted_code": self.on_toggle_adding_highlighted_code() - elif message_type == "set_editing_at_indices": - self.on_set_editing_at_indices(data["indices"]) + elif message_type == "set_editing_at_ids": + self.on_set_editing_at_ids(data["ids"]) elif message_type == "show_logs_at_index": self.on_show_logs_at_index(data["index"]) elif message_type == "select_context_item": @@ -138,9 +138,9 @@ class GUIProtocolServer(AbstractGUIProtocolServer): create_async_task( self.session.autopilot.toggle_adding_highlighted_code(), self.on_error) - def on_set_editing_at_indices(self, indices: List[int]): + def on_set_editing_at_ids(self, ids: List[str]): create_async_task( - self.session.autopilot.set_editing_at_indices(indices), self.on_error) + self.session.autopilot.set_editing_at_ids(ids), self.on_error) def on_show_logs_at_index(self, index: int): name = f"continue_logs.txt" diff --git a/continuedev/src/continuedev/server/ide.py b/continuedev/src/continuedev/server/ide.py index b026f4f2..9797a8b7 100644 --- a/continuedev/src/continuedev/server/ide.py +++ b/continuedev/src/continuedev/server/ide.py @@ -309,7 +309,9 @@ class IdeProtocolServer(AbstractIdeProtocolServer): def __get_autopilot(self): if self.session_id not in self.session_manager.sessions: return None - return self.session_manager.sessions[self.session_id].autopilot + + autopilot = self.session_manager.sessions[self.session_id].autopilot + return autopilot if autopilot.started else None def onFileEdits(self, edits: List[FileEditWithFullContents]): if autopilot := self.__get_autopilot(): diff --git a/continuedev/src/continuedev/server/main.py b/continuedev/src/continuedev/server/main.py index 468bc855..f8dfb009 100644 --- a/continuedev/src/continuedev/server/main.py +++ b/continuedev/src/continuedev/server/main.py @@ -1,5 +1,4 @@ import asyncio -import sys import time import psutil import os @@ -8,13 +7,11 @@ from fastapi.middleware.cors import CORSMiddleware import atexit import uvicorn import argparse -import logging.config 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() @@ -38,25 +35,6 @@ def health(): return {"status": "ok"} -class Logger(object): - def __init__(self, log_file: str): - self.terminal = sys.stdout - self.log = open(log_file, "a") - - def write(self, message): - self.terminal.write(message) - self.log.write(message) - - def flush(self): - # this flush method is needed for python 3 compatibility. - # this handles the flush command by doing nothing. - # you might want to specify some extra behavior here. - pass - - def isatty(self): - return False - - try: # add cli arg for server port parser = argparse.ArgumentParser() @@ -71,7 +49,6 @@ except Exception as e: def run_server(): config = uvicorn.Config(app, host="127.0.0.1", port=args.port) server = uvicorn.Server(config) - server.run() @@ -87,32 +64,10 @@ def cleanup(): loop.close() -def cpu_usage_report(): - process = psutil.Process(os.getpid()) - # Call cpu_percent once to start measurement, but ignore the result - process.cpu_percent(interval=None) - # Wait for a short period of time - time.sleep(1) - # Call cpu_percent again to get the CPU usage over the interval - cpu_usage = process.cpu_percent(interval=None) - logger.debug(f"CPU usage: {cpu_usage}%") - - atexit.register(cleanup) if __name__ == "__main__": try: - # Uncomment to get CPU usage reports - # import threading - - # def cpu_usage_loop(): - # while True: - # cpu_usage_report() - # time.sleep(2) - - # cpu_thread = threading.Thread(target=cpu_usage_loop) - # cpu_thread.start() - run_server() except Exception as e: logger.debug(f"Error starting Continue server: {e}") diff --git a/extension/react-app/src/components/PillButton.tsx b/extension/react-app/src/components/PillButton.tsx index e3d05711..0b1aa23d 100644 --- a/extension/react-app/src/components/PillButton.tsx +++ b/extension/react-app/src/components/PillButton.tsx @@ -168,7 +168,9 @@ const PillButton = (props: PillButtonProps) => { data-tooltip-id={`edit-${props.index}`} backgroundColor={"#8800aa55"} onClick={() => { - client?.setEditingAtIndices([props.index]); + client?.setEditingAtIds([ + props.item.description.id.item_id, + ]); }} > <PaintBrush diff --git a/extension/react-app/src/hooks/AbstractContinueGUIClientProtocol.ts b/extension/react-app/src/hooks/AbstractContinueGUIClientProtocol.ts index 8e3735ec..8d8b7b7e 100644 --- a/extension/react-app/src/hooks/AbstractContinueGUIClientProtocol.ts +++ b/extension/react-app/src/hooks/AbstractContinueGUIClientProtocol.ts @@ -23,7 +23,7 @@ abstract class AbstractContinueGUIClientProtocol { abstract deleteContextWithIds(ids: ContextItemId[]): void; - abstract setEditingAtIndices(indices: number[]): void; + abstract setEditingAtIds(ids: string[]): void; abstract toggleAddingHighlightedCode(): void; diff --git a/extension/react-app/src/hooks/ContinueGUIClientProtocol.ts b/extension/react-app/src/hooks/ContinueGUIClientProtocol.ts index 5a5d4c30..b6dd43d9 100644 --- a/extension/react-app/src/hooks/ContinueGUIClientProtocol.ts +++ b/extension/react-app/src/hooks/ContinueGUIClientProtocol.ts @@ -78,8 +78,8 @@ class ContinueGUIClientProtocol extends AbstractContinueGUIClientProtocol { }); } - setEditingAtIndices(indices: number[]) { - this.messenger.send("set_editing_at_indices", { indices }); + setEditingAtIds(ids: string[]) { + this.messenger.send("set_editing_at_ids", { ids }); } toggleAddingHighlightedCode(): void { |