Problema
A status line atual e 1 linha simples: spinner + status + modelo + cache hits. Nao mostra custo monetario, barra de progresso de contexto, nem indicadores visuais de threshold.
Status atual (src/tui/ui_status.rs, input_ui::draw_status)
Apenas texto: "[spinner] processing · model · cache: kv"
Status desejada (estilo DeepSeek TUI)
[spinner] processing │ claude-sonnet-4-20250514 │ $0.0423 │ [████████░░] 82% ctx │ cache 94% │ Ctrl+K help
O que precisa ser feito
1. Barra de progresso de contexto
- Horizontal, preenchendo com blocos Unicode (█░)
- Cores por threshold:
- < 60%: verde (rgb(100,200,100))
- 60-80%: amarelo (rgb(255,200,100))
-
80%: vermelho (rgb(255,100,100))
- Label com Xk/Yk tokens ou porcentagem
- Atualizacao em tempo real durante streaming
2. Custo monetario
- Calcular custo baseado no provider e modelo
- Tabela de precos por token para cada modelo
- Formato: sempre USD com 2-4 casas decimais
- Acumulado da sessao + custo da ultima request
- Opcional: budget configurado com alerta
3. Cache hit percentage
- Indicador visual com cor:
-
80%: verde, label "cache 94%"
- 40-80%: amarelo
- < 40%: vermelho, label "cache 12%"
- Tooltip ao hover (se terminal suportar) mostrando tokens cacheados vs nao cacheados
4. Atalhos contextuais
- Ultimo item da status bar mostra atalhos uteis:
- "Ctrl+K help" (sempre)
- "Ctrl+R retry" (quando erro)
- "Ctrl+O overview" (quando idle)
- Atalhos mudam conforme estado da sessao
5. Layout responsivo
- Em terminais estreitos (< 80 cols):
- Omitir nome completo do modelo (usar short name)
- Omitir custo se nao couber
- Barra de contexto compacta (apenas %)
- Fallback para 1 linha sempre
Arquivos a modificar
- src/tui/ui_status.rs — refatorar format_status_for_debug, adicionar barra e custo
- src/tui/ui.rs — integracao na draw_inner
- src/tui/ui_input.rs — draw_status com novos componentes
- crates/jcode-usage-types/ — adicionar cost_per_token, calcular custo
- Novo: src/tui/ui_cost.rs — calculo e formatacao de custo
- crates/jcode-tui-style/src/theme.rs — cores da barra de contexto
Problema
A status line atual e 1 linha simples: spinner + status + modelo + cache hits. Nao mostra custo monetario, barra de progresso de contexto, nem indicadores visuais de threshold.
Status atual (src/tui/ui_status.rs, input_ui::draw_status)
Apenas texto: "[spinner] processing · model · cache: kv"
Status desejada (estilo DeepSeek TUI)
O que precisa ser feito
1. Barra de progresso de contexto
2. Custo monetario
3. Cache hit percentage
4. Atalhos contextuais
5. Layout responsivo
Arquivos a modificar