From 1c19eea29a95528427395da50827740c768a96ae Mon Sep 17 00:00:00 2001 From: Bill Date: Sun, 2 Nov 2025 23:05:40 -0500 Subject: [PATCH] debug: add comprehensive diagnostic logging for ContextInjector flow Add instrumentation at component boundaries to trace where ContextInjector values become None: - ModelDayExecutor: Log ContextInjector creation and set_context() invocation - BaseAgent.set_context(): Log entry, client creation, tool reload, completion - Includes object IDs to verify instance identity across boundaries Part of systematic debugging investigation for issue #TBD. --- agent/base_agent/base_agent.py | 7 +++++++ api/model_day_executor.py | 3 +++ 2 files changed, 10 insertions(+) diff --git a/agent/base_agent/base_agent.py b/agent/base_agent/base_agent.py index 1cee85d..a6be436 100644 --- a/agent/base_agent/base_agent.py +++ b/agent/base_agent/base_agent.py @@ -232,17 +232,24 @@ class BaseAgent: context_injector: Configured ContextInjector instance with correct signature, today_date, job_id, session_id """ + print(f"[DEBUG] set_context() ENTRY: Received context_injector with signature={context_injector.signature}, date={context_injector.today_date}, job_id={context_injector.job_id}, session_id={context_injector.session_id}") + self.context_injector = context_injector + print(f"[DEBUG] set_context(): Set self.context_injector, id={id(self.context_injector)}") # Recreate MCP client with the interceptor # Note: We need to recreate because MultiServerMCPClient doesn't have add_interceptor() + print(f"[DEBUG] set_context(): Creating new MCP client with interceptor, id={id(context_injector)}") self.client = MultiServerMCPClient( self.mcp_config, tool_interceptors=[context_injector] ) + print(f"[DEBUG] set_context(): MCP client created") # CRITICAL: Reload tools from new client so they use the interceptor + print(f"[DEBUG] set_context(): Reloading tools...") self.tools = await self.client.get_tools() + print(f"[DEBUG] set_context(): Tools reloaded, count={len(self.tools)}") print(f"✅ Context injected: signature={context_injector.signature}, " f"date={context_injector.today_date}, job_id={context_injector.job_id}, " diff --git a/api/model_day_executor.py b/api/model_day_executor.py index ce8beb8..230ee07 100644 --- a/api/model_day_executor.py +++ b/api/model_day_executor.py @@ -140,7 +140,10 @@ class ModelDayExecutor: job_id=self.job_id, session_id=session_id ) + logger.info(f"[DEBUG] ModelDayExecutor: Created ContextInjector with signature={self.model_sig}, date={self.date}, job_id={self.job_id}, session_id={session_id}") + logger.info(f"[DEBUG] ModelDayExecutor: Calling await agent.set_context()") await agent.set_context(context_injector) + logger.info(f"[DEBUG] ModelDayExecutor: set_context() completed") # Run trading session logger.info(f"Running trading session for {self.model_sig} on {self.date}")