Skip to Content
DesignEspaçamento e Densidade da TUI PR1

Espaçamento e Densidade da TUI PR1

Por que

A TUI atual frequentemente gasta linhas extras com espaçamento antes da saída do assistente, entre blocos de status/ferramentas e dentro de grupos de ferramentas expandidos. Em sessões comuns, isso torna respostas simples, listas de arquivos, saída de ferramentas, estados de erro, diffs e saídas de streaming longas mais difíceis de ler, pois os usuários precisam rolar a tela por espaços em branco em vez de conteúdo.

Este PR é a primeira passagem focada para QwenLM/qwen-code#4588. Ele aborda apenas espaçamento e densidade para que a revisão possa comparar o uso de linhas antes e depois sem também revisar a visibilidade do raciocínio, bordas de ferramentas, layout do SubAgent, identidade visual ou alterações de cores do tema.

Como

A implementação mantém a estrutura de informações e as superfícies de renderização existentes intactas:

  • O espaçamento dos itens do histórico é centralizado perto de HistoryItemDisplay. Prompts do usuário e visualizações de comandos independentes ainda começam com um separador de turno, enquanto continuações do assistente, grupos de ferramentas, mensagens de status, resumos de ferramentas e saídas relacionadas dentro do turno não adicionam mais uma linha extra de espaçamento inicial.
  • Grupos de ferramentas expandidos mantêm sua borda atual e estrutura de status/título, mas não inserem mais linhas em branco entre entradas de ferramentas adjacentes.
  • Os resultados das ferramentas são renderizados diretamente abaixo da linha de título/status da ferramenta. Isso remove a linha em branco extra entre o cabeçalho da ferramenta e sua saída sem alterar o conteúdo da saída, truncamento, foco do shell, prompts de confirmação ou comportamento do modo compacto.

O comportamento de linhas em branco do Markdown foi intencionalmente deixado inalterado. O renderizador já colapsa linhas em branco consecutivas em um único espaçamento e preserva blocos complexos, como tabelas, blocos de código e blocos matemáticos.

Padrão de Espaçamento

  • Turnos independentes do usuário mantêm um separador visual.
  • A saída do assistente e blocos de acompanhamento dentro do turno não adicionam um segundo separador.
  • O cabeçalho da ferramenta e o conteúdo do resultado da ferramenta são adjacentes.
  • Grupos de múltiplas ferramentas expandidos não inserem linhas em branco entre cada entrada de ferramenta.
  • Blocos complexos de Markdown mantêm seu layout interno existente.

Efeito Esperado

Sob a mesma largura de terminal e mesmo conteúdo renderizado, os cenários alvo devem usar menos linhas visíveis:

  • Perguntas e respostas simples devem reduzir pelo menos uma linha visível.
  • A saída de ferramentas expandidas deve reduzir pelo menos uma linha para cada resultado de ferramenta renderizado que anteriormente tinha um espaçamento em branco entre cabeçalho/resultado.
  • Grupos de múltiplas ferramentas devem reduzir uma linha entre cada entrada de ferramenta adjacente.
  • Cenários de inspeção de projeto, diff, lista de arquivos, erro e streaming longo não devem ganhar linhas, a menos que alterações na quebra de linha do terminal tornem isso inevitável.

Medição

As asserções automatizadas de espaçamento e as evidências de terminal usam fixtures de 100 colunas para as regras alteradas:

CenárioLarguraLinhas baseLinhas PR1DeltaEvidência
Resposta simples do assistente10021-1espaçamento inicial do histórico removido
Cabeçalho da ferramenta com resultado de uma linha10032-1cabeçalho e resultado são adjacentes
Grupo expandido de três ferramentas com resultados renderizados1001611-5um espaçamento de cabeçalho/resultado removido por resultado de ferramenta e um separador entre ferramentas removido entre ferramentas adjacentes
Fixture representativo completo1002619-7mesmo conteúdo renderizado capturado no tmux

Os diffs de snapshot também cobrem os fixtures existentes de 80 colunas para confirmar os mesmos deltas de contagem de linhas no harness de teste de componentes atual.

Fora do Escopo

  • Ocultar rastros de raciocínio.
  • Remover bordas de ferramentas.
  • Redesenhar a saída do SubAgent.
  • Alterar a identidade visual de inicialização ou o banner.
  • Alterar cores do tema.
  • Adicionar tempo decorrido do assistente por turno.
  • Alterar o destaque de código inline em tabelas.
Last updated on