FinancialSituationMemory stored all learned lessons in RAM-only Python
lists with no persistence layer. Every process restart or new
TradingAgentsGraph() instance wiped all memory, making
reflect_and_remember() useless in practice — especially in server/API
deployments where a new graph is created per request.
Changes:
1. memory.py — add optional JSON file persistence:
- New config key `memory_persist_dir`: when set to a directory path,
each memory instance writes `<dir>/<name>.json` on every mutation
(add_situations / clear) and loads it on construction.
- When unset or None (the default), behaviour is identical to before
(RAM-only) — fully backward compatible.
- Atomic-ish writes via .tmp → rename to avoid corruption on crash.
- Graceful handling of corrupt / missing / partial JSON files.
- Tilde expansion (`~/...`) and automatic parent directory creation.
2. default_config.py — add `memory_persist_dir: None` to DEFAULT_CONFIG.
3. main.py — enable persistence in the example and improve
reflect_and_remember documentation comment.
4. tests/test_memory_persistence.py — 21 regression tests covering:
- RAM-only backward compatibility (5 tests)
- Persistence round-trip, incremental add, clear, BM25 rebuild,
JSON schema, Unicode (7 tests)
- Edge cases: corrupt JSON, missing keys, mismatched lengths,
nested directory creation, tilde expansion (5 tests)
- Multiple instances sharing same directory (1 test)
- Default config key existence (2 tests)
- Source audit: TradingAgentsGraph passes config to all 5 memories (1 test)
Closes#563
Add effort parameter (high/medium/low) for Claude 4.5+ and 4.6 models,
consistent with OpenAI reasoning_effort and Google thinking_level.
Also add content normalization for Anthropic responses.
- Replace FinnHub with Alpha Vantage API in README documentation
- Implement comprehensive Alpha Vantage modules:
- Stock data (daily OHLCV with date filtering)
- Technical indicators (SMA, EMA, MACD, RSI, Bollinger Bands, ATR)
- Fundamental data (overview, balance sheet, cashflow, income statement)
- News and sentiment data with insider transactions
- Update news analyst tools to use ticker-based news search
- Integrate Alpha Vantage vendor methods into interface routing
- Maintain backward compatibility with existing vendor system
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>