Problema
Os widgets de informacao (contexto, memoria, git, todos) sao renderizados como overlays flutuantes sobre a area de chat (info_widget.rs usa calculate_placements e render_all). Nao ha sidebar fixa como no DeepSeek TUI.
Layout atual
[ Header centrado (6-8 linhas) ]
[ Area de Chat ]
[ Status bar (1 linha) ]
[ Input box ]
Widgets flutuam sobre o chat.
Layout desejado
[ Header compacto (1-2 linhas) ]
[ Chat Area | Sidebar ]
[ | [Tab1] ]
[ | [Tab2] ]
[ | [...] ]
[ Status bar + custo/contexto ]
[ Input box ]
O que precisa ser feito
1. Sidebar container fixo
- Largura configurarvel (default 30% ou 40 cols, min 25)
- Borda esquerda com cor de accent quando focada
- Header da sidebar com nome da tab ativa
2. Sistema de Tabs
- Abas: Contexto, Plano/Todos, Memoria, Uso/Custo, Git, Swarm
- Navegacao: Ctrl+Left/Right ou numeros (Ctrl+1..6)
- Indicador visual de tab ativa (sublinhado, cor diferente)
- Badge com contagem (ex: "Todos (3)")
3. Redimensionamento
- Ctrl+Shift+Left/Right para redimensionar sidebar
- Ratio persistido em config.toml
- Minimo 25 cols, maximo 50% da tela
4. Conteudo das Tabs
- Contexto: uso de tokens, cache hit %, modelo atual, provider, working dir
- Plano/Todos: lista de tasks do plano com status (pending/in_progress/completed)
- Memoria: memories recentes, status do pipeline (embedding/sidecar/inject)
- Uso/Custo: grafico de uso de contexto, custo acumulado, breakdown por provider
- Git: branch, status, arquivos modificados, diff summary
- Swarm: grafo de agents, status de cada um, canais de comunicacao
5. Estado persistente
- Tab ativa salva por projeto
- Largura da sidebar persistida
Arquivos a modificar
- src/tui/ui.rs — adicionar area da sidebar no layout
- src/tui/ui_layout.rs — suporte a sidebar no split horizontal
- src/tui/info_widget.rs — migrar widgets para tabs da sidebar
- src/tui/info_widget_layout.rs — layout das tabs
- src/tui/info_widget_model.rs — estado de tabs
- crates/jcode-config-types/src/lib.rs — sidebar_width, active_tab
Problema
Os widgets de informacao (contexto, memoria, git, todos) sao renderizados como overlays flutuantes sobre a area de chat (info_widget.rs usa calculate_placements e render_all). Nao ha sidebar fixa como no DeepSeek TUI.
Layout atual
Widgets flutuam sobre o chat.
Layout desejado
O que precisa ser feito
1. Sidebar container fixo
2. Sistema de Tabs
3. Redimensionamento
4. Conteudo das Tabs
5. Estado persistente
Arquivos a modificar