TradingAgents/tradingagents
voidborne-d 7fd9df3f9d fix: Portfolio Manager reads Trader's plan instead of Research Manager's raw output
Two bugs fixed:

1. Portfolio Manager uses wrong state key (critical):
   portfolio_manager.py read state['investment_plan'] (Research Manager's
   raw output) instead of state['trader_investment_plan'] (Trader's
   memory-refined output). This silently bypassed the Trader agent's
   entire contribution — including lessons learned from past trades —
   in the final risk assessment and trading decision.

   The Trader agent applies FinancialSituationMemory to refine the
   Research Manager's plan with insights from similar past situations.
   By reading the pre-refinement plan, the Portfolio Manager made its
   final decision without this critical context, effectively making the
   Trader node a no-op in the decision pipeline.

2. _get_stock_stats_bulk() missing pandas import:
   y_finance.py uses pd.isna() in _get_stock_stats_bulk() but never
   imports pandas as pd, causing NameError on every call. The fallback
   in get_stock_stats_indicators_window() catches this silently, but
   it defeats the bulk optimization — falling back to O(n) individual
   API calls per date instead of O(1) bulk calculation.

Added 7 tests covering both fixes.
2026-04-03 01:54:53 +00:00
..
agents fix: Portfolio Manager reads Trader's plan instead of Research Manager's raw output 2026-04-03 01:54:53 +00:00
dataflows fix: Portfolio Manager reads Trader's plan instead of Research Manager's raw output 2026-04-03 01:54:53 +00:00
graph refactor: standardize portfolio manager, five-tier rating scale, fix analyst status tracking 2026-03-22 23:30:29 +00:00
llm_clients feat: add Anthropic effort level support for Claude models 2026-03-22 21:57:05 +00:00
__init__.py fix: set process-level UTF-8 default for cross-platform consistency 2026-03-22 23:42:37 +00:00
default_config.py feat: add Anthropic effort level support for Claude models 2026-03-22 21:57:05 +00:00