- Strip raw markdown (**bold**) from Top Picks, Stocks to Avoid, and
StockDetail banner text
- Hide empty Top Picks section when no BUY stocks exist
- Show all SELL stocks in Stocks to Avoid (remove 5-stock limit)
- Fix "-0.0%" negative zero display in History page returns
- Fix "1 sections" grammar in AIAnalysisPanel
- Replace dead footer links with real GitHub/Twitter URLs
- Fix Portfolio Simulator SELL dilution calculation
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Fixes:
- Remove duplicate get_running_analyses function (critical)
- Fix N+1 query in get_pipeline_summary_for_date with batch queries (high)
- Add thread-safety warning comment for running_analyses dict (high)
- Remove package-lock.json from .gitignore and track it (high)
- Config param in memory.py kept for backward compatibility (documented)
- Add React + Vite + Tailwind CSS frontend for Nifty50 recommendations
- Add FastAPI backend for serving stock recommendations
- Add Indian market data sources (jugaad_data, markets API)
- Add Nifty50 stock recommender modules
- Update dataflows for Indian market support
- Fix various utility and configuration updates