Skip to Content
BlogAtualizações07-23 Atualização do Produto

Qwen Code Semanal: redirecionamento em tempo real para corrigir o Agent a qualquer momento, sessões isoladas com Worktree sem conflitos, web_search integrado de volta

Qwen Team
2026-07-23

Esta semana o Qwen Code lançou três versões oficiais: v0.19.12, v0.20.0 e v0.20.1, com 220+ PRs integrados.

O Agent saiu do rumo? É só digitar para corrigir. Enquanto o modelo está gerando saída, pressione Enter e sua mensagem orienta o turno atual no próximo ponto de amostragem; pressione Ctrl+Q para adiar para o próximo turno. Mensagens digitadas durante a execução de ferramentas também funcionam. Não precisa mais esperar o Agent terminar para corrigir.

Tarefas paralelas finalmente não se atropelam mais. O Web Shell agora suporta criação de sessões isoladas com Worktree em um clique — múltiplas tarefas no mesmo repositório rodam em git worktrees independentes, sem interferência entre edições de arquivos, git add e git checkout. O identificador roxo ⑂ aparece no git chip, na lista de sessões e no menu dropdown do workspace.

A busca na web está de volta. A ferramenta integrada web_search é baseada na Responses API do Bailian — basta usar a chave de API Bailian que você já tem. A comunidade pedia o retorno desde que foi removida; desta vez foi reimplementada com busca no servidor + leitura de páginas, com links de referência Sources anexados automaticamente ao final da resposta. Desativada por padrão — é preciso ativar explicitamente.

web_fetch reconstruído do zero. Antes, ao buscar páginas web os links se perdiam, PDFs viravam texto corrompido e páginas grandes eram truncadas com perda de conteúdo. Agora o HTML é convertido para markdown antes do truncamento, PDFs têm texto extraído inline, arquivos binários são salvos corretamente, com timeout de 60 segundos e limite de 10 MB como proteção.

✨ Novidades

Redirecionamento em tempo real: corrija o Agent enquanto ele gera saída

Antes, se você digitasse algo enquanto o Agent estava gerando saída, tinha que esperar ele terminar para enviar — virava um novo prompt. Se o Agent saísse do rumo, só restava assistir até o fim e depois corrigir.

Agora Enter e Ctrl+Q têm funções bem definidas:

  • Enter: a mensagem entra na fila de redirecionamento e é aplicada no próximo ponto de amostragem do modelo, ainda dentro do turno atual. O Agent está escrevendo código e você digita “reescreve em TypeScript” — ele recebe essa orientação no próximo ponto de amostragem.
  • Ctrl+Q: a mensagem é adiada para depois do fim do turno atual, abrindo um novo turno de conversa.
  • Durante a execução de ferramentas: mensagens digitadas são consumidas após o retorno do resultado da ferramenta, dentro do mesmo turno.
  • Mudou de ideia? Pressione Up ou Escape e a mensagem enfileirada volta para o campo de entrada.

Anexos com @ também são preservados, sem prefixo sintético. Se a entrega falhar ou for cancelada, a mensagem não se perde.

O que você pode fazer com isso:

  • O Agent está escrevendo código na direção errada — digite para corrigir sem esperar ele terminar
  • Adicione informações de contexto enquanto uma ferramenta está em execução
  • Já sabe o que perguntar no próximo turno? Ctrl+Q enfileira e envia automaticamente quando o turno atual terminar

Veja o PR #7090 

Sessões isoladas com Worktree: tarefas paralelas cada uma no seu espaço

Ao trabalhar em duas tarefas ao mesmo tempo no mesmo repositório, uma sessão edita um arquivo e o git status da outra fica uma bagunça. Antes era preciso fazer git worktree add + cd manualmente; agora o Web Shell resolve em um clique.

