mirror of
https://github.com/openswarm-ai/openswarm.git
synced 2026-09-09 11:17:44 +02:00
[eric] analytics: group into service/analytics/ subpackage (linter folder-fix), rewire imports, trim ws_manager comment
This commit is contained in:
@@ -90,12 +90,10 @@ class ConnectionManager:
|
||||
if event == "agent:status" and data.get("status") in TERMINAL_STATUSES:
|
||||
seq_log.persist_terminal(session_id, payload_str)
|
||||
|
||||
# Mirror every discrete agent message into swarm-analytics. Outside the
|
||||
# stamp lock (fire-and-forget; must not gate the broadcast). Replays use
|
||||
# ws.send_text directly, not this path, so reconnects don't double-count.
|
||||
# Outside the stamp lock so analytics can't gate the broadcast; replays go via ws.send_text, so reconnects don't double-count.
|
||||
if event == "agent:message":
|
||||
try:
|
||||
from backend.apps.service.analytics_agent_bridge import bridge_agent_message, BroadcastMessage
|
||||
from backend.apps.service.analytics.agent_bridge import bridge_agent_message, BroadcastMessage
|
||||
bridge_agent_message(session_id, BroadcastMessage.model_validate(data.get("message") or {}))
|
||||
except Exception:
|
||||
logger.debug("agent:message analytics bridge failed", exc_info=True)
|
||||
|
||||
@@ -147,7 +147,7 @@ class AgentLaunchMixin:
|
||||
})
|
||||
|
||||
try:
|
||||
from backend.apps.service.analytics import track_agent_created
|
||||
from backend.apps.service.analytics.client import track_agent_created
|
||||
track_agent_created(id=session.id, dashboard_id=session.dashboard_id)
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
@@ -95,7 +95,7 @@ async def generate_title(session: Optional[AgentSession], session_id: str, first
|
||||
"name": title,
|
||||
})
|
||||
try:
|
||||
from backend.apps.service.analytics import track_agent_title
|
||||
from backend.apps.service.analytics.client import track_agent_title
|
||||
track_agent_title(id=session_id, title=title)
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
@@ -78,7 +78,7 @@ def p_sync_identity_to_service(settings_obj) -> None:
|
||||
logger.debug("identify sync failed: %s", e)
|
||||
if email:
|
||||
try:
|
||||
from backend.apps.service.analytics import track_link_email
|
||||
from backend.apps.service.analytics.client import track_link_email
|
||||
track_link_email(email)
|
||||
except Exception as e:
|
||||
logger.debug("analytics link_email sync failed: %s", e)
|
||||
|
||||
@@ -137,7 +137,7 @@ async def create_dashboard(body: DashboardCreate):
|
||||
dashboard = Dashboard(name=body.name)
|
||||
save(dashboard)
|
||||
try:
|
||||
from backend.apps.service.analytics import track_dashboard_event
|
||||
from backend.apps.service.analytics.client import track_dashboard_event
|
||||
track_dashboard_event(dashboard_id=dashboard.id, action="create")
|
||||
except Exception:
|
||||
pass
|
||||
@@ -458,7 +458,7 @@ async def delete_dashboard(dashboard_id: str):
|
||||
|
||||
p_delete(dashboard_id)
|
||||
try:
|
||||
from backend.apps.service.analytics import track_dashboard_event
|
||||
from backend.apps.service.analytics.client import track_dashboard_event
|
||||
track_dashboard_event(dashboard_id=dashboard_id, action="delete")
|
||||
except Exception:
|
||||
pass
|
||||
@@ -565,7 +565,7 @@ async def duplicate_dashboard(dashboard_id: str):
|
||||
atomic_write_json(os.path.join(DATA_DIR, f"{new_id}.json"), new_dashboard)
|
||||
|
||||
try:
|
||||
from backend.apps.service.analytics import track_dashboard_event
|
||||
from backend.apps.service.analytics.client import track_dashboard_event
|
||||
track_dashboard_event(dashboard_id=new_id, action="create")
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
+1
-1
@@ -13,7 +13,7 @@ from pydantic import BaseModel, ConfigDict
|
||||
from typeguard import typechecked
|
||||
|
||||
from backend.apps.agents.core.models import AgentSession
|
||||
from backend.apps.service.analytics import track_agent_message
|
||||
from backend.apps.service.analytics.client import track_agent_message
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
+1
-1
@@ -11,7 +11,7 @@ from typing import Optional
|
||||
from pydantic import BaseModel, ConfigDict
|
||||
from typeguard import typechecked
|
||||
|
||||
from backend.apps.service.analytics import (
|
||||
from backend.apps.service.analytics.client import (
|
||||
persist_client_env,
|
||||
track_app_opened,
|
||||
track_dashboard_event,
|
||||
@@ -191,7 +191,7 @@ async def service_lifespan():
|
||||
svc.sync({"identity": id_props})
|
||||
|
||||
# First-boot log write doubles as the token-registration trigger.
|
||||
from backend.apps.service.analytics import get_analytics_client, track_link_email
|
||||
from backend.apps.service.analytics.client import get_analytics_client, track_link_email
|
||||
analytics_client = get_analytics_client()
|
||||
if analytics_client is not None:
|
||||
try:
|
||||
@@ -251,7 +251,7 @@ async def service_lifespan():
|
||||
|
||||
# Flush before the process exits or buffered events are lost.
|
||||
try:
|
||||
from backend.apps.service.analytics import track_app_closed, shutdown_analytics
|
||||
from backend.apps.service.analytics.client import track_app_closed, shutdown_analytics
|
||||
track_app_closed()
|
||||
shutdown_analytics()
|
||||
except Exception:
|
||||
@@ -444,7 +444,7 @@ async def service_status():
|
||||
|
||||
def p_bridge_to_analytics(item: dict) -> None:
|
||||
# Boundary adapter: validate the raw report() envelope into a typed event, hand it to the analytics bridge.
|
||||
from backend.apps.service.analytics_frontend_bridge import bridge_frontend_event, FrontendEvent
|
||||
from backend.apps.service.analytics.frontend_bridge import bridge_frontend_event, FrontendEvent
|
||||
try:
|
||||
bridge_frontend_event(FrontendEvent.model_validate(item))
|
||||
except Exception:
|
||||
|
||||
@@ -266,7 +266,7 @@ async def apply_settings_update(body: AppSettings, protect_fields: set[str] | No
|
||||
if id_props:
|
||||
p_identify(id_props)
|
||||
if body.user_email:
|
||||
from backend.apps.service.analytics import track_link_email
|
||||
from backend.apps.service.analytics.client import track_link_email
|
||||
track_link_email(body.user_email)
|
||||
|
||||
await save_settings_async(body)
|
||||
|
||||
@@ -140,6 +140,7 @@
|
||||
"backend/apps/agents/manager/streaming",
|
||||
"backend/apps/outputs",
|
||||
"backend/apps/tools_lib",
|
||||
"backend/apps/service",
|
||||
"backend/tests",
|
||||
"frontend/src/shared",
|
||||
"frontend/src/shared/state",
|
||||
|
||||
Reference in New Issue
Block a user