Você está usando o Visual Studio Code com o Subsistema Windows para Linux e o GitHub Copilot para de sugerir código ou mostra erros de conexão. Isso geralmente acontece porque o Copilot não consegue alcançar seus servidores backend ou o proxy da extensão local falha dentro do ambiente WSL. O problema não é de rede do WSL, mas uma incompatibilidade entre como o Copilot autentica e como o VS Code roteia o tráfego através do gateway do WSL. Este artigo explica a causa raiz e fornece correções passo a passo para restaurar as sugestões do Copilot no seu workspace WSL.
Principais Pontos: Restaurando Conexões do Copilot no WSL
- Extensão Remote do VS Code (ms-vscode-remote.remote-wsl): Deve estar instalada e atualizada para a versão 0.79 ou superior para o manuseio adequado do proxy do Copilot.
- Extensão Copilot no lado remoto do WSL: Deve ser instalada explicitamente dentro do ambiente WSL, não apenas no host Windows.
- Comando Copilot: Sair e Entrar: Execute este comando pela paleta de comandos do VS Code enquanto estiver conectado ao WSL para atualizar o token de autenticação.
Por que o Copilot Perde a Conexão no WSL
Quando você abre uma pasta do WSL no VS Code, a extensão Remote – WSL inicia um servidor VS Code dentro da distribuição Linux. O GitHub Copilot funciona como um servidor de linguagem nesse contexto remoto. A extensão Copilot no host Windows e a dentro do WSL são instâncias separadas. Se a instância remota não tiver um token de autenticação válido ou não conseguir alcançar os endpoints da API do Copilot, ela falha silenciosamente. A causa raiz mais comum é que a extensão Copilot está instalada apenas no lado Windows e não foi propagada para o servidor WSL. Uma causa secundária é um token desatualizado que a instância remota não consegue atualizar devido a regras de proxy ou firewall na interface de rede do WSL.
Diferenças no Caminho de Rede
A pilha de rede do WSL é um adaptador virtualizado. O tráfego do VS Code dentro do WSL é roteado através da rede do host Windows. Se um proxy corporativo ou VPN estiver configurado no lado Windows, as solicitações do Copilot originadas do WSL podem não passar por esse proxy automaticamente. A extensão Copilot não lê as variáveis de proxy do ambiente WSL por padrão. Essa incompatibilidade causa timeouts e falhas de autenticação.
Incompatibilidade de Versão da Extensão
Se a versão da extensão Copilot no host Windows for diferente da versão instalada no servidor remoto do WSL, o protocolo de comunicação pode quebrar. As extensões remotas do VS Code são atualizadas automaticamente no host, mas o servidor remoto pode ficar desatualizado até que você recarregue a janela ou reinicie a instância do WSL.
Passos para Corrigir a Conexão do Copilot no WSL
Siga estes passos em ordem. Teste o Copilot após cada passo digitando um comentário como // test copilot em um arquivo de código e aguardando uma sugestão. Não pule o passo de sair mesmo se você já estiver conectado.
- Atualize a extensão Remote – WSL
Abra o VS Code no Windows. Vá para a visualização de Extensões. Pesquise por Remote – WSL da Microsoft. Se uma atualização estiver disponível, clique no botão Atualizar. Recarregue a janela do VS Code após a atualização. Isso garante que a extensão suporte o protocolo de proxy mais recente do Copilot. - Instale a extensão GitHub Copilot dentro do WSL
No VS Code, abra uma pasta do WSL. Abra a visualização de Extensões. Você verá uma seção chamada LOCAL – INSTALADO e uma seção chamada WSL:UBUNTU ou o nome da sua distribuição. Se o Copilot aparecer apenas em LOCAL, clique no botão Instalar no WSL ao lado da extensão Copilot. Aguarde a instalação terminar. Recarregue a janela. - Saia e entre no Copilot
Pressione Ctrl+Shift+P para abrir a paleta de comandos. Digite Copilot: Sair e selecione. Aguarde a mensagem de confirmação. Abra a paleta de comandos novamente e digite Copilot: Entrar. Siga o fluxo de autenticação baseado no navegador. Isso força a instância remota a obter um token novo. - Reinicie o Servidor Remoto do VS Code
Abra a paleta de comandos com Ctrl+Shift+P. Digite Remote: Matar Servidor VS Code no Host. Confirme a ação. Feche o VS Code completamente. Reabra o VS Code e abra sua pasta do WSL. O servidor remoto reinicia do zero e carrega a extensão Copilot correta. - Configure as configurações de proxy para o WSL
Se você usa um proxy corporativo, abra o terminal do WSL e defina as variáveis de ambiente:export HTTP_PROXY=http://proxy.suaempresa.com:8080eexport HTTPS_PROXY=http://proxy.suaempresa.com:8080. Adicione essas linhas ao seu arquivo~/.bashrcou~/.zshrc. Recarregue o terminal comsource ~/.bashrc. Depois reinicie o VS Code. - Verifique o canal de saída do Copilot
Abra o VS Code e vá em Exibir > Saída. No menu suspenso no canto superior direito, selecione GitHub Copilot. Procure por mensagens de erro comoFalha ao conectarouFalha na atualização do token. Se você vir um erro de timeout, o proxy ou firewall está bloqueando a conexão. Se vir um erro de autenticação, repita os passos 3 e 4.
Se o Copilot Ainda Tiver Problemas Após a Correção Principal
Os seguintes problemas podem persistir mesmo após você completar os passos principais. Cada um tem uma causa específica e uma correção direcionada.
Copilot Sugere Apenas em Arquivos Locais, mas Não em Arquivos WSL
Isso significa que a extensão Copilot está instalada apenas no lado Windows. Quando você abre uma pasta do WSL, o VS Code executa um servidor separado que não inclui o Copilot. Vá para a visualização de Extensões enquanto estiver conectado ao WSL e verifique se o Copilot aparece na seção WSL. Se não aparecer, clique no botão Instalar no WSL. Este é o descuido mais comum.
Copilot Mostra um Ícone Giratório e Nunca Responde
O servidor remoto não consegue alcançar a API do Copilot. Abra um terminal dentro do WSL e execute curl -I https://api.github.com/copilot. Se o comando travar ou retornar um erro de conexão recusada, a interface de rede do WSL está bloqueada. Verifique as regras de firewall do Windows e a configuração da VPN corporativa. Adicione uma exceção para o adaptador virtual do WSL. Reinicie o serviço WSL com wsl --shutdown em um prompt de comando do Windows e depois reabra o VS Code.
Copilot Retorna Erro de Autenticação Após Suspensão ou Hibernação do Windows
O token de autenticação armazenado em cache no servidor remoto do WSL expira enquanto o host está em suspensão. O servidor remoto não atualiza automaticamente o token quando o host é reativado. Abra a paleta de comandos e execute Copilot: Sair e depois Copilot: Entrar. Isso atualiza o token sem reiniciar todo o servidor.
Copilot Funciona no Host Windows, mas Não no WSL com Docker
Se você usa a extensão Dev Containers do VS Code dentro do WSL, a extensão Copilot também deve ser instalada dentro do contêiner. Abra a visualização de Extensões enquanto estiver conectado ao contêiner e instale o Copilot lá. O contêiner não herda extensões do servidor WSL automaticamente.
Métodos de Conexão do GitHub Copilot: WSL Remoto vs Windows Local vs Dev Container
| Item | WSL Remoto | Windows Local | Dev Container |
|---|---|---|---|
| Local de instalação da extensão | Instância do servidor WSL | Host Windows | Instância do contêiner |
| Configuração de proxy necessária | Variáveis de ambiente do WSL | Proxy do sistema Windows | Variáveis de ambiente do contêiner |
| Método de atualização do token | Copilot: Sair/Entrar no WSL | Copilot: Sair/Entrar no host | Copilot: Sair/Entrar no contêiner |
| Padrão de falha comum | Extensão não instalada remotamente | Firewall bloqueando API | Extensão ausente no contêiner |
Agora você pode restaurar as sugestões do GitHub Copilot no seu workspace WSL. Comece verificando se a extensão está instalada no lado remoto e depois saia e entre para atualizar o token. Para problemas persistentes de proxy, defina as variáveis HTTP_PROXY e HTTPS_PROXY no perfil do shell do WSL. Se você usa várias distribuições WSL, repita a instalação da extensão para cada distribuição separadamente.