The open review threads on this branch were all grounded in real issues: a committed API key in handover docs, Unix-only locking and timeout mechanisms, synchronous network I/O inside an async API path, and missing retry/session reuse on market-data calls. This change removes the leaked credential from the tracked docs, makes the portfolio and profiling paths portable across platforms, moves live price fetches off the event loop, and reuses the existing yfinance retry/session helpers where the review called for them. While verifying these fixes, the branch also failed to import parts of the TradingAgents graph because two utility modules referenced by the new code were absent. I restored those utilities with minimal implementations so the relevant regression tests and import graph work again in this PR. Constraint: No new dependencies; portability fixes had to stay in the standard library Rejected: Add portalocker or filelock | unnecessary new dependency for a small compatibility gap Rejected: Keep signal.alarm and fcntl as Unix-only behavior | leaves the reported review blockers unresolved Confidence: medium Scope-risk: moderate Reversibility: clean Directive: Keep shared runtime paths cross-platform and keep async handlers free of direct blocking network I/O Tested: python -m pytest -q web_dashboard/backend/tests/test_portfolio_api.py orchestrator/tests/test_quant_runner.py orchestrator/tests/test_profile_stage_chain.py tradingagents/tests/test_stockstats_utils.py Tested: python -m pytest -q orchestrator/tests/test_trading_graph_config.py tradingagents/tests/test_research_guard.py Not-tested: Full repository test suite and GitHub-side post-push checks |
||
|---|---|---|
| .. | ||
| agent_states.py | ||
| agent_utils.py | ||
| core_stock_tools.py | ||
| decision_utils.py | ||
| fundamental_data_tools.py | ||
| memory.py | ||
| news_data_tools.py | ||
| subagent_runner.py | ||
| technical_indicators_tools.py | ||