diff --git a/core/dispatcher.py b/core/dispatcher.py index e4164c7..df4ae58 100644 --- a/core/dispatcher.py +++ b/core/dispatcher.py @@ -2,7 +2,6 @@ import logging import re -import os import subprocess from abc import ABC, abstractmethod from typing import Any, Callable @@ -677,55 +676,44 @@ class AgentDispatcher: workspace = WorkspaceManager() repo_path = workspace.get_repo_path(repo) - original_cwd = os.getcwd() - changed_dir = False - if os.path.isdir(str(repo_path)): - os.chdir(str(repo_path)) - changed_dir = True - results: list[str] = [] + # Get authenticated username for reviewer filter + ai_username = "meeks-ai" try: - # Get authenticated username for reviewer filter - ai_username = "meeks-ai" - try: - user = self._client.get_authenticated_user() - if user: - ai_username = user.login - except Exception: - pass + user = self._client.get_authenticated_user() + if user: + ai_username = user.login + except Exception: + pass - for item in work_items: - processor: TaskProcessor - if item.task_type == "pr": - processor = PRTaskProcessor( - client=self._client, - tools=self._tools, - model_name=self._model_name, - repo=repo, - item=item, - ai_username=ai_username, - ) - elif item.task_type == "issue": - processor = IssueTaskProcessor( - client=self._client, - tools=self._tools, - model_name=self._model_name, - repo=repo, - item=item, - ai_username=ai_username, - ) - else: - logger.warning(f"Unknown task type: {item.task_type}") - results.append(f"SKIP: Unknown task type {item.task_type}") - continue + for item in work_items: + processor: TaskProcessor + if item.task_type == "pr": + processor = PRTaskProcessor( + client=self._client, + tools=self._tools, + model_name=self._model_name, + repo=repo, + item=item, + ai_username=ai_username, + ) + elif item.task_type == "issue": + processor = IssueTaskProcessor( + client=self._client, + tools=self._tools, + model_name=self._model_name, + repo=repo, + item=item, + ai_username=ai_username, + ) + else: + logger.warning(f"Unknown task type: {item.task_type}") + results.append(f"SKIP: Unknown task type {item.task_type}") + continue - logger.info(f"Processing {item.task_type} #{item.task_number} via {processor.__class__.__name__}") - result = await processor.process(attempt_limit=self._max_retries) - results.append(result) - - finally: - if changed_dir: - os.chdir(original_cwd) + logger.info(f"Processing {item.task_type} #{item.task_number} via {processor.__class__.__name__}") + result = await processor.process(attempt_limit=self._max_retries) + results.append(result) return results diff --git a/tests/test_best_practices.py b/tests/test_best_practices.py index 91a4142..4b5f591 100644 --- a/tests/test_best_practices.py +++ b/tests/test_best_practices.py @@ -137,9 +137,7 @@ async def test_dispatch_planning_and_coding_phases(mock_planning_class: MagicMoc priority=0 ) - # We mock os.path.isdir to return True so os.chdir won't fail or crash in test - with patch("os.path.isdir", return_value=True), patch("os.chdir"): - results = await dispatcher.dispatch("meeks/repo1", [work_item]) + results = await dispatcher.dispatch("meeks/repo1", [work_item]) assert len(results) == 1 assert results[0] == "PR #1 Created"