GitHub Copilot Chat Usa Contexto de Repositório Errado: Como Corrigir
🔍 WiseChecker

GitHub Copilot Chat Usa Contexto de Repositório Errado: Como Corrigir

O GitHub Copilot Chat às vezes carrega o contexto do repositório errado, fazendo com que sugira código ou responda perguntas com base em arquivos de outro projeto. Isso acontece quando a extensão não consegue detectar corretamente o repositório ativo ou quando vários repositórios estão abertos no mesmo workspace. O problema é comum entre desenvolvedores que trabalham com vários repositórios no Visual Studio Code ou IDEs JetBrains. Este artigo explica por que o Copilot Chat perde o contexto e fornece correções passo a passo para restaurar o comportamento correto.

Principais conclusões: Restaurando o contexto correto do repositório no Copilot Chat

  • Paleta de comandos do VS Code > Developer: Reload Window: Atualiza o host da extensão e força o Copilot a reler o workspace ativo.
  • Configurações do GitHub Copilot Chat > Seletor de repositório: Permite escolher manualmente o repositório correto quando vários estão abertos.
  • Arquivo .copilot-context na raiz do repositório: Define explicitamente qual repositório o Copilot Chat deve usar para contexto.

ADVERTISEMENT

Por que o Copilot Chat Escolhe o Repositório Errado

O GitHub Copilot Chat determina o contexto do repositório lendo a estrutura de pastas do workspace e o repositório Git ativo. No Visual Studio Code, a extensão usa a API workspaceFolders e o estado git.repository para identificar o projeto atual. Quando você abre um workspace que contém várias pastas, cada uma com seu próprio root Git, o Copilot Chat pode selecionar a pasta errada como contexto principal.

As IDEs JetBrains usam um mecanismo similar baseado no root do projeto e no módulo ativo. Se você tiver vários módulos ou projetos carregados na mesma janela da IDE, o Copilot Chat pode usar o primeiro módulo da lista em vez daquele que você está editando ativamente.

A extensão nem sempre reavalia o contexto quando você alterna entre arquivos ou abas. Ela armazena em cache o identificador do repositório no início da sessão. Se você mudar para um repositório diferente sem recarregar a janela, o Copilot Chat continua referenciando o repositório original. Isso leva a sugestões incorretas, referências a arquivos desatualizados e respostas que mencionam código do projeto errado.

Passos para Corrigir o Contexto Errado do Repositório

Os passos a seguir se aplicam ao Visual Studio Code e IDEs JetBrains. Execute-os em ordem até que o contexto seja corrigido.

Passo 1: Verifique o Repositório Ativo na Barra de Status

  1. Abra o painel do Copilot Chat
    Clique no ícone do Copilot Chat na barra de atividades ou pressione Ctrl+Shift+I no Windows, Cmd+Shift+I no Mac.
  2. Verifique o nome do repositório exibido no topo do painel de chat
    Se o nome não corresponder ao repositório em que você está trabalhando, o contexto está errado. Anote o nome exibido.
  3. Feche outras pastas do workspace que contenham repositórios não relacionados
    No VS Code, vá em File > Close Folder para cada pasta extra. No JetBrains, vá em File > Close Project e reabra apenas o projeto correto.

Passo 2: Recarregue a Janela da IDE

  1. No VS Code, abra a Paleta de Comandos
    Pressione Ctrl+Shift+P no Windows ou Cmd+Shift+P no Mac.
  2. Execute o comando Reload Window
    Digite Developer: Reload Window e pressione Enter. A janela reinicia e o Copilot Chat reinicializa com o workspace correto.
  3. Nas IDEs JetBrains, vá em File > Invalidate Caches
    Selecione Invalidate and Restart. Isso limpa o cache da extensão e força o Copilot Chat a reconstruir seu índice de contexto.

Passo 3: Selecione Manualmente o Repositório Correto

  1. No painel do Copilot Chat, clique no menu suspenso de repositório
    Esse menu aparece perto do topo do painel de chat se vários repositórios forem detectados.
  2. Selecione o repositório correto na lista
    O Copilot Chat reindexa imediatamente esse repositório e o usa para todas as consultas subsequentes.
  3. Se o menu suspenso estiver ausente, abra as configurações do VS Code
    Vá em File > Preferences > Settings, pesquise por github.copilot.chat.repositorySelection e defina como manual. Isso faz o menu suspenso ficar sempre visível.

Passo 4: Adicione um Arquivo .copilot-context

  1. Crie um arquivo chamado .copilot-context na raiz do repositório correto
    Esse arquivo informa ao Copilot Chat qual repositório usar por padrão.
  2. Adicione o caminho ou nome do repositório
    Escreva o caminho relativo até a raiz do repositório ou o nome do repositório reconhecido pelo seu remote Git. Exemplo: meu-frontend-app.
  3. Salve o arquivo e recarregue a janela
    Execute o comando Reload Window do Passo 2 para aplicar a alteração.

Passo 5: Desative Workspaces Multi-Raiz Temporariamente

  1. Abra o arquivo de workspace
    No VS Code, vá em File > Open Workspace from File e selecione seu arquivo .code-workspace.
  2. Remova pastas extras do workspace
    No JSON de configurações do workspace, exclua as entradas folders que apontam para outros repositórios. Salve o arquivo.
  3. Recarregue a janela
    O Copilot Chat agora vê apenas um repositório e o usa para contexto.

ADVERTISEMENT

Se o Copilot Chat Ainda Usar Contexto Errado Após a Correção Principal

Copilot Chat Retorna Trechos de Código de um Projeto Diferente

Se as sugestões ainda referenciarem arquivos de outro repositório, a extensão pode estar lendo um índice em cache. Limpe o cache do Copilot Chat executando o comando Copilot: Clear Chat History na paleta de comandos. Em seguida, faça uma nova pergunta para forçar o carregamento de um contexto novo.

Copilot Chat Ignora o Arquivo .copilot-context

O arquivo .copilot-context só é lido quando o Copilot Chat inicializa. Se você adicionar o arquivo após a sessão ter iniciado, recarregue a janela. Verifique também se o arquivo está na raiz do repositório atualmente ativo no workspace, e não em uma subpasta.

Várias Janelas do VS Code Têm o Mesmo Contexto Errado

Isso ocorre quando você abre o mesmo arquivo de workspace de janelas diferentes. Feche todas as janelas do VS Code, reabra apenas a pasta do projeto correto e recarregue. Não use o arquivo de workspace até remover as pastas conflitantes.

Métodos de Contexto do Copilot Chat: Seleção Manual vs. Arquivo .copilot-context

Item Menu Suspenso Manual de Repositório Arquivo .copilot-context
Esforço de configuração Um clique por sessão Criação única de arquivo
Funciona com workspaces multi-raiz Sim, menu suspenso aparece automaticamente Sim, mas apenas um repositório por arquivo
Persistência entre sessões Não, precisa reselecionar a cada sessão Sim, persiste até o arquivo ser removido
Suporte a IDEs VS Code e JetBrains Apenas VS Code
Melhor para Alternância frequente de contexto Fluxos de trabalho com projeto único

Agora você pode forçar o Copilot Chat a usar o repositório correto recarregando a janela, selecionando o repositório manualmente ou adicionando um arquivo .copilot-context. Comece verificando o nome do repositório no painel de chat após recarregar. Se você trabalha com vários repositórios diariamente, mantenha a configuração github.copilot.chat.repositorySelection definida como manual para que o menu suspenso esteja sempre visível.

ADVERTISEMENT