feat(api): Implement EventManager error logging and add coverage (#29204)

- Ensure `EventManager._notify_layers` logs exceptions instead of silently swallowing them 
  so GraphEngine layer failures surface for debugging
- Introduce unit tests to assert the logger captures the runtime error when collecting events
- Enable the `S110` lint rule to catch `try-except-pass` patterns
- Add proper error logging for existing `try-except-pass` blocks.
This commit is contained in:
QuantumGhost
2025-12-08 09:40:40 +08:00
committed by GitHub
parent a25faa334a
commit 91667e3c1d
15 changed files with 103 additions and 33 deletions

View File

@@ -211,7 +211,7 @@ class AppService:
# override tool parameters
tool["tool_parameters"] = masked_parameter
except Exception:
pass
logger.exception("Failed to mask agent tool parameters for tool %s", agent_tool_entity.tool_name)
# override agent mode
if model_config:

View File

@@ -1,4 +1,5 @@
import json
import logging
from collections.abc import Mapping
from datetime import datetime
from typing import Any
@@ -19,6 +20,8 @@ from models.tools import WorkflowToolProvider
from models.workflow import Workflow
from services.tools.tools_transform_service import ToolTransformService
logger = logging.getLogger(__name__)
class WorkflowToolManageService:
"""
@@ -198,7 +201,7 @@ class WorkflowToolManageService:
tools.append(ToolTransformService.workflow_provider_to_controller(provider))
except Exception:
# skip deleted tools
pass
logger.exception("Failed to load workflow tool provider %s", provider.id)
labels = ToolLabelManager.get_tools_labels([t for t in tools if isinstance(t, ToolProviderController)])