Changes:
- Modify analyst graph connections to run in parallel instead of sequentially
- All analysts (Market, News, Fundamentals, Social) now start from START node simultaneously
- All analysts converge to Bull Researcher when complete
- Reduces analysis time by ~25-35% (4 analysts run in parallel instead of sequentially)
Technical Details:
- Previous: START → Market → News → Fundamentals → Bull Researcher (sequential)
- New: START → {Market, News, Fundamentals, Social} → Bull Researcher (parallel)
- Each analyst still has conditional edges to their tools and message clear nodes
- All analysts independently check completion and connect to Bull Researcher
Impact:
- Analysis time reduction: ~12-15 minutes saved per analysis
- Cumulative improvement with Plan A1 (fast mode):
- Fast mode sequential: ~15-25 minutes
- Fast mode parallel: ~10-15 minutes
- Deep mode sequential: ~60 minutes
- Deep mode parallel: ~40-45 minutes
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Changes:
- C1: Increase Redis TTL from 1 hour to 4 hours for completed tasks (prevents report deletion)
- Word count: Change all analyst prompts from 800-1500 to 500-1000 words
- Output filter: Update word count validation to 500-1000 range, hide specific word counts in warnings
- Remove character counts from output to improve clarity
These changes address:
1. Reports being deleted after 1 hour (now 4 hours)
2. Inconsistent word counts causing reruns (now strict 500-1000)
3. Output showing specific word counts (now just pass/warning)
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
- Pass max_debate_rounds and max_risk_discuss_rounds from config to ConditionalLogic
- Pass max_recur_limit from config to Propagator
- Increase default recursion_limit from 100 to 200 in default_config.py
- Increase Propagator default max_recur_limit from 100 to 200
Also includes earlier fixes:
- Add 365-day minimum date range validation to get_stock_data tool
- Update market analyst prompt to specify 1-year data requirement
- Initialize all debate state fields (bull_history, bear_history, judge_decision, etc.)
- Add report completeness logging in trading_service.py
- Add debug logging in frontend results page
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
- Increase max retry attempts from 3 to 5
- Extend max delay from 10s to 60s for better handling of persistent 529 errors
- Add jitter (random 0-0.5s delay) to avoid synchronized retries
- Based on Cursor IDE blog best practices for handling Claude API 529 errors
- Add tenacity-based retry logic to Research Manager
- Configure exponential backoff (2-10s) for OverloadedError
- Maximum 3 retry attempts with warning-level logging
- Improves system stability against temporary API overload
- Fix: correct import path for OverloadedError from anthropic._exceptions