- Upgrade CDN from v4.1.0 to v5.1.0
- Add displayMode property to indicators ('overlay' vs 'pane')
- Mark oscillators (RSI, MACD, Stoch, ATR) as pane-type indicators
- Rewrite drawIndicatorsOnChart() to render oscillators in separate draggable panes
- Update all chart.addSeries() calls to v5 API with paneIndex parameter
- Add pane layout configuration with resizable separators
- Build indicator list dynamically from class getMetadata() instead of hardcoded array
- Remove checkboxes; single-click previews config, double-click adds to chart
- Support multiple instances of same indicator type (unique IDs)
- Add TradingView-style column legend overlay on chart (top-left)
- Recalculate indicators when historical data is prefetched on scroll
- Make indicator list and config panels scrollable (hidden scrollbars)
- Remove AVAILABLE_INDICATORS from strategies/config.js
- Split inline JS into separate ES module files (indicators/, strategies/, ui/, utils/)
- Fix brain.py strategy registry to use MAStrategy directly instead of missing modules
- Add auto-backfill for detected data gaps in collector monitoring loop
- Fix chart resize on sidebar toggle
- Fix chart scrollToTime -> setVisibleLogicalRange