Releases: Etamus/NeveCode
v0.2.29
O ajuste foi feito em duas camadas:
- Prompt da LLM:
Agora o agente é instruído a usar bullets - em resumos finais, se usar lista numerada, deve numerar corretamente: 1., 2., 3.; - Renderer do chat:
Adicionei uma proteção defensiva: se a LLM ainda gerar várias linhas começando com 1. sem numeração real, o chat converte visualmente para bullets
v0.2.28
Mudanças feitas:
- Histórico de sessões:
Ao apagar uma sessão, ela some da lista imediatamente, se a sessão apagada era a sessão ativa, o chat volta para a tela inicial - Visual das tools:
Agora as tools entram em uma fila visual, mesmo que a LLM emita várias tools de uma vez, o chat mostra uma por vez
A próxima tool só aparece visualmente depois que a anterior conclui, se o resultado da próxima tool já chegou, ela ainda aparece primeiro como “rodando” por um instante antes de concluir, evitando o efeito estranho de várias tools surgindo/concluindo juntas.
v0.2.27
Mudanças feitas:
- Timeout de streaming local:
- Provider local agora usa timeout idle padrão de 300s.
- Providers remotos continuam com 120s.
- Também deixei override via NEVECODE_STREAM_IDLE_TIMEOUT_MS.
- Watchdog da extensão:
- Mantém watchdog inicial de 180s para “sem resposta inicial”.
- Depois do primeiro sinal de vida, passa para watchdog ativo de 300s.
- Qualquer mensagem/stream/tool/status válido da LLM reseta o watchdog ativo.
- Planejamento local:
- Timeout da chamada de planejamento subiu de 4s para 12s.
v0.2.26
O que mudou:
- Cada tool_result agora informa também o nome da tool usada.
- Ajustado em chatProvider.js:703-709.
- O painel agora avança tarefas conforme o tipo de ação:
Tools de inspeção (Read, Grep, Glob, LS, NotebookRead) concluem a etapa inicial de análise/localização.
Tools de edição (Write, Edit, MultiEdit, NotebookEdit) avançam a etapa de implementação conforme alterações acontecem.
Tools de validação/execução (Bash, PowerShell) avançam a etapa de validação.
Erros de tool marcam a tarefa ativa como erro.
Ajustado em chatRenderer.js:1433-1487.
Também evitei avanço duplicado quando existirem tanto eventos de tool quanto tokens internos . - Ajustado em chatRenderer.js:1450-1455.
v0.2.25
Alterações aplicadas:
- Start-llamacpp.ps1 detecta VRAM NVIDIA via nvidia-smi
- Se o servidor cair por falta de VRAM/contexto, reduz automaticamente:
65536 → 49152 → 40960 → 32768 → 24576 - Corrigido --flash-attn: agora é passado como flag booleana, sem on
- --no-mmap deixou de ser padrão; agora só ativa com NEVECODE_NO_MMAP=1
- Adicionados overrides por variável de ambiente
- Redução de custo de tokens sem perder contexto grande
- Removido blocos/fragmentos , , , , <tool_call>, <tool_use>.
v0.2.18
Mudanças (Lista de Tarefas):
-
Fase 1 — Planning (chamada separada ao llama-server):
Quando você envia uma mensagem, a extensão faz uma chamada HTTP para http://localhost:8080/v1/chat/completions com o planning-prompt.txt como sistema. Essa chamada:
Não usa ferramentas, só gera texto
Retorna o com a lista completa de tarefas
Se o servidor não estiver rodando → falha silenciosamente, sem bloquear nada
URL configurável via nevecode.planning com Url nas settings do VS Code -
Fase 2 — Execução (openclaude normal):
A lista de tarefas é injetada na mensagem enviada ao openclaude como <task_plan>1. ... 2. ...</task_plan>
O plans-prompt.txt instrui o LLM a seguir essa lista, emitir ao completar cada tarefa, e executar as fases Generate → Review → Improve → Finalize conforme necessário
O painel de tarefas já está montado ANTES do LLM começar a responder (flag _planPrebuilt impede que stream_start limpe o painel)
Fases dinâmicas:
Tarefa pequena: Generate + Finalize
Tarefa média: Generate + Review + Finalize
Tarefa complexa: Generate + Review + Improve + Finalize (com sub-tarefas no Generate)
Correções:
- Timeout do planejador local reduzido: _generatePlan agora espera no máximo 4s em vez de 12s. Se o llama-server/local planner travar, ele cai para execução normal.
- Watchdog de geração: cada rodada agora tem um limite de 120s. Se a CLI/LLM não retornar nada, a geração é abortada e a UI destrava.
- Prompt menos travante: removi a instrução rígida “use tools diretamente / não descreva”, que podia deixar modelo pequeno indeciso.
- Tool card duplicado no restore — a raiz do bug era que ao restaurar sessão, appendToolCard já construía o card completo (com path no header) E depois updateToolInput rodava de novo adicionando um segundo .tool-path dentro de .tool-name. Agora no restore só appendToolCard + updateToolResult são chamados — sem updateToolInput. Também corrigido: displayName agora usa tu.displayName (armazenado) em vez de tu.name (o nome bruto).
- Agente usando pasta errada — cada mensagem agora começa com [diretório de trabalho: D:\Openclaude] injetado no texto enviado à IA (sem aparecer no chat). O LLM pequeno (Qwen 4B) tende a usar o diretório pessoal do usuário por padrão; injetar o workspace explicitamente em cada mensagem corrige isso.
- AskUserQuestion / ExitPlanMode aparecendo — adicionados à lista de ferramentas ocultas nos três lugares: tool_use, tool_input_ready e restore_messages. Os cards não aparecem mais, mas as ferramentas continuam sendo executadas normalmente.
v0.2.11
Correções:
-
[FileWriteTool/FileWriteTool.ts] Trocado getPatchForDisplay por getPatchFromContents para o cálculo do diff pós-escrita. O caminho anterior fazia um .replace(arquivo_inteiro, ...) desnecessário antes do diff — agora vai direto de oldContent → newContent.
-
Lista consome o \n\n: A regex de wrapping das listas usava \n? no final de cada <li.>, o que consumia UM dos dois \n do par \n\n que separa seções. Resultado: o texto logo após uma lista era mesclado no mesmo bloco em vez de virar um parágrafo novo. Fix: adicionado \n\n explícito após cada </ul.> e </ol.>, garantindo sempre um parágrafo separador.
v0.2.9
Mudanças:
- SVG Glob (Find Files): removidas as linhas internas do +, agora é uma lupa simples
- Modelo de IA: label começa vazio, só aparece quando o modelo é identificado
- Dropdown aprovações: hover usa --vscode-list-hoverBackground (cinza neutro), item ativo tem fundo rgba(128,128,128,0.14) — sem azul
- Card de anexo: menos arredondado (border-radius: 3px), fundo usando cor de tab do editor
- Tool cards: não expandem sozinhos ao terminar — ficam recolhidos, o usuário pode clicar para abrir
- Histórico: título não é mais maiúsculo, botão "Fechar" virou seta ← (SVG polyline chevron left)
Correções:
-
Lentidão extrema (10+ minutos) — CAUSA RAIZ CORRIGIDA
As DLLs de runtime CUDA estavam ausentes do sistema:
cudart64_13.dll, cublas64_13.dll (49MB), cublasLt64_13.dll (458MB)
Sem elas, o ggml-cuda.dll falha ao carregar e a IA cai para CPU pura → lento demais
Todas as 3 foram adicionadas ao instalar.bat -
start-llamacpp.ps1 — otimizações de velocidade
KV cache q8_0 → q4_0 (~50% menos VRAM no cache de contexto)
Adicionado --batch-size 2048 e --ubatch-size 512 (prefill muito mais rápido)
v0.2.4
Correções:
Gap "gigante" entre texto e lista:
- Causa raiz: Quando o modelo gera umtexto, o renderMarkdown converte incorretamente, criando uma linha em branco de ~20px de altura.
- Correção: Adicionado Step 13a em chatRenderer.js que remove qualquer "br" imediatamente antes de elementos bloco (ul, ol, h1-h4, table, etc.).
LLM para após ~82 tokens:
- Causa raiz: O llama-server ativa automaticamente o modo de raciocínio do Qwen3 (reasoning-budget: activated, budget=2147483647), gerando ~9K tokens internos de CoT por requisição. Para um modelo 4B com histórico de ~29K tokens, isso sobrecarrega o contexto e causa resposta prematura/incompleta.
- Correção: Adicionado em openaiShim.ts — quando isLocal, o texto /no_think é anexado ao system prompt. Isso instrui o template do Qwen3 no llama.cpp a desativar o modo de pensamento, liberando o contexto para respostas mais completas.
v0.2.1
Mudanças:
Botão "+" de anexar arquivo:
- Ícone de clipe (paperclip SVG) no canto inferior esquerdo da área de input, antes do botão de permissão
- Ao clicar, abre o dialogo nativo de seleção de arquivo do VS Code
- O arquivo selecionado aparece como um chip acima do textarea, com ícone de documento + nome + botão ×
- O chip desaparece quando clicado no ×
- Ao enviar a mensagem, o conteúdo do arquivo é anexado ao texto (formato: --- Arquivo: path\n\nconteúdo\n\n---)
- O texto exibido no chat mostra apenas o que o usuário digitou; o conteúdo do arquivo vai apenas para o llm
- Arquivos maiores que 20.000 caracteres são truncados com aviso
Redesign do input área:
- O container agora é .input-box — uma bordinha única com borda/radius/background
- Dentro: chips de arquivo (topo) → textarea (sem borda própria) → barra de ações (fundo)
- Barra de ações: "+" à esquerda + botão enviar à direita (sem position: absolute mais)
- O foco no textarea faz a borda do .input-box ficar em destaque (:focus-within)