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.
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
- 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. - 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. - 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
- No VS Code, abra a Paleta de Comandos
Pressione Ctrl+Shift+P no Windows ou Cmd+Shift+P no Mac. - Execute o comando Reload Window
DigiteDeveloper: Reload Windowe pressione Enter. A janela reinicia e o Copilot Chat reinicializa com o workspace correto. - 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
- 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. - Selecione o repositório correto na lista
O Copilot Chat reindexa imediatamente esse repositório e o usa para todas as consultas subsequentes. - Se o menu suspenso estiver ausente, abra as configurações do VS Code
Vá em File > Preferences > Settings, pesquise porgithub.copilot.chat.repositorySelectione defina comomanual. Isso faz o menu suspenso ficar sempre visível.
Passo 4: Adicione um Arquivo .copilot-context
- Crie um arquivo chamado
.copilot-contextna raiz do repositório correto
Esse arquivo informa ao Copilot Chat qual repositório usar por padrão. - 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. - 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
- Abra o arquivo de workspace
No VS Code, vá em File > Open Workspace from File e selecione seu arquivo.code-workspace. - Remova pastas extras do workspace
No JSON de configurações do workspace, exclua as entradasfoldersque apontam para outros repositórios. Salve o arquivo. - Recarregue a janela
O Copilot Chat agora vê apenas um repositório e o usa para contexto.
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.