Merge pull request #1311 from oraios/usage-data

Collect basic usage data
This commit is contained in:
Dr. Dominik Jain authored and GitHub committed 2026-04-10 22:33:14 +02:00
commit f3f1e0fd15
2 files changed
+23 -2

No files matched your search

+5 -2
View File
@@ -6,9 +6,12 @@ Status of the `main` branch. Changes prior to the next official version change w
- Added `serena init` and `serena setup` commands
- **Major**: added commands for hooks and documentation on recommended setup. Consider setting up the [recommended hooks](https://oraios.github.io/serena/02-usage/030_clients.html) !
- Reworked installation instructions, switching to releases on pypi for distribution. Please update your mcp startup commands!
- 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)
- Added Crystal language support (uses [Crystalline](https://github.com/elbywan/crystalline) language server)
* JetBrains:
- `JetBrainsFindReferencingSymbolTool`: Include context lines (when using plugin version 2023.2.15+)
* Dashboard:
@@ -18,7 +21,7 @@ Status of the `main` branch. Changes prior to the next official version change w
* Fixes:
- Fix reactivation of the same project restarting language servers #1280
- Fix git commit id in version
- Fix git commit id in version string
- Fix manual server shutdown triggered by GUI tool/dashboard not cleaning everything up.
# 1.0.0
+18
View File
@@ -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,