Remove guard closed_json que bloqueava updates do cluster ativo.
Frontend recebe estado a cada tick sem precisar de F5.
Heartbeat ping a cada 20s para manter conexao WS viva.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Footprint bars bid/ask por nível com cor dominante
- Painel inferior duplo: volume (barras) + delta (blocos azul/laranja)
- Linha de preço atual ciano dashed com tag no eixo
- Timestamp por cluster no eixo X
- Drag no eixo de tempo para zoom horizontal
- Drag no eixo de preço para ajustar step multiplier
- Coleta de volume via price-step method para delta correto
- Guard is_live para evitar flood de WebSocket no replay histórico
- total_ticks adicionado ao aggregator
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>