Problema
O layout atual degrada mal em terminais estreitos (< 80 colunas). Header verboso ocupa muitas linhas, sidebar colapsa em vez de virar overlay, input box nao adapta altura.
Breakpoints propostos
>= 100 colunas (Full)
- Header horizontal em 1 linha
- Chat area + Sidebar fixa (30-40% width)
- Status bar completa com custo e barra de contexto
- Input box com autocomplete dropdown
80-99 colunas (Normal)
- Header horizontal em 1-2 linhas
- Sidebar fixa reduzida (25-30% width)
- Status bar sem custo (apenas barra de contexto)
- Input com autocomplete
60-79 colunas (Compacto)
- Header em 2 linhas (brand + server, model + version)
- Sidebar vira overlay (toggle com Ctrl+B)
- Status bar minimalista (modelo + cache)
- Input sem autocomplete dropdown
< 60 colunas (Minimo)
- Header em 1 linha: "⟡ JH · fox🦊 · v0.11"
- Sem sidebar
- Status bar: apenas spinner + cache %
- Input em 3 linhas max
O que precisa ser feito
1. Deteccao de largura
- Monitorar resize events do terminal
- Recalcular layout em cada frame
- Transicao suave entre breakpoints (nao saltar)
2. Sidebar como overlay em telas pequenas
- Overlay flutuante que cobre parte do chat
- Toggle com Ctrl+B ou /sidebar
- Background semi-transparente atras do overlay
- Fecha com Esc ou clicando fora
3. Header adaptativo
- Funcao header_for_width(width) que retorna conteudo apropriado
- Truncamento inteligente de cada elemento
- Sempre manter brand + modelo visiveis
4. Input box adaptativo
- Altura maxima reduzida em telas pequenas
- Placeholder simplificado
- Autocomplete desabilitado automaticamente
5. Diagramas responsivos
- Pinned diagram redimensiona proporcionalmente
- Em telas < 60 colunas, diagramas viram overlay
- Zoom minimo garantido para legibilidade
Arquivos a modificar
- src/tui/ui.rs — draw_inner, logica de breakpoints
- src/tui/ui_layout.rs — funcoes de layout adaptativo
- src/tui/ui_header.rs — header_for_width
- src/tui/ui_input.rs — input adaptativo
- src/tui/info_widget.rs — overlay mode
- Novo: src/tui/ui_responsive.rs — constantes e helpers
Problema
O layout atual degrada mal em terminais estreitos (< 80 colunas). Header verboso ocupa muitas linhas, sidebar colapsa em vez de virar overlay, input box nao adapta altura.
Breakpoints propostos
>= 100 colunas (Full)
80-99 colunas (Normal)
60-79 colunas (Compacto)
< 60 colunas (Minimo)
O que precisa ser feito
1. Deteccao de largura
2. Sidebar como overlay em telas pequenas
3. Header adaptativo
4. Input box adaptativo
5. Diagramas responsivos
Arquivos a modificar