diff --git a/parallel_orchestrator.py b/parallel_orchestrator.py index fc7fe7a..419e093 100644 --- a/parallel_orchestrator.py +++ b/parallel_orchestrator.py @@ -194,6 +194,7 @@ class ParallelOrchestrator: # Legacy alias for backward compatibility self.running_agents = self.running_coding_agents self.abort_events: dict[int, threading.Event] = {} + self._testing_session_counter = 0 self.is_running = False # Track feature failures to prevent infinite retry loops @@ -846,7 +847,7 @@ class ParallelOrchestrator: "encoding": "utf-8", "errors": "replace", "cwd": str(self.project_dir), # Run from project dir so CLI creates .claude/ in project - "env": {**os.environ, "PYTHONUNBUFFERED": "1", "NODE_COMPILE_CACHE": ""}, + "env": {**os.environ, "PYTHONUNBUFFERED": "1", "NODE_COMPILE_CACHE": "", "PLAYWRIGHT_CLI_SESSION": f"coding-{feature_id}"}, } if sys.platform == "win32": popen_kwargs["creationflags"] = subprocess.CREATE_NO_WINDOW @@ -909,7 +910,7 @@ class ParallelOrchestrator: "encoding": "utf-8", "errors": "replace", "cwd": str(self.project_dir), # Run from project dir so CLI creates .claude/ in project - "env": {**os.environ, "PYTHONUNBUFFERED": "1", "NODE_COMPILE_CACHE": ""}, + "env": {**os.environ, "PYTHONUNBUFFERED": "1", "NODE_COMPILE_CACHE": "", "PLAYWRIGHT_CLI_SESSION": f"coding-{primary_id}"}, } if sys.platform == "win32": popen_kwargs["creationflags"] = subprocess.CREATE_NO_WINDOW @@ -1013,8 +1014,9 @@ class ParallelOrchestrator: "encoding": "utf-8", "errors": "replace", "cwd": str(self.project_dir), # Run from project dir so CLI creates .claude/ in project - "env": {**os.environ, "PYTHONUNBUFFERED": "1", "NODE_COMPILE_CACHE": ""}, + "env": {**os.environ, "PYTHONUNBUFFERED": "1", "NODE_COMPILE_CACHE": "", "PLAYWRIGHT_CLI_SESSION": f"testing-{self._testing_session_counter}"}, } + self._testing_session_counter += 1 if sys.platform == "win32": popen_kwargs["creationflags"] = subprocess.CREATE_NO_WINDOW