TradingAgents/tests
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
..
test_portfolio_manager_state_key.py fix: Portfolio Manager reads Trader's plan instead of Research Manager's raw output 2026-04-03 01:54:53 +00:00
test_ticker_symbol_handling.py fix: preserve exchange-qualified tickers across agent prompts 2026-03-21 21:10:13 +08:00