summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNate Sesti <sestinj@gmail.com>2023-08-01 14:42:48 -0700
committerNate Sesti <sestinj@gmail.com>2023-08-01 14:42:48 -0700
commitfa34214012d14385d231a1ac4f16006aaf4331fb (patch)
tree7b9142f7b90fd6ea1908190381af812439dee03f
parent74a52c8399b3ccf2d2100b088b79e65c6ca6ad7e (diff)
downloadsncontinue-fa34214012d14385d231a1ac4f16006aaf4331fb.tar.gz
sncontinue-fa34214012d14385d231a1ac4f16006aaf4331fb.tar.bz2
sncontinue-fa34214012d14385d231a1ac4f16006aaf4331fb.zip
fix: :bug: fix bugs when selecting code to edit
-rw-r--r--continuedev/src/continuedev/core/autopilot.py7
-rw-r--r--continuedev/src/continuedev/server/gui.py8
-rw-r--r--continuedev/src/continuedev/server/ide.py4
-rw-r--r--continuedev/src/continuedev/server/main.py45
-rw-r--r--extension/react-app/src/components/PillButton.tsx4
-rw-r--r--extension/react-app/src/hooks/AbstractContinueGUIClientProtocol.ts2
-rw-r--r--extension/react-app/src/hooks/ContinueGUIClientProtocol.ts4
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 {