Skip to content

P2: Barra de status com custo USD, barra de contexto, cache hit % #30

Description

@chapzin

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions