diff --git a/UnityMcpBridge/UnityMcpServer~/src/telemetry.py b/UnityMcpBridge/UnityMcpServer~/src/telemetry.py index fd9e82c..bc62b95 100644 --- a/UnityMcpBridge/UnityMcpServer~/src/telemetry.py +++ b/UnityMcpBridge/UnityMcpServer~/src/telemetry.py @@ -192,9 +192,13 @@ class TelemetryCollector: def _save_milestones(self): """Save milestones to disk""" try: - self.config.milestones_file.write_text(json.dumps(self._milestones, indent=2)) - except Exception as e: - logger.warning(f"Failed to save milestones: {e}") + with self._lock: + self.config.milestones_file.write_text( + json.dumps(self._milestones, indent=2), + encoding="utf-8", + ) + except OSError as e: + logger.warning(f"Failed to save milestones: {e}", exc_info=True) def record_milestone(self, milestone: MilestoneType, data: Optional[Dict[str, Any]] = None) -> bool: """Record a milestone event, returns True if this is the first occurrence""" diff --git a/tests/conftest.py b/tests/conftest.py new file mode 100644 index 0000000..a839e9c --- /dev/null +++ b/tests/conftest.py @@ -0,0 +1,8 @@ +import os + +# Ensure telemetry is disabled during test collection and execution to avoid +# any background network or thread startup that could slow or block pytest. +os.environ.setdefault("DISABLE_TELEMETRY", "true") +os.environ.setdefault("UNITY_MCP_DISABLE_TELEMETRY", "true") +os.environ.setdefault("MCP_DISABLE_TELEMETRY", "true") +