Clique em “New Worktree Task” no menu dropdown do pill de branch do workspace, e o daemon cria automaticamente um git worktree em <repoRoot>/.qwen/worktrees/<slug>, com o diretório de trabalho da sessão apontando para o worktree. Toda a interface usa o identificador roxo ⑂ para diferenciar: o git chip fica roxo, a lista de sessões mostra o marcador ⑂ e o menu dropdown do workspace traz a indicação. Repositórios que não são git não mostram essa opção.

As informações do Worktree são persistidas em um arquivo sidecar e não se perdem após reinício do daemon. Ao restaurar a sessão, o isolamento do worktree é recriado automaticamente, e a barra de status mostra o nome do branch do worktree em vez do branch principal do workspace.

O que você pode fazer com isso:

  • Rodar dois desenvolvimentos de funcionalidade ao mesmo tempo, sem interferência
  • Corrigir um bug enquanto continua trabalhando em uma feature, sem ficar fazendo stash pra lá e pra cá
  • Deixar o Agent fazer alterações experimentais em um ambiente isolado, mantendo o workspace principal limpo

Veja os PRs #7221 , #7262 , #7365 , #7367 

web_search integrado: busca na web com sua chave Bailian

Antes o Qwen Code não tinha busca integrada — a documentação mandava configurar o MCP WebSearch do Bailian. Mas na prática, aquele MCP não entregava qualidade em consultas complexas: uma consulta de taxas do Medicare com resposta padrão retornava 0 de 5 resultados relevantes em múltiplas execuções.

Esta semana a ferramenta integrada web_search está de volta. Baseada na busca server-side da Responses API do Bailian, usa a chave de API Bailian que você já configurou — sem MCP adicional, sem provider adicional, sem chave adicional. O agente de busca abre as páginas dos resultados para respostas mais fundamentadas, diferenciando “páginas efetivamente lidas” de “links candidatos não abertos”, e o modelo deve incluir uma seção Sources com referências ao final da resposta.

Desativada por padrão — são necessárias duas configurações para ativar: tools.webSearch.enabled: true e o modelo de busca tools.webSearch.model. Se configurado mas incompleto, a ferramenta permanece desativada e informa na inicialização exatamente qual condição não foi atendida. Também suporta configuração por variáveis de ambiente (ENABLE_WEB_SEARCH, WEB_SEARCH_MODEL, etc.), ideal para ambientes onde não é possível editar o settings.json. Cada chamada de busca requer confirmação (exibe a consulta, com opção de “sempre permitir”).

O que você pode fazer com isso:

  • Consultar informações com prazo de validade: mudanças na versão mais recente de uma biblioteca, atualizações de documentação de API, avisos de segurança
  • Investigar problemas posteriores à data de corte de conhecimento do modelo: breaking changes em versões novas, bug reports recentes
  • Substituir o fluxo de sair do terminal e abrir o navegador para pesquisar

Veja o PR #7215 

O web_fetch anterior tinha vários problemas reais: páginas de listagem grandes eram truncadas no HTML bruto antes da conversão, cortando a resposta; URLs de links se perdiam completamente, e o modelo confidently dizia que “o alvo não existe”. PDFs eram decodificados como texto, gerando dezenas de milhares de tokens de texto corrompido. Alguns sites governamentais retornavam 403 para User-Agent anônimo.

Esta semana o pipeline inteiro foi reconstruído do zero:

  • HTML é convertido para markdown antes do truncamento, preservando conteúdo no fundo de páginas grandes e mantendo URLs de todos os hiperlinks. O truncamento tem marcação explícita; scripts e estilos não consomem o orçamento de conteúdo.
  • Extração de texto de PDF inline — uma única chamada de web_fetch já responde sobre o conteúdo do PDF. Arquivos binários são identificados por magic bytes (não apenas Content-Type) e salvos com a extensão correta.
  • Timeout de 60 segundos + limite de 10 MB, com Esc para cancelar a transferência imediatamente — antes a UI podia congelar. Buscas repetidas da mesma URL dentro de 15 minutos usam cache.
  • Redirecionamentos entre hosts não são mais seguidos silenciosamente — o sistema sugere que você faça uma nova requisição, passando pelo fluxo normal de permissões.
  • Modelo de permissões: o primeiro acesso a cada host requer confirmação (GETs expõem o caminho completo e a query, sendo um canal potencial de exfiltração de dados). Após aprovação, a regra é persistida por host. URLs de blob do GitHub são automaticamente normalizadas para endereços raw antes da avaliação de permissões.

