From 21890a3bb66e9688ee0e579954b8abe0ea5c576f Mon Sep 17 00:00:00 2001 From: Zhe Yu Date: Wed, 21 May 2025 10:19:17 +0800 Subject: [PATCH] fix(cli): make sure `db_url` is updated after starting bundled chroma --- src/vectorcode/common.py | 7 +++++-- tests/test_common.py | 1 + 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/vectorcode/common.py b/src/vectorcode/common.py index 4a5ea3ab..8ebe5ba5 100644 --- a/src/vectorcode/common.py +++ b/src/vectorcode/common.py @@ -84,7 +84,9 @@ async def start_server(configs: Config): with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: s.bind(("", 0)) # OS selects a free ephemeral port port = int(s.getsockname()[1]) - logger.warning(f"Starting bundled ChromaDB server at http://127.0.0.1:{port}.") + + server_url = f"http://127.0.0.1:{port}" + logger.warning(f"Starting bundled ChromaDB server at {server_url}.") env.update({"ANONYMIZED_TELEMETRY": "False"}) process = await asyncio.create_subprocess_exec( sys.executable, @@ -104,7 +106,8 @@ async def start_server(configs: Config): env=env, ) - await wait_for_server(f"http://127.0.0.1:{port}") + await wait_for_server(server_url) + configs.db_url = server_url return process diff --git a/tests/test_common.py b/tests/test_common.py index 8f49d70c..16382ad2 100644 --- a/tests/test_common.py +++ b/tests/test_common.py @@ -463,6 +463,7 @@ def _new_isdir(path): assert kwargs["stdout"] == subprocess.DEVNULL assert kwargs["stderr"] == sys.stderr assert "ANONYMIZED_TELEMETRY" in kwargs["env"] + assert config.db_url == "http://127.0.0.1:12345" MockWaitForServer.assert_called_once_with("http://127.0.0.1:12345")