diff --git a/CHANGELOG.md b/CHANGELOG.md index a672fcde..b1a87a1a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,8 @@ Status of the `main` branch. Changes prior to the next official version change will appear here. * General: - - Added `serena init` command + - Add `serena init` command + - Add minimal usage data collection on startup (only Serena version, language backend, OS, dashboard enabled status; no personally identifiable information) * Language Servers: - Added Crystal language support (uses [Crystalline](https://github.com/elbywan/crystalline) language server) diff --git a/src/serena/agent.py b/src/serena/agent.py index f3c4d6ab..57ed1926 100644 --- a/src/serena/agent.py +++ b/src/serena/agent.py @@ -14,6 +14,7 @@ from contextlib import contextmanager from logging import Logger from typing import TYPE_CHECKING, Optional, TypeVar +import requests import webview from sensai.util import logging from sensai.util.logging import LogTime @@ -406,6 +407,23 @@ class SerenaAgent: if self._gui_log_viewer is not None: self._gui_log_viewer.set_dashboard_url(dashboard_url) + self._send_usage_info() + + def _send_usage_info(self): + is_ci = os.getenv("CI") == "true" or os.getenv("GITHUB_ACTIONS") == "true" + if is_ci: + return + params = { + "os": platform.system(), + "dashboard": int(self.serena_config.web_dashboard), + "version": self.version, + "backend": self._language_backend.value, + } + try: + requests.get("https://www.oraios-software.de/serena_usage.php", params=params, timeout=1, verify=False) + except Exception as e: + log.debug(f"Failed to send usage info: {e}") + @classmethod def _create_base_toolset( cls,