Commit Graph

3 Commits

Author SHA1 Message Date
ahmet guzererler c1194b7f77
feat: Fast-Reject [CRITICAL ABORT] short-circuit mechanism (#128)
* chore: initial commit for feat/fast-reject-short-circuits branch

* test: fix fast-reject unit tests (25/25 passing)

- Fix test_normal_flow_without_abort: expected 'Bull Researcher' not
  'Bear Researcher' — when current_response is empty the conditional
  logic routes to Bull first (conditional_logic.py line 74)
- Analyst abort-instruction tests: replace closure-attribute hacks
  (market_analyst.llm = ...) with patch() on prefetch_tools_parallel
  and run_tool_loop so the tests run without network access
- Fix co_consts substring check: system_message is compiled into one
  large string constant, so use any(...in str(c)...) instead of direct
  tuple membership
- PM tests: create mock_llm before create_portfolio_manager so the
  closure captures it and mock_llm.invoke.called assertions work; add
  missing company_of_interest key to all state dicts
- Integration tests: merge analyst/PM node outputs back into state
  ({**state, **result}) instead of replacing it, preserving keys like
  fundamentals_report and investment_debate_state; patch network calls;
  fix normal-flow routing assertions to != 'Portfolio Manager' since
  the exact next node depends on transient debate state
2026-03-27 00:19:43 +01:00
copilot-swe-agent[bot] 4c186a55e8 merge: sync with upstream TauricResearch/TradingAgents v0.2.2
Merges upstream/main into our fork, bringing in:
- Security: Remove chainlit (CVE-2026-22218), patch LangGrinch vulnerability
- Bug fixes: debate state init, UTF-8 encoding, stock data parsing, debate round config
- Features: OpenAI Responses API, five-tier rating scale, Anthropic effort support,
  exchange-qualified tickers, yfinance retry with exponential backoff
- Refactor: risk_manager renamed to portfolio_manager

Conflicts resolved preserving our fork's:
- Per-tier LLM config (quick/mid/deep think with provider overrides)
- Separate tool files (fundamental_data_tools, core_stock_tools, etc.)
- Custom tools (get_ttm_analysis, get_peer_comparison, get_sector_relative, get_macro_regime)
- Dynamic Ollama model fetching
- Enhanced fundamentals analyst prompt with TTM analysis
- Hardened stockstats/yfinance data pipeline (_load_or_fetch_ohlcv)
- AgentOS observability layer, scanner pipeline, portfolio management

Tests: 727 passed, 14 skipped
2026-03-23 12:17:25 +00:00
Yijia-Xiao b8b2825783 refactor: standardize portfolio manager, five-tier rating scale, fix analyst status tracking 2026-03-22 23:30:29 +00:00