You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(backlog): add diff colors for apply_patch tool output
- Added isPatch parameter to CollapsibleToolContent widget
- Implemented diff color rendering (red for removed, green for added lines)
- Detects apply_patch tools by name and applies colors automatically
- Lines starting with + (not +++) shown in green
- Lines starting with - (not ---) shown in red
- @@ hunk headers shown in blue
Copy file name to clipboardExpand all lines: ROADMAP.md
+19Lines changed: 19 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -281,6 +281,10 @@ Aplicado refinamento de UX em Settings removendo a seção separada `Sounds` (co
281
281
282
282
## Pending Backlog
283
283
284
+
-[x] Exibir aviso discreto na tela quando o contexto estiver próximo de auto-compactar; essa informação deve vir do backend
285
+
-[x] Comando `compact` não existe no app, mas existe no servidor: pesquisar, investigar e adicionar no app; incluir também um botão no topo, ao lado de `New Chat`, com opção de compactar contexto
286
+
-[x] Desktop: corrigir cores inconsistentes no composer - fundo do input, bordas arredondadas e barra de ações com cores diferentes; barra de ações deve expandir horizontalmente sem espaços em branco laterais
287
+
-[ ] Corrigir exibição de status da conexão do servidor - às vezes mostra "reconnecting" mas os selects aparecem todos verdes, causando confusão sobre o estado real da conexão
284
288
-[x] Desktop: enter deve enviar mensagem, shift+enter quebrar linha
285
289
-[x] Desktop: botão em cada sidebar para ocultar o sidebar como opção
286
290
-[x] Mobile e desktop: input de texto não deve ficar bloqueado enquanto recebe mensagem, apenas não deve poder enviar antes de terminar de receber as respostas do servidor, ou clicar no botão stop pra abortar
@@ -292,6 +296,7 @@ Aplicado refinamento de UX em Settings removendo a seção separada `Sounds` (co
292
296
-[ ] Opções em Settings para decidir se app fica em background. Mobile: persistente notification, desktop: tray
293
297
-[ ] Ajustar popover de sugestões no Android para nunca cobrir o input com teclado aberto em todos os teclades/dispositivos (validar em device real com Gboard e Samsung Keyboard)
294
298
-[x] Transformar o botão `Send` em `Stop` enquanto o assistant estiver respondendo e integrar com `POST /session/{id}/abort` para interromper o pensamento/execução em andamento
299
+
-[ ] Dialog de `Project Context`: ao selecionar um projeto ele já abre, mas a dialog não fecha; deve fechar automaticamente após a seleção
295
300
296
301
Pronta para análise: backlog de ergonomia do composer/desktop concluído com Enter/Shift+Enter no desktop, sidebars recolhíveis com persistência por pane, input editável durante resposta e ação Stop integrada ao abort de sessão com cobertura automatizada.
297
302
Ajuste pós-entrega aplicado: ao acionar `Stop`, erros esperados de cancelamento (`The operation was aborted`/equivalentes) não derrubam mais a conversa para tela global de erro com `Retry`; a interrupção agora mantém o contexto para continuação imediata.
@@ -328,6 +333,19 @@ Refinamento de conflito de foco: durante hold em bolha o toque é absorvido e o
328
333
-[ ] Adicionar opção em Settings para escolher densidade de todos os elementos do app (denso, normal, espaçoso)
329
334
-[ ] Refresh providers/model em background de forma assíncrona ao abrir o app
330
335
-[ ] Adicionar instruções básicas de como instalar e executar um servidor OpenCode na tela de adicionar servidor
336
+
-[ ] Melhorar status de trabalho enquanto recebe mensagens do Assistente, exibindo o status mais recente do Thinking Process de forma clara e visível
337
+
-[x] A tool apply_patch deve ter cores apropriadas para linhas removidas (vermelho) e linhas adicionadas (verde)
338
+
-[ ] Permitir personalizar o som de notificação com arquivos de áudio do próprio dispositivo
339
+
-[x] Exibir linha de progresso de uso de contexto no composer antes da compactação automática - consultar backend para receber essa informação
340
+
-[ ] Refatorar erros de abort/stop para toast não bloqueante com botão Retry e auto-dismiss em 4s (evitar erro gigante sobre a conversa)
341
+
-[ ] Corrigir falha intermitente de auto-scroll para a última mensagem em uso simultâneo celular+desktop, somente quando ambos estão abertos na mesma sessão/conversa (estado indevido de "usuário rolou para cima"); verificar ADR relacionada por possível violação
342
+
-[ ] Quando a conversa é muito longa pode dar travada ao abrir/restaurar; pesquisar na internet a melhor estratégia de virtual scrolling para Flutter e aplicar no histórico do chat
343
+
-[ ] Bug: quando envio mensagem em uma conversa e mudo de conversa, às vezes a mensagem/resposta da conversa anterior aparece na conversa atual
344
+
-[ ] Bug: seta para cima/baixo no composer deve navegar apenas no histórico da conversa atual (hoje mistura mensagens de todas as conversas)
345
+
-[ ] Bug: navegação do histórico com seta para cima/baixo deve disparar apenas sem modificadores (Shift/Ctrl/Alt/Meta); com teclas combinadas, manter comportamento padrão do campo de texto
346
+
-[ ] Verificar se o backend fornece o último agent, modelo e thinking usado pela sessão/conversa - sincronizar via servidor para evitar uso incorreto quando aberto em outros dispositivos/sessões
347
+
-[ ] A cor do Select de agent deve ter um contraste mais escuro quando o sistema operacional está no modo light
348
+
-[ ] Centralizar o texto do input do composer para que quando a frase/texto tiver apenas uma linha, fique centralizada verticalmente
331
349
332
350
Pronta para análise: adicionada ação de arquivamento na seção de contextos fechados para ocultar projects fechados sem depender de `worktree`, com persistência por servidor para manter a curadoria da lista ao reiniciar/recarregar. Também foi implementado cache persistido da última sessão (sessão + mensagens) por escopo (`server + directory`) com restore instantâneo na abertura e revalidação silenciosa em background (SWR), preservando usabilidade mesmo com latência alta do servidor remoto. No mobile, o envio pelo teclado agora usa ação `send` e oculta o teclado/foco após submissão para liberar mais espaço da conversa.
333
351
Pronta para análise: o status/switch de servidor foi movido do app bar para a sidebar com controle centralizado e indicador de alerta no botão hambúrguer quando a conexão/saúde não está verde; `Logs` foi consolidado dentro de `Settings` como seção dedicada; e o acesso de `Settings` na sidebar foi simplificado para botão somente com ícone (sem rótulo textual), mantendo tooltip e cobertura de testes de navegação/UX.
@@ -338,6 +356,7 @@ Refinamento pós-entrega aplicado nos blocos de thinking: o bloco mais recente p
338
356
Correção pós-validação aplicada: o critério de "bloco mais recente" passou a ser global na conversa (não apenas dentro da mesma mensagem), garantindo que thinkings anteriores realmente colapsem quando um novo thinking surgir em outro bloco/mensagem.
339
357
Pronta para análise: tool calls agora exibem comando executado (com extração resiliente de `input.command`/`input.cmd` e fallback legível), removeram o prefixo textual `Tool Call` do cabeçalho e aplicam status compacto por ícone no mobile, preservando label textual apenas no desktop/web. Cobertura de widget foi ampliada para validar comando visível, remoção do texto antigo e diferença mobile/desktop no chip de status.
340
358
Pronta para análise: onboarding de servidores aplicado no shell principal. Quando não há nenhum servidor configurado, o app abre automaticamente em `Settings > Servers` (mobile e desktop), com guarda de inicialização para evitar redirecionamento incorreto antes de carregar estado local. Também foi removida a criação automática de servidor padrão em instalações sem legado, habilitando estado inicial realmente vazio.
359
+
Pronta para análise: concluído o pacote de contexto/compactação com ação manual de compactar contexto via backend (botões no topo ao lado de `New Chat` e comando builtin `/compact`), nova barra de progresso de uso de contexto no composer baseada em telemetria de tokens/limite do modelo e aviso discreto quando o consumo entra em zona próxima de auto-compactação. Também foram adicionados testes unitários/widget cobrindo chamada de compactação e sinalização visual.
0 commit comments