O que você pode fazer com isso:

  • Buscar um link de PDF e responder diretamente sobre o conteúdo
  • Buscar uma página de listagem longa e perguntar sobre itens no fundo da página, sem perda de links
  • Redirecionamentos entre hosts pedem confirmação para nova requisição, sem seguir silenciosamente para domínios desconhecidos

Veja o PR #7146 

Grande atualização do Web Shell esta semana

O Web Shell recebeu um volume enorme de mudanças esta semana — de integração git a gerenciamento de sessões e experiência de workspace. Vamos por partes.

Trio de integração Git. O comando /log abre um navegador de histórico de commits em popup gráfico, com lista de commits, clique para expandir e ver a mensagem completa e estatísticas de alterações de arquivos, cópia do SHA em um clique e carregamento paginado. O popup de /diff também ganhou uma aba History, sem precisar trocar de comando. O chip de git status aparece na barra de ferramentas do composer, a barra lateral mostra o estado git do workspace e o popup de Changes exibe o diff visual da working tree. Veja os PRs #7204 , #7054 

Página de gerenciamento de Skills e página de Goals. O Web Shell agora tem uma página dedicada para visualizar e gerenciar skills do workspace, sem precisar voltar ao terminal. A página de Goals torna os objetivos do /goal visíveis no Web Shell, e os objetivos não se perdem após reinício do daemon. Veja os PRs #7018 , #6561 

Melhorias no gerenciamento de sessões. Cmd+B / Ctrl+B alterna a barra lateral, o layout de split view persiste entre refreshes (independente por aba), sessões restauradas carregam histórico com paginação em vez de puxar tudo de uma vez, e sessões arquivadas suportam exportação. O popup de Add Workspace ganhou autocompletar de diretório. Veja os PRs #7135 , #7136 , #7064 , #6910 , #7125 

Experiência de Workspace. Suporte a nomes de exibição personalizados para workspaces — em cenários com múltiplos workspaces, não é mais preciso olhar só o caminho. Ações de comandos slash personalizados, API de personalização da sidebar (marca, navegação, operações de sessão, footer). Rascunhos de novo tópico sugerem abrir uma nova sessão em vez de continuar na antiga. Veja os PRs #7179 , #7267 , #7379 , #7098 

📊 Mais funcionalidades

Valores padrão e aviso de escrita para Artifacts. O Agent agora tem configuração padrão ao criar artifacts e pede confirmação antes de escrever, reduzindo escritas acidentais de arquivos. Veja o PR #7068 

Resumo de ferramentas mostra caminho ativo. O resumo compacto de ferramentas exibe o caminho do arquivo sendo operado — em operações com múltiplos arquivos, você vê de imediato qual arquivo está sendo alterado. Veja o PR #7043 

Valores padrão e proteções para delegação de subagentes. Configuração padrão e limites de segurança da delegação de subagentes aprimorados, tornando o comportamento dos subagentes mais previsível. Veja o PR #7048 

Roteamento de logs no VSCode. Logs são direcionados para um output channel dedicado do Qwen Code Companion — para diagnosticar problemas no VSCode, não é mais preciso vasculhar outros painéis. Veja o PR #7121 

Rotação de logs do Daemon. Rotação de logs com limite — não crescem mais indefinidamente, e o disco não é mais consumido por logs do daemon. Veja o PR #6969 

Replay de histórico somente leitura no WebShell. Reprodução de histórico de ChatRecord em WebShell somente leitura, facilitando o compartilhamento de registros de sessão com colegas. Veja o PR #6999 

Normalização de nomes de ferramentas MCP. Nomes de ferramentas MCP normalizados para providers estritos, reduzindo falhas em chamadas de ferramentas MCP. Veja o PR #6976 

