fix(telemetry): avoid global plugin enumeration in workspace snapshots and support model adapters

This commit is contained in:
RockChinQ
2026-10-02 15:46:28 +00:00
parent 2e5bbc8bdd
commit 17cda1612f
4 changed files with 34 additions and 4 deletions
+2 -2
View File
@@ -189,10 +189,10 @@ async def build_heartbeat_payload(
cloud_counter=lambda: len(ap.platform_mgr._bots_by_key),
)
# Plugin count (from plugin runtime)
# Scoped Cloud counts are already available; never issue tenantless RPCs.
try:
plugin_connector = getattr(ap, 'plugin_connector', None)
if plugin_connector is not None:
if workspace_resource is None and plugin_connector is not None:
plugins = await plugin_connector.list_plugins()
features['plugin_count'] = len(plugins)
except Exception:
+4 -2
View File
@@ -117,5 +117,7 @@ def observe_adapter(ap, context, adapter):
return wrapped
setattr(adapter, name, make_wrapper(original, name))
setattr(adapter, '_execution_observed', True)
# Adapters are Pydantic models: method instrumentation is not a model
# field assignment. Keep wrappers instance-local, never on the class.
object.__setattr__(adapter, name, make_wrapper(original, name))
object.__setattr__(adapter, '_execution_observed', True)