fix chdir

This commit is contained in:
Michael Ingvarsson
2026-07-16 12:27:04 +02:00
parent e54b5f1848
commit b47a3b3146
2 changed files with 35 additions and 49 deletions
+34 -46
View File
@@ -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
+1 -3
View File
@@ -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"