2.4 KiB
2.4 KiB
Current Milestone
Pre-existing test failures fixed (12 across 5 files). PR #16 (Finnhub) merged. Next: opt-in vendor fallback (ADR 011), Macro Synthesis JSON robustness, pipeline CLI command.
Recent Progress
- End-to-end scanner pipeline operational (
python -m cli.main scan --date YYYY-MM-DD) - All 53 tests passing (14 original + 9 scanner fallback + 15 env override + 15 industry deep dive)
- Environment variable config overrides merged (PR #9)
- Thread-safe rate limiter for Alpha Vantage implemented
- Vendor fallback (AV -> yfinance) broadened to catch
AlphaVantageError,ConnectionError,TimeoutError - PR #13 merged: Industry Deep Dive quality fixed — enriched industry data (price returns), explicit sector routing via
_extract_top_sectors(), tool-call nudge inrun_tool_loop - Finnhub integrated as third vendor: insider transactions (primary), earnings calendar (new), economic calendar (new)
- ADR 010 written documenting Finnhub vendor decision and paid-tier constraints
- Technical indicators confirmed local-only (stockstats via yfinance OHLCV) — no AV dependency, zero effort to switch
- Finnhub free-tier evaluation complete: 27/41 live tests pass, paid-tier endpoints identified and skipped
- 12 pre-existing test failures fixed across 5 files:
test_config_wiring.py,test_env_override.py,test_scanner_comprehensive.py,test_scanner_fallback.py,test_scanner_graph.py— root causes:callable()wrong for LangChain tools, env var leak viaload_dotenv()on reload, missing@pytest.mark.integrationon LLM tests, stale output-file assertions. Full offline suite: 388 passed, 0 failures.
Planned Next
- Opt-in vendor fallback (ADR 011) — fail-fast by default, fallback only for fungible data (OHLCV, indices, sector/industry perf, market movers). Plan:
docs/agent/plans/011-opt-in-vendor-fallback.md - Macro Synthesis JSON parsing fragile — DeepSeek R1 sometimes wraps output in markdown code blocks;
json.loads()in CLI may fail (branchfeat/macro-json-robust-parsingexists withextract_json()utility) pipelineCLI command (scan -> filter -> per-ticker deep dive) not yet implemented
Active Blockers
- Macro Synthesis JSON parsing fragile — DeepSeek R1 sometimes wraps output in markdown code blocks;
json.loads()in CLI may fail pipelineCLI command (scan -> filter -> per-ticker deep dive) not yet implemented