Qwen Code Semanal: Modo Autônomo /loop, Ditado por Voz no Desktop, Visualização por Abas em Settings
O Qwen Code lançou a v0.19.4 esta semana, com mais de 80 PRs mesclados em três direções:
/loop funciona mesmo quando você sai. Um /loop simples (sem prompt) ativa o modo autônomo — o agent continua avançando o trabalho já estabelecido enquanto você está ausente, sem inventar novas tarefas nem executar operações irreversíveis. Com um arquivo de tarefas .qwen/loop.md, o loop relê a lista editável a cada tick; se o arquivo for deletado, o loop emite ticks no-op apenas para se manter vivo. O Claude Code publicou na semana passada um guia introdutório sobre loops de agentes , descrevendo agents executando um plano predefinido repetidamente — o modo autônomo do /loop faz algo semelhante, mas com uma camada extra: a lista de tarefas pode ser editada a qualquer momento e o loop detecta as mudanças automaticamente.
Ditado por voz chega ao desktop. O ditado por voz já existia no CLI e no Web Shell, mas o desktop ainda não tinha. Esta versão preenche a última lacuna, unificando a experiência nas três interfaces.
Interação no terminal mais refinada. /settings deixou de ser uma lista plana e virou uma visualização por abas — pesquisa, status e estatísticas em uma única tela; no modo Virtualized History, menus, sugestões e campo de entrada agora aceitam cliques e hover do mouse.
✨ Novos Recursos
Modo autônomo /loop + arquivo de tarefas loop.md
/loop agora suporta dois novos modos:
Modo autônomo: Um /loop simples (sem prompt, sem intervalo) não exibe mais a mensagem de uso — em vez disso, inicia um ciclo autônomo com passos definidos pelo próprio agent. O agent avança o trabalho já estabelecido enquanto você está ausente — mantém PRs em andamento, continua tarefas incompletas, cumpre promessas feitas — mas só executa o que já está confirmado no transcript, sem inventar novas tarefas e sem realizar ações irreversíveis (push/delete/send) sem autorização explícita. Para quando fica quieto. O preamble autônomo é enviado apenas uma vez; a cada tick seguinte, apenas um lembrete curto é enviado, mantendo o custo de tokens baixo.
Arquivo de tarefas loop.md: Crie .qwen/loop.md na raiz do projeto ou em ~/.qwen/, defina o prompt do wakeup/cron como sentinel (<<loop.md-dynamic>> ou <<loop.md>>), e o loop relê o arquivo a cada execução. Na primeira vez, o conteúdo completo é entregue; nas seguintes, se nada mudou, apenas um lembrete curto é enviado; se o arquivo foi editado, o conteúdo completo é reenviado. Quando o arquivo desaparece, o loop emite ticks no-op (o agent não faz nada, apenas re-arma o ciclo para mantê-lo vivo), voltando ao comportamento base do modo autônomo. Ao recriar o loop.md, o próximo tick detecta a mudança automaticamente e reenvia o conteúdo completo.
Loops em canais: /loop não se limita ao terminal — também funciona em canais do DingTalk e Feishu. No grupo, use /loop add "0 9 * * 1-5" verificar status do CI para criar um loop agendado, /loop list para ver todos os loops do canal atual, /loop inspect <id> para ver contagem de execuções e resultados recentes, /loop cancel <id> para parar. Os loops são executados via channel session router, aguardando o turno ativo terminar antes de iniciar, e os resultados são enviados de volta ao canal. Loops de execução única são desativados automaticamente após sucesso ou falha.
O que você pode fazer com isso:
- Use
/loopsimples para o agent continuar avançando o trabalho enquanto você está ausente - Mantenha uma lista de tarefas persistente e editável com
.qwen/loop.md, sem precisar repetir instruções a cada tick - Delete o loop.md e o loop emite ticks no-op para se manter vivo; recrie e ele retoma normalmente
- Em grupos DingTalk/Feishu, use
/loop addpara agendar loops que avançam o trabalho periodicamente
Ditado por Voz no Desktop: Alinhamento entre as Três Interfaces
O ditado por voz já existia no CLI e no Web Shell, mas o desktop não tinha — usuários que configuravam voz perdiam essa capacidade ao alternar para o desktop. Esta versão preenche a última lacuna.
A barra de ferramentas do composer agora tem um botão de microfone. Durante a gravação, a barra se transforma em uma barra de gravação (linha pontilhada → forma de onda em tempo real → cronômetro). Ao parar, o resultado da transcrição é inserido no campo de entrada para revisão. A transcrição é feita no servidor, reutilizando o pipeline de voz do CLI (batch qwen3-asr-flash e modelos em tempo real *-realtime); as credenciais do provider não entram no renderer. A voz pode ser ativada e o modelo selecionado em Settings → Input e no dropdown de modelos do composer.
O que você pode fazer com isso:
- Clique no microfone e fale, vendo a forma de onda e o cronômetro em tempo real
- Escolha um modelo realtime (como
qwen3-asr-flash-realtime) para ver o texto provisório enquanto fala - Libere as mãos para entrada por voz em tablets ou cenários com múltiplos monitores
Veja PR #5856
Como usar?
- Clone o repositório:
git clone https://github.com/QwenLM/qwen-code.git
- Entre no diretório
cd qwen-code/packages/desktop
- Instale as dependências e inicie o modo de desenvolvimento
bun install && bun run dev
Mobile Sidebar Drawer + Aprimoramentos em qwen serve
Anteriormente, ao acessar qwen serve pelo navegador móvel, a sidebar (lista de sessões, pesquisa, nova sessão) era simplesmente ocultada com display: none abaixo de 760px — não havia nenhuma forma de alternar sessões. Agora, um overlay drawer substitui o ocultamento direto: um botão de menu aparece no cabeçalho do painel de chat e, ao clicar, a sidebar desliza da esquerda com uma máscara semitransparente. Selecionar uma sessão, criar uma nova sessão ou clicar na máscara fecha o drawer. O layout desktop não é afetado.
Por trás disso, há uma série de mudanças que transformam o qwen serve de “funcional” em “agradável de usar”:
- Criação lazy de sessão (#6066 ): a sessão só é criada no primeiro prompt, reduzindo overhead de sessões vazias e acelerando o início do Web Shell
- workspace remember (#5884 ): o modo serve lembra o workspace, sem necessidade de reespecificar após reiniciar
- session archive (#6058 ): o daemon suporta arquivamento de sessões, permitindo gerenciar sessões de longa duração
O que você pode fazer com isso:
- Acesse
qwen servepelo navegador móvel e use o menu para alternar entre sessões - Ao alternar entre vários projetos, o serve lembra o workspace automaticamente
- Sessões de longa duração podem ser arquivadas em vez de deletadas
Veja PR #6003
| Descrição | Sidebar recolhida | Sidebar expandida |
|---|---|---|
| Captura de tela | ![]() | ![]() |
Cliques e Hover do Mouse no TUI
Anteriormente, no modo Virtualized History, o CLI suportava apenas scroll do mouse e barra de rolagem, sem interação por ponteiro. Agora, com o Virtualized History habilitado (ui.useTerminalBuffer), três tipos de interação estão disponíveis:
- Menus de seleção e caixas de diálogo (confirmação de permissão,
/model,/config, temas etc.): hover destaca a linha sob o ponteiro, clique seleciona - Listas de sugestões de comandos
/e arquivos@: hover destaca a sugestão, clique aceita - Campo de entrada: clique esquerdo posiciona o cursor de texto (suporta múltiplas linhas, offset de scroll, caracteres largos)
O que você pode fazer com isso:
- No diálogo
/model, selecione o modelo diretamente com o mouse, sem usar as teclas de direção - Após digitar
/, clique na sugestão de autocompletar - Em entradas multilinha, clique para reposicionar o cursor
Veja PR #6011

Settings em Abas: Pesquisa, Status e Estatísticas em Uma Tela
/settings foi redesenhado de uma lista plana para uma visualização por abas, inspirada no design do /config do Claude Code. A barra de abas no topo divide em três páginas — Settings / Status / Stats — e a página Settings tem uma caixa de pesquisa que filtra ao digitar.
A página Status exibe as mesmas informações do sistema que /status; a página Stats incorpora o painel completo de /stats (com sub-abas Session / Activity / Efficiency). O foco do teclado se move verticalmente entre barra de abas → campo de pesquisa → lista de configurações, e o destaque só aparece na área que realmente possui o foco.
O que você pode fazer com isso:
- Abra
/settingse digite uma palavra-chave para filtrar configurações - Use ←/→ para alternar até a página Status e ver informações de runtime, sem precisar executar
/statusseparadamente - Na página Stats, use Tab para alternar entre Session / Activity / Efficiency; quando a tabela Efficiency exceder a altura do diálogo, ela se recolhe automaticamente em “+N more”
Veja PR #6044

Extensão Chrome: Converse e Opere Páginas Diretamente no Navegador
A extensão Chrome foi ressuscitada com base na arquitetura daemon-direct — a extensão deixa de ser o host de Native Messaging e passa a ser um cliente fino do daemon local qwen serve.
O chat na sidebar conecta-se diretamente ao qwen serve via DaemonSessionProvider (HTTP+SSE, o mesmo caminho do web shell); quando não consegue conectar ao daemon, exibe a mensagem “execute qwen serve”. As ferramentas de navegador (ler página, captura de tela, console, navegação, clique, preenchimento de formulários) são expostas ao agent como um MCP server gerenciado pelo cliente via daemon WebSocket. Tanto o chat quanto as ferramentas eliminaram o Native Messaging.
Atenção: o canal reverso de ferramentas é habilitado via variável de ambiente QWEN_SERVE_CLIENT_MCP_OVER_WS, desativado por padrão — é necessário definir essa flag explicitamente ao iniciar o qwen serve.
O que você pode fazer com isso:
- Converse com o Qwen Code diretamente na sidebar do Chrome, sem precisar instalar um host nativo no sistema operacional
- Peça ao agent para ler a página atual, fazer capturas de tela e operar elementos do navegador
- Reutilize a UI compartilhada do web shell, com experiência consistente
Veja PR #5777

📊 Mais Novos Recursos
| Recurso | PR | Impacto |
|---|---|---|
/config key=value: altere qualquer configuração diretamente no prompt, com Tab autocomplete + correção ortográfica | #5773 | Não precisa mais abrir settings.json |
| Timeline rail de sessão: timeline compacta no lado esquerdo do web shell, hover mostra detalhes do turno | #6078 | Localização rápida de turnos em sessões longas |
| /skills ACP com saída aprimorada: exibe description e level | #6117 | Lista de skills com informações mais completos |
auto-mode classificação completa de shell: nova configuração classifyAllShell (desativada por padrão) | #6040 | Defesa em profundidade em produção |
qwen tag identidade múltipla em grupo: sessões compartilhadas no DingTalk suportam marcação de falante [sender] | #5888 | Agent distingue quem está falando no grupo |
| group history backfill: preenchimento de mensagens históricas do grupo | #6074 | Novos membros podem ver o histórico |
| browser tab favicon: ícone na aba do navegador do web shell | #6091 | Fácil distinção entre múltiplas abas |
| chat UI e renderização de tabelas otimizados: refinamentos na interface do web shell | #6099 | Experiência visual aprimorada |
| queued-prompt UX: interrupção com Esc no web shell mais amigável | #6025 | Interrupção de operações mais fluida |
| resumable /acp session stream: suporta retomada com Last-Event-ID | #5852 | Conexões SDK mais estáveis |
| glob patterns em mcp.allowed/excluded: whitelist MCP suporta curingas | #6012 | Configuração MCP mais flexível |
inline model override: /model suporta override pontual de modelo | #6022 | Troca temporária de modelo mais fácil |
| leader approval para teammates com plano obrigatório: teammates que requerem plano precisam de aprovação do leader | #6138 | Colaboração multi-agent mais segura |
🔧 Correções Importantes
| Correção | PR | Impacto |
|---|---|---|
| Timeout ocioso de ferramenta MCP: servidor é abortado automaticamente após 5 minutos sem resposta, evitando bloqueio de sessão | #6061 | Ferramentas MCP de longa duração não ficam mais esperando indefinidamente |
| Exibição de diffs com alterações apenas de espaço em branco: alterações somente em espaços em branco não exibem mais “No changes detected” | #6141 | Saída de diff mais precisa |
| Otimização de latência de entrada no TUI: yield para React após addItem, reduzindo travamentos na digitação | #6059 | Digitação mais fluida |
| Scroll multi-agent sem modo VP: transcript é rolável durante execução de múltiplos agents | #6015 | Histórico visualizável em cenários multi-agent |
Suporte HTTPS/TLS: qwen serve ganha flags --tls-cert e --tls-key | #6032 | Funciona em ambientes com certificados autoassinados |
Caminhos com til no Windows: suporta expansão de caminhos ~ no estilo Windows | #6029 | Compatibilidade de caminhos para usuários Windows |
👥 Contribuidores
| Contribuidor | Contribuições | PRs |
|---|---|---|
| @qqqys | Modo autônomo /loop + arquivo de tarefas loop.md, ditado por voz, identidade múltipla em grupo com qwen tag, group history backfill, suporte a loops em canais | #5890 , #5991 , #5856 , #5888 , #6074 , #6073 |
| @DragonnZhang | /effort intensidade de raciocínio unificada, cliques e hover do mouse no TUI, diálogo de Settings em abas | #6072 , #6011 , #6044 |
| @doudouOUC | session archive, saída aprimorada de skills ACP, leader approval para teammates com plano obrigatório, exibição de diffs com alterações de espaço em branco | #6058 , #6117 , #6138 , #6141 |
| @DennisYu07 | Comando /config, classificação completa de shell no auto-mode, curingas na whitelist MCP, timeout ocioso de ferramenta MCP | #5773 , #6040 , #6012 , #6061 |
| @pomelo-nwu | Mobile Sidebar Drawer, suporte HTTPS/TLS | #6003 , #6032 |
| @callmeYe | workspace remember, timeline rail de sessão | #5884 , #6078 |
| @ytahdn | Criação lazy de sessão, otimização de chat UI e renderização de tabelas | #6066 , #6099 |
| @chiga0 | resumable /acp session stream, scroll multi-agent sem modo VP | #5852 , #6015 |
| @yiliang114 | Ressurreição da extensão Chrome | #5777 |
| @wenshao | browser tab favicon | #6091 |
| @carffuca | Otimização do queued-prompt UX | #6025 |
| @Alex-ai-future | Otimização de latência de entrada no TUI | #6059 |
| @VectorPeak | Expansão de caminhos com til no Windows | #6029 |
| 🆕 @Minerest | 🎉 Primeira contribuição: corrigido recall de memória para disparar apenas quando auto-memory está habilitado | #5963 |
| 🆕 @TianYuan1024 | 🎉 Primeira contribuição: flag --insecure para pular verificação TLS, override inline de modelo em /model | #5962 , #6022 |
| 🆕 @gauravyad86 | 🎉 Primeira contribuição: correção de vulnerabilidades npm de nível crítico (simple-git, shell-quote e outras dependências de runtime), com adição de verificação de auditoria no CI | #6065 |
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, sinta-se à vontade para abrir uma issue em GitHub Issues !

