diff --git a/agent/base_agent/base_agent.py b/agent/base_agent/base_agent.py index e73059e..1cee85d 100644 --- a/agent/base_agent/base_agent.py +++ b/agent/base_agent/base_agent.py @@ -221,7 +221,7 @@ class BaseAgent: print(f"✅ Agent {self.signature} initialization completed") - def set_context(self, context_injector: "ContextInjector") -> None: + async def set_context(self, context_injector: "ContextInjector") -> None: """ Inject ContextInjector after initialization. @@ -241,6 +241,9 @@ class BaseAgent: tool_interceptors=[context_injector] ) + # CRITICAL: Reload tools from new client so they use the interceptor + self.tools = await self.client.get_tools() + print(f"✅ Context injected: signature={context_injector.signature}, " f"date={context_injector.today_date}, job_id={context_injector.job_id}, " f"session_id={context_injector.session_id}") diff --git a/api/model_day_executor.py b/api/model_day_executor.py index d3b5af7..ce8beb8 100644 --- a/api/model_day_executor.py +++ b/api/model_day_executor.py @@ -140,7 +140,7 @@ class ModelDayExecutor: job_id=self.job_id, session_id=session_id ) - agent.set_context(context_injector) + await agent.set_context(context_injector) # Run trading session logger.info(f"Running trading session for {self.model_sig} on {self.date}") @@ -155,10 +155,13 @@ class ModelDayExecutor: # Update session summary await self._update_session_summary(cursor, session_id, conversation, agent) - # Store positions (pass session_id) - self._write_results_to_db(agent, session_id) - + # Commit and close connection before _write_results_to_db opens a new one conn.commit() + conn.close() + conn = None # Mark as closed + + # Store positions (pass session_id) - this opens its own connection + self._write_results_to_db(agent, session_id) # Update status to completed self.job_manager.update_job_detail_status(