Recall de memória em Channels. Cada mensagem aciona automaticamente o recall de memórias relevantes, confirma alterações de memória natural e salva com segurança memórias com múltiplos fatos — o Agent em conversas de Channel lembra do contexto anterior. Veja os PRs #7157 , #7066 , #7092 

Observação de nome de grupo em Channels. O nome do grupo é obtido automaticamente das mensagens recebidas — em cenários com múltiplos grupos, o Agent sabe em qual grupo está. Veja o PR #7155 

Caminhos formatados na descrição de ferramentas. Descrições de ferramentas como grep/glob exibem caminhos de arquivos formatados, com resultados mais claros e legíveis. Veja o PR #7050 

Autocompletar com tab aprimorado no /cd. Ao digitar um nome de diretório e pressionar tab, o diretório já digitado é incluído nas sugestões, tornando o autocompletar mais preciso. Veja o PR #7320 

👏 Melhorias de experiência

Seleção com mouse no VP mode está de volta. Antes, os eventos de mouse no VP mode eram consumidos pelo CLI, impossibilitando selecionar e copiar. Agora é possível selecionar arrastando, dar duplo clique para selecionar palavra, triplo clique para selecionar linha — ao soltar, o conteúdo é copiado automaticamente para a área de transferência. Veja o PR #6937 

Reforço de segurança no Plan mode. Sair do Plan mode agora requer sua aprovação explícita — não sai mais silenciosamente. Comandos Shell no Plan mode são classificados por segurança: comandos somente leitura executam normalmente, comandos que modificam estado são bloqueados diretamente, e comandos indeterminados requerem aprovação individual sem sair do Plan mode. A confirmação de saída mostra o conteúdo completo do plano. Veja os PRs #6967 , #7172 , #7060 

Idioma de saída segue automaticamente. Quando configurado como auto, o idioma de saída acompanha o idioma de entrada do usuário, sem necessidade de troca manual. Veja o PR #6953 

Proteção contra Ctrl+C acidental. Para sair da TUI é preciso pressionar Ctrl+C duas vezes dentro de 1 segundo — um único Ctrl+C não fecha mais diretamente. Veja o PR #7129 

Controle de concorrência de subagentes. Suporte a limite de concorrência de subagentes por modelo — modelos diferentes podem ter configurações de concorrência diferentes. Subagentes fork ganharam o parâmetro fork_turns, permitindo herdar apenas os últimos turnos da conversa em vez do histórico completo. Veja os PRs #6984 , #7346 

Adaptação de modelos. Limites de token do kimi-k3 (contexto de 1M, saída de 128K), qwen3.8-max-preview adicionado à lista de modelos do Token Plan, suporte à região de Singapura no Token Plan. Veja os PRs #7144 , #7199 , #7280 

Outras melhorias. Limite de chamadas de ferramentas por turno agora é adaptativo, modo headless suporta subagentes com herança de contexto, controle de goal disponível em loops ativos, indicador de modo exibido durante saída em streaming, atualização npm executada em segundo plano com segurança. Veja os PRs #7052 , #7378 , #7202 , #7219 , #7322 

🔧 Correções importantes

CorreçãoPRImpacto para você
TUI redesenha automaticamente após suspensão/retomada do sistema#7265 Interface não fica mais desorganizada após retomar
Cancelamento durante prompt de permissão não se perde mais#7295 Operações canceladas não desaparecem
Prompt cancelado após streaming é restaurado no campo de entrada#7149 Prompt cancelado não precisa ser redigitado
Blocos de código em streaming mantidos intactos ao dividir entre commits#7020 Blocos de código não são mais truncados
Painel de tarefas fixas oculto quando o Agent está ocioso#7062 Interface mais limpa
Falha na verificação de atualização agora é aviso, não erro#7409 Inicialização offline não gera mais erro interruptivo
Estimativa correta de tokens de raciocínio quando completion_tokens_details está ausente#7239 Estatísticas de uso de tokens mais precisas
Side query do qwen3.8 funciona corretamente no Bailian#7303 Side query não falha mais para usuários do Bailian
Pós-processamento do web_fetch com limites definidos#7305 Conteúdo já obtido é preservado quando a busca falha
Conteúdo de trabalho existente preservado no system prompt#7087 System prompt não perde mais conteúdo existente
Retry automático para tool-result vazio#7039 Resultado vazio do modelo não trava mais
Restrição de additionalProperties no wire OpenAI relaxada#7344 Mais modelos compatíveis
Subagentes criados após inicialização não são mais rejeitados por cache expirado#7112 Criação de subagentes não falha mais ocasionalmente
Retry automático para tags de thinking duplicadas malformadas#7100 Formato anômalo de thinking do modelo não causa mais crash
Reforço nos limites de entrada do Plan mode#7248 Plan mode não é mais ativado acidentalmente
Caminhos de artifacts resolvidos corretamente em sessões Worktree#7429 Artifacts no Worktree não são mais escritos no local errado
Processo filho encerrado após timeout de descoberta MCP#6926 Não há mais vazamento de processos
Filtro de payload de modelo opt-in adicionado ao MCP#7413 Redução de transmissão de payload desnecessária
Reforço no ciclo de vida de requisições de permissão do Desktop MCP#7013 Prompts pendentes não ficam mais suspensos ou vazando
Processo ACP do VSCode mantém modo Electron Node#7106 Extensão VSCode não falha mais por versão do Node
Symlinks de raiz em caminhos de memória resolvidos corretamente#6842 Caminhos com symlink não geram mais erro
Configuração enableManagedAutoMemory aplicada corretamente#6941 Interruptor de memória automática não falha mais
Deduplicação de imagens restauradas e atalhos de sidebar no Web Shell#7169 Não aparecem mais itens duplicados
Popups de aprovação e perguntas no Web Shell suportam teclado#7074 Popups podem ser operados pelo teclado
Texto de prompt restaurado no Web Shell não empilha mais#7134 Não aparecem mais cópias duplicadas
Sessões Worktree em execução podem ser abertas normalmente#7424 Sessões Worktree não ficam mais inacessíveis
Token do daemon do Web Shell persistido por aba#7374 Não é preciso reautenticar após refresh
Respostas de agentes em segundo plano entregues corretamente em Channels#7336 Respostas em segundo plano não se perdem mais
Pareamento e lista de permissões de Channels isolados por workspace#7065 Múltiplos workspaces não interferem mais entre si
Retry automático para falha transitória de emotion no DingTalk#7329 Reações com emoji não falham mais ocasionalmente
Regex de @mention no DingTalk ancorado ao início do texto#7401 @mention não faz mais correspondência incorreta
Limite de 50 MB para download de mídia no DingTalk#7361 Alinhado com o Feishu — arquivos grandes não falham mais

👥 Contribuidores

ContribuidorContribuiçõesPRs de referência
@wenshao Sessões isoladas com Worktree, navegador de histórico de commits Git, git status chip + diff, restauração de sessões Worktree, várias melhorias no Web Shell#7221 , #7204 , #7054 , #7262 
@doudouOUC Aprovação de saída do Plan mode, roteamento de segurança Shell no Plan mode, rotação de logs do Daemon, verificação de branch de sessão, reforço de multi-workspace#6967 , #7172 , #6969 , #7185 
@yiliang114 Roteamento multimodal por turno completo, atualização npm em segundo plano, estimativa de tokens de raciocínio, suporte ao qwen3.8, correções de roteamento de modelos#7045 , #7322 , #7239 , #7303 
@zjunothing Seleção com mouse no VP mode, alternância de sidebar com Cmd+B, autocompletar de diretório, exibição completa do plano, várias correções no Web Shell#6937 , #7135 , #7125 , #7060 
@chinesepowered Limpeza de SSE no SDK, várias correções de typos, correções de i18n, limite de mídia no DingTalk#7257 , #7057 , #7131 , #7361 
@tanzhenxin web_search integrado, reconstrução completa do web_fetch, limites de token do kimi-k3, correção de ask-user-question#7215 , #7146 , #7144 , #7063 
@qwen-code-dev-bot Limite de concorrência de subagentes, recall de memória em Channels, controle de goal, indicador de modo, várias correções de CI#6984 , #7157 , #7202 , #7219 
@ytahdn Página de gerenciamento de Skills, comandos slash personalizados, API de personalização da sidebar, correções no Web Shell#7018 , #7267 , #7379 , #7294 
@qqqys Confirmação de memória em Channels, salvamento de memória com múltiplos fatos, entrega de respostas de agentes em segundo plano, correções no DingTalk#7066 , #7092 , #7336 , #7401 
@chiga0 Valores padrão e aviso de escrita para Artifacts, otimização de controles no VP mode, correção de ink patch#7068 , #6931 , #7407 
@LaZzyMan Redirecionamento em tempo real, consulta quando classificador do Auto Mode está indisponível, filtro de payload MCP, correção de mobile-mcp#7090 , #7331 , #7413 , #7321 
@DragonnZhang Proteções de delegação de subagentes, fork_turns, subagentes headless, correção de system prompt#7048 , #7346 , #7378 , #7087 
@han-dreamer Idioma de saída com acompanhamento automático, região de Singapura no Token Plan, correção de managedAutoMemory#6953 , #7280 , #6941 
@callmeYe Localização de tags de extension, correção de configurações de voz, preservação de descrição de skills, correção de ícone de tag#7337 , #7345 , #7032 , #7024 
@samuelhsin Nome de exibição de workspace, endpoint agregado de session-info#7179 , #7077 
@BenGuanRan Contatos de workspace em Channels, observação de nome de grupo#7109 , #7155 
@mvanhorn Reforço de permissões do Desktop MCP, correção de listener de resize de stdout, exposição de cause em erros de conexão#7013 , #7186 , #7010 
@morluto Encerramento de processo filho após timeout de descoberta MCP, normalização de caminhos de permissão#6926 , #6923 
@barry166 Restauração de prompt cancelado, aviso de inicialização de deferred stream-json#7149 , #7174 
@xurik Marcação de sourceId do daemon de Channel, tag de origem de sessão#7078 , #6991 
@ZijianZhang989 Correção de documentação CLI, limitação de markdown no Feishu, correções em lote#7326 , #7324 , #7373 
@pomelo-nwu Módulos centrais no CODEOWNERS, simplificação para regras por pacote#7304 , #7376 
@jordimas Atualização da tradução em catalão#7253 
@cxruan Replay de histórico somente leitura no WebShell, marcação de histórico de ferramentas órfão#6999 , #7340 
@carffuca Sugestão de rascunho de novo tópico, correção de corte de labels na barra de ferramentas#7098 , #7196 
@dreamWB Correção de restauração de tags de contexto#7312 
@BZ-D Correção de interação de referência em tarefas agendadas#7313 
@ran411285752 Normalização de nomes de ferramentas MCP#6976 
@yuanyuanAli API de personalização da Sidebar#7379 
🆕 @azurecgx 🎉 Primeira contribuição: correção de linhas do MaxSizedBox na TUI e diff show-more#6957 
🆕 @makwingchi 🎉 Primeira contribuição: propagação de prompt ID do Daemon para eventos de turno#7082 
🆕 @ARE404 🎉 Primeira contribuição: persistência de metadados de modelo de subagentes#7104 
🆕 @ghisguth 🎉 Primeira contribuição: adaptação de schema de chamada de ferramentas nativa do Gemma 4#7177 
🆕 @ComplexSimply 🎉 Primeira contribuição: falha de verificação de atualização convertida em aviso, timeout aumentado para 5 segundos#7409 

Como atualizar: Execute npm i @qwen-code/qwen-code@latest -g para atualizar para a versão mais recente.

Se tiver dúvidas ou sugestões, fique à vontade para abrir uma issue em GitHub Issues !

Last